changes	UNKNOWN STEP	﻿2026-09-09T04:19:23.3360549Z Current runner version: '2.337.0'
changes	UNKNOWN STEP	2026-09-09T04:19:23.3415037Z Runner name: 'kitsubito'
changes	UNKNOWN STEP	2026-09-09T04:19:23.3415677Z Runner group name: 'Default'
changes	UNKNOWN STEP	2026-09-09T04:19:23.3416358Z Machine name: 'KITSUBITO'
changes	UNKNOWN STEP	2026-09-09T04:19:23.3420105Z ##[group]GITHUB_TOKEN Permissions
changes	UNKNOWN STEP	2026-09-09T04:19:23.3422335Z Actions: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3422739Z ArtifactMetadata: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3423148Z Attestations: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3423523Z Checks: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3423890Z CodeQuality: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3424262Z Contents: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3424636Z CopilotRequests: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3425026Z Deployments: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3425402Z Discussions: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3425764Z Drives: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3426121Z Issues: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3426493Z Metadata: read
changes	UNKNOWN STEP	2026-09-09T04:19:23.3426851Z Models: read
changes	UNKNOWN STEP	2026-09-09T04:19:23.3427205Z Packages: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3427572Z Pages: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3428034Z PullRequests: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3428444Z RepositoryProjects: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3428865Z SecurityEvents: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3429370Z Statuses: write
changes	UNKNOWN STEP	2026-09-09T04:19:23.3429762Z VulnerabilityAlerts: read
changes	UNKNOWN STEP	2026-09-09T04:19:23.3430171Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:23.3431855Z Secret source: Actions
changes	UNKNOWN STEP	2026-09-09T04:19:23.3432527Z Prepare workflow directory
changes	UNKNOWN STEP	2026-09-09T04:19:23.3880461Z Prepare all required actions
changes	UNKNOWN STEP	2026-09-09T04:19:23.3914473Z Getting action download info
changes	UNKNOWN STEP	2026-09-09T04:19:23.7618585Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
changes	UNKNOWN STEP	2026-09-09T04:19:24.1230698Z Complete job name: changes
changes	UNKNOWN STEP	2026-09-09T04:19:24.2067002Z ##[group]Run actions/checkout@v5
changes	UNKNOWN STEP	2026-09-09T04:19:24.2067722Z with:
changes	UNKNOWN STEP	2026-09-09T04:19:24.2068113Z   repository: BigscreenVR/spt-bs-core
changes	UNKNOWN STEP	2026-09-09T04:19:24.2071171Z   token: ***
changes	UNKNOWN STEP	2026-09-09T04:19:24.2071520Z   ssh-strict: true
changes	UNKNOWN STEP	2026-09-09T04:19:24.2071883Z   ssh-user: git
changes	UNKNOWN STEP	2026-09-09T04:19:24.2072240Z   persist-credentials: true
changes	UNKNOWN STEP	2026-09-09T04:19:24.2072627Z   clean: true
changes	UNKNOWN STEP	2026-09-09T04:19:24.2073009Z   sparse-checkout-cone-mode: true
changes	UNKNOWN STEP	2026-09-09T04:19:24.2073418Z   fetch-depth: 1
changes	UNKNOWN STEP	2026-09-09T04:19:24.2073766Z   fetch-tags: false
changes	UNKNOWN STEP	2026-09-09T04:19:24.2074118Z   show-progress: true
changes	UNKNOWN STEP	2026-09-09T04:19:24.2074475Z   lfs: false
changes	UNKNOWN STEP	2026-09-09T04:19:24.2074795Z   submodules: false
changes	UNKNOWN STEP	2026-09-09T04:19:24.2075152Z   set-safe-directory: true
changes	UNKNOWN STEP	2026-09-09T04:19:24.2075554Z   allow-unsafe-pr-checkout: false
changes	UNKNOWN STEP	2026-09-09T04:19:24.2076184Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:24.3910808Z Syncing repository: BigscreenVR/spt-bs-core
changes	UNKNOWN STEP	2026-09-09T04:19:24.3912385Z ##[group]Getting Git version info
changes	UNKNOWN STEP	2026-09-09T04:19:24.3913142Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core'
changes	UNKNOWN STEP	2026-09-09T04:19:24.3914023Z [command]/usr/bin/git version
changes	UNKNOWN STEP	2026-09-09T04:19:24.3914446Z git version 2.43.0
changes	UNKNOWN STEP	2026-09-09T04:19:24.3920532Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:24.3928797Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/5c021ad0-4f16-498f-8f25-fb181c1c87eb/.gitconfig'
changes	UNKNOWN STEP	2026-09-09T04:19:24.3935612Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/5c021ad0-4f16-498f-8f25-fb181c1c87eb' before making global git config changes
changes	UNKNOWN STEP	2026-09-09T04:19:24.3937091Z Adding repository directory to the temporary git global config as a safe directory
changes	UNKNOWN STEP	2026-09-09T04:19:24.3938653Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
changes	UNKNOWN STEP	2026-09-09T04:19:24.3974416Z [command]/usr/bin/git config --local --get remote.origin.url
changes	UNKNOWN STEP	2026-09-09T04:19:24.3993135Z https://github.com/BigscreenVR/spt-bs-core
changes	UNKNOWN STEP	2026-09-09T04:19:24.4003653Z ##[group]Removing previously created refs, to avoid conflicts
changes	UNKNOWN STEP	2026-09-09T04:19:24.4006516Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
changes	UNKNOWN STEP	2026-09-09T04:19:24.4031989Z HEAD
changes	UNKNOWN STEP	2026-09-09T04:19:24.5448541Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:24.5453235Z [command]/usr/bin/git submodule status
changes	UNKNOWN STEP	2026-09-09T04:19:24.5666490Z ##[group]Cleaning the repository
changes	UNKNOWN STEP	2026-09-09T04:19:24.5669661Z [command]/usr/bin/git clean -ffdx
changes	UNKNOWN STEP	2026-09-09T04:19:24.5811399Z [command]/usr/bin/git reset --hard HEAD
changes	UNKNOWN STEP	2026-09-09T04:19:24.6545200Z HEAD is now at 25e600158 release: v0.68.0 — version material on the r2 assembled WEBSERVE head
changes	UNKNOWN STEP	2026-09-09T04:19:24.6553161Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:24.6554913Z ##[group]Disabling automatic garbage collection
changes	UNKNOWN STEP	2026-09-09T04:19:24.6561000Z [command]/usr/bin/git config --local gc.auto 0
changes	UNKNOWN STEP	2026-09-09T04:19:24.6596876Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:24.6597920Z ##[group]Setting up auth
changes	UNKNOWN STEP	2026-09-09T04:19:24.6606414Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
changes	UNKNOWN STEP	2026-09-09T04:19:24.6643775Z [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' || :"
changes	UNKNOWN STEP	2026-09-09T04:19:24.6842819Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
changes	UNKNOWN STEP	2026-09-09T04:19:24.6865517Z [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' || :"
changes	UNKNOWN STEP	2026-09-09T04:19:24.7054850Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
changes	UNKNOWN STEP	2026-09-09T04:19:24.7113072Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
changes	UNKNOWN STEP	2026-09-09T04:19:24.7296457Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
changes	UNKNOWN STEP	2026-09-09T04:19:24.7324781Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:24.7325412Z ##[group]Fetching the repository
changes	UNKNOWN STEP	2026-09-09T04:19:24.7330301Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d:refs/remotes/origin/golden/webserve-272-r3
changes	UNKNOWN STEP	2026-09-09T04:19:25.2807775Z From https://github.com/BigscreenVR/spt-bs-core
changes	UNKNOWN STEP	2026-09-09T04:19:25.2809587Z  * [new ref]             f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d -> origin/golden/webserve-272-r3
changes	UNKNOWN STEP	2026-09-09T04:19:25.2830974Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.2831719Z ##[group]Determining the checkout info
changes	UNKNOWN STEP	2026-09-09T04:19:25.2832620Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.2837038Z [command]/usr/bin/git sparse-checkout disable
changes	UNKNOWN STEP	2026-09-09T04:19:25.2879657Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
changes	UNKNOWN STEP	2026-09-09T04:19:25.2902576Z ##[group]Checking out the ref
changes	UNKNOWN STEP	2026-09-09T04:19:25.2904832Z [command]/usr/bin/git checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
changes	UNKNOWN STEP	2026-09-09T04:19:25.3192811Z Previous HEAD position was 25e600158 release: v0.68.0 — version material on the r2 assembled WEBSERVE head
changes	UNKNOWN STEP	2026-09-09T04:19:25.3204982Z Switched to a new branch 'golden/webserve-272-r3'
changes	UNKNOWN STEP	2026-09-09T04:19:25.3206161Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
changes	UNKNOWN STEP	2026-09-09T04:19:25.3215594Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.3259212Z [command]/usr/bin/git log -1 --format=%H
changes	UNKNOWN STEP	2026-09-09T04:19:25.3287026Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
changes	UNKNOWN STEP	2026-09-09T04:19:25.3506641Z ##[group]Run set -euo pipefail
changes	UNKNOWN STEP	2026-09-09T04:19:25.3507745Z [36;1mset -euo pipefail[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3508715Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3510089Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3511661Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3512995Z [36;1mverdict=PASS[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3514104Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3515976Z [36;1mprintf 'FLOOR_START job=changes runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3517729Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3518886Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3521041Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3522779Z [36;1m  exit 1[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3523503Z [36;1mfi[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3541082Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
changes	UNKNOWN STEP	2026-09-09T04:19:25.3542416Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.3632230Z FLOOR_START job=changes runner=Linux free_bytes=226339983360 floor_bytes=34359738368 verdict=PASS sample=INSTANT
changes	UNKNOWN STEP	2026-09-09T04:19:25.3706332Z ##[group]Run python3 .github/ci/flake-registry.py
changes	UNKNOWN STEP	2026-09-09T04:19:25.3707509Z [36;1mpython3 .github/ci/flake-registry.py[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.3721314Z shell: /usr/bin/bash -e {0}
changes	UNKNOWN STEP	2026-09-09T04:19:25.3722119Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.3994631Z FLAKE_REGISTRY_OK: 2 entries
changes	UNKNOWN STEP	2026-09-09T04:19:25.4081422Z ##[group]Run echo "code=true" >> "$GITHUB_OUTPUT"
changes	UNKNOWN STEP	2026-09-09T04:19:25.4082523Z [36;1mecho "code=true" >> "$GITHUB_OUTPUT"[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4096503Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
changes	UNKNOWN STEP	2026-09-09T04:19:25.4097606Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.4208824Z ##[group]Run set -euo pipefail
changes	UNKNOWN STEP	2026-09-09T04:19:25.4209848Z [36;1mset -euo pipefail[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4210690Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4211829Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4213209Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4214372Z [36;1mverdict=PASS[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4215301Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4216938Z [36;1mprintf 'FLOOR_END job=changes runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4218473Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4219575Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4221245Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4222824Z [36;1m  exit 1[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4223489Z [36;1mfi[0m
changes	UNKNOWN STEP	2026-09-09T04:19:25.4236336Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
changes	UNKNOWN STEP	2026-09-09T04:19:25.4237335Z ##[endgroup]
changes	UNKNOWN STEP	2026-09-09T04:19:25.4305506Z FLOOR_END job=changes runner=Linux free_bytes=226339926016 floor_bytes=34359738368 verdict=PASS sample=INSTANT
changes	UNKNOWN STEP	2026-09-09T04:19:25.4484090Z Post job cleanup.
changes	UNKNOWN STEP	2026-09-09T04:19:25.5146337Z [command]/usr/bin/git version
changes	UNKNOWN STEP	2026-09-09T04:19:25.5177125Z git version 2.43.0
changes	UNKNOWN STEP	2026-09-09T04:19:25.5202591Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/2f518cd3-3913-4aa0-a5fc-a681db1e9dc8/.gitconfig'
changes	UNKNOWN STEP	2026-09-09T04:19:25.5209115Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/2f518cd3-3913-4aa0-a5fc-a681db1e9dc8' before making global git config changes
changes	UNKNOWN STEP	2026-09-09T04:19:25.5211327Z Adding repository directory to the temporary git global config as a safe directory
changes	UNKNOWN STEP	2026-09-09T04:19:25.5213232Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
changes	UNKNOWN STEP	2026-09-09T04:19:25.5239965Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
changes	UNKNOWN STEP	2026-09-09T04:19:25.5264960Z [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' || :"
changes	UNKNOWN STEP	2026-09-09T04:19:25.5451748Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
changes	UNKNOWN STEP	2026-09-09T04:19:25.5470159Z http.https://github.com/.extraheader
changes	UNKNOWN STEP	2026-09-09T04:19:25.5489589Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
changes	UNKNOWN STEP	2026-09-09T04:19:25.5502449Z [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' || :"
changes	UNKNOWN STEP	2026-09-09T04:19:25.5692902Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
changes	UNKNOWN STEP	2026-09-09T04:19:25.5716335Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
changes	UNKNOWN STEP	2026-09-09T04:19:25.6015805Z Evaluate and set job outputs
changes	UNKNOWN STEP	2026-09-09T04:19:25.6021599Z Set output 'code'
changes	UNKNOWN STEP	2026-09-09T04:19:25.6023873Z Cleaning up orphan processes
traceability	UNKNOWN STEP	﻿2026-09-09T04:19:31.8452281Z Current runner version: '2.337.0'
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8456848Z Runner name: 'kitsubito'
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8457474Z Runner group name: 'Default'
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8458093Z Machine name: 'KITSUBITO'
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8461448Z ##[group]GITHUB_TOKEN Permissions
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8463280Z Actions: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8463686Z ArtifactMetadata: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8464095Z Attestations: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8464467Z Checks: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8464830Z CodeQuality: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8465198Z Contents: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8465563Z CopilotRequests: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8465950Z Deployments: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8466317Z Discussions: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8466679Z Drives: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8467031Z Issues: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8467389Z Metadata: read
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8467745Z Models: read
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8468091Z Packages: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8468459Z Pages: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8469050Z PullRequests: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8469465Z RepositoryProjects: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8469869Z SecurityEvents: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8470237Z Statuses: write
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8470593Z VulnerabilityAlerts: read
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8470987Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8472823Z Secret source: Actions
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8473697Z Prepare workflow directory
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8823737Z Prepare all required actions
traceability	UNKNOWN STEP	2026-09-09T04:19:31.8858534Z Getting action download info
traceability	UNKNOWN STEP	2026-09-09T04:19:32.5215228Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
traceability	UNKNOWN STEP	2026-09-09T04:19:32.8944291Z Complete job name: traceability
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9747326Z ##[group]Run actions/checkout@v5
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9748041Z with:
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9748413Z   repository: BigscreenVR/spt-bs-core
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9751345Z   token: ***
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9751687Z   ssh-strict: true
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9752031Z   ssh-user: git
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9752383Z   persist-credentials: true
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9752764Z   clean: true
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9753136Z   sparse-checkout-cone-mode: true
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9753556Z   fetch-depth: 1
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9753891Z   fetch-tags: false
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9754246Z   show-progress: true
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9754600Z   lfs: false
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9754929Z   submodules: false
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9755285Z   set-safe-directory: true
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9755681Z   allow-unsafe-pr-checkout: false
traceability	UNKNOWN STEP	2026-09-09T04:19:32.9756296Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0534259Z Syncing repository: BigscreenVR/spt-bs-core
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0535660Z ##[group]Getting Git version info
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0536371Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core'
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0537253Z [command]/usr/bin/git version
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0537659Z git version 2.43.0
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0545006Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0553018Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/b9b30154-c50a-4d06-a49a-cf77281e4a87/.gitconfig'
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0561565Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/b9b30154-c50a-4d06-a49a-cf77281e4a87' before making global git config changes
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0562630Z Adding repository directory to the temporary git global config as a safe directory
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0565304Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0616637Z [command]/usr/bin/git config --local --get remote.origin.url
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0632598Z https://github.com/BigscreenVR/spt-bs-core
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0642229Z ##[group]Removing previously created refs, to avoid conflicts
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0644791Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0660194Z refs/heads/golden/webserve-272-r3
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0665977Z [command]/usr/bin/git checkout --detach
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0746408Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0782643Z [command]/usr/bin/git branch --delete --force golden/webserve-272-r3
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0815998Z Deleted branch golden/webserve-272-r3 (was f6110c2a1).
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0971098Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.0975285Z [command]/usr/bin/git submodule status
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1167274Z ##[group]Cleaning the repository
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1170641Z [command]/usr/bin/git clean -ffdx
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1208351Z [command]/usr/bin/git reset --hard HEAD
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1280435Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1285742Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1287054Z ##[group]Disabling automatic garbage collection
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1290444Z [command]/usr/bin/git config --local gc.auto 0
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1311380Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1312044Z ##[group]Setting up auth
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1316012Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1338705Z [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' || :"
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1526831Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1552014Z [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' || :"
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1738413Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1760820Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1945831Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1976290Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1976989Z ##[group]Fetching the repository
traceability	UNKNOWN STEP	2026-09-09T04:19:33.1982399Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d:refs/remotes/origin/golden/webserve-272-r3
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7536163Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7537225Z ##[group]Determining the checkout info
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7538032Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7541238Z [command]/usr/bin/git sparse-checkout disable
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7584434Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7609122Z ##[group]Checking out the ref
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7612167Z [command]/usr/bin/git checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7681257Z Switched to a new branch 'golden/webserve-272-r3'
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7682384Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7687705Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7729620Z [command]/usr/bin/git log -1 --format=%H
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7760198Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7964145Z ##[group]Run set -euo pipefail
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7964891Z [36;1mset -euo pipefail[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7965567Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7966582Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7967890Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7968901Z [36;1mverdict=PASS[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7969750Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7971451Z [36;1mprintf 'FLOOR_START job=traceability runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7973007Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7973828Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7975659Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7977223Z [36;1m  exit 1[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7977670Z [36;1mfi[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7994276Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
traceability	UNKNOWN STEP	2026-09-09T04:19:33.7995128Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8080661Z FLOOR_START job=traceability runner=Linux free_bytes=226339774464 floor_bytes=34359738368 verdict=PASS sample=INSTANT
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8150839Z ##[group]Run WANT=0.2.0
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8151449Z [36;1mWANT=0.2.0[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8152046Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8152977Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8153887Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8154528Z [36;1melse[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8155257Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8156396Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8157238Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8157857Z [36;1m  rm -rf "$SRC"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8158468Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8159793Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8161193Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8162150Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8162965Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8163817Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8164476Z [36;1mfi[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8164938Z [36;1m./traceable-reqs --version[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8178008Z shell: /usr/bin/bash -e {0}
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8178576Z env:
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8179039Z   GH_TOKEN: 
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8179506Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8348176Z traceable-reqs 0.2.0
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8403860Z ##[group]Run ./traceable-reqs check --json
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8404632Z [36;1m./traceable-reqs check --json[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8417200Z shell: /usr/bin/bash -e {0}
traceability	UNKNOWN STEP	2026-09-09T04:19:33.8417744Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0180426Z {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0181075Z   "schemaVersion": 1,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0182032Z   "summary": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0182850Z     "requirementCount": 892,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0184119Z     "completeCount": 892,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0185202Z     "incompleteCount": 0,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0186256Z     "findingCount": 0
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0187162Z   },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0187963Z   "requirements": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0188836Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0189919Z       "id": "REQ-ACCESS-RETIRED-VERB-REFUSAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0229170Z       "title": "A RETIRED SUBCOMMAND OF `spt endpoint access` REFUSES BY NAME RATHER THAN FALLING THROUGH ITS OWN OPTIONAL POSITIONAL AND ANSWERING PLAUSIBLY. `access` takes an optional endpoint id positionally, so once `list` and `rules` stopped being subcommands (retired when the roster views replaced them) clap handed those tokens to the POSITIONAL, and the view reported `no access entities ruled for 'list'` at exit 0 -- a well-formed, confident report about an entity nobody has ever created. Found by flynn in the v0.49.0 field verify (releases#67). THE DEFECT IS NOT A MISSING ERROR MESSAGE, IT IS AN ANSWER: the sentence is TRUE of any name nobody has ruled, so it is indistinguishable from the real result for a real endpoint, and an operator or agent still carrying the old form reads it as a report and stops looking. The same failure shape as a stale carried-forward instruction -- the surface looks diligent and is wrong. MEASURED BEFORE THE FIX, and the measurement widened the filing: `rules` falls through IDENTICALLY, so the population is the retired-token FAMILY and not the one token the issue named. The node tier is NOT affected and that was checked rather than assumed: `spt node access` declares no positional at all, so clap refuses an extra argument natively. THE REFUSAL FAILS OPEN ONTO A REAL ENDPOINT. This guard is added to a path that previously accepted EVERY positional, so it is a narrowing, and a narrowing has an unruled arm: an endpoint genuinely named `list` must stay viewable. The known-target check therefore runs FIRST and wins -- a fix that made a real target unreachable would be a new defect wearing the old one's repair. Known means the access store rules it or a local perch carries the id; the store is already loaded at that point, so the check costs no read. The token match is case-folded, because an operator who typed the old verb in any casing typed the old verb. Gate: impl -- the retired-token table with its replacement guidance, the case-folded lookup, the refusal composer naming token then retirement then the working form, and the guard placed AFTER the known-target check inside the view; unit -- a decision table whose expectations are WRITTEN OUT AS LITERALS: each retired token refuses with a nonzero exit and names its replacement, an ordinary unruled endpoint id still gets the honest roster sentence (the silence the fix must not swallow), a real endpoint that happens to BE named `list` is viewed rather than refused, the casing variants refuse alike, and every token in the table is a token the current grammar does NOT accept as a subcommand -- walked against the real parser, so a token that comes BACK as a verb cannot sit here refusing itself.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0260911Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0261477Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0262016Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0262607Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0263184Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0263825Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0264473Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0265288Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0266004Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0266631Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0267293Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0268495Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0269306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0269992Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0271410Z               "line": 20334
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0272347Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0273115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0273960Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0275047Z               "line": 20354
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0315231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0315871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0316365Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0317058Z               "line": 20365
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0317612Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0318045Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0318527Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0319312Z               "line": 20389
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0319831Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0320231Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0320607Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0320995Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0321428Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0321961Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0322431Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0322811Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0323322Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0323890Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0324346Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0324799Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0325457Z               "line": 35847
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0325939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0326339Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0327029Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0327975Z               "line": 35881
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0328702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0329364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0330039Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0331311Z               "line": 35927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0332016Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0332596Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0333182Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0333743Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0334302Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0334860Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0335494Z       "id": "REQ-ACCESS-VERDICT-REASON",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0365968Z       "title": "The endpoint access gate reports WHY a pass passed, not merely THAT it passed: the gate's verdict carries, on its allow arm, the reason the chain admitted the interaction — the same-node short-circuit, the reply exemption, an entry whose subject NAMED the peer (a proven sender endpoint or the origin node), an entry that matched only by SUBNET WILDCARD (an entry, but one that never named this peer), or a posture pass (an endpoint / node / captured-subnet mode, or the implicit-open bottom of the chain). The reason is computed AT THE GATE, in the one place that holds the whole chain, and travels with the decision. The alternative — a downstream consumer re-deriving it — means RE-OPENING the access store after the gate has closed it, which is both a second read of a value that may already have moved (the stale-snapshot class) and a second entry point into the security chain; the trust warning is a consumer of the decision, never a second decider. Refusals stay BARE: a denial's diagnostic tier is already printed where it is refused, and no enforcement caller does anything with a deny but drop it, so giving Deny a payload would force every refusal site to destructure a field it never reads. Enforcement sites therefore gate on a refusal PREDICATE, which is what keeps the ripple across them rename-shaped rather than a scatter of partial matches. Same-node and reply are carried as reasons in their own right precisely so that a consumer can never warn on them: same-node is inside the node's own trust unit, and a reply is traffic the receiving agent itself invited. Gate: impl — the pass-reason type, the payload on the allow arm, the tier-to-reason classification, and the predicate helpers, with every production enforcement site converted to the predicate; unit — one row per pass arm produced by the REAL gate rather than by calling the classifier directly, each row arranged so that only its own arm can produce the pass (the named-entry rows sit on a closed endpoint, the wildcard row's peer is a subnet member no rule names, and the same closed endpoint is asserted to refuse a non-member), plus the helper split: the refusal predicate is true for exactly the refusal, its complement holds for every pass reason, and no pass reason is readable from a denial.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0396527Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0397538Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0398382Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0399363Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0400136Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0400935Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0401787Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0402788Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0403769Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0404588Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0405494Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0406451Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0407291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0408155Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0409404Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0410223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0411024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0411894Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0413090Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0413859Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0414396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0415081Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0416181Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0417090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0417880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0418768Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0419984Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0421054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0421862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0422759Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0423989Z               "line": 355
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0424856Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0425698Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0426479Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0427191Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0428017Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0429041Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0429942Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0430680Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0431496Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0432441Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0433305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0434302Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0435487Z               "line": 994
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0436320Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0437101Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0437978Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0439196Z               "line": 1127
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0440032Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0473846Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0474733Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0475430Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0476116Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0476804Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0477666Z       "id": "REQ-ACL-ACCESS-REFRESH-ER-ONLY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0572626Z       "title": "spt api access-refresh stops refusing and becomes real, gated to the engine room, updating ONLY the node's captured subnet-level fallbacks (ADR-0052 decision 6; the W2 refusal REQ-ACL-ACCESS-REFRESH-VERB was minted precisely so this wave changes one behavior rather than adding a surface and its gate). The refresh is the CONSENTED half of advisory gossip: a subnet-mode change reaches a member as a notification, the engine room is briefed with the exact new posture, and a human decides whether this node adopts it — which is why the verb writes the captured fallbacks and never the node's own rules, and why no remote actor can invoke it. Its authentication is the same shared engine-room function empower uses. The W2 refusal test is repinned to the new contract in this same change, not left asserting a behavior the wave removed. Gate: doc — ADR-0052 decision 6 and the CONTEXT.md capture-refresh sentence; impl — the real refresh behind the shared engine-room gate, writing captured subnet fallbacks only; unit — an engine-room caller refreshes and the chain's bottom tier changes, a non-engine-room caller is refused, the node's own rules are untouched, and the repinned W2 test asserts the new contract.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0583640Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0584293Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0584833Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0585348Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0585908Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0586375Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0586860Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0587432Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0588043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0588610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0589449Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0590359Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0590978Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0591477Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0591952Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0592454Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0592974Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0593613Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0594166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0594730Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0595589Z               "line": 558
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0596127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0596658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0597244Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0597955Z               "line": 417
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0598583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0599185Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0600081Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0600871Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0601547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0602146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0602794Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0603592Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0604130Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0604618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0605238Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0605991Z               "line": 441
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0606530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0607053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0607637Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0608490Z               "line": 456
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0609350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0610050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0610941Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0611942Z               "line": 548
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0612673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0613307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0613993Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0614965Z               "line": 337
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0615634Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0616308Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0616908Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0617479Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0618187Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0618927Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0619666Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0620346Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0620981Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0621753Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0622431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0623195Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0624015Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0624553Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0625069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0625677Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0626424Z               "line": 848
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0627192Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0627701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0628254Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0629235Z               "line": 1019
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0629788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0630316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0630874Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0631564Z               "line": 1241
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0632199Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0632705Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0633222Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0633688Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0634112Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0634633Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0635142Z       "id": "REQ-ACL-ACCESS-REFRESH-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0644386Z       "title": "`spt api access-refresh` is MINTED THIS WAVE BUT REFUSES — the verb exists, parses and is documented, and its refusal names why: the capture-refresh is engine-room-only, and engine-room enforcement (ADR-0052) does not land until W3. Minting the refusing verb now is deliberate: it fixes the contract adapters and the engine-room brief will be built against, and it makes the wave that implements enforcement a change to ONE behavior rather than a new surface plus its gate. A refusal that merely says 'unknown command' would invite an adapter to route around it. When it does light up it updates ONLY the node's captured subnet-level fallbacks — never the node's own rules, which are the operator's, not the subnet's. Gate: doc — the CONTEXT.md capture-refresh sentence naming the verb and its engine-room-only gate; impl — the verb, parsing, and a clear refusal naming the W3 dependency; unit — invoking it refuses with the engine-room diagnostic, changes no stored state, and is not reachable as an unknown-command fallthrough.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0653539Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0654329Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0654813Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0655289Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0655843Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0656300Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0656887Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0657390Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0657967Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0658548Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0659250Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0659924Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0660466Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0660938Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0661434Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0661901Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0662388Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0663049Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0663578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0664155Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0664879Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0665402Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0665936Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0666403Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0666885Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0667418Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0667992Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0668617Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0669156Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0669694Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0670299Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0670812Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0671403Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0672109Z               "line": 1241
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0672633Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0673170Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0673619Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0674110Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0674587Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0675007Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0675587Z       "id": "REQ-ACL-DISCOVER-DEFAULT-ON",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0704851Z       "title": "DISCOVER IS ON BY DEFAULT: a `closed` posture at ANY mode tier -- endpoint mode, node mode, or the join-time-captured subnet mode -- no longer implies a DISCOVER deny, and the ONLY thing that closes DISCOVER is a deny that NAMES it: an access rule row, or a `per_surface` mode entry (engine-room-set at the node tier). Operator-ruled 2026-08-17 (releases#180/#181): being findable is what makes a knock -- the ask to be admitted -- possible at all, so a node that closed its posture to say 'do not talk to me' had also silently said 'and you may not ask', which was never the choice being made; the messaging-first majority pays for a discovery decision they never took. THE DEFAULT LIVES IN THE SURFACE VOCABULARY, NOT BESIDE THE CHAIN: the `surface::TABLE` row grows a `default_on` discriminant (single-source, the shape `attributable` already established) and exactly ONE method reads it -- `Modes::for_surface_governing`, which for a default-on surface resolves `per_surface` ALONE (exact key then case-fold, the releases#66 precedence rule VERBATIM) and declines the `self.all` blanket fallback. `Modes::for_surface` is untouched, so every reader that asks 'what posture is set here' keeps its present meaning; only the readers that DECIDE change. ALL THREE MODE TIERS AND `effective_posture` ROUTE THROUGH IT: the posture reading is deliberately the chain's own tiers in the chain's own order, so leaving it on the blanket would put two accounts of one fact out of agreement -- the exact failure that method exists to prevent -- and the `may_grant_node_subject` consequence is CONSISTENT rather than a hole, since post-change a node-subject DISCOVER allow admits nothing the default already does not. `MatchedTier::SurfaceDefaultOpen` is minted: a pass by surface default and a pass by chain bottom are different facts, needed by the ER/DISCOVER conjunction notice and the trust warning's pass-reason, and cheap only at mint. WHAT DOES NOT MOVE: ADR-0053's degrade (a store that cannot be read still refuses DISCOVER outright -- the default is a posture carve-out, never a licence to advertise policy we cannot read), REQ-ER-NOT-ADVERTISED's pre-chain engine-room carve-out (posture beats whitelist), and the redemption path, which is DISCOVER-free by design and node-tier-routed. Gate: doc -- the CONTEXT.md mode-tier entry stating the carve-out as ratified vocabulary, naming the one off-switch and the three things that do not move; impl -- the table discriminant, its single table-driven reader, the governing resolver, the three tiers, `effective_posture`, and the new tier; unit -- a blanket-closed node admits DISCOVER and STILL refuses MSG in one cell, an explicit DISCOVER-naming mode closes it at each of the three tiers SEPARATELY, a DISCOVER-naming deny ROW still denies, the case-folded key is honoured ON THE NEW PATH with exact-match precedence intact, the chain and `effective_posture` agree in both directions, the default-open pass is distinguishable from the implicit-open bottom, the reader is proven a function OF THE TABLE against a fixture the shipped table cannot express, and a degraded store refuses DISCOVER beside a readable blanket-closed one that admits it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0730735Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0731357Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0731867Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0732344Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0732888Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0733384Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0733859Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0734371Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0734896Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0735521Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0736047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0736522Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0737226Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0737761Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0738272Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0738775Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0739303Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0739880Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0740495Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0741066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0741638Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0742374Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0743081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0743590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0744120Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0744979Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0745513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0746024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0746607Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0747306Z               "line": 342
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0747916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0748378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0749059Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0749877Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0750406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0750973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0751526Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0752278Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0752973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0753478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0754117Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0754826Z               "line": 400
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0755345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0755893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0756440Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0757251Z               "line": 833
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0757779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0758233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0758881Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0759663Z               "line": 1291
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0760256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0760743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0761291Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0762054Z               "line": 1786
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0762598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0763146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0763862Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0764596Z               "line": 1859
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0765194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0765675Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0766210Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0767000Z               "line": 1902
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0767558Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0768056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0768635Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0769574Z               "line": 1942
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0770209Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0770684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0771264Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0772013Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0772543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0773071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0773616Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0774312Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0774927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0775424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0775999Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0776679Z               "line": 19922
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0777333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0777885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0778399Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0779219Z               "line": 19956
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0779781Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0780245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0780817Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0781519Z               "line": 19979
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0782106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0782587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0783112Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0783831Z               "line": 19996
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0784367Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0784830Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0785336Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0785802Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0786328Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0786953Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0787569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0788222Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0789046Z               "line": 2637
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0789622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0790109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0790670Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0791487Z               "line": 2660
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0792050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0792499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0793185Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0793949Z               "line": 2684
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0794542Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0795004Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0795436Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0795966Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0796457Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0797085Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0797613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0798180Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0799130Z               "line": 418
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0799664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0800187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0800754Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0801493Z               "line": 567
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0802070Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0802529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0803083Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0803860Z               "line": 617
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0804398Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0804942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0805531Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0806283Z               "line": 385
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0806888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0807367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0808073Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0808817Z               "line": 3206
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0809446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0809972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0810536Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0811310Z               "line": 3233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0811868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0812329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0812933Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0813652Z               "line": 3281
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0814163Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0814706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0815249Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0815989Z               "line": 3325
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0816547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0817025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0817645Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0818349Z               "line": 3348
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0818929Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0819500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0820039Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0820799Z               "line": 3381
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0821331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0821799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0822408Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0823157Z               "line": 3425
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0823731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0824188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0824723Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0825667Z               "line": 4507
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0826218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0826713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0827261Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0827976Z               "line": 5241
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0828582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0829136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0829722Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0830448Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0831082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0831614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0832139Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0832792Z               "line": 36681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0833403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0833868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0834476Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0835153Z               "line": 36780
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0835673Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0836218Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0836664Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0837167Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0837616Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0838049Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0838602Z       "id": "REQ-ACL-DISCOVER-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0850652Z       "title": "DISCOVER is a real gated surface: registry resolve/advertise and the resources blurb are filtered per viewer, so discovery leaks nothing a viewer could not reach. ADR-0009 NAMED this leg — 'discovery (resource advertisement) is gated by the first two gates' — and CONTEXT.md's resource-advertisement entry promises that an endpoint whose access rules exclude the viewer's node by naming DISCOVER in a deny never appears in that view; a legacy grant plus blanket-closed posture does not imply that exclusion because DISCOVER is default-on. Only the VISIBILITY half was ever built; the access half has been an unbuilt promise since M4. Un-gated discovery on a shared subnet is an inventory of every agent on every member node, including the ones an operator deliberately walled off — and a resources blurb is a yellow-pages description written to attract exactly the collaboration the access rules refuse. Gate: doc — the CONTEXT.md resource-advertisement entry (the promise this closes) and the control-surface entry minting the id; impl — the DISCOVER check on the registry resolve/advertise path plus per-viewer filtering of the resources blurb; unit — a viewer denied by a DISCOVER-naming rule sees neither the endpoint row nor its blurb, while a viewer allowed DISCOVER sees both, legacy blanket closure alone remains disclosed, and the filter is per-viewer rather than global.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0862462Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0863062Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0863585Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0864063Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0864529Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0865049Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0865543Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0866081Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0866653Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0867182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0867749Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0868415Z               "line": 862
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0878816Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0879532Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0879898Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0880265Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0880705Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0881214Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0881647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0882122Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0882761Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0883209Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0883587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0884053Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0884671Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0885115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0885493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0885983Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0886683Z               "line": 172
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0887129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0887506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0888001Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0888665Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0889208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0889588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0890092Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0890917Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0891412Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0891847Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0892216Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0892573Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0892983Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0893464Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0893898Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0894259Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0894675Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0895142Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0895570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0896028Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0896668Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0897105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0897489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0897946Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0898586Z               "line": 600
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0899114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0899501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0899996Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0900652Z               "line": 335
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0901094Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0901467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0901957Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0902619Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0903056Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0903424Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0903776Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0904129Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0904467Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0904819Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0905284Z       "id": "REQ-ACL-ER-DISCOVER-CONJUNCTION-NOTICE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0933797Z       "title": "AN ACCEPTED RULE THAT CANNOT CURRENTLY TAKE EFFECT SAYS SO: an endpoint-scoped access mutation naming the ENGINE ROOM is accepted and, when its `DISCOVER` half cannot presently disclose anything, the accept site prints a LOUD CONJUNCTION NOTICE naming the engine room's advertisement whitelist as the other lever and its current posture. Disclosure of the engine room is an AND across two records: `DiscoverGate` checks the ER advertisement filter BEFORE the access chain (REQ-ER-NOT-ADVERTISED, ratified and unchanged by this requirement), so a rule accepted against an empty whitelist discloses NOTHING while reading as policy in force. Field case: ENLYZEAM's sole `DISCOVER` allow was ER-scoped `any-of SPT_DEV` with an empty whitelist, and every SPT_DEV peer saw only its own rows (hertz RCA 2026-08-05). THE RULED SHAPE (doyle, releases#163) IS ACCEPT-AND-TELL, and both halves of it are load-bearing: do NOT refuse the mutation -- the rule IS the conjunction's legitimate chain half and refusing it would make the only expressible half unexpressible -- and do NOT route it into the ER whitelist, because that record is the human/engine-room seat's authority and an AGENT-INVOCABLE VERB MUST NOT MUTATE IT. Kin doctrine: refused-rather-than-quietly-ignored (#5); the defect is DECLARE-SITE VS ENFORCE-SITE SILENCE, and acceptance is not the defect. WHICH HALF IS MISSING IS NAMED, not merely that one is: the whitelist names nobody; the whitelist does not name the machine this rule admits (checkable EXACTLY for a node subject, because the whitelist is node-keyed -- an advertisement lands on a peer NODE and every endpoint there reads it -- and deliberately NOT guessed for a subnet wildcard, which this site cannot enumerate into node keys, NOR for a sender-endpoint subject, which names no node at all: resolving that id to a machine would be a guess wearing a lookup, since the directory answers where this node last SAW that endpoint and not where the grant will be exercised from, so a notice built on it would name the wrong machine with full confidence. Both fall-throughs are the same non-guess doctrine and both are PINNED BY A CELL, because an unstated deliberate silence is indistinguishable from an unhandled arm to the next reader (doyle, #146 review); or the whitelist would disclose and the posture withholds ahead of it. GAPS ARE REPORTED WHITELIST-FIRST THOUGH THE GATE CHECKS POSTURE FIRST: posture is a state that changes the moment a controller attaches, the whitelist is the durable lever the operator must actually edit, and naming a transient blocker while a permanent one sits underneath sends them to fix the wrong thing. ONLY AN ALLOW IS CLASSIFIED -- a deny's `DISCOVER` half takes effect the moment it lands, so a notice there would teach that a refusal is conditional when it is not -- and a REMOVAL never reaches the notice by an explicit op guard rather than by the decision it carries, since a removal restates the tuple with the WIDENING polarity the gate wanted and not the rule's own. The record is read only when the target IS the engine room, so an ordinary rule mutation gains no file read. Gate: doc -- the CONTEXT.md entry stating the conjunction, the accept-and-tell shape, the whitelist-first order and what must not happen; impl -- the pure classifier over (target-is-ER, rule, whitelist, posture), the notice composer, and the accept-site call after the acceptance line; unit -- each gap arm classified apart, an ALLOW that the whitelist DOES name plus an online posture yields NO notice (the silence is earned, not merely unimplemented), a deny and a removal are silent, a non-ER target is silent, and the notice text names the whitelist as the other lever and the posture as its current state.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0962732Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0963201Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0963585Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0963965Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0964345Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0964712Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0965074Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0965472Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0965881Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0966358Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0966922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0967326Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0967851Z               "line": 953
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0968280Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0968644Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0969091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0969449Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0969852Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0970317Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0970744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0971206Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0971823Z               "line": 739
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0972263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0972634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0973063Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0973640Z               "line": 16304
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0974092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0974472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0974901Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0975487Z               "line": 16343
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0975935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0976317Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0976740Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0977315Z               "line": 16374
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0977768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0978135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0978550Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0979209Z               "line": 16426
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0979651Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0980018Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0980375Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0980741Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0981144Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0981618Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0982040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0982518Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0983161Z               "line": 2706
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0983599Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0983967Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0984335Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0984695Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0985217Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0985690Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0986109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0986538Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0987109Z               "line": 36504
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0987555Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0987933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0988347Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0988929Z               "line": 36741
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0989487Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0989859Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0990221Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0990573Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0990930Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0991278Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.0991722Z       "id": "REQ-ACL-FAIL-CLOSED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1013384Z       "title": "A corrupt or unreadable access store degrades CLOSED, loudly (ADR-0053 — an ADR-level flip of ADR-0009's deliberate fail-open ruling). ADR-0009 justified fail-open explicitly: the whitelist was 'a same-subnet convenience boundary layered inside subnet membership, not the system's outer wall', because every member node was the one user's own machine. The SHARED SUBNET ruling breaks that premise — member nodes now belong to different human operators and the access layer gates agents — and a boundary that evaporates when its store file corrupts is not a boundary an operator can reason about. So a store that CANNOT BE READ refuses unlisted-subject traffic on every surface rather than admitting it, and says so on the refusing node naming the store path (silence plus refusal reads as network failure and burns diagnosis time). TWO THINGS SURVIVE THE DEGRADE: the stateful-firewall reply exemption (correlation state is a separate file keyed on the endpoint's own recent outbound — a degraded node keeps its own conversations alive) and the same-node loopback Allow. THE SPLIT THAT MAKES THIS SHIPPABLE: an ABSENT store file is NOT a degrade. It is the unconfigured baseline — every fleet node today has no access.json, and reading absence as closed would refuse all unsolicited cross-node traffic fleet-wide on upgrade. The two cases split on std::io::ErrorKind::NotFound and nothing else: never-created reads as an empty store whose chain bottoms out open; any other io error or a parse failure is a degrade. Absent-is-open keeps an unconfigured fleet reachable, unreadable-is-closed makes the boundary real. Consequence accepted per ADR-0053: a personal fleet with zero configured rules now blocks unsolicited cross-node traffic if its store file CORRUPTS — the failure is loud, local, and repairable, and the alternative (silent admission on a shared subnet) is the worse lie. Existing fail-open tests are repinned to the new contract as part of this diff (a product contract change, not a test fixup). Gate: doc — ADR-0053 and the CONTEXT.md control-surface-modes entry carrying the degrade rule; impl — AccessStore::load_checked/load_checked_from returning AccessDegraded (path + cause) with the NotFound split, and the daemon gate's refuse-plus-diagnostic arm ordered AFTER the reply exemption; unit — the degrade split (absent is baseline, corrupt and unreadable both degrade, diagnostic names the path) and the gate-level proof that the same call is allowed before corruption, refused on every surface during it, still allowed as a reply throughout, and allowed again once the store is repaired without a restart.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1033880Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1034349Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1034732Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1035121Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1035498Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1035852Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1036248Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1036652Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1037121Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1037543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1037946Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1038481Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1038914Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1039358Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1039829Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1040198Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1040602Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1041071Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1041500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1041964Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1042583Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1043021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1043392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1043869Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1044484Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1044928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1045301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1045767Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1046378Z               "line": 1549
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1046818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1047207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1047671Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1048291Z               "line": 1557
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1048735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1049206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1049661Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1050266Z               "line": 1608
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1050706Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1051077Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1051440Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1051801Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1052218Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1052699Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1053138Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1053504Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1053929Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1054395Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1054820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1055287Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1056018Z               "line": 335
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1056461Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1056838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1057291Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1057921Z               "line": 600
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1058360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1058733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1059286Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1059906Z               "line": 649
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1060343Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1060711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1061153Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1061766Z               "line": 4287
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1062205Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1062591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1063054Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1063665Z               "line": 4320
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1064107Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1064484Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1064832Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1065179Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1065518Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1065856Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1066342Z       "id": "REQ-ACL-FORK-WITHOUT-DISCOVER-CONSEQUENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1089829Z       "title": "A `FORK` GRANT WHOSE SUBJECT CANNOT RESOLVE THE ENDPOINT SAYS SO AT WRITE TIME -- a stated consequence, never a refusal: the rule lands exactly as typed and the operator is told that as written the subject cannot resolve the endpoint it may now fork, so the attempt fails later as an unresolvable subject. Forking a remote endpoint takes TWO surfaces and only one is obvious: `FORK` authorizes the operation, `DISCOVER` is what lets the grantee resolve the row at all. Field origin (releases#76, from the releases#29 cross-node rung): node B granted node A `FORK` alone, A could never fork, and granting the pair fixed it -- diagnosed empirically, not by reading. The operator-facing defect was never that the pair is required; it is that the requirement was INVISIBLE, since the write succeeds and reads back as typed. THE CONDITION IS THE CHAIN'S OWN `DISCOVER` VERDICT FOR THE SUBJECT, NEVER RULE-ROW PRESENCE, and the re-derivation matters because #76's own filed premise stopped being true inside this milestone: the filing reasoned that per-surface isolation closes every unlisted surface so a FORK-only grant DENIES DISCOVER, but read against the code a FORK rule simply does not COVER DISCOVER (`AccessRule::covers`), so DISCOVER fell THROUGH to the mode tiers and it was the blanket-closed posture there that refused it -- exactly what REQ-ACL-DISCOVER-DEFAULT-ON removed. A row-scan condition would therefore now be wrong in BOTH directions: silent on the explicit deny that still bites, loud on the blanket close that no longer does. ONE VERDICT, TWO CONSUMERS: the same predicate answers this write-time consequence and REQ-KNOCK-PRESCRIBES-FORK-PAIR, asked of one function rather than described twice -- this file already records what a second copy of an approval classifier cost. SUBJECT SHAPES ARE ANSWERED HONESTLY OR NOT AT ALL: a NODE subject is exact; a SUBNET WILDCARD is one rule with a verdict per machine, so the refused members are NAMED (with the count this node can SEE stated beside them, because a roster is this node's view and not the subnet's truth); a SENDER-ENDPOINT subject is deliberately NOT answered, since `FORK` carries no proven sender and such a rule matches no traffic at all -- its real defect is a different sentence owned by the attributability surface, and adding 'it could not resolve either' would rank a second problem above the first. A blanket rule (empty surface list) covers `DISCOVER` by definition and is never a gap; a DENY is never a gap. Gate: doc -- the CONTEXT.md entry stating the pair, the verdict-not-rows condition and the re-derivation that makes it necessary; impl -- the shared verdict function over a caller-held roster/subnet snapshot, the gap classifier, the consequence line, and the accept-site call; unit -- a FORK-only allow to a DISCOVER-denied node states the consequence, the same grant to a node that CAN resolve is silent (the earned silence), a FORK+DISCOVER grant is silent, a blanket grant is silent, a deny is silent, a subnet subject names the refused members apart from the seen count, and a sender-endpoint subject is silent by ruling rather than by accident.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1113379Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1113835Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1114208Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1114605Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1115020Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1115396Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1115758Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1116155Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1116570Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1117045Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1117465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1117894Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1118404Z               "line": 951
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1118857Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1119320Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1119687Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1120051Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1120456Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1120927Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1121339Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1121767Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1122346Z               "line": 16326
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1122793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1123160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1123586Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1124173Z               "line": 16481
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1124608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1124979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1125388Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1125952Z               "line": 16508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1126385Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1126758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1127167Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1127729Z               "line": 16551
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1128173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1128664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1129173Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1129739Z               "line": 19997
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1130176Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1130538Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1130882Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1131236Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1131636Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1132088Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1132502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1132949Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1133568Z               "line": 1002
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1133997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1134364Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1134703Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1135064Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1135463Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1135920Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1136336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1136750Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1137313Z               "line": 35950
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1137755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1138127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1138536Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1139180Z               "line": 36034
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1139610Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1139973Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1140327Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1140670Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1141004Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1141337Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1141738Z       "id": "REQ-ACL-GRANT-NODES-POLICY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1154793Z       "title": "ENDPOINTS_CAN_GRANT_NODES is a node-tier policy toggle, settable only via the engine-room, gating whether an ordinary endpoint may write a NODE-SUBJECT entry into its own whitelist — the widened grant a non-attributable-surface approval produces. Explicitly set it is true or false; UNSET DERIVES PER-DECISION from the effective posture of the REQUESTED SURFACE at the target node: open => endpoints may self-approve (an allow entry on an open surface punches no hole), closed => engine-room only (a node-subject allow would punch a hole in a closed posture). The gate applies in BOTH POLARITIES — adding a node allow and removing a node deny are the same widening act — and it is enforced at the STORE MUTATION SEAM rather than in any one caller, so neither the CLI nor the knock-answer path can bypass it. It is distinct from the resolution chain's node-scope TIER: per-node chain entries are engine-room-owned always, policy or no policy; this toggle governs only the SUBJECT side of self-sovereign whitelists. The engine-room is not bound by it — its bring-up gate is the authorizing ceremony. Name caveat accepted at mint: 'grant nodes' means node-SUBJECT grants, not node-tier rules. Gate: doc — the CONTEXT.md policy entry; impl — the toggle, the unset-derivation from the requested surface's effective posture, and the both-polarity check at the mutation seam; unit — explicit true and false both honored, unset derives open-permits and closed-refuses from the requested surface, removing a node deny is gated exactly as adding a node allow, and neither the CLI nor the knock-answer path can reach a widening write without passing the seam.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1167491Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1167933Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1168305Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1168684Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1169130Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1169487Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1169859Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1170255Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1170713Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1171132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1171529Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1172040Z               "line": 1014
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1172479Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1172847Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1173199Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1173556Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1174062Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1174525Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1174940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1175389Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1175985Z               "line": 1097
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1176419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1176786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1177223Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1177812Z               "line": 1392
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1178236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1178600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1179123Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1179719Z               "line": 1941
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1180147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1180505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1180944Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1181545Z               "line": 1975
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1181969Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1182340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1182786Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1183382Z               "line": 1992
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1183807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1184183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1184617Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1185202Z               "line": 2005
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1185639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1185992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1186412Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1186965Z               "line": 16176
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1187397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1187755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1188157Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1188710Z               "line": 20198
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1189226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1189702Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1190041Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1190390Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1190789Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1191414Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1192048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1192557Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1202689Z               "line": 1056
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1203151Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1203531Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1203892Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1204250Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1204683Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1205151Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1205584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1206047Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1206677Z               "line": 2496
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1207146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1207537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1207994Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1208628Z               "line": 2573
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1209206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1209626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1210079Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1210694Z               "line": 2625
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1211137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1211515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1211962Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1212582Z               "line": 2668
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1213029Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1213406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1213855Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1214471Z               "line": 2702
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1214914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1215291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1215745Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1216375Z               "line": 3381
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1216811Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1217195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1217619Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1218335Z               "line": 25483
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1218820Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1219289Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1219658Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1220020Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1220367Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1220719Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1221125Z       "id": "REQ-ACL-INTRA-NODE-SELF",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1256322Z       "title": "INTRA-NODE GOVERNANCE IS A SELF-REFERENTIAL NODE SUBJECT AT THE EXISTING TIERS, NOT A NEW TIER. Operator-rephrased 2026-08-22, superseding in full the v1 reading (a slot-3.5 rules tier with a mode twin at 6.5): #211 adds NO tier, NO Subject kind and NO schema change. A rule whose subject is THIS NODE'S OWN id governs traffic authored on this node, and it does so through machinery that already shipped. Two effects, both operator-confirmed: a NODE-SCOPE own-node rule governs intra-node actions for every endpoint hosted here, and a PER-ENDPOINT own-node rule governs incoming actions from other same-node endpoints. The third -- endpoint-targeted rules evaluate before node-targeted -- is the chain's existing order and nothing moves. THE MECHANISM AND THE CLAIM ARE DIFFERENT THINGS, AND ONLY THE MECHANISM WAS ALREADY PINNED. REQ-ACL-LOCAL-ORIGIN-TIERS stopped local traffic short-circuiting above `AccessStore::decide` and its unit cell `a_rule_naming_the_local_origin_still_governs_it` already proves a node-scope DENY naming the local origin refuses a local MSG, and that the RULE tier answered rather than a mode. THAT CELL CANNOT PROVE THIS REQUIREMENT, AND ITS OWN HELPER IS WHY: `req_local` constructs `Origin::LocalNode` DIRECTLY and carries an ARBITRARY origin string (\"beef\"), never `local_node_hex()`. So it proves the chain governs a request ALREADY classified local whose origin string a rule HAPPENS to name. This requirement's claim is a JOIN of two facts that sit on opposite sides of that helper: the local authoring path SUPPLIES THIS NODE'S OWN HEX as `origin_node` (`gate::admit_local_delivery` passes `local_node_hex()`), and therefore the string an operator actually WRITES -- their own node's key hex -- is the one that matches. MEASURED AT 2b855595: no test in the tree, unit or integration, constructs `Subject::Node { node: <own hex> }`; `er_inbound_local.rs` writes a `SubnetWildcard` DENY, which is the hole-punch negative and a different claim. The join has no unit form for the same reason REQ-ER-INBOUND-LOCK-ALL-PATHS's did: the authoring verb decides what reaches the chain, and only the real binary runs the authoring verb. RULES-ONLY, AND THE MODES KEEP ABSTAINING FOR LOCAL ORIGIN exactly as REQ-ACL-LOCAL-ORIGIN-TIERS built them -- the hole-punch property (a closed node/endpoint/subnet mode never severs the box's own agents) holds by construction, and #211's original default-deny example is expressed as a node-scope own-node DENY on MSG rather than as a posture. PRECEDENCE ABOVE THE CHAIN IS UNCHANGED AND RESTATED RATHER THAN IMPLIED: the engine room's inbound lock is step 0 and a self-referential rule never touches it (ADR-0052); a correlated local reply is admitted with no rule of its own (REQ-SEC-1), own-node deny included; and KNOCK is its own surface, so an own-node MSG deny leaves knocking to KNOCK's own evaluation. AN OWN-NODE SUBJECT CAN NEVER MATCH A REMOTE ORIGIN -- hex inequality, and the classification puts any request whose origin equals the own hex on the LocalNode arm before the chain runs. LOCAL GOVERNANCE IS IMPOSSIBLE BY CONSTRUCTION ON A NODE WITH NO IDENTITY, and that is a design property rather than a hole: `admit_local_delivery` passes `local_node_hex().unwrap_or_default()`, so an unprovisioned node hands in an EMPTY origin_node -- it still classifies LocalNode and still flows, but no rule can name a hex that does not exist. An unprovisioned node is exactly the state a first-run operator is in, so the property is asserted rather than left to be reported as a bug later. Gate: int -- the JOIN, driven through the real binary with no daemon: an ungoverned local send ADMITTED as the control on the same store, then refused under a NODE-SCOPE rule whose subject is the hex the binary itself minted, then refused again under a PER-ENDPOINT rule with the node-scope rule CLEARED so it cannot be the thing answering; each rule read back OUT OF THE STORE by match count rather than echoed from the argument, and each refusal asserted to have spooled NO row, so a slow delivery cannot pass as a refusal. Kin REQ-ACL-LOCAL-ORIGIN-TIERS (the axis this runs on, and whose synthetic-origin helper is why this evidence is owed), REQ-ACL-SUBJECT-CHAIN (the tier order it uses unchanged), REQ-ER-INBOUND-LOCK-ALL-PATHS (the admission site the local path crosses), REQ-SEC-1 (the reply exemption that outranks an own-node deny).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1288834Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1289411Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1289798Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1290169Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1290542Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1290893Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1291239Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1291626Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1292130Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1292584Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1292998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1293388Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1293883Z               "line": 940
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1294306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1294668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1295175Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1295846Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1296274Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1296632Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1296971Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1297324Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1297720Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1298177Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1298582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1299261Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1299872Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1300300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1300657Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1301092Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1301675Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1302099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1302463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1302867Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1303417Z               "line": 15952
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1303849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1304209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1304613Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1305158Z               "line": 16017
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1305596Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1305960Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1306359Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1306906Z               "line": 16207
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1307345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1307703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1308107Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1308655Z               "line": 20166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1309156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1309531Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1309945Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1310490Z               "line": 20231
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1310918Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1311270Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1311619Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1311960Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1312354Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1312798Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1313203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1313667Z               "path": "crates/spt/tests/intra_node_degrade.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1314292Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1314703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1315060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1315512Z               "path": "crates/spt/tests/intra_node_self.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1316122Z               "line": 146
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1316638Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1316999Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1317342Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1317690Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1318081Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1318539Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1319045Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1319479Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1320062Z               "line": 4937
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1320491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1320848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1321277Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1321854Z               "line": 4977
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1322280Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1322650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1323100Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1323706Z               "line": 5023
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1324144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1324518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1324941Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1325496Z               "line": 25246
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1325930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1326287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1326697Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1327255Z               "line": 25334
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1327690Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1328055Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1328413Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1328756Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1329185Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1329547Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1329934Z       "id": "REQ-ACL-LOCAL-ORIGIN-TIERS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1372401Z       "title": "WHERE AN INVOCATION CAME FROM IS DATA THE CHAIN REASONS ABOUT, NOT A SHORT-CIRCUIT BEFORE IT. Until releases#209 the chain's step 1 was `if local, return Allow(SameNode)`, so locally-authored traffic never reached `AccessStore::decide` at all. That was invisible while local traffic was ungated, and it is exactly what would have foreclosed the operator's intra-node governance surface (releases#211) — which under the ruled shape is NOT a new tier between the per-endpoint entries and the node tier, but SELF-REFERENTIAL Node subjects at the EXISTING tiers (v1's slot-3.5 reading withdrawn in full, operator-rephrased 2026-08-22). A tier the local path short-circuits past is not a tier. So `AccessRequest` carries an `Origin` SET AT EXACTLY ONE CONSTRUCTION SITE — the chain's own — and never re-derived per call site, because a discriminant with two derivations is one that will eventually disagree with itself. THE LOCAL VARIANT CARRIES THE ORIGIN ENDPOINT ID, not merely the fact of locality: same-node governance discriminates by SENDER at the EXISTING tier-1 `SenderEndpoint` subject, so the id has to reach `decide` as part of the origin rather than be re-derived at each call site. Dropping it at construction would cost a second plumbing pass through this very seam — and releases#215 measures precisely what re-derivation costs when it is left to call sites: three feeders hand this one parameter three different value shapes, and a tier-1 rule silently cannot match on one of them. It is carried from the first commit even though nothing consumes it yet, and it is carried in the VARIANT rather than beside it so that constructing a local origin without deciding what to put there is not expressible. Its provenance differs from the wire's and the type says so: a remote sender endpoint is DAEMON-STAMPED and session-proven, while a local one is SESSION-DETECTED in the authoring process — never the caller-supplied `from`, which an explicit `--from` owns and which would admit a forged subject (KNOWN-HAZARDS 7.5, the same reasoning that keeps `from` out of tier 1). The same-node allow is DEMOTED to the chain BOTTOM, where it always semantically belonged: nothing named this traffic, so it is the same-node operation it always was. THE FIX MUST WIDEN NOTHING, and two tiers would have widened it silently if left alone. (1) THE MODE TIERS ABSTAIN FOR A LOCAL ORIGIN. A mode is a blanket posture about who may reach this node FROM OUTSIDE it; `closed` has never in this codebase's history been asked about traffic authored on this machine, because such traffic never reached the function. Letting the modes answer now would convert every `closed` posture in the field into 'and also stop the agents on this box talking to each other' — the hole-punch failure arriving through a door nobody opened deliberately. (2) A LOCAL ORIGIN CARRIES NO SUBNETS. This node is a member of its own subnets, so handing them in would let a subnet-wildcard DENY — written to keep some peer group out — begin refusing locally-authored traffic the moment that traffic reached the chain. Only rules that NAME the local origin explicitly speak about it; everything else falls to the same-node bottom, so today's local behaviour is preserved BY CONSTRUCTION rather than by inspection. A STORE DEGRADE MUST NOT CLOSE THE NODE IN ON ITSELF: ADR-0053's fail-closed refusal protects the node from the network, and applied to local traffic it would stop the agents here talking to each other every time `access.json` was mid-write, so a local origin takes the chain bottom on a degrade. The engine room is unaffected by that arm — its lock is step 0, above all of this, and its own posture read is independently fail-closed. A NODE WITH NO IDENTITY reads as local: nothing can be proven remote either, since a wire arrival carries a handshake-proven hex by construction (REQ-HAZARD-WAN-ORIGIN-AUTH), so an empty origin can only have come from a local authoring path — and that is also the fail-open direction for the same-node hole-punch. THESE SEMANTICS ARE NOT DECIDED HERE. This requirement owes #211 a reachable slot and a carried subject, nothing more: the ORIGIN AXIS and the local sender it carries. NO NEW TIER AND NO MODE TWIN ARE OWED — the v1 shape (a slot 3.5 with a mode twin 6.5, whose twin would refuse local traffic rather than abstain) is WITHDRAWN IN FULL, operator-rephrased 2026-08-22: #211's intra-node governance is SELF-REFERENTIAL Node subjects at the EXISTING tiers, rules-only, with modes-only-abstain staying exactly as this requirement built it. The ER lock stays at step 0 regardless, because same-node governance is a rules surface and never a replacement for the ratified engine-room semantics. Gate: impl — the `Origin` axis on `AccessRequest` set at one site and carrying the local sender id, the mode-tier abstention, the empty local subnets, the demoted same-node bottom, and the local degrade arm (the v1 slot markers are NOT part of this requirement's evidence and are removed with the withdrawal above — a marker describing an unbuilt tier certifies a design, not an implementation); unit — the hole-punch negatives with a CONCRETE adversary rule in the store (a subnet-scoped DENY present, and a closed node mode present, and a local send still admitted under each), plus a remote send under the same store still refused, which is what proves the abstention did not simply disable the tiers rather than scope them. Kin REQ-ACL-SUBJECT-CHAIN (the tier order this inserts into), REQ-ER-INBOUND-LOCK-ALL-PATHS (the lane that needed the axis), REQ-SEC-1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1412506Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1412941Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1413313Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1413674Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1414018Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1414395Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1414785Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1415259Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1415698Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1416070Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1416489Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1416957Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1417378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1417830Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1418441Z               "line": 1221
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1418884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1419380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1419829Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1420565Z               "line": 1237
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1421026Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1421413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1421871Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1422468Z               "line": 1801
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1422904Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1423276Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1423638Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1423997Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1424393Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1424869Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1425306Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1425653Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1426049Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1426500Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1426912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1427340Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1427938Z               "line": 4829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1428358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1428729Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1429254Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1429827Z               "line": 4887
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1430245Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1430607Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1430957Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1431296Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1431625Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1431987Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1432399Z       "id": "REQ-ACL-LOCAL-SUBJECT-ONE-SHAPE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1462165Z       "title": "EVERY LOCAL FEEDER OF THE ADMISSION GATE HANDS IT A PROVEN ENDPOINT ID OR NOTHING — ONE MEANING, ONE SPELLING (releases#215): `gate::admit_local_delivery`'s `sender` is a SUBJECT (`Subject::SenderEndpoint` matches it by equality), and its three local feeders disagreed on what they put there — `spt send` passed the session-proven bare id, `spt ring` passed `resolve_from(--from)` (where an EXPLICIT `--from` BEATS session detection), and `notify` passed `NotifRow.from_id`, the COMPOSITE `{issuer}@{node_hex}`. A tier-1 rule an operator wrote for endpoint `ling`, that the CLI accepted and the view renders, therefore covered two of three local delivery verbs and COULD NEVER MATCH ON NOTIFY: it failed in the SILENT direction. `access_check_with_sender`'s own doc already forbade exactly this (NEVER pass `WanMessage.from` here -- an explicit `--from` beats session detection in `resolve_from`, so it would admit a forged subject), as does REQ-ACL-SUBJECT-CHAIN's ratified title — the code contradicted three landed documents. NOT FILED AS A SECURITY CLAIM, deliberately: REQ-ER-INBOUND-LOCK-ALL-PATHS already publishes same-user local code as outside what any spt gate holds, so a forged-subject framing would overclaim against a boundary we published ourselves. THE REMEDY IS ONE DERIVATION SITE, NOT THREE CORRECTIONS: `session_proven_sender` is threaded IN from the CLI (`ring::ring` gains a `sender_proven` parameter in `cmd_send`'s shape) rather than re-derived inside each verb, and `cmd_notify`'s INLINE RE-SPELLING of `resolve_from`'s body — the drift mechanism that let two sites diverge with neither looking wrong on its face — is replaced by a call to it. NOTIFY PASSES `None` AND TIER 1 ABSTAINS (doyle ruling 6): the chain falls to the node tier, byte-for-byte the documented behaviour for a sender who proved nothing. Splitting the composite at `@` is REFUSED as a fix — deriving a subject from a DISPLAY string is the same defect one layer down, and `from_id` legitimately carries the composite FOR RENDERING, which a fix blaming it would break. THE SMALLER PROMISE IS RECORDED, NOT SWALLOWED: a tier-1 rule about `ling` still does not MATCH on notify — it abstains BY DESIGN — and carrying a proven-sender field on the row so it could match is tracked as a separate EVAL item, never as delivered here. THE AUTHORING-TIME REFUSAL GAINS THE OTHER HALF OF THE SAME CONFUSION (doyle ruling 5): `build_access_rule` already refuses a sender-endpoint rule on a surface carrying no proven sender (`ACCESS_DEAD_SUBJECT`, REQ-ACL-SURFACE-ATTRIBUTABILITY) — it now also refuses a COMPOSITE typed into the bare-id slot (`--endpoint ling@<node>`), which can never equal a proven bare id, in that arm's existing vocabulary. A rule that can never match must refuse at authoring time whichever half of the confusion produced it. SIDE EFFECT PINNED, NOT LEFT INCIDENTAL (doyle ruling 9): `admit_local_delivery` records the stateful-firewall reply window with `note_outbound(sender, …)` — the SAME string — so a caller-chosen id could open a reply window it never earned; one argument feeds both, so normalizing the feeders closes it BY CONSTRUCTION and a unit asserts that rather than leaving it to be re-derived. That closure is reported on the ticket carrying its own limit verbatim: its consumers were read, never measured. Gate: impl — the threaded `sender_proven` parameter + the notify `None` + the `cmd_notify` call to `resolve_from` + the composite-subject refusal; unit — the three feeders asserted TOGETHER (send and ring hand a proven bare id or None; ring's gate subject is UNCHANGED by an explicit `--from`, the arm that fails on the pre-fix spelling; notify hands None so tier 1 abstains rather than judging a display string), the composite-into-bare-slot refusal named and distinct from `ACCESS_DEAD_SUBJECT`'s surface arm, and the `note_outbound` window opening only for a proven subject.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1489982Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1490419Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1490796Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1491163Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1491515Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1491957Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1492380Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1492858Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1493282Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1493634Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1494029Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1494475Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1495004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1495463Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1496059Z               "line": 247
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1496487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1496839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1497263Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1497830Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1498246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1498604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1499108Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1499692Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1500111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1500479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1500889Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1501447Z               "line": 8987
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1501872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1502235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1502644Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1503208Z               "line": 12016
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1503631Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1503995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1504405Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1504944Z               "line": 16108
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1505365Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1505731Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1506074Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1506418Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1506804Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1507258Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1507667Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1508015Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1508400Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1508849Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1509373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1509811Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1510400Z               "line": 826
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1510843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1511206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1511639Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1512202Z               "line": 426
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1512739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1513110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1513533Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1514087Z               "line": 25166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1514535Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1514889Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1515259Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1515610Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1515944Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1516296Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1516673Z       "id": "REQ-ACL-LOCKED-POSTURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1546721Z       "title": "The **locked** claim is one predicate, and it asks the CHAIN. `ACCESS_LOCKED` (the `revoke` arm) and the access view's `locked` field are two renderings of a single fact — this endpoint refuses ALL unsolicited remote inbound — and both take that fact from ONE predicate, `AccessStore::is_locked(endpoint)`. It is CHAIN-SCOPED by necessity, not by preference: the superseded `EndpointAcl::is_locked` was record-scoped and therefore structurally unable to answer, because an endpoint that names no posture of its own inherits one from the node mode and from captured subnet modes, neither of which a record can see; it counted node-subject allows (`allowed_nodes().is_empty()`) and never read a mode at all, so a `revoke` on a default-open endpoint told the operator their endpoint now refuses all remote inbound while the chain admitted everyone, and `--json` said `locked: true` about a store the human view correctly rendered as open in the same breath (releases#206). LOCKED MEANS, for every surface in the set: the effective posture is closed AND no ALLOW rule at endpoint-or-node scope covers it. BOTH halves are load-bearing — posture alone re-mints the same false sentence in mirror image, since rules outrank modes (tiers 1-5 above 6-8) and a closed endpoint carrying one allow row still admits somebody. Only ALLOW rows are holes (a deny row is the posture agreeing with itself), an allow qualified by origin class is still a hole because it still admits somebody, and the hole-scan reads surface coverage through the chain's OWN matching machinery rather than re-deriving what covers means — a second reading of rule semantics is precisely how the two renderings drifted apart. THE SET IS DERIVED, never enumerated: every non-default-on row of the surface table, so a later wave's surface joins the claim by the sole act of existing, and the derivation is proven against a FIXTURE table whose default-on row is not DISCOVER (with `TABLE` a const, a reader hardcoded to all-but-DISCOVER agrees with every shipped row and no test over `TABLE` can tell the two apart). DISCOVER — the one default-on row — is deliberately OUTSIDE the predicate: a blanket `closed` never GOVERNS it (releases#180), so a literal reading of the sentence would be false for every blanket-closed endpoint in the fleet and the line could never truthfully fire at all. That fact is carried BESIDE the sentence by `discover_still_open_line`, required ADJACENT IN THE SAME EMISSION wherever the locked claim prints, sibling-arm precedent: the sentence alone is the overclaim, sentence-plus-caveat is the honest composite, and the `ACCESS_LOCKED` wording itself is unchanged under this shape. The JSON view exposes the same facts from the same predicate and the same composer data, so the machine and human accounts cannot disagree. Scope of the claim is REMOTE — same-node reach and the reply exemption lie outside what the sentence asserts. Separately but in the same lane: `AccessStore::revoke` prunes a record left carrying neither rules nor modes, as `apply_mutation` already does on a Remove, because `is_vacant`'s own doc names a vacant record as the shape that must not persist — it read as restricted through the old predicate. Gate: doc — the CONTEXT.md locked-claim entry; impl — the one chain-scoped predicate, the derived surface set, the chain-machinery hole-scan, the adjacent discover caveat at every emission site, and the vacant prune in revoke; unit — a revoked default-open endpoint is not locked, a node-wide close locks an endpoint that names no posture, a closed endpoint with an allow hole is not locked while a deny row does not unlock, an origin-qualified allow still counts as a hole, a node-scope allow holes an endpoint's lock, DISCOVER stays outside the claim while a fully closed endpoint still reads locked, the surface set derives from a fixture table carrying an invented row, and revoking the last rule leaves no vacant record.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1575324Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1575778Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1576151Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1576532Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1576908Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1577261Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1577428Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1577614Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1577795Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1577959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1578163Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1578335Z               "line": 955
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1578504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1578671Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1578831Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1579070Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1579252Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1579432Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1579595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1579857Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1580028Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1580201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1580367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1580610Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1580792Z               "line": 378
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1580958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1581131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1581372Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1581554Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1581835Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1581996Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1582250Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1582421Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1582588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1582746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1582993Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1583170Z               "line": 1901
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1583337Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1583508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1583750Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1583929Z               "line": 1916
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1584092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1584267Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1584506Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1584683Z               "line": 2165
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1584844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1585012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1585245Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1585412Z               "line": 15889
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1585578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1585736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1585947Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1586117Z               "line": 19955
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1586281Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1586436Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1586608Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1586782Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1586959Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1587139Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1587302Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1587468Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1587640Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1587826Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1587983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1588228Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1588408Z               "line": 5080
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1588570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1588732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1589141Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1589330Z               "line": 5118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1589492Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1589654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1589897Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1590073Z               "line": 5135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1590236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1590393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1590631Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1590804Z               "line": 5153
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1590965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1591133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1591371Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1591546Z               "line": 5171
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1591710Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1591927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1592166Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1592357Z               "line": 5193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1592514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1592691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1592928Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1593105Z               "line": 5215
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1593276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1593443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1593702Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1593877Z               "line": 5240
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1594045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1594209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1594451Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1594623Z               "line": 5265
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1594794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1594971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1595219Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1595404Z               "line": 5304
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1595672Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1595838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1596081Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1596264Z               "line": 5354
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1596425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1596597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1596812Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1596987Z               "line": 36681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1597153Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1597313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1597523Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1597699Z               "line": 36711
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1597872Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1598033Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1598200Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1598362Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1598520Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1598686Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1598910Z       "id": "REQ-ACL-MODE-ADVISORY-GOSSIP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1606094Z       "title": "A subnet-mode change gossips ADVISORILY — it produces a notification and nothing else. An existing member's EFFECTIVE posture never changes remotely: the captured mode (REQ-ACL-SUBNET-MODE-CAPTURE) is immutable except through the node's own refresh (REQ-ACL-ACCESS-REFRESH-VERB), so no remote party can reach into a member node and re-posture its gate. This is the difference between a subnet owner ADVISING members of a policy change and COMMANDING their enforcement — on a shared subnet whose members are different humans, only the former is defensible, and a producer that quietly applied would be a remote write to security material. Gate: doc — the CONTEXT.md control-surface-modes advisory-gossip sentence; impl — the notif producer on subnet-mode change, with NO apply path; unit — a mode-change gossip raises the notification and leaves the receiving node's captured mode and its decisions byte-identical.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1606293Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1606461Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1606627Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1606795Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1606961Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1607129Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1607406Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1607599Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1607775Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1607940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1622507Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1622741Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1622907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1623075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1623423Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1623602Z               "line": 394
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1623765Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1623926Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1624090Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1624255Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1624442Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1624613Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1624776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1625067Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1625242Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1625415Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1625572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1625833Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1626009Z               "line": 700
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1626174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1626327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1626584Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1626761Z               "line": 757
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1626918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1627075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1627328Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1627499Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1627657Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1627819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1628067Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1628415Z               "line": 802
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1628588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1628748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1629127Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1629303Z               "line": 586
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1629465Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1629623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1629871Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1630042Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1630200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1630362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1630605Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1630783Z               "line": 172
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1630938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1631098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1631328Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1631508Z               "line": 385
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1631669Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1631828Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1631999Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1632156Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1632352Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1632523Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1632691Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1632852Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1633029Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1633205Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1633368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1633635Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1633805Z               "line": 948
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1633965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1634129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1634392Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1634563Z               "line": 991
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1634721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1634882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1635130Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1635307Z               "line": 1037
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1635459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1635627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1635975Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1636151Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1636308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1636468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1636715Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1636882Z               "line": 668
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1637043Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1637202Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1637358Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1637522Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1637677Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1637827Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1638055Z       "id": "REQ-ACL-MUTATION-HUSK-REFUSAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1661102Z       "title": "ADR-0053'S FAIL-CLOSED HAS A WRITE SIDE, AND IT IS ENFORCED AT THE SAVE SEAM RATHER THAN AT THE MUTATION CALL SITES. `load_checked` split NotFound from corrupt and the gate refused a husk correctly -- but the store is READ-MODIFY-WRITE at every path that edits it, and `AccessStore::load` is `load_checked_from(..).unwrap_or_default()`, so a degrade was swallowed into an EMPTY document. The consequence inverted the guarantee (releases#57): the gate refused unsolicited traffic, and then the first `spt endpoint access` command an operator ran to investigate the refusal saved that empty document over the damaged file -- permanent rule loss, and a posture that flipped from degraded-closed to open-with-one-rule. The boundary held exactly until someone touched the CLI, and the command most likely to be run is the one an operator reaches for BECAUSE the gate is refusing. THE SWALLOWED DEGRADE IS THEREFORE CARRIED ON THE DOCUMENT (`StoreOrigin::Degraded`, `#[serde(skip)]`, never part of the record) AND `save_to` REFUSES IT. This placement is the requirement, not an implementation detail: converting the nine production mutation call sites to `load_checked` closes the population that exists today and leaves the next read-modify-write path free to re-open the class -- the same shape of defect as REQ-SEC-REPLY-EXEMPTION-SEND-LEG's per-caller write, which shipped inert because a rule satisfied by remembering to is satisfied until someone forgets. Every write of this document funnels through `save_to`, so a refusal there binds call sites that do not exist yet, and an audit is not what holds it. The call sites ARE converted as well, for the diagnostic: a refusal at the load names the store before anything is attempted, which reads better than one raised by a save the operator already believes succeeded. FRESH IS NOT DEGRADED: a document constructed in memory -- the minted baseline, a test fixture -- stands in for nothing on disk and stays writable, so mint-on-first-absence (the split that keeps an unconfigured fleet reachable) is untouched. The refusal names the store path per ADR-0053, names the cause, and names the way out, which is real rather than rhetorical: a store the operator MOVES ASIDE is re-minted empty by the next command, so starting from empty stays available as a deliberate, loud choice -- which is precisely what silently rewriting it from empty was not. Gate: impl -- `StoreOrigin` on `AccessStore` set by the loaders (`load_from` marks the swallowed degrade, `load_checked_from` marks a parsed store `Loaded`), the `save_to` refusal in the single voice of `husk_write_refusal`, and the nine production mutation sites loading checked (cli.rs `endpoint access` allow/revoke/open + subnet-mint capture + endpoint purge, api/engineroom.rs `enforce`/node-mode/node-surface-mode, daemon pairhost.rs join-time capture); unit -- a decision table over the three origins whose expectations are WRITTEN OUT rather than derived from the code under test, asserting on-disk bytes and not merely the returned Result: a husk-derived document refuses the write and the damaged file survives BYTE-FOR-BYTE, a loaded document's read-modify-write preserves the rules it did not touch, a fresh document writes, and the refusal names the store path.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1661421Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1661594Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1661852Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1662013Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1662181Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1662342Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1662528Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1662700Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1662862Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1663027Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1663207Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1663388Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1663545Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1663813Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1663988Z               "line": 727
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1664151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1664303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1664546Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1664714Z               "line": 1109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1664880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1665039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1665282Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1665457Z               "line": 1179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1665620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1665781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1666015Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1666180Z               "line": 1533
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1666339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1666495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1666735Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1666901Z               "line": 1582
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1667063Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1667216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1667459Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1667626Z               "line": 1709
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1667788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1667946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1668197Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1668452Z               "line": 554
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1668615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1668776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1669202Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1669381Z               "line": 573
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1669540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1669705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1669959Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1670131Z               "line": 642
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1670288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1670446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1670664Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1670833Z               "line": 13273
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1670992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1671150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1671367Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1671535Z               "line": 20050
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1671706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1671868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1672078Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1672253Z               "line": 20189
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1672412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1672573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1672787Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1672970Z               "line": 20239
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1673130Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1673290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1673502Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1673679Z               "line": 20264
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1673843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1674006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1674219Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1674402Z               "line": 24526
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1674563Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1674735Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1674892Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1675068Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1675261Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1675440Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1675722Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1675900Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1676094Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1676271Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1676435Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1676679Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1676861Z               "line": 4358
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1677027Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1677195Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1677356Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1677519Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1677675Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1677843Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1678047Z       "id": "REQ-ACL-NODE-MODE-SET",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1686339Z       "title": "The node's control-surface modes are settable through the engine room and nowhere else (ADR-0052 decisions 1 and 3, CONTEXT.md 'control-surface modes' — the node level of the three). Modes are exactly what a confused or adversarial agent would loosen, so the mutation surface must be the one place an agent cannot reach without passing a human-held TOTP; every other candidate — a plain CLI verb, an elevation-gated verb, a config file the daemon reads — is reachable by something running as the user. Subnet-scope mode authority is separate and rides empower (REQ-SUBNET-EMPOWER-VERB); this requirement is the node's own posture, which needs no empowerment because the bring-up gate already proved subnet membership. Gate: doc — the CONTEXT.md control-surface-modes entry naming the engine room as the node-level setter; impl — node-scope mode writes reachable only through an engine-room-authenticated path; unit — an engine-room caller sets a node mode, every other caller is refused, and the resolution chain reads the written mode at its node tier.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1686548Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1686722Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1686891Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1687183Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1695179Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1695368Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1695550Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1695737Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1695921Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1696131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1696489Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1696671Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1696851Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1697015Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1697185Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1697367Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1697555Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1697738Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1697899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1698180Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1698357Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1698533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1698696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1699067Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1699250Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1699430Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1699603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1699858Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1700051Z               "line": 565
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1700218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1700390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1700628Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1700824Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1700995Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1701163Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1701339Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1701511Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1701710Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1701892Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1702069Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1702240Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1702437Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1702634Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1702806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1703196Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1703386Z               "line": 849
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1703558Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1703725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1703991Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1704182Z               "line": 1058
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1704350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1704515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1704746Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1704931Z               "line": 1276
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1705093Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1705267Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1705433Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1705943Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1706147Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1706353Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1706602Z       "id": "REQ-ACL-NODE-VIEW",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1722617Z       "title": "`spt daemon access` is the node-tier roster: the entities the node-scope rules name (node and subnet-wildcard subjects — a node-scope sender-endpoint rule cannot exist by schema), this machine's own mode with its per-surface exceptions, and the captured subnet modes — the tier every hosted endpoint falls through to, in the same item grammar as the per-endpoint view so the two scopes read as one system. There is NO `spt subnet access`: a subnet is a subject tier and a mode source, never a rule-holding target — its mode facts surface on `spt subnet status` (REQ-SUBNET-STATUS-MODES). Gate: doc — the CONTEXT.md access-entity entry; impl — the node roster builder and the daemon verb; unit — the node roster's entities, mode-exception summary, and explicit empty rendering.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1722883Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1723098Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1723327Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1723542Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1723759Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1724129Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1724339Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1724569Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1724796Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1725011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1725264Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1725494Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1725712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1725926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1726302Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1726526Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1726748Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1726967Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1727182Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1727407Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1727658Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1727920Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1728159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1728493Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1728742Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1729062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1729303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1729603Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1729861Z               "line": 20499
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1730095Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1730338Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1730576Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1730824Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1731090Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1731353Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1731595Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1731841Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1732141Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1732446Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1732742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1733114Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1733424Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1733719Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1734054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1734415Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1734722Z               "line": 31564
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1735008Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1735405Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1735724Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1736025Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1736330Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1736630Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1736996Z       "id": "REQ-ACL-ORIGIN-QUALIFIER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1754753Z       "title": "An access rule may carry an ORIGIN QUALIFIER (any|user|agent) restricting it to invocations of that origin class, so a rule can say 'the humans on node A, not its agents' and let that node's agents fall through to the mode. TWO TYPES, NOT ONE (doyle-ruled design): the RULE side is a three-valued qualifier defaulting to `any` for N-1 records; the REQUEST side is a TOTAL two-valued class (user|agent) with no unknown arm, because `any` is a rule-side value that no classifier ever emits — a single three-valued type would let a classifier return `any`, which is meaningless. Classification is ambient and ceremony-free, performed by the SENDING daemon over the existing local-origin predicate (interactive terminal with no perch/broker ancestry => user; agent-session ancestry => agent) and carried to the receiving gate as a daemon-stamped sibling of the sender-endpoint stamp — the same shape of fact, so the same seam, never a parallel path. ABSENT OR UNCLASSIFIABLE MAPS TO agent AT THE RECEIVING BOUNDARY: the restrictive class, so a `user` rule never admits an unknown and N-1 senders land safe automatically without a compat flag. Honest limit, stated and never to be inflated: this is the honest member daemon's report — sound against agents on honest nodes (ancestry cannot be env-scrubbed away), NOT against a malicious node, and a detached process spawned outside an agent's session tree can launder to `user`. Defense-in-depth, not proof; a forged origin stamp sits at the same trust tier as a forged sender stamp and never elevates the subject chain. The `user-proven` TOTP-minted pid-linked token is FORWARD DESIGN and must not be built. Gate: doc — the CONTEXT.md origin-qualifier entry plus the amended wire-module identity-field doc carrying origin's forgery blast radius; impl — the two types, the rule field with its serde default, the request field, the chain's qualifier check, and the sending-daemon stamp; unit — the qualifier matches its own class and abstains on the other, `any` matches both, an absent request-side stamp evaluates as agent, an N-1 rule record with no qualifier decodes as `any`, and the wire field is additive in both directions exactly as the sender stamp is.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1755232Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1755539Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1755837Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1756133Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1756423Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1756729Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1757020Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1757330Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1757639Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1757940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1758266Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1758577Z               "line": 1019
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1758872Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1759244Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1759534Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1759830Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1760140Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1760450Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1760737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1761113Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1761412Z               "line": 904
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1761703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1761995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1762404Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1762718Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1763019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1763313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1763689Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1763993Z               "line": 587
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1764275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1764708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1765124Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1765458Z               "line": 609
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1765763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1766056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1766455Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1766746Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1767032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1767308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1767680Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1767971Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1768257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1768537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1768897Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1769269Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1769526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1769808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1770170Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1770462Z               "line": 710
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1770737Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1771006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1771376Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1771659Z               "line": 1214
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1771934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1772202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1772564Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1772841Z               "line": 2305
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1773117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1773383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1773759Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1774047Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1774315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1774591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1774939Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1775330Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1775597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1775878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1776207Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1776493Z               "line": 11089
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1776768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1777039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1777378Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1777664Z               "line": 18113
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1777935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1778207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1778551Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1778836Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1779174Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1779452Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1779720Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1780012Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1780306Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1780630Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1780917Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1781199Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1781490Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1781777Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1782055Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1782427Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1782713Z               "line": 764
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1782980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1783257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1783619Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1783905Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1784181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1784452Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1784813Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1785095Z               "line": 3595
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1785366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1785639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1786005Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1786292Z               "line": 3610
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1786578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1786854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1787314Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1787604Z               "line": 3633
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1787876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1788152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1788505Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1788791Z               "line": 3672
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1789125Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1789396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1789767Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1790036Z               "line": 3733
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1790313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1790581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1790900Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1791172Z               "line": 25023
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1791435Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1791702Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1792012Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1792278Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1792529Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1792788Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1793173Z       "id": "REQ-ACL-POSITIONAL-ALLOW-HONORS-FLAGS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1825821Z       "title": "`access allow`'s POSITIONAL SPELLING REACHES THE SAME MUTATION SEAM ITS FLAG SPELLING DOES -- it is a shorthand for the rule, never a second, ungated way to write one. The v1 arm matched `node: Some(..)` and swallowed every other flag in a `..`, then called `AccessStore::allow` directly, and that cost three things at once, all three RUNTIME-MEASURED before the fix (releases#185; the filing was read-derived and named only the first). (1) `--surfaces MSG` WAS DROPPED, and an empty surface list means EVERY surface -- so the store took a rule strictly WIDER than the operator typed, exit 0, no diagnostic on either stream. The direction matters and was checked rather than assumed: the `is_empty => set_all(Mode::Closed)` at the tail of `allow_surfaces` reads `acl.modes`, the POSTURE table, and has nothing to do with the surfaces argument, so this falls as an over-grant and not as a silent close. (2) `--origin user` WAS DROPPED THE SAME WAY: a rule the operator restricted to one caller class matched both. (3) CALLING `allow` DIRECTLY WALKED AROUND `apply_mutation`, AND WITH IT BOTH THE `--admit-node` ACKNOWLEDGMENT AND THE GRANT-NODES POLICY -- the gravest of the three and the one no reading of the issue predicted. Measured as a three-arm differential under ONE authority (an owner agent, which requires a real perch record and not merely the env var): the flag spelling REFUSED the unacknowledged grant, the same flag spelling with `--admit-node` was accepted, and the positional spelling then wrote the WIDER rule for that same agent at exit 0. A gate a respelling steps around is not a gate, and the respelling was two words shorter than the gated one. THE FIX IS THE SEAM, NOT THE FLAGS: the arm builds its rule through the shared `build_access_rule` -- so the two spellings cannot drift into two parsers -- and applies it through `apply_mutation` with the invocation's real authority, which is what makes the acknowledgment and the policy bind here by construction rather than by a second copy of them. WHAT STAYS v1 IS THE POSTURE: this spelling RESTRICTS the endpoint (closes its blanket mode when it sets none yet), the seam is deliberately posture-blind, so the close is re-applied explicitly through one shared body (`restrict_if_unset`) that `allow_surfaces` also calls. `iff unset` is load-bearing -- an endpoint that already names a posture has been configured, and admitting one more node must never overwrite that. Whether the FLAG spelling should close a posture too is releases#196 and is deliberately NOT decided here; preserving this arm's close is a non-regression, not a new opinion. THE CONSEQUENCE IS ACCEPTED AND DECLARED (doyle, 2026-08-18): an owner agent running the bare positional spelling is now REFUSED without `--admit-node`, which is the gate working as designed and what the flag spelling already demanded; a same-node user is untouched, since the acknowledgment binds the owner-agent authority alone. Gate: impl -- the arm destructuring its flags instead of discarding them, the shared builder, the `apply_mutation` route carrying `admit_node` and the real authority, and `restrict_if_unset` as the single body of the posture-close; unit -- a decision table whose expectations are WRITTEN OUT AS LITERALS rather than derived from the code under test: the typed surface list lands on the persisted rule and an untyped one still means every surface, an origin qualifier survives, the unacknowledged owner-agent grant is REFUSED THROUGH THIS ARM while the same-node user's is not (the bypass, pinned as a refusal rather than as an audit), the refusal leaves the store BYTE-UNCHANGED, and the posture-close still happens for the positional arm while an endpoint that already names a posture keeps it; int -- THE JOIN, which is where this defect actually lived: the real binary, a real store on disk, the operator's typed list read back off the persisted RULE, with an untyped arm beside it (the empty list is a legitimate spelling and must survive the fix) and the unacknowledged owner-agent refusal paired with the same grant acknowledged, so the flag is the only difference between the two.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1826261Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1826526Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1826786Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1827053Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1827321Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1827588Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1827850Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1828130Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1828402Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1828659Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1829037Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1829317Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1829610Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1829864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1830178Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1830550Z               "line": 16147
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1830803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1831060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1831380Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1831646Z               "line": 20154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1831898Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1832149Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1832401Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1832653Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1832935Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1833197Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1833445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1833884Z               "path": "crates/spt/tests/access_positional_allow_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1834156Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1834403Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1834658Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1834913Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1835160Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1835441Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1835710Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1835962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1836305Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1836578Z               "line": 4230
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1836821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1837081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1837398Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1837661Z               "line": 25379
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1837924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1838171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1838486Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1838753Z               "line": 25482
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1839054Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1839306Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1839558Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1839807Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1840053Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1840303Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1840661Z       "id": "REQ-ACL-PRECISE-ALLOW-WRITE-CONTRACT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1881479Z       "title": "THE PRECISE `access allow` IS A RULE VERB; THE POSITIONAL ONE IS A RULE+POSTURE VERB -- and the precise arm therefore says so at write time rather than leaving the operator to discover it. releases#196 asked whether the flag spelling should also close an endpoint's posture on its first rule (the v1 semantic `restrict_if_unset` carries, which the positional arm re-applies explicitly). RULED HORN B (doyle 2026-08-21, on a census read at b88fab2a): default-open-until-explicit-close IS the shipped T6 semantic, the mutation seam stays POSTURE-BLIND, and what was missing was never the close -- it was any signal that a rule written onto an unrestricted endpoint changes no verdict. TWO STRUCTURAL FACTS DECIDE THIS RATHER THAN A PREFERENCE. (1) A CLOSE CANNOT LIVE AT THE SEAM: `tuple_mutation` is shared by the endpoint precise arms AND the engine room's node-wide seat including its per-endpoint `--for` form, and below it `apply_mutation` is also the seam for knock-answer, redeem and the knock store -- so a close in `apply_mutation` would fire on every approved knock and every redeem, and a close in `tuple_mutation` would have the engine room closing another endpoint's posture as a side effect of writing one rule for it, while being meaningless for `MutationScope::Node` (`restrict_if_unset` is per-endpoint by construction). A posture close is a CLI-ARM opinion either way; it is not, and cannot be, a property of the seam. (2) THE CODEBASE ALREADY RULES THE INERTNESS IN BINDING GATE CODE: `may_grant_node_subject` derives the unset grant-nodes policy from `effective_posture` with the premise stated in its own comment -- open implies permitted, because an allow entry on an open surface punches no hole. Closing the posture inside the very command that policy gates would falsify that premise one statement later, so horn A would have owed a re-ruling of the grant-nodes policy and was never the one-line change it reads as. WHAT THE NOTICE IS. On an operator-driven precise allow, and BEFORE the write, the chain is ASKED -- `decide()` per covered surface, per admitted origin class, at every concrete origin there is to ask about -- and if it already allowed that subject everywhere, the acceptance is followed by a sentence saying the rule stands and changes no verdict today, naming the lever that would make it bite. NEVER A REFUSAL: pre-positioning a rule before a later close is legitimate and common, and a verb that refused it would be wrong more often than the silence it replaced. ASKED, NEVER RE-DERIVED: the condition is the chain's own verdict and not a scan of rule rows, the doctrine `node_still_sees_endpoint` and `fork_without_discover` already carry -- a row scan would miss a per-surface close, count a row naming a different subject, and become a second definition of a verdict the store owns. AN ABSENCE IS NEVER A VERDICT: a subnet subject with no roster members, and a sender-endpoint subject that resolves to no machine this node knows, have NO origin to put the question to, so they get a NAMED ABSENCE saying the question was not answered -- never the word inert, which would render a missing measurement as a finding. A subnet subject with members is inert only if EVERY member reads inert. THE FIRING POPULATION IS DECLARED AND PINNED, not left to placement: operator-driven precise ALLOW upserts on an endpoint scope, and nothing else -- the engine room's `--for` seat is excluded by the seat flag the caller already passes, removals and denies are excluded by op and decision, and knock-answer and redeem never reach this body at all. NO NOTICE ON DENY THIS LANE (doyle, ruled): deny is the fail-closed direction, an inert deny pre-positions defense at zero cost, and the narrowed-deny shape is un-censused. POSTURE-NEUTRALITY IS PART OF THE CONTRACT AND IS PINNED AS SUCH: the precise arm leaves `modes` exactly as it found them, which was true at b88fab2a and untested in either direction -- a ruling no test can falsify is a ruling that survives its own reversal. Gate: impl -- the population predicate, the chain-asked probe over resolved origins and its named-absence arm, the notice line naming the lever, and the call site before the write inside the precise arm; unit -- a decision table whose expectations are WRITTEN OUT AS LITERALS rather than derived from the predicate under test: an allow onto an unrestricted endpoint reads inert, the SAME allow shadowing a node-scope deny reads NOT inert (the hole-punch negative control -- the case the notice must stay silent on), a rule whose surfaces are only partly refused reads not inert, an empty subnet reads NAMED ABSENCE and never inert, a subnet whose members split reads not inert, and the population predicate admits the operator's precise allow while refusing the daemon seat, the removal and the deny; int -- the real binary against a real store: a precise allow leaves the endpoint's posture EMPTY (the literal partition, not a value read back from the code under test) and prints the notice, the positional spelling beside it still closes the posture and prints NO notice, and the NEGATIVE POPULATION PIN -- a rule written through the knock-approval path prints no notice at all.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1881894Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1882160Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1882406Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1882654Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1882906Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1883163Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1883416Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1883698Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1883960Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1884214Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1884466Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1884736Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1885006Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1885259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1885569Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1885836Z               "line": 16253
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1886083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1886331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1886641Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1886984Z               "line": 16297
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1887232Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1887490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1887799Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1888061Z               "line": 16590
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1888309Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1888557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1888862Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1889177Z               "line": 16606
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1889439Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1889688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1889996Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1890261Z               "line": 16626
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1890513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1890770Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1891072Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1891338Z               "line": 16641
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1891587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1891844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1892197Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1892469Z               "line": 16656
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1892730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1892975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1893290Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1893553Z               "line": 16699
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1893801Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1894047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1894358Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1894610Z               "line": 16791
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1894863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1895117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1895425Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1895689Z               "line": 16807
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1895937Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1896186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1896491Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1896753Z               "line": 16840
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1897007Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1897258Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1897511Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1897868Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1898149Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1898412Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1898660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1899145Z               "path": "crates/spt/tests/access_precise_allow_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1899413Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1899670Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1899909Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1900152Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1900403Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1900682Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1900941Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1901193Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1901489Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1901755Z               "line": 36121
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1902007Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1902256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1902565Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1902820Z               "line": 36190
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1903082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1903327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1903635Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1903897Z               "line": 36334
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1904146Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1904404Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1904646Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1904894Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1905132Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1905376Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1905663Z       "id": "REQ-ACL-RC-VIEW-SPLIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1914682Z       "title": "Watching an endpoint's terminal and DRIVING it are separately grantable: attach gates on the request's AttachIntent — Viewer -> RC_VIEW, Control/Take -> RC_ATTACH. Before this, one access_check(endpoint, origin, Unsolicited) covered every attach intent, so admitting a node to view an endpoint necessarily admitted it to take the keyboard (and, with Take, to displace an incumbent controller). On a shared subnet that is the difference between showing a colleague's agent what happened and letting their agent drive yours. The split is keyed on the intent the REQUEST carries, evaluated at the serve side under the handshake-proven origin — never on anything the attaching side can restate after the gate. Kin: ADR-0042 (rc-attach truth) and REQ-ACL-SURFACE-VOCAB, which mints the two ids. Gate: doc — the CONTEXT.md control-surface entry naming RC_VIEW and RC_ATTACH as distinct v1 surfaces; impl — the attach_surface mapping and attach.rs gating through it; unit — the mapping over all three intents plus a decision table proving an RC_VIEW grant does not admit RC_ATTACH.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1915077Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1915330Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1915589Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1915846Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1916088Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1916350Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1916611Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1916877Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1917134Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1917391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1917663Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1917930Z               "line": 936
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1918174Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1918412Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1918660Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1918903Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1919231Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1919489Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1919732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1920076Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1920332Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1920580Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1920818Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1921067Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1921306Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1921571Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1921831Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1922080Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1922323Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1922713Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1922981Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1923219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1923568Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1923824Z               "line": 1009
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1924063Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1924301Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1924548Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1924783Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1925027Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1925266Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1925552Z       "id": "REQ-ACL-RULE-MUTATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1944430Z       "title": "Access rule mutation and revocation are TUPLE-SHAPED, never id-shaped: a removal restates the subject, surfaces and origin qualifier rather than naming a generated rule id, which makes it idempotent and script-safe and removes rule-id bookkeeping from the model entirely (tuples ARE the identity). Every entry records its PROVENANCE — knock-approve, code-redeem, or manual — and the access drill-down view prints the exact removal command beside each rule together with that provenance, so revocation is copy-paste from the view that showed it. Entries born of knocks or codes have no special lifecycle after birth. Authority is threefold: the owner endpoint's agent (narrowing mutations always free, widening node-subject mutations in either polarity gated by the grant-nodes policy); same-node users always (node-sovereign, the emergency lever against a bad agent grant — there is no remote rule mutation of any kind, the remote-human path is to rc into the node); and the engine-room, which may edit node-tier entries, modes AND endpoint-scope entries across the node as the node's admin command center for access. That engine-room rule-EDITING authority supersedes the earlier 'engine-room owns modes only' clause; knock-ANSWER routing is unchanged — endpoint-target knocks still land with, and are answered by, the target endpoint. Every mutation path loads the store through the FAIL-CLOSED reader: a degraded store refuses the mutation loudly, leaves the store bytes byte-identical, and — where the mutation was a knock answer — leaves the knock PENDING rather than consuming it, because a refused write must never burn a single-use answer. Gate: doc — the CONTEXT.md rule-mutation entry and the CLI reference; impl — the tuple-matching removal primitive, the provenance field, the view's per-rule removal command, and the fail-closed load on every mutation path; unit — a tuple removal is idempotent and removes only the matching tuple, provenance survives a round-trip and renders in the view, the printed removal command actually removes the rule it was printed beside, a narrowing mutation needs no acknowledgment while a widening one does, and a mutation against a degraded store refuses loudly with the file bytes unchanged and any answering knock still pending.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1944839Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1945116Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1945351Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1945630Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1945894Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1946137Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1946381Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1946644Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1946901Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1947139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1947473Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1947725Z               "line": 668
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1947964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1948206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1948533Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1948795Z               "line": 718
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1949100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1949348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1949677Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1949940Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1950178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1950422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1950850Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1951107Z               "line": 1298
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1951345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1951583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1951907Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1952156Z               "line": 1324
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1952409Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1952652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1953001Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1953265Z               "line": 1352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1953506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1953765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1954098Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1954374Z               "line": 1420
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1954623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1954875Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1959302Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1959627Z               "line": 1993
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1959946Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1960194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1960542Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1960804Z               "line": 2046
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1961058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1961306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1961662Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1961924Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1962176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1962425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1962778Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1963040Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1963289Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1963536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1963883Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1964296Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1964548Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1964796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1965110Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1965391Z               "line": 15908
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1965654Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1965902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1966213Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1966476Z               "line": 16037
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1966731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1966981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1967295Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1967568Z               "line": 16175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1967825Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1968079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1968384Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1968656Z               "line": 16865
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1968908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1969254Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1969561Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1969829Z               "line": 18285
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1970083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1970335Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1970645Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1970912Z               "line": 19806
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1971159Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1971407Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1971655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1971905Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1972193Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1972460Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1972708Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1972961Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1973233Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1973496Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1973748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1974091Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1974352Z               "line": 2762
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1974617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1974866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1975322Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1975599Z               "line": 2818
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1975847Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1976101Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1976430Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1976697Z               "line": 2943
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1976959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1977205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1977546Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1977808Z               "line": 2963
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1978061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1978310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1978653Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1978915Z               "line": 3012
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1979254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1979506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1979853Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1980131Z               "line": 832
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1980380Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1980643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1980952Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1981215Z               "line": 25073
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1981462Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1981715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1982030Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1982296Z               "line": 25210
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1982549Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1982796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1983107Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1983368Z               "line": 25535
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1983621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1983864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1984174Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1984442Z               "line": 31574
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1984691Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1985045Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1985296Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1985548Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1985787Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1986027Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.1986312Z       "id": "REQ-ACL-SUBJECT-CHAIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2014958Z       "title": "One FIRST-MATCH-WINS subject chain decides every access question, with an implicit-open bottom that preserves current fleet behavior. Order: per-endpoint sender-endpoint rule -> per-endpoint node rule -> per-endpoint subnet-wildcard rule -> node-scope node rule -> node-scope subnet-wildcard rule -> endpoint mode for the surface -> node mode for the surface -> join-time-captured subnet mode for the surface -> (nothing matched) OPEN. The stateful-firewall reply exemption and the same-node loopback Allow PRECEDE the chain and are not tiers — a degraded or locked-down node keeps its own conversations alive. Modes are the per-surface default posture for unlisted subjects (open/closed), settable at endpoint and node scope; the captured-subnet-mode table ships as a SCHEMA STUB in W1 (W2's join capture populates it — absent means the chain bottoms out open). Store schema v2 carries subject-kind entries at both scopes, migrates every v1 AccessEntry.nodes row into an equivalent (endpoint mode closed + one all-surface node Allow per listed node, so a listed node keeps access and an unlisted one loses it exactly as before), and DROPS the inert users field with the no-user-identity ruling (a shared subnet's trust unit is the node as human-proxy; 'user' is deliberately not a security identity). TIER 1 IS SCHEMA-REAL BUT INERT IN W1 (doyle ruling 2026-07-29, on todlando's pre-build finding): the design-of-record premise 'sender identity is daemon-stamped and nodes are trusted' is FALSE of its first clause today. The only wire record carrying a sender endpoint is WanMessage.from, which KNOWN-HAZARDS 7.5 (REQ-HAZARD-WAN-ORIGIN-AUTH) binds verbatim as reply-routing metadata 'never an authorization subject' — and it is caller-supplied (spt send --from; cli.rs resolve_from lets the explicit arg win over session detection), so keying a rule on it would admit a FORGED subject, the exact failure 7.5 exists to prevent. Precedent already ruled in-tree: REQ-MSG-5's classify_local_origin faces the same question and answers it with the session-proven perch id, noting '--from alone never confers an agent identity'. Independently, five of the six gate families (attach, xfer, rest, shell-link, digest) carry no sender endpoint on the wire in any form. So the kind persists, matches, and round-trips, but every W1 call site supplies None. Lighting it up needs an authenticated daemon-stamped sender field — a NEW additive field, never a repurposing of from — which is its own wave and its own REQ. Gate: doc — the CONTEXT.md endpoint-access-whitelist entry, whose false daemon-stamped premise this change corrects in the same diff, plus the control-surface-modes entry carrying the chain; impl — spt_store::access schema v2 (Subject/AccessRule/Modes/EndpointAcl/NodeAcl/CapturedSubnetModes), AccessStore::decide, the v1 migration, and the daemon gate threading origin subnet membership in; unit — the chain proven tier by tier (each tier decides only when every tier above abstains, bottom is open), the v1 verbs' polarity (allow restricts, revoke narrows without widening, open is the only widening), v1->v2 migration semantics, v2 round-trip of every construct, and TWO inertness guards — a store-level one proving the kind matches when fed and abstains when not, and a gate-level one proving no call site feeds it (that guard goes red on purpose if a later change threads a sender identity into the gate).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2015282Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2015540Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2015783Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2016032Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2016269Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2016522Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2016763Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2017033Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2017402Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2017649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2017940Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2018196Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2018436Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2018679Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2018923Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2019252Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2019521Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2019776Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2020016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2020354Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2020607Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2020855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2021093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2021426Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2021684Z               "line": 541
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2021936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2022179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2022515Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2022788Z               "line": 908
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2023034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2023277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2023606Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2023870Z               "line": 1667
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2024108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2024356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2024691Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2024945Z               "line": 1743
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2025189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2025433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2025776Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2026033Z               "line": 2096
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2026282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2026519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2026853Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2027109Z               "line": 2142
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2027351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2027589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2028032Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2028290Z               "line": 2164
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2028534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2028781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2029196Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2029459Z               "line": 2183
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2029706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2029949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2030284Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2030537Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2030786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2031028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2031357Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2031619Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2031862Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2032102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2032426Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2032686Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2032927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2033175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2033494Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2033752Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2034001Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2034243Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2034486Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2034734Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2035006Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2035270Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2035515Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2035758Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2036035Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2036302Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2036546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2036889Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2037142Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2037394Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2037736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2038072Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2038334Z               "line": 1492
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2038578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2038822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2039245Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2039513Z               "line": 3819
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2039756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2039999Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2040333Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2040589Z               "line": 3976
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2040830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2041083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2041417Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2041670Z               "line": 4068
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2041917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2042160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2042498Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2042760Z               "line": 4192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2043005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2043256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2043592Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2043854Z               "line": 4482
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2044092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2044337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2044665Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2044923Z               "line": 4536
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2045167Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2045414Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2045657Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2045895Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2046138Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2046375Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2046685Z       "id": "REQ-ACL-SUBNET-MODE-CAPTURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2056831Z       "title": "A subnet's control-surface mode is recorded on the subnet and CAPTURED AT JOIN TIME into the joining node's own store — the W1 captured-subnet-mode table stops being a stub and lights up tier 8, the chain's bottom fallback (CONTEXT.md 'control-surface modes' resolution order). Capture, not lookup, is the point: a node's effective posture must be a local, immutable fact it consented to when it joined, so a subnet owner cannot retroactively tighten or loosen what an already-joined member enforces (that is what makes the advisory-gossip posture in REQ-ACL-MODE-ADVISORY-GOSSIP coherent rather than a race). Migration posture is explicit and must be tested: an EXISTING subnet has no captured mode, so tier 8 stays absent, the chain bottoms out open, and fleet behavior is preserved exactly — an upgrade must not silently close a running mesh. Gate: doc — the CONTEXT.md control-surface-modes entry (three levels and the resolution chain); impl — the subnet-mode record, the join-time capture into the endpoint access store, and tier 8 reading it; unit — a joined-with-closed node refuses where an unlisted subject falls through to tier 8, a joined-with-open node admits, and a pre-existing subnet with no capture bottoms open.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2057132Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2057398Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2057647Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2057894Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2058137Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2058395Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2058644Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2058908Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2059260Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2059507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2059788Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2060050Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2060290Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2060534Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2060770Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2061024Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2061290Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2061549Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2061795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2062155Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2062514Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2062752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2062998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2063352Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2063614Z               "line": 700
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2063861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2064106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2064480Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2064742Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2064989Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2065236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2065599Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2065851Z               "line": 572
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2066100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2066339Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2066715Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2066974Z               "line": 691
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2067229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2067467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2067834Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2068096Z               "line": 834
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2068340Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2068588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2068917Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2069260Z               "line": 2259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2069507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2069752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2070082Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2070339Z               "line": 2279
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2070587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2070830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2071159Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2071413Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2071655Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2071893Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2072142Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2072388Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2072653Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2073030Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2073273Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2073516Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2073773Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2074027Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2074266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2074619Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2074869Z               "line": 948
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2075100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2075345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2075707Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2075959Z               "line": 1816
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2076203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2076440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2076770Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2077027Z               "line": 3936
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2077279Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2077519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2077856Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2078113Z               "line": 930
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2078351Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2078585Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2078819Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2079153Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2079382Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2079624Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2079952Z       "id": "REQ-ACL-SURFACE-ATTRIBUTABILITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2091850Z       "title": "Whether a control surface's inbound carries a PROVEN sender endpoint is single-sourced per-surface metadata, never a hardcoded MSG-vs-rest split. Attributability decides which SUBJECT TIER a grant for that surface can actually bind: attributable => a sender-endpoint subject can match (today MSG, via the W2b daemon stamp); non-attributable => only node-tier subjects are real, and a sender-endpoint entry on such a surface is dead on arrival — it can never match, so writing one is a silent no-op the CLI must refuse rather than persist. The single-source form is a per-surface table carrying the flag beside the id, with the v1 id list DERIVED from that table and exactly one reader answering the question; a second site that re-derives 'MSG or not' is the drift class this requirement exists to prevent (a property matched at one site and built at another). The payoff is automatic: when a surface's records grow their own sender stamp (XFER is the expected next), flipping one row makes it attributable and it exits every restriction keyed on this property with no re-ruling and no second edit. Gate: doc — the CONTEXT.md sender-attributability entry; impl — the per-surface table with the derived id list and the single is_attributable reader; unit — the derived list matches the table exactly, MSG reads attributable and a non-stamped surface does not, and flipping one row's flag moves that surface across every attributability-keyed decision without touching another site.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2092284Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2092533Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2092780Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2093023Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2093257Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2093509Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2093749Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2094011Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2094269Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2094513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2094785Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2095032Z               "line": 1009
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2095280Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2095518Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2095763Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2096003Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2096277Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2096531Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2096778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2097122Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2097385Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2097623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2097870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2098306Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2098568Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2098814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2099137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2099476Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2099733Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2099972Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2100216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2100546Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2100812Z               "line": 306
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2101049Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2101299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2101633Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2101891Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2102135Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2102371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2102677Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2102939Z               "line": 16087
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2103182Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2103418Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2103660Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2103911Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2104167Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2104429Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2104667Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2104914Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2105172Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2105435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2105674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2106008Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2106266Z               "line": 3046
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2106497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2106743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2107072Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2107325Z               "line": 3059
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2107687Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2107926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2108255Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2108508Z               "line": 3166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2108750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2109069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2109397Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2109650Z               "line": 3569
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2109889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2110118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2110423Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2110675Z               "line": 25118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2110909Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2111153Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2111382Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2111618Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2111850Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2112084Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2112384Z       "id": "REQ-ACL-SURFACE-DESCRIPTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2128286Z       "title": "Every control surface carries its operator-language DESCRIPTION as a third column of the same single-source surface table that already carries its id and its attributability, and each description states that surface's SUBJECT CONSEQUENCE rather than merely naming the traffic: an attributable surface says a grant binds the single proven sender ('MSG — direct messages (a grant binds the single sender)'), a non-attributable one says a grant admits the whole machine, and STOPS THERE: the remedy stays sited with the flag that owns it (the --admit-node help on knock approve and on endpoint access allow|deny|remove, plus the store's write-time refusal), because a second remedy spelling in a section that renders at a dozen sites is a drift pair — and would be outright FALSE at daemon access, a seat that acknowledgment does not bind ('XFER — file transfer (a grant admits the whole machine)'). Consequence, not category, is the load-bearing half: an operator choosing surfaces is choosing WHO gets admitted, and a description that omits that is decoration. The text is composed into every rendering AT RENDER TIME from the table, never restated at a display site, so the vocabulary a human reads and the vocabulary the gate enforces cannot drift apart and A NEW SURFACE APPEARS IN THE RENDERED HELP BY THE SOLE ACT OF EXISTING IN THE TABLE — that property is the point of the requirement and is proven directly rather than inferred from the shipped rows, which are uniform in it. Gate: doc — the CONTEXT.md surface-vocabulary entry carrying the consequence rule; impl — the description column beside the id and attributability flag, plus the one composer every renderer calls; unit — a fixture table carrying an INVENTED row renders that row with no edit to any display site, an attributable and a non-attributable row render their differing subject consequences, and the composed text is byte-derived from the table rather than matched against a second literal.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2128601Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2128873Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2129216Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2129460Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2129723Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2130000Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2130262Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2130541Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2130846Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2131562Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2132221Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2133008Z               "line": 936
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2133609Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2134139Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2134662Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2135201Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2135810Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2136462Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2137063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2137707Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2138503Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2139310Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2139873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2140508Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2141298Z               "line": 438
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2141902Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2142437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2143062Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2143878Z               "line": 453
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2144545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2145093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2145737Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2146539Z               "line": 480
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2147141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2147665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2148309Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2149178Z               "line": 511
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2149784Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2150308Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2150833Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2151353Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2151923Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2152567Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2153164Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2153689Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2154252Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2154886Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2155477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2156102Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2156888Z               "line": 3471
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2157492Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2158030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2158645Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2159520Z               "line": 3504
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2160121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2160649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2161264Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2162065Z               "line": 3542
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2162661Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2163189Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2163709Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2164221Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2164836Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2165341Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2165904Z       "id": "REQ-ACL-SURFACE-MODE-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2192077Z       "title": "A NODE CAN CLOSE ONE SURFACE FROM ITS OWN ENGINE ROOM: `spt api access-node-surface-mode <SURFACE> <open|closed|unset> <id>` writes the NODE TIER's `per_surface` entry for exactly one control surface, and it is the ONLY off-switch a node owner has for a default-on surface. It exists because REQ-ACL-DISCOVER-DEFAULT-ON took the blanket posture out of a default-on surface's reach: after that change `access-node-mode closed` no longer closes DISCOVER, so the milestone's own promise -- a node owner who wants DISCOVER disabled can do so from their node's engine room -- is satisfied by this verb or by nothing (doyle 2026-08-17: shipping the carve-out without the off-switch is a greenlit-form deviation, and building it is the smaller act). THE NARROW TWIN, NOT A NEW AUTHORITY: it passes the SAME shared engine-room gate as `access-node-mode` (`api::engineroom::gate`, ADR-0052 decisions 5 and 6 -- one function, every engine-room verb through it, deliberately stated without a count) and needs NO empowerment, for the identical reason the blanket verb needs none: a node's own posture is its own business and the bring-up gate already proved membership. It lives in the `spt api` family rather than the rule-mutation family because that is where the gate, the auth proof and the ER capability vocabulary already are. NODE TIER ONLY: the endpoint tier's lever remains a deny row that names the surface, per-subject, until the concierge modernization mints its own form. THREE STATES, NOT TWO: `unset` REMOVES the entry, which is not a spelling of `open` -- an explicit open PINS the surface open against any later change of the vocabulary's default, so a two-state verb would make closing a default-on surface a one-way door whose only exit is a pin the writer never meant to author; the removal folds case for the reason every releases#66 reader does, since an entry stored as `discover` is the one that GOVERNS and a clear that missed it would report 'nothing was set'. THE PIN MUST BE VISIBLE (doyle's rider, 2026-08-17): an access view renders a pinned open distinguishably from a default open -- `DISCOVER open (pinned)` against `DISCOVER open (default)` -- because the same two words otherwise describe two different facts, and a blanket-closed summary that said only `closed` would read as closing DISCOVER too, which is exactly the reading the carve-out removed. The surface token is validated against `surface::TABLE` and canonicalized at the boundary: an unminted id stays legal in a RULE, where it governs only itself, and is REFUSED here, because this verb writes the key the chain READS and a typo would otherwise sit in the view as a posture that governs nothing. Gate: doc -- the CONTEXT.md mode-tier entry naming the verb as the node-tier off-switch and stating the three states; impl -- the store's node-tier per-surface setter, its case-folding clear and its read half, the api verb and its dispatch arm, the shared-gate call, the vocabulary refusal, and the pinned/default render in the access view; unit -- the verb writes only the named surface and leaves the blanket alone, `unset` restores the default rather than pinning open (with the default-on and ordinary cases asserted apart), a case-differing stored key is the one cleared, an unknown surface is refused with nothing written, a non-engine-room caller is refused by the shared gate, and the view renders pinned-open, default-open and closed as three distinguishable readings.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2218743Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2219415Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2219945Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2220469Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2220985Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2221486Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2222019Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2222581Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2223185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2223752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2224401Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2225068Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2225654Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2226168Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2226664Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2227169Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2227736Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2228349Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2228917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2229602Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2230380Z               "line": 865
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2230963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2231478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2232089Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2232851Z               "line": 876
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2233435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2233954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2234579Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2235356Z               "line": 2201
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2235953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2236475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2237080Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2237845Z               "line": 2219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2238434Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2239051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2239657Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2240435Z               "line": 2239
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2241022Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2241542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2242157Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2242926Z               "line": 2247
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2243517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2244047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2244653Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2245526Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2246117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2246640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2247255Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2248008Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2248599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2249206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2249808Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2250565Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2251151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2251681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2252293Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2253074Z               "line": 596
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2257314Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2257886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2258510Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2259407Z               "line": 618
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2259992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2260506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2261140Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2261931Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2262516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2263033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2263615Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2264361Z               "line": 407
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2264944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2265467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2266035Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2266774Z               "line": 19923
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2267364Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2267874Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2268384Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2268886Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2269525Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2270147Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2270722Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2271237Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2271786Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2272406Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2272972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2273728Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2274505Z               "line": 4657
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2275096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2275615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2276219Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2276976Z               "line": 4683
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2277572Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2278084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2278677Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2279526Z               "line": 4721
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2280108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2280622Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2281229Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2281989Z               "line": 4751
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2282570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2283099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2283702Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2284454Z               "line": 4809
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2285045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2285557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2286151Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2286898Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2287474Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2287984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2288576Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2289414Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2289987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2290496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2291110Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2291881Z               "line": 1143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2292520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2293039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2293649Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2294419Z               "line": 1188
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2295106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2295639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2296259Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2297028Z               "line": 1244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2297610Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2298125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2298735Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2299588Z               "line": 1286
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2300174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2300694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2301276Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2302016Z               "line": 1286
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2302598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2303104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2303671Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2304387Z               "line": 36780
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2304974Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2305480Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2305981Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2306490Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2306973Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2307464Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2307999Z       "id": "REQ-ACL-SURFACE-VOCAB",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2321963Z       "title": "Access control is granular at the CONTROL SURFACE, not at the endpoint. A rule is (target endpoint x surface x subject) -> allow/deny, where a surface is a named remote-reachable operation class with an OPEN CONSTANT_CASE string vocabulary — new surfaces mint ids without a schema change, and an unrecognized surface string in a rule is legal (it governs nothing until that surface is built). The v1 set is the nine ratified ids: MSG, RC_VIEW, RC_ATTACH, DIGEST, WAKE, SUSPEND, XFER, SHELL_LINK, DISCOVER. WHAT THIS ENDS: the ADR-0009 whitelist was all-or-nothing per endpoint — admitting a node for messages also admitted it to drive the terminal, pull digests, and transfer files, because one access_check covered every wire-inbound family at once. On a SHARED SUBNET (member nodes belonging to different human operators, the gated adversary being agents) that coupling is the whole problem: there is no way to publish a view without handing over the keyboard. Each of the daemon's gate call-site families now tags itself with its surface, and the two families carrying a request-shaped distinction split: attach on AttachIntent (Viewer -> RC_VIEW vs Control/Take -> RC_ATTACH, see REQ-ACL-RC-VIEW-SPLIT), rest on the rest event (Wake -> WAKE vs Suspend -> SUSPEND). Gate: doc — the CONTEXT.md control-surface glossary entry; impl — the spt_store::access::surface vocabulary module, access_check's surface parameter, and the six call-site families tagging themselves; unit — the vocabulary shape (nine ids, CONSTANT_CASE, open to unminted strings) plus a per-surface decision table proving a grant on one surface does not admit the same node on another.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2335184Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2335790Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2336308Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2336840Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2337356Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2337855Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2338394Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2339036Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2339650Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2340213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2340761Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2341424Z               "line": 936
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2341999Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2342519Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2343015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2343511Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2344059Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2344666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2345228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2345844Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2346613Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2347190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2347701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2348320Z               "path": "crates/spt-daemon/src/resthost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2349302Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2349881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2350410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2351001Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2351756Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2352331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2352841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2353432Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2354195Z               "line": 2102
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2354783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2355303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2355890Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2356633Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2357216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2357716Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2358209Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2358699Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2359324Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2359957Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2360536Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2361028Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2361580Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2362191Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2362748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2363354Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2364121Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2364698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2365212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2365820Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2366573Z               "line": 3783
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2367155Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2367666Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2368158Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2368644Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2369211Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2369703Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2370257Z       "id": "REQ-ACL-VIEW-DRILLDOWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2379123Z       "title": "The granular rule list is viewable only per named ruled entity (CONTEXT.md 'access entity'): `spt endpoint access [--endpoint-rules <id> | --node-rules <node> | --subnet-rules <subnet>]` — mutually exclusive flags — renders exactly the rules whose subject names that entity, through the SAME ruleset-table renderer the engine-room briefing carries (REQ-ER-RULESET-TABLE), filtered on the TYPED rule subject rather than by re-parsing the rendered subject word (a rendered-string match is a second literal waiting to drift). A target positional scopes the slice to that endpoint's rules plus the node-scope rows that also decide for it; the drill's `--json` emits the rows verbatim. The one-flat-dump-of-everything view is deliberately gone — reading a posture is a comparison per entity, not a scroll. Gate: doc — the CONTEXT.md access-entity entry; impl — the typed filter seam and the flag surface; unit — the filter matches only its own entity kind (a subnet name equal to an endpoint id must not cross-match) and the flags parse mutually exclusive.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2387880Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2388476Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2389084Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2389621Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2390132Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2390627Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2391153Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2391708Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2392355Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2392921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2393466Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2394128Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2394715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2395229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2395892Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2396716Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2397277Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2397786Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2398282Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2398779Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2399535Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2400143Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2400706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2401345Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2402126Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2402701Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2403225Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2403844Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2404622Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2405203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2405722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2406337Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2407116Z               "line": 459
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2407688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2408203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2408804Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2409644Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2410228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2410741Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2411342Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2412081Z               "line": 20403
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2412662Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2413179Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2413684Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2414200Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2414777Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2415426Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2416025Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2416535Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2417102Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2417723Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2418296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2418911Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2419769Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2420355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2420879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2421449Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2422193Z               "line": 31529
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2422799Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2423312Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2423816Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2424417Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2424912Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2425408Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2425943Z       "id": "REQ-ACL-VIEW-ROSTER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2437236Z       "title": "Access views are roster-first (CONTEXT.md 'access entity', FF grill 2026-07-30): `spt endpoint access [<endpoint>]` lists each ruled target's access entities — the subnets, nodes, and endpoints its own rules name — grouped by type in that order, each with its rule count; a subnet or the home node also carries its mode summary; a captured-mode subnet is listed even with zero explicit rules (a mode source is part of the posture picture); external entities with no rules for the target are omitted entirely; a ruled endpoint resolves to `<id>@<node> (<shared subnets>)` where this node's registry can see it and renders bare where it cannot (ruled-but-unresolvable must not hide the rule count). The view is node-sovereign — no remote rule-read exists; viewing another node's rules means running the CLI there. Supersedes the `access list` prose view; the `--json` surface re-homes the old shape's explicit `locked` flag onto the roster envelope. Known limit, documented: an endpoint literally named after a write verb (allow/revoke/open) parses as the subcommand and loses the positional path. Gate: doc — the CONTEXT.md access-entity entry; impl — the roster builder, renderer, endpoint directory, and the superseding CLI surface; unit — the roster grammar (grouping order, counts, mode annotations, bare-vs-resolved endpoints, explicit empty line) and the parse surface.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2448535Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2449192Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2449711Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2450228Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2450735Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2451235Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2451764Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2452421Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2453033Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2453597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2454141Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2454799Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2455371Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2455882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2456545Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2457366Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2457926Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2458437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2458923Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2459500Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2460047Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2460656Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2461214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2461805Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2462543Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2463110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2463631Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2464223Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2464972Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2465547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2466056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2466652Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2467391Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2467968Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2468476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2469135Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2469856Z               "line": 15874
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2470438Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2470958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2471540Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2472268Z               "line": 20288
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2472846Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2473353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2473915Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2474641Z               "line": 20323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2475222Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2475727Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2476349Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2476850Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2477397Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2478017Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2478599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2479181Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2479715Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2480319Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2480877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2481461Z               "path": "crates/spt/src/accessview.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2482214Z               "line": 389
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2482781Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2483293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2483855Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2484566Z               "line": 31511
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2485168Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2485667Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2486160Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2486653Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2487128Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2487609Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2488153Z       "id": "REQ-ACTIVITY-INFO-PULL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2491224Z       "title": "The endpoint's current activity state (busy|idle) is readable via `spt api endpoint-info` — a point-in-time read of the perch idle sentinel, for consumers that need a check rather than a stream (ADR-0048 decision 1, pull avenue; operator-ruled 2026-07-24). Additive key, N-1-safe per the additive-evolution posture.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2494115Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2494698Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2495231Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2495752Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2496261Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2496753Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2497270Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2497812Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2498408Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2499076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2499830Z               "path": "docs/adr/0048-idle-edge-contract.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2500606Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2501173Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2501673Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2502170Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2502666Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2503215Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2503816Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2504374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2504980Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2505730Z               "line": 845
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2506297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2506797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2507407Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2508167Z               "line": 1239
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2508748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2509345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2509959Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2510731Z               "line": 1371
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2511307Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2511814Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2512305Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2512796Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2513341Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2513961Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2514528Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2515015Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2515569Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2516170Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2516718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2517324Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2518083Z               "line": 1499
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2518660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2519261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2522942Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2523753Z               "line": 1530
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2524335Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2524836Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2525341Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2525833Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2526308Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2526778Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2527451Z       "id": "REQ-ACTIVITY-LINK-PUSH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2537857Z       "title": "An owned Shell observes its owner's busy/idle transitions as an activity frame on the EXISTING shell-link event stream (ADR-0048 decisions 1-3; perri contract-lock 2026-07-24). Link-scoped (owner implied by the link token — no new verb, no addressing surface). Drive-class semantics: ephemeral, latest-wins, current-state-carrying; redundant same-state resend is a harmless no-op (consumer derives edges); NEVER spooled or replayed (stale transitions are actively wrong). Both directions (busy->idle, idle->busy). Current state emitted on EVERY link establishment and re-link — restart resync is free. Latency promise = BOUNDED OBSERVATION: a frame per transition, sub-second class, never hard-real-time; each frame carries the TRANSITION TIMESTAMP (when the sentinel flipped, not when the frame was emitted) so edge-anchored consumers self-correct emission latency. Frame name/attrs publish in the shell frame vocabulary doc (REQ-SHELL-FRAME-VOCAB lineage) — doc stage rides there. Gate: int — a live shell link sees busy->idle and idle->busy frames with truthful transition timestamps, a re-link re-emits current state, and a transition during link-down is represented by the re-link emit (current state), never a replayed backlog.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2548169Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2548794Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2549419Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2550000Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2550522Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2551031Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2551547Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2552082Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2552635Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2553247Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2553815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2554430Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2555316Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2555896Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2556415Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2556912Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2557417Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2557969Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2558587Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2559231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2559888Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2560669Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2561257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2561783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2562407Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2563195Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2563770Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2564295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2564929Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2565700Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2566294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2566824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2567453Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2568239Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2568823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2569433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2570066Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2570844Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2571432Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2571938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2572553Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2573349Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2573920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2574430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2575041Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2575809Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2576393Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2576905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2577521Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2578299Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2578647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2578881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2579308Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2579559Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2579792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2580022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2580369Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2580622Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2580861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2581099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2581438Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2581694Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2581930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2582164Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2582507Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2582755Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2583002Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2583232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2583584Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2583832Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2584068Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2584295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2584637Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2584890Z               "line": 389
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2585124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2585358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2585696Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2585949Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2586182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2586415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2586754Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2586996Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2587228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2587456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2587910Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2588162Z               "line": 531
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2588401Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2588630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2589049Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2589302Z               "line": 883
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2589532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2589763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2590090Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2590342Z               "line": 939
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2590568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2590811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2591150Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2591397Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2591635Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2591858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2592182Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2592495Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2592734Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2592962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2593296Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2593543Z               "line": 809
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2593782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2594012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2594331Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2594579Z               "line": 831
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2594807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2595036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2595365Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2595622Z               "line": 565
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2595865Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2596108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2596413Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2596666Z               "line": 563
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2596900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2597134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2597446Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2597702Z               "line": 710
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2598284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2598518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2598861Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2599204Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2599438Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2599672Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2599905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2600144Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2600399Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2600645Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2600878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2601265Z               "path": "crates/spt/tests/activity_link_push_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2601513Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2601747Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2601977Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2602200Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2602437Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2602710Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2602957Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2603192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2603546Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2603798Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2604028Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2604262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2604604Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2604853Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2605086Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2605319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2605662Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2605911Z               "line": 282
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2606154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2606386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2606730Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2606978Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2607207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2607559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2607902Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2608158Z               "line": 316
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2608391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2608619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2609040Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2609292Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2609521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2609750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2610084Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2610337Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2610571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2610807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2611148Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2611392Z               "line": 400
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2611626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2611854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2612198Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2612460Z               "line": 431
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2612683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2612918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2613266Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2613526Z               "line": 448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2613757Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2613991Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2614329Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2614574Z               "line": 459
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2614813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2615045Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2615389Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2615641Z               "line": 1051
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2615874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2616100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2616447Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2616704Z               "line": 1090
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2616941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2617180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2617523Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2617886Z               "line": 1111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2618119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2618354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2618695Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2619033Z               "line": 1136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2619271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2619503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2619843Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2620090Z               "line": 1150
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2620329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2620558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2620897Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2621155Z               "line": 672
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2621391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2621627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2621980Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2622257Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2622519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2622767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2623116Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2623378Z               "line": 1453
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2623601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2623844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2624171Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2624428Z               "line": 1488
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2624661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2624894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2625218Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2625477Z               "line": 1521
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2625711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2625949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2626288Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2626540Z               "line": 1553
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2626892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2627120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2627459Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2627707Z               "line": 1687
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2627946Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2628175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2628509Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2628761Z               "line": 1770
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2629084Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2629320Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2629550Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2629787Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2630021Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2630255Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2630546Z       "id": "REQ-ACTIVITY-LIST-JSON",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2633380Z       "title": "`spt endpoint list --json` carries a per-endpoint `activity` (busy|idle) key, for consumers surveying the idle/busy state of many endpoints at once (ADR-0048 decision 1, roster pull avenue; operator addition 2026-07-24). Additive key, N-1-safe; kin the flynn 2026-07-06 last-active/description/adapter list-enrichment seed (same additive posture, may ride together).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2633666Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2633899Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2634142Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2634372Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2634613Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2634863Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2635111Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2635375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2635622Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2635861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2636228Z               "path": "docs-site/src/reference/json-shapes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2636485Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2636718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2636956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2637308Z               "path": "docs/adr/0048-idle-edge-contract.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2637552Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2637795Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2638038Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2638281Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2638529Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2638906Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2639244Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2639483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2639866Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2640115Z               "line": 846
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2640352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2640590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2640886Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2641139Z               "line": 6377
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2641368Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2641597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2641907Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2642164Z               "line": 6589
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2642398Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2642630Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2642861Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2643096Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2643368Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2643621Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2643858Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2644135Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2644397Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2644650Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2644889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2645182Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2645442Z               "line": 27230
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2645676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2645920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2646215Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2646464Z               "line": 27366
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2646697Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2646931Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2647174Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2647408Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2647641Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2647873Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2648183Z       "id": "REQ-ADAPTER-ADD-SURFACE-ERRORS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2652801Z       "title": "Bug #1: adapter add runs the install-as-first-update via conduct (cli.rs:6963) which on a non-zero exit prints only the exit code and DISCARDS the subprocess stdout/stderr, so the real error is invisible (the failure itself does propagate). Fix: include out.stderr/stdout in the ADAPTER_INSTALL_FAIL message (mirror run_update_post_step). Operator ruling: ALSO run the [update.post] composite step at install-time (today it runs only on explicit adapter update), so an install both surfaces detail and completes the delegated post-step. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2653071Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2653312Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2653551Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2653789Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2654031Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2654262Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2654524Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2654772Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2655014Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2655262Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2655525Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2655776Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2656007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2656307Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2656555Z               "line": 20615
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2656794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2657029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2657329Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2657586Z               "line": 20644
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2657824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2658053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2658350Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2658600Z               "line": 20806
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2658829Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2659148Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2659373Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2659617Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2659874Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2660140Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2660369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2660608Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2660972Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2661225Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2661467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2661758Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2662016Z               "line": 39604
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2662245Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2662479Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2662707Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2662936Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2663170Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2663395Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2663688Z       "id": "REQ-ADAPTER-FLOOR-ENFORCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2688099Z       "title": "F-5 (REMOTE-TRUTH triage §F-5 + doyle rulings 2026-07-05): BOTH adapter acquisition verbs (spt adapter add + spt adapter update) REFUSE when the installed spt-core is BELOW the adapter's declared [adapter].min_spt_core_version floor — with an F-1 operator refusal naming the installed core, the floor, and the next action (update spt-core first). ROOT: the floor was PARSED + required (manifest.rs) but never compared to the running core — dead enforcement; and the [update].version_check knob that gated it was DOC'D-BUT-DEAD (never read by any production path — a contract lie). RULINGS: RETIRE version_check (drop the manifest field + schema + docs + the cfg(test) literals; a pre-existing manifest still setting it deserializes fine — serde ignores the unknown key, no deny_unknown_fields, so retiring is back-compatible); SEMVER-compare NOT string-compare (the 0.9.0 < 0.25.0 lexical trap); enforce on BOTH verbs; nothing installs / registry untouched on refuse (binds both verbs, no residuals). FIX: (1) a pure spt-runtime version_meets_floor(core, floor) -> bool (numeric per-component: split '.', u64, missing→0, non-numeric→0, first-diff decides, equal-when-zero-padded ⇒ satisfied) — mirrors the CLI version_is_newer parse (same numeric model, different question: freshness=strictly-newer vs floor=at-least). (2) ADD: the gate lives INSIDE registry::register (the choke point) via a register_with_core(core_version) seam register() delegates to with env!(CARGO_PKG_VERSION) — the floor check runs right after the manifest parse, BEFORE any registry write, returning the typed RegistryError::CoreFloor{adapter,core,floor} (Display = the ONE F-1 refusal both verbs surface); nothing recorded on refuse. (3) UPDATE: a PRE-SWAP peek (staged_floor_ok) extracts the staged .spt to a THROWAWAY temp, parses its manifest floor, and refuses BEFORE apply_release_crc_swap mutates the live pointer-mode home — so a refusal (or an unverifiable floor: FAIL-CLOSED) leaves the live install BYTE-UNTOUCHED; register@8932 stays as the defense-in-depth backstop for every other entry path. THE COMPARISON BASIS IS THE CALLER'S, NOT THIS FUNCTION'S (releases#159): the bare verb judges against the running CLI, and a COMPOSITE update judges against the core that run will activate — see REQ-ADAPTER-FLOOR-VS-STAGED-CORE. The FAIL-CLOSED discipline in this clause is about an unverifiable STAGED MANIFEST and is unrelated to that input. doyle bind: the register-only gate would let the crc-swap replace the live files with a floor-violating version while the record refuses (record and reality disagree — the exact contract-lie shape this milestone kills), so the pre-swap peek is the only correct answer. Red-first: perri negative repro on ADD (fresh home + synthetic low core + high-floor manifest → CoreFloor refuse, registry untouched) + the UPDATE pre-swap refuse (live home byte-untouched) + a floor-met positive control (0.25.0-on-0.25.0 installs); + version_meets_floor table incl. the 0.9<0.25 trap.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2688546Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2688784Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2689104Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2689343Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2689590Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2689833Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2690067Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2690338Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2690586Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2690824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2691210Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2691462Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2691706Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2691941Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2692179Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2692416Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2692737Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2692995Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2693229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2693582Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2693835Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2694077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2694306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2694659Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2694911Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2695151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2695392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2695690Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2695961Z               "line": 21264
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2696196Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2696435Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2696663Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2696906Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2697163Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2697422Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2697652Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2697897Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2698157Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2698411Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2698649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2699063Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2699331Z               "line": 2729
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2699564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2699802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2700150Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2700542Z               "line": 1084
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2700787Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2701021Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2701384Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2701637Z               "line": 1120
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2701880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2702114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2702415Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2702666Z               "line": 28348
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2702904Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2703138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2703431Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2703689Z               "line": 28378
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2703922Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2704156Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2704391Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2704623Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2704852Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2705090Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2705419Z       "id": "REQ-ADAPTER-FLOOR-VS-STAGED-CORE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2763077Z       "title": "IN A COMPOSITE UPDATE, AN ADAPTER'S CORE-VERSION FLOOR IS JUDGED AGAINST THE CORE THAT RUN WILL ACTIVATE, NOT THE ONE CURRENTLY RUNNING (releases#159, doyle ruling 2026-08-21). THIS DELIVERS A CONTRACT ALREADY RULED AND NEVER SATISFIED, which is what the lane is FOR: CONTEXT.md's adapter-manifest-header entry has said since the glossary was written that `when spt-core self-updates, re-verify adapters still satisfy (coordinate core + adapter updates when needed)` — the code never did. Same shape as F-5 itself (REQ-ADAPTER-FLOOR-ENFORCE), where the floor was PARSED and REQUIRED and never compared: a dead rule, not a missing one. THE DEFECT: `spt update` plans FetchApply -> Adapters, and `spt update --restart` plans Fetch -> Adapters -> Finish; in BOTH the adapters leg runs while the NEW core is staged and the invoking CLI is still the OLD image, so a floor comparison against `env!(CARGO_PKG_VERSION)` asks a question about a core that is on its way out. An adapter whose floor the INCOMING core satisfies is therefore refused in-cycle, and the run then activates that very core and leaves the OLD adapter sitting on it — the refusal protected nothing, it deferred the pairing it was meant to enforce, ungated, into a state nobody checks again. FIX: `cmd_adapter_update` takes the comparison version as a PARAMETER instead of baking `env!`; the composite leg passes the STAGED release's `product_version`, read from the VERIFIED signed metadata via `ReleaseCache::staged_update` (`UpdateSetMetadata` / `ReleaseMetadata`). SINGLE-PASS, NOT A RE-SWEEP (doyle): a post-finish second sweep can itself fail half-rolled, so the one pass judges against the truth it already holds — and the CONTEXT.md clause above is amended to state that cadence, because a glossary sentence whose cadence a future implementer could build against would authorize the refused re-sweep with the glossary's own authority behind it. BOTH COMPARISON SITES INSIDE THAT FUNCTION TAKE THE PARAMETER (doyle confirmation 2026-08-22, dated to the confirmation and not to the lane: the correction postdates the ruled shape it corrects) — (a) the pre-swap peek `staged_floor_ok`, and (b) the post-swap re-register, which moves from `registry::register` (the `env!`-baking wrapper) to the already-public `registry::register_with_core` seam beneath it. (b) IS LOAD-BEARING, NOT TIDINESS: fixing only (a) admits the adapter at the peek, crc-swaps the new bits into the live pointer-mode home, and THEN refuses at the record against the old running core — live files new, registry record old, reported as FAILED. That is the record-and-reality disagreement REQ-ADAPTER-FLOOR-ENFORCE's own pre-swap-peek bind exists to prevent, reached from the other side, and it is strictly worse than the bug this requirement fixes (today's refusal is clean and byte-untouched). One value, two consumers, SO THE PEEK AND THE RECORD CANNOT DISAGREE ABOUT WHICH CORE THEY JUDGED AGAINST — that property is what makes this a fix rather than a second gate to keep in sync, and it is why the parameter is THREADED rather than each site reading the staged metadata for itself. THE BARE VERB IS UNCHANGED: `spt adapter update` (cli.rs AdapterCmd::Update) and its `spt update adapters` alias keep passing the running CLI's version — with no update in flight the installed core IS the right question — and both call sites are pinned as unchanged. `spt adapter add` is untouched: no staged core exists on that path. FAIL OPEN, ON THE NEW INPUT ONLY (doyle): an unreadable staged version degrades LOUDLY to the running-CLI comparison — an absent answer is not a zero, and an empty string is never compared against a floor — while `staged_floor_ok`'s deliberate FAIL-CLOSED arm for an unverifiable STAGED MANIFEST floor (REQ-ADAPTER-FLOOR-ENFORCE) is NOT touched. ONE ARM, THREE DIAGNOSTICS (doyle Q1 ruling, extended 2026-08-22 by measurement): an absent stage, an empty `product_version` (`#[serde(default)]` on both metadata types — pre-v0.3.2 releases really do parse to an empty string), and metadata that parses as NEITHER type all take the SAME degrade to the running core but must NOT share a message, because the operator's next step differs: nothing to do, an old release, and inspect your stage. The third states the FACT and points AT the stage without diagnosing it, borrowing 'malformed' from the apply leg's own vocabulary so two arms of one run never name the same corrupt artifact differently; the second offers predating-the-field as the LIKELY cause rather than the certain one, since any producer omitting the key yields the identical empty string. MERGING THE THIRD INTO THE SECOND IS SPECIFICALLY FORBIDDEN: telling an operator their release predates a field when the artifact is DAMAGED is a benign explanation offered for a corruption condition. THE THIRD ARM IS DEFENCE IN DEPTH AGAINST A STATE THE RUN SHOULD ALREADY HAVE REFUSED, and this is recorded here because the arm will otherwise look like dead code to the next reader and be deleted: in a COMPOSITE it is almost unreachable BY CONSTRUCTION — the core legs reject a malformed stage as a FAULT (RejectReason::Malformed, UPDATE_APPLY_REJECTED, exit 1 and not 3, since an integrity failure is not a policy decline) and composite_abort_on_failure is true for BOTH FetchApply and Fetch, so the run aborts before an adapters leg exists. It is reached only when a core leg exited 0 over an already-corrupt stage (a fetch with nothing new to pull) or when the stage changed after that leg ran, which is why its sentence names both possibilities and asserts neither. MEASURED REACHABILITY, one door only (relcache.rs:330-351): corruption at the SignedRelease envelope dies at `.ok()?` and yields None, indistinguishable from no stage and correctly reported as such — only inner metadata that parses as neither type, WITH an artifact on disk, falls to the `else if` and reaches the seam as Some. READING `product_version` HERE DOES NOT VIOLATE ITS OWN WARNING, stated in this title so the next reader meets the warning before they meet the use: that field's doc forbids using it to decide WHICH RELEASE IS NEWER — the monotonic `version` counter is the ordering authority and this requirement does not touch ordering — it does not forbid reading it as the semver a declared floor is compared against, provided it comes from the verified signed metadata, which is the only place this reads it from. Gate: doc — the CONTEXT.md adapter-manifest-header clause restated as the ruled cadence (the sentence this requirement delivers), the CONTEXT.md update-composite entry's floor-gate phrase, and MANIFEST.md's enforcement note, each naming WHICH core the floor is judged against; impl — the comparison-version parameter on `cmd_adapter_update` threaded to both the peek and `register_with_core`, the composite leg's staged-version read off the verified metadata, and the two-diagnostic loud degrade; unit — an adapter flooring on the FETCHED core is ADMITTED by the composite AND its record registers at the new version, the bare verb and its alias still compare against the running CLI, and the empty-`product_version` and absent-stage degrades each render their own diagnostic and fall back rather than refusing.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2763626Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2763864Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2764114Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2764344Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2764574Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2764816Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2765053Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2765312Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2765561Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2765799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2766075Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2766326Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2766554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2766791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2767063Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2767315Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2767545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2767779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2768070Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2768322Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2768555Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2768793Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2769104Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2769351Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2769606Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2769854Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2770088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2770388Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2770637Z               "line": 2494
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2770874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2771108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2771403Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2771652Z               "line": 9476
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2771889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2772119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2772425Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2772683Z               "line": 21055
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2772917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2773166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2773465Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2773823Z               "line": 21162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2774056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2774294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2774604Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2774852Z               "line": 21181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2775095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2775328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2775633Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2775877Z               "line": 21205
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2776116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2776345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2776644Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2776896Z               "line": 21265
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2777128Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2777399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2777686Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2777938Z               "line": 21871
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2778180Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2778425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2778734Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2779053Z               "line": 21955
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2779288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2779517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2779819Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2780066Z               "line": 22117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2780310Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2780544Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2780775Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2781014Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2781277Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2781535Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2781764Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2782011Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2782263Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2782515Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2782742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2783047Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2783434Z               "line": 28396
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2783682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2783924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2784216Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2784468Z               "line": 28440
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2784703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2784941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2785234Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2785488Z               "line": 28463
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2785717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2785951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2786250Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2786498Z               "line": 28487
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2786741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2786972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2787263Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2787512Z               "line": 28528
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2787754Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2787994Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2788231Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2788459Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2788693Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2788923Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2789304Z       "id": "REQ-ADAPTER-GH-TRANSPORT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2792932Z       "title": "The `gh_release` avenue (and `spt adapter add --release`) gain a fetch `transport`: `https` (current reqwest direct, public), `gh` (shell the pre-authorized `gh` CLI — the private-repo path; `gh` honors OAuth and `GH_TOKEN`, so spt custodies no token), or `auto` (default: prefer `gh` when installed+authed, else HTTPS). `--gh`/`--https` force it on `add`. Additive over the existing fetch path; verify->extract->register downstream is unchanged. (v0.13.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2793207Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2793446Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2793684Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2793927Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2794165Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2794409Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2794666Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2794930Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2795315Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2795559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2795823Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2796081Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2796315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2796554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2796840Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2797101Z               "line": 707
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2797336Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2797579Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2797823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2798063Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2798323Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2798577Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2798820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2799267Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2799520Z               "line": 784
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2799764Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2800002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2800360Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2800617Z               "line": 839
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2800854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2801088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2801387Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2801639Z               "line": 9810
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2801882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2802111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2802416Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2802669Z               "line": 9832
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2802903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2803141Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2803436Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2803691Z               "line": 10365
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2803934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2804172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2804458Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2804874Z               "line": 10377
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2805111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2805350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2805645Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2805894Z               "line": 10406
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2806134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2806369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2806664Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2806923Z               "line": 10640
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2807152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2807390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2807685Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2807942Z               "line": 20679
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2813168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2813434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2813749Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2814010Z               "line": 21977
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2814246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2814480Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2814795Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2815057Z               "line": 22186
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2815290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2815524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2815824Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2816078Z               "line": 22256
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2816311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2816549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2816844Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2817102Z               "line": 22282
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2817340Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2817572Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2817807Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2818041Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2818303Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2818551Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2818789Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2819093Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2819354Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2819626Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2819858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2820302Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2820560Z               "line": 26225
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2820793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2821027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2821327Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2821589Z               "line": 26243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2821829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2822060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2822372Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2822630Z               "line": 26463
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2822859Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2823089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2823389Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2823641Z               "line": 26479
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2823879Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2824114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2824415Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2824669Z               "line": 26506
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2824910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2825145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2825445Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2825698Z               "line": 26533
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2825941Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2826174Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2826408Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2826638Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2826861Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2827089Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2827380Z       "id": "REQ-ADAPTER-LIVE-UPDATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2836062Z       "title": "An adapter update is live and daemon-coordinated (the adapter analog of brain self-update, ADR-0004): for an endpoint with a running RESIDENT adapter binary (today the `[message-idle-translation-binary]`), the CLI keeps fetch+verify and hands the APPLY to the daemon over IPC, which per affected endpoint (1) STOPS the resident binary -> releases the OS file lock (fixes the Windows 'Access denied (os error 5)' overwrite failure), (2) swaps on disk ONLY files whose CRC differs from the staged archive (unchanged files + their still-running binaries untouched), (3) RE-CLONES the new on-disk manifest into the running `BrainLifecycle` (the in-memory manifest is cached at bringup and otherwise goes stale -> binaries+manifest back on the same page), (4) RESTARTS the resident binary from the new files. An endpoint NOT running -> CLI swaps directly (no lock, no cache). Only the resident class is cycled; ephemeral adapter binaries (Psyche loop, `[digest]` extractor, `[session.*]` runners, hooks) self-heal on next spawn and are excluded. The daemon keeps a per-endpoint registry of resident adapter children. (ADR-0025, v0.13.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2836452Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2836682Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2836925Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2837160Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2837393Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2837630Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2837875Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2838116Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2838378Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2838636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2838865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2839485Z               "path": "docs/adr/0025-live-daemon-coordinated-adapter-update.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2839738Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2839966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2840199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2840702Z               "path": "docs/adr/0025-live-daemon-coordinated-adapter-update.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2840950Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2841184Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2841417Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2841647Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2841894Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2842156Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2842399Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2842634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2842963Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2843228Z               "line": 1785
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2843459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2843826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2844175Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2844432Z               "line": 4585
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2844676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2844905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2845243Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2845497Z               "line": 4656
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2845746Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2845974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2846307Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2846561Z               "line": 5479
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2846799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2847037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2847366Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2847623Z               "line": 5827
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2847866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2848096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2848435Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2848691Z               "line": 5840
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2848928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2849257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2849602Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2849854Z               "line": 6049
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2850088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2850312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2850651Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2850897Z               "line": 9764
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2851133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2851368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2851706Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2851959Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2852188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2852425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2852759Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2853117Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2853355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2853594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2853939Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2854187Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2854425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2854653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2855001Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2855250Z               "line": 719
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2855488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2855718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2856066Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2856326Z               "line": 836
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2856548Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2856783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2857121Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2857373Z               "line": 844
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2857617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2857849Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2858202Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2858450Z               "line": 863
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2858689Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2858919Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2859333Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2859580Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2859817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2860042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2860362Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2860610Z               "line": 526
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2860840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2861076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2861390Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2861651Z               "line": 561
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2861885Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2862123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2862418Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2862670Z               "line": 21099
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2863024Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2863257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2863552Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2863802Z               "line": 21312
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2864036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2864262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2864555Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2864805Z               "line": 21553
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2865038Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2865270Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2865495Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2865734Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2865992Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2866244Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2866472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2866919Z               "path": "crates/spt/tests/live_adapt_translation_swap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2867183Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2867423Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2867657Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2867881Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2868128Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2868381Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2868629Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2868864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2869296Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2869545Z               "line": 12849
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2869777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2870011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2870344Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2870593Z               "line": 12892
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2870826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2871060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2871390Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2871641Z               "line": 12933
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2871880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2872112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2872558Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2872807Z               "line": 325
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2873050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2873278Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2873622Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2873869Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2874107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2874338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2874667Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2874913Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2875139Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2875369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2875703Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2875956Z               "line": 431
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2876184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2876417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2876761Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2877023Z               "line": 4486
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2877257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2877484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2877840Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2878092Z               "line": 4525
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2878326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2878550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2878893Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2879251Z               "line": 4571
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2879480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2879710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2880054Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2880308Z               "line": 4605
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2880542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2880776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2881115Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2881368Z               "line": 4657
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2881601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2881839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2882134Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2882506Z               "line": 39320
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2882747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2882976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2883267Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2883514Z               "line": 39489
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2883748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2883982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2884273Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2884526Z               "line": 39521
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2884758Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2884992Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2885218Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2885444Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2885671Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2885895Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2886219Z       "id": "REQ-ADAPTER-MULTIPLATFORM-SPT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2894360Z       "title": "A `.spt` adapter archive may pack multiple platforms in one signed asset: shared `manifest.toml` + `strings/` at the root, role binaries under per-Rust-target-triple subdirectories (ADR-0016 triple vocabulary, e.g. `x86_64-pc-windows-msvc/`); install/update extracts the shared root plus ONLY `current_platform()`'s triple subdir, flattened into `install_dir` so flat `<install_dir>/<program>` resolution (REQ-INSTALL-11) is unchanged. Name stays `adapter.spt` (plain-tar or gzip, `--asset` optional default); one whole-archive Ed25519 signature over the fat archive (REQ-UPD-9 single-artifact verify). A legacy flat archive (no triple subdirs) extracts as today (free back-compat); a multi-platform archive sets `min_spt_core_version >= 0.13.2` (forward-compat gate, readable before extract); a multi-platform archive missing the recipient's triple -> typed `NoArtifactForPlatform`, never a silent no-op. Large adapters may still split per-platform (single-triple archives via `--asset`, or ADR-0016 update-set machinery). (ADR-0024, v0.13.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2894637Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2894980Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2895214Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2895458Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2895696Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2895928Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2896170Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2896403Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2896665Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2896917Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2897152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2897634Z               "path": "docs/adr/0024-multi-platform-adapter-spt-packaging.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2897871Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2898099Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2898340Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2898576Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2898807Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2899141Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2899399Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2899632Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2899971Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2900234Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2900466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2900705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2901000Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2901244Z               "line": 10483
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2901481Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2901710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2901996Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2902245Z               "line": 10573
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2902474Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2902701Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2902931Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2903165Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2903419Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2903664Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2903886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2904177Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2904487Z               "line": 39155
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2904863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2905112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2905407Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2905802Z               "line": 39219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2906042Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2906276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2906569Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2906824Z               "line": 39262
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2907059Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2907307Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2907535Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2907782Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2908036Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2908280Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2908518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2908804Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2909164Z               "line": 39090
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2909414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2909677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2909968Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2910226Z               "line": 39107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2910460Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2910697Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2910931Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2911165Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2911395Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2911623Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2911941Z       "id": "REQ-ADAPTER-PROOF-DIR-OVERRIDE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2916197Z       "title": "The author-time proof commands (`spt adapter digest-proof`, `spt adapter translate-proof`) gain a `--dir <path>` / `--manifest <file>` override so an author proofs a DEV binary against an on-disk manifest+install dir WITHOUT staging a full extracted GhReleaseManaged install (mirrors digest-proof's `--sample` pointing straight at a file). Fixes perri F-011: a bare-file-added gh_release adapter currently can't be resolved by the *-proof commands ('manifest is not present yet at <dir>'); un-stales the bare-file digest-proof int. (perri F-011, v0.13.x DX)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2916463Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2916807Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2917043Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2917280Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2917528Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2917756Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2917999Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2918228Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2918496Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2918744Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2919059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2919455Z               "path": "docs-site/src/harness-contract/patterns.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2919710Z               "line": 373
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2919946Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2920181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2920461Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2920705Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2920943Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2921176Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2921406Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2921645Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2921901Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2922154Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2922402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2922707Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2922955Z               "line": 21009
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2923187Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2923416Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2923712Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2923961Z               "line": 21021
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2924190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2924427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2924717Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2924964Z               "line": 22377
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2925197Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2925430Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2925659Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2925898Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2926151Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2926403Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2926637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2926994Z               "path": "crates/spt/tests/translate_proof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2927237Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2927570Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2927803Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2928030Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2928263Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2928508Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2928756Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2929066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2929352Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2929599Z               "line": 26344
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2929828Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2930053Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2930275Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2930501Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2930722Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2930941Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2931275Z       "id": "REQ-ADAPTER-TEMPLATE-KEY-VALIDATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2937168Z       "title": "P-1 core half (WORKER-TRUTH triage): `adapter add`/`adapter update` validate every declared role template — command, cwd, and [env] inject values — against the substitution-key catalog (spt-runtime BASE_KEYS + role-specific overrides) and REFUSE registration naming the offending key + role (fail-fast family of the [strings] pointer validation). Field driver: flynn's psyche died on the RETIRED {psyche_dir} key (adapter psyche_resume carried the old psyche_init cwd shape) — a permanent template config fault must die loudly at registration, not at the Nth per-event psyche turn via the 3-strike budget. The catalog stays the single source (runtime.rs FILL_KEYS — 'a catalog key must have a real fill'); validation reads it, never a second list.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2937440Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2937670Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2937898Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2938126Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2938344Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2938581Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2938809Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2939152Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2939511Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2939744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2939992Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2940236Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2940479Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2940701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2941047Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2941292Z               "line": 1427
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2941525Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2941748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2942087Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2942334Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2942563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2942798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2943128Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2943371Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2943602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2943837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2944179Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2944427Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2944666Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2944889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2945223Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2945471Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2945706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2945928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2946259Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2946507Z               "line": 174
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2946736Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2946961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2947290Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2947533Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2947761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2947990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2948282Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2948531Z               "line": 21299
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2948766Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2949193Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2949422Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2949761Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2950022Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2950286Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2950515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2950858Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2951102Z               "line": 991
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2951338Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2951565Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2951798Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2952032Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2952299Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2952542Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2952776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2953114Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2953373Z               "line": 2779
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2953611Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2953839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2954200Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2954458Z               "line": 2794
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2954692Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2954921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2955265Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2955511Z               "line": 2806
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2955754Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2955988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2956326Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2956583Z               "line": 2819
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2956815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2957043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2957382Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2957635Z               "line": 2835
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2957864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2958102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2958442Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2958832Z               "line": 2854
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2959157Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2959388Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2959629Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2959854Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2960088Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2960316Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2960626Z       "id": "REQ-ADAPTER-TRANSLATE-PROOF",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2972179Z       "title": "`spt adapter translate-proof <adapter> --event <envelope> [--session <id>]` — the author-time EMIT-half proof tool for `[message-idle-translation-binary]` (ADR-0022), symmetric to `spt adapter digest-proof` (REQ-TERM-5). It spawns and feeds the adapter's declared translation binary EXACTLY as the daemon does at idle-delivery — running the REAL `spt_daemon::translation` driver VERBATIM (no protocol reimplementation): `TranslationChild::spawn` the binary, send the `{type:\"init\",endpoint_id,node}` line then the `{type:\"event\",envelope}` line, and read back the emitted `{key}`/`{text}`/`{delay_ms}`/`{commit}` keystroke-command stream — then prints it author-readable (each Key with its `key_to_bytes` rendering, Text quoted, Delay in ms, Commit marker) with counts. It fills the SAME `{id}`→option and `{session_id}`→(--session, else a placeholder) keys into the `--event` envelope the daemon fills at runtime, so an envelope that proofs here feeds faithfully live. EMIT-half ONLY: it proves the binary's spawn+feed+emit contract; it does NOT exercise the daemon's atomic PTY apply / controller-buffering (that stays covered by the W2 inject_control_wedge int gate) — `--help` says so. Exit codes mirror digest-proof: 0 ok, 1 on spawn-fail / zero commands / no-commit-or-output / unparseable, 2 when the adapter declares no `[message-idle-translation-binary]` section. The `TranslationChild` Drop does the bounded no-zombie reap. (v0.13.x)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2972462Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2972694Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2972923Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2973152Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2973385Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2973610Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2973849Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2974183Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2974445Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2974682Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2974910Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2975440Z               "path": "docs/adr/0022-spt-hosted-idle-delivery-translation-binary.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2975682Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2975906Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2976131Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2976355Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2976588Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2976842Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2977085Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2977314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2977603Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2977844Z               "line": 21020
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2978064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2978293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2978583Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2978826Z               "line": 22563
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2979146Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2979365Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2979595Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2979818Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2980076Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2980309Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2980542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2980898Z               "path": "crates/spt/tests/translate_proof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2981135Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2981369Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2981589Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2981828Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2982056Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2982313Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2982547Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2982777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2983070Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2983421Z               "line": 32003
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2983654Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2983879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2984170Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2984409Z               "line": 32075
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2984637Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2984861Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2985086Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2985311Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2985528Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2985753Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2986073Z       "id": "REQ-ADAPTER-UNRESOLVED-HINT-FORM",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2992272Z       "title": "F-034 leg a (perri/hertz field finding 2026-07-09): the ADAPTER_UNRESOLVED refusal hint must print a WORKING command form. It currently says 'pass --adapter <name[:profile]>', but --adapter is a `spt api` GROUP flag, NOT a `listen` flag — following the hint literally (`spt api listen <id> --adapter <name>`) produces clap `error: unexpected argument '--adapter'` (exit 2). Fix: the hint prints the group-level form, e.g. `spt api --adapter <name> <cmd> …` (a hint the operator can copy-paste and have work). Gate: the ADAPTER_UNRESOLVED message text carries a clap-VALID invocation (group-level --adapter placement) — a unit asserting the hint string parses under the api clap grammar, or at minimum places --adapter before the subcommand. Pure UX/hint-correctness fix, no behavior change.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2992549Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2992825Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2993060Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2993279Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2993516Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2993749Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2994005Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2994252Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2994477Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2994715Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2994964Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2995201Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2995426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2995783Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2996021Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2996359Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2996598Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2996822Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2997050Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2997309Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2997561Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2997781Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2998014Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2998266Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2998515Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2998742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2999165Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2999408Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2999641Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.2999866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3000147Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3000396Z               "line": 25680
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3000623Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3000852Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3001077Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3001311Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3001528Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3001746Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3002042Z       "id": "REQ-ADAPTER-UPDATE-INPLACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3006343Z       "title": "Bug #18: spt adapter update fails at re-register with os error 2 because it derives the install dir from the update repo NAME (_github/<safe>) instead of updating in place at the adapter record source_dir; when the adapter repo is intentionally renamed across releases (spt-claude-code to claude-spt, supported), the derived dir is fresh/empty and re-register reads a missing manifest. Fix: adapter update installs and re-registers in place at the registered source_dir and tolerates a changed update repo/URL across a rename. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #18.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3006605Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3006845Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3007178Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3007415Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3007644Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3007897Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3008154Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3008399Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3008631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3008865Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3009288Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3009534Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3009763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3010054Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3010303Z               "line": 20606
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3010530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3010759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3011055Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3011299Z               "line": 21999
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3011528Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3011746Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3011975Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3012198Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3012467Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3012715Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3012950Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3013179Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3013426Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3013674Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3013903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3014190Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3014438Z               "line": 39565
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3014669Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3014897Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3015120Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3015349Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3015564Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3015788Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3016074Z       "id": "REQ-ADAPTER-UPDATE-MESSAGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3020351Z       "title": "An adapter manifest may declare `[update].message` — a plain (multi-line) human notice surfaced to stdout, markdown-rendered (the v0.13.0 helpfmt prose path), ONLY when `spt adapter update` actually APPLIES an update (version changed), not on a no-op. Read from the newly-installed manifest; avenue-agnostic (gh_release/delegated/file_pull). No `{key}` substitution. Use: an adapter telling the operator a post-update action, e.g. spt-claude-code's \"run `/reload-plugins` in any ongoing sessions\". (v0.13.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3020628Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3020858Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3021090Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3021319Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3021549Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3021778Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3022006Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3022253Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3022498Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3022720Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3022984Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3023233Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3023457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3023681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3023948Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3024191Z               "line": 678
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3024420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3024649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3025036Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3025277Z               "line": 768
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3025504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3025719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3026000Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3026243Z               "line": 710
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3026472Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3026696Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3026916Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3027153Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3027396Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3027641Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3027865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3028202Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3028444Z               "line": 769
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3028778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3029093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3029383Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3029647Z               "line": 21597
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3029871Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3030100Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3030318Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3030545Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3030807Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3031054Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3031283Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3031512Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3031766Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3032008Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3032237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3032518Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3032771Z               "line": 26286
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3032991Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3033223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3033516Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3036774Z               "line": 26301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3037032Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3037313Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3037547Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3037771Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3037991Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3038210Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3038502Z       "id": "REQ-ADAPTER-UPDATE-POST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3046830Z       "title": "Composite adapter update — an avenue-agnostic `[update.post]` sub-table `{ command, self_verifies }` run AFTER the primary avenue (gh_release/file_pull/delegated) resolves, in the same `spt adapter update` (ADR-0029). Runs UNCONDITIONALLY (even on an adapter version no-op — the post-step's own idempotent check decides). PUBLISHED stdin JSON seam: one line `{adapter_applied, adapter_name, profile_name, version, previous_version, adapter_dir}` (additive keys; post-step ignores unknown). stdout decides the notice: custom text SUPERSEDES [update].message; a reserved sentinel fires the static [update].message; empty = no notice. exit code orthogonal (0 ok / nonzero failed). Precedence: dynamic-stdout > sentinel/manifest-message > nothing. NO [update.post] declared ⇒ today's adapter_applied→[update].message unchanged; post-step FAILS ⇒ loud warning + fall back to adapter_applied→message. FAILURE-ISOLATED: a committed gh_release pull is never rolled back if the post-step fails (independent channels). (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3047116Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3047344Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3047582Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3047807Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3048031Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3048250Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3048484Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3048709Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3049066Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3049307Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3049526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3049913Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3050165Z               "line": 829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3050394Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3050624Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3050896Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3051138Z               "line": 713
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3051367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3051600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3052088Z               "path": "docs/adr/0029-adapter-update-arc-resolve-not-execute.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3052328Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3052552Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3052784Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3053009Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3053243Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3053492Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3053734Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3053957Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3054291Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3054533Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3054755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3055105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3055434Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3055690Z               "line": 802
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3055914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3056143Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3056472Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3056717Z               "line": 1397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3056947Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3057170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3057456Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3057695Z               "line": 21612
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3057923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3058142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3058423Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3058667Z               "line": 21620
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3058891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3059206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3059487Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3059743Z               "line": 21631
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3059968Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3060197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3060487Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3060730Z               "line": 21654
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3060959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3061179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3061461Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3061703Z               "line": 22149
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3061927Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3062150Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3062376Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3062606Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3062859Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3063098Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3063330Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3063678Z               "path": "crates/spt/tests/adapter_post_step.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3063921Z               "line": 38
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3064146Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3064376Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3064599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3064832Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3065182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3065426Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3065650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3065994Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3066236Z               "line": 1918
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3066460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3066684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3066966Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3067209Z               "line": 26313
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3067432Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3067664Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3067887Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3068106Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3068326Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3068550Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3068832Z       "id": "REQ-ADAPTER-VERSION-CMD",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3072941Z       "title": "`spt adapter version <name>` prints a registered adapter's declared version — the EXISTING mandatory `[adapter].version` manifest field (manifest.rs already requires it; NOT a `[strings].version`, NOT `get-string`, no second version source). A new `AdapterCmd::Version{option}` resolves the option's merged view via `registry::resolve_option` like the sibling adapter subcommands and prints `manifest.adapter.version`; an unresolvable option errors (exit 1) the same way. (v0.13.2 W6)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3073213Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3073443Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3073672Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3073900Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3074120Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3074354Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3074578Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3074825Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3075058Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3075284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3075553Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3075794Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3076132Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3076357Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3076577Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3076820Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3077068Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3077306Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3077536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3077813Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3078058Z               "line": 20983
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3078285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3078510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3078791Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3079115Z               "line": 22306
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3079343Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3079568Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3079792Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3080016Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3080268Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3080511Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3080727Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3080963Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3081216Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3081460Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3081689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3081975Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3082222Z               "line": 26404
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3082447Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3082676Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3082958Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3083208Z               "line": 26439
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3083430Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3083655Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3083874Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3084097Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3084317Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3084532Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3084775Z       "id": "REQ-API-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3085238Z       "title": "api prefix and adapter_name on every machinery invocation",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3085486Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3085714Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3085947Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3086171Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3086392Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3086721Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3086955Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3087209Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3087452Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3087675Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3087904Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3088152Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3088387Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3088613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3088906Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3089235Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3089465Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3089689Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3089913Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3090137Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3090390Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3090625Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3090857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3091192Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3091438Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3091663Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3091887Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3092109Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3092335Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3092597Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3092884Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3093107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3093402Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3093640Z               "line": 1193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3093864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3094090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3094381Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3094619Z               "line": 1403
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3094849Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3095078Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3095301Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3095516Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3095845Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3096066Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3096313Z       "id": "REQ-API-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3096881Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3097134Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3097364Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3097591Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3097815Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3098031Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3098265Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3098497Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3098745Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3099074Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3099302Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3099534Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3099777Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3100016Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3100235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3100564Z               "path": "crates/spt-store/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3100802Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3101031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3101264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3101584Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3101824Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3102045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3102275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3102585Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3102828Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3103061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3103290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3103614Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3103848Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3104078Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3104309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3104631Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3104869Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3105094Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3105319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3105648Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3105904Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3106233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3106463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3106782Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3107021Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3107243Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3107470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3107799Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3108033Z               "line": 557
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3108257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3108481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3108800Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3109125Z               "line": 620
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3109353Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3109582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3109899Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3110147Z               "line": 705
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3110374Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3110604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3110914Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3111162Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3111381Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3111615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3111915Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3112149Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3112370Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3112643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3113111Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3113384Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3113660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3113873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3114179Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3114422Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3114643Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3114864Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3115082Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3115453Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3115697Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3115946Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3116174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3116522Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3116760Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3116998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3117247Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3117590Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3117851Z               "line": 172
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3118087Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3118320Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3118555Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3118794Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3119151Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3119419Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3119665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3120058Z               "path": "crates/spt-store/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3120298Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3120539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3120769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3121093Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3121346Z               "line": 1459
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3121593Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3121831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3122165Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3122418Z               "line": 1568
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3122653Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3122877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3123204Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3123451Z               "line": 1579
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3123676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3123905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3124239Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3124487Z               "line": 1969
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3124711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3124940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3125282Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3125534Z               "line": 2015
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3125890Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3126128Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3126439Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3126690Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3126920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3127149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3127464Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3127708Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3127935Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3128169Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3128392Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3128627Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3128847Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3129185Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3129444Z       "id": "REQ-API-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3129834Z       "title": "commune/signoff are file-drops, not commands",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3130092Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3130341Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3130575Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3130806Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3131052Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3131286Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3131524Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3131776Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3132029Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3132258Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3132497Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3132749Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3133006Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3133241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3133551Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3133797Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3134025Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3134260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3134585Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3134837Z               "line": 852
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3135071Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3135410Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3135642Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3135871Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3136141Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3136378Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3136616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3136945Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3137193Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3137427Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3137647Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3137875Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3138104Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3138349Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3138587Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3138814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3139197Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3139440Z               "line": 678
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3139670Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3139895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3140224Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3140470Z               "line": 2044
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3140695Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3140924Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3141149Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3141376Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3141598Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3141817Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3142069Z       "id": "REQ-API-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3145994Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3146251Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3146478Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3146715Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3146943Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3147171Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3147505Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3147739Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3147987Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3148231Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3148449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3148712Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3149032Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3149261Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3149488Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3149705Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3149935Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3150183Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3150426Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3150649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3150940Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3151179Z               "line": 941
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3151408Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3151636Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3151860Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3152093Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3152343Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3152596Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3152816Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3153045Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3153288Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3153525Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3153755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3154046Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3154290Z               "line": 1133
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3154513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3154736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3155023Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3155271Z               "line": 1157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3155493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3155723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3156019Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3156258Z               "line": 1181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3156582Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3156806Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3157028Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3157261Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3157489Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3157707Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3157985Z       "id": "REQ-API-ENDPOINT-INFO",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3166083Z       "title": "#7: spt api endpoint-info [<id>] (JSON) lets an endpoint learn its ATTACHED (controlling) node — claude-spt surfaces local + attached node names on UserPromptSubmit so the agent knows whether getting a file to the user needs extra steps (user RC'd in from another machine). spt api * is the harness-contract agent-facing surface (JSON-first, rides perch identity/auth so the bare no-<id> form self-resolves like whoami). Payload (committed DTO, additive-forever): { id, endpoint_type, adapter, local_node:{label,key}, attached_node:{label,key}|null, controlled:bool, project:<current project id>, cwd, subnets:[...] } — attached_node from controller stamps (driven_by remote / self-node when controlled with no remote driver), null when uncontrolled. HARD dependency on #2 + #3 (stamps must be honest first). Adapter-side consumable -> perri release-ping on publish. Naming: chose 'spt api endpoint-info' over alt 'spt endpoint get-info' — api is the agent surface (doc rationale). See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #7.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3166354Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3166583Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3166818Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3167042Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3167275Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3167495Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3167751Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3167996Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3168221Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3168450Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3168693Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3168935Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3169240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3169574Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3169828Z               "line": 1195
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3170057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3170390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3170721Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3170969Z               "line": 1207
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3171187Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3171417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3171736Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3171989Z               "line": 1261
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3172209Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3172442Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3172766Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3173004Z               "line": 1290
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3173241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3173464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3173788Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3174031Z               "line": 1301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3174260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3174494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3174818Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3175076Z               "line": 1320
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3175304Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3175527Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3175749Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3175979Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3176228Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3176477Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3176697Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3176928Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3177182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3177420Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3177646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3177970Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3178215Z               "line": 1413
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3178437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3178672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3179071Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3179424Z               "line": 1479
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3179658Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3179883Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3180110Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3180330Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3180551Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3180774Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3181020Z       "id": "REQ-ARCH-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3181356Z       "title": "Many small acyclically-layered crates",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3181615Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3181849Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3182072Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3182310Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3182535Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3182788Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3183030Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3183259Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3183489Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3183740Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3183980Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3184204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3184510Z               "path": "crates/spt-msg/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3184749Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3184987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3185215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3185516Z               "path": "crates/spt-proto/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3185754Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3185999Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3186222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3186516Z               "path": "crates/spt-store/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3186759Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3186984Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3187222Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3187451Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3187680Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3187924Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3188167Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3188390Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3188615Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3188866Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3189207Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3189436Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3189651Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3189998Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3190223Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3190476Z       "id": "REQ-ARCH-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3190938Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3191191Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3191430Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3191657Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3191907Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3192141Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3192404Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3192646Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3192903Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3193137Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3193386Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3193630Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3193852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3194176Z               "path": "crates/spt-runtime/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3194426Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3194656Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3194879Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3195122Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3195366Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3195624Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3195876Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3196104Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3196357Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3196615Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3196869Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3197099Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3197329Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3197559Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3197777Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3198030Z       "id": "REQ-ARCH-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3198597Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3198865Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3199184Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3199422Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3199652Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3200001Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3200244Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3200511Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3200774Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3200998Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3201240Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3201493Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3201737Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3201967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3202303Z               "path": "crates/spt-proto/src/version.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3202553Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3202782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3203016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3203349Z               "path": "crates/spt-proto/src/version.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3203593Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3203826Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3204065Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3204290Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3204523Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3204783Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3205053Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3205292Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3205540Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3205797Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3206044Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3206279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3206612Z               "path": "crates/spt-proto/src/version.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3206865Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3207095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3207328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3207659Z               "path": "crates/spt-proto/src/version.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3207908Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3208142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3208367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3208701Z               "path": "crates/spt-proto/src/version.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3209039Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3209272Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3209510Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3209735Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3209972Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3210198Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3210427Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3210799Z       "id": "REQ-ARCH-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3211286Z       "title": "Copy-verbatim the commodity layer from the sister project",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3211543Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3211781Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3212020Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3212245Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3212483Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3212710Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3212966Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3213209Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3213446Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3213676Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3213929Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3214177Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3214400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3214725Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3214968Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3215220Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3215444Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3215781Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3216028Z               "line": 405
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3216266Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3216496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3216814Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3217064Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3217292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3217520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3217830Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3218078Z               "line": 461
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3218302Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3218529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3218840Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3219198Z               "line": 475
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3219431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3219660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3219971Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3220322Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3220556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3220782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3221091Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3221335Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3221560Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3221789Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3222012Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3222237Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3222490Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3222738Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3222966Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3223190Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3223437Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3223678Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3223902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3224193Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3224437Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3224660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3224898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3225218Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3225465Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3229104Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3229362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3229695Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3229939Z               "line": 615
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3230169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3230397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3230711Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3230954Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3231181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3231414Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3231724Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3231971Z               "line": 659
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3232191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3232416Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3232730Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3232988Z               "line": 670
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3233216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3233574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3233901Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3234143Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3234367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3234591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3234906Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3235148Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3235382Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3235607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3235922Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3236165Z               "line": 706
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3236392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3236630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3236934Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3237177Z               "line": 717
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3237405Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3237640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3237954Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3238202Z               "line": 734
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3238432Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3238649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3239052Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3239293Z               "line": 862
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3239518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3239741Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3240047Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3240284Z               "line": 959
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3240504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3240729Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3240942Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3241161Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3241387Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3241609Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3241887Z       "id": "REQ-ATTACH-AWAY-ALERTS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3258107Z       "title": "AN ENDPOINT LEFT UNATTACHED FOR FIVE MINUTES IS TOLD SO, ONCE, ON THE HOOK CHANNEL, AND TOLD AGAIN WHEN SOMEONE COMES BACK -- BUT ONLY IF IT WAS TOLD THE FIRST TIME (releases#45, rides REQ-ATTACH-LINK-PUSH). THE AWAY TEXT IS THE TICKET'S, VERBATIM, AND IS NOT OURS TO REWORD: it tells the agent to proceed but not to assume the user can see its output, to WITHHOLD user-aimed information until a controller or viewer attaches, that it will be notified when that happens, and -- second paragraph -- to share such information with viewed-and-relevant same-node endpoints it is actively collaborating with while avoiding unwarranted comms. It lives as ONE CONSTANT so the wording has a single home and its verbatim-ness is auditable at a glance rather than reconstructed from a formatter. IT IS SENT active_only, WHICH IS THE POINT AND NOT A DETAIL: active_only is the spool-only hook channel with NO live TCP and NO wake, so a message about nobody watching cannot itself be the thing that wakes an agent -- it arrives at the next turn boundary, which is the only moment the agent can act on it anyway. FIRE-ONCE LIVES IN THE CONDITION, NEVER IN A NOW-SIGNAL SEEN-SET (doyle, 2026-08-30): the away/return pair is delta-disciplined by construction -- away fires on the unattached edge at five minutes and latches, return fires on the re-attach edge and clears the latch -- so borrowing a seen-set would put the same fact under two disciplines and make which one is authoritative a question. THE RETURN NOTICE FIRES ONLY IF AWAY FIRED: an agent that was never told nobody was watching must not be told someone came back, because the second message is meaningless without the first. Its wording is NOT fixed by the ticket, which asks only for a short reciprocal message that may assume the agent remembers the away context -- so it is authored here, short, and deliberately does not restate what the away message said. RE-ATTACHMENT IS ANY ATTACHMENT: a controller or a viewer, from any node, ends the away condition, because the away message's own promise is about a controller OR viewer attaching and a notice that honoured a narrower rule than the promise would be a broken promise.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3258491Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3258811Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3259126Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3259350Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3259580Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3259808Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3260041Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3260286Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3260527Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3260751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3261085Z               "path": "docs-site/src/terminal/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3261323Z               "line": 38
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3261553Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3261777Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3261995Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3262229Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3262479Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3262719Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3262946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3263294Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3263542Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3263762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3263985Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3264319Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3264562Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3264791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3265017Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3265355Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3265596Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3265823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3266038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3266381Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3266620Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3266842Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3267062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3267396Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3267744Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3267969Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3268191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3268537Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3268780Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3269162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3269390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3269734Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3269968Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3270202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3270422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3270775Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3271015Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3271240Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3271469Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3271803Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3272051Z               "line": 438
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3272274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3272503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3272841Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3273085Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3273312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3273535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3273854Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3274097Z               "line": 5677
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3274322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3274550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3274870Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3275108Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3275342Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3275562Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3275786Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3276009Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3276256Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3276502Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3276726Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3276955Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3277213Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3277455Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3277680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3278120Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3278366Z               "line": 684
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3278585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3278813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3279236Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3279479Z               "line": 709
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3279703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3279931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3280275Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3280514Z               "line": 744
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3280743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3280967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3281306Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3281547Z               "line": 759
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3281772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3282006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3282344Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3282592Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3282820Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3283044Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3283265Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3283497Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3283711Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3283935Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3284229Z       "id": "REQ-ATTACH-IDEMPOTENT-REPLAY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3298910Z       "title": "The equal-generation lease rung is idempotent for the same connection. (ADR-0047 decision 3, AMENDING ADR-0044's ladder inside the equal-gen rung; hertz v0.39.4 field bug 4, PINNED via OBS breadcrumbs on authorized same-seam `daemon refresh` 2026-07-22 — gen+1 premise FALSIFIED.) TODAY: a Control/Take subscribe with same identity + same nonzero gen classifies 'same lease, silent re-take' (broker.rs equal-gen branch — correct, no revoke) but re-take = become_controller, which unconditionally takes+drops the prior seat (writer exits channel-closed) with NO same-conn check — designed for the dead-seat dispatcher-restart successor, it also fires against the SAME LIVE conn re-served 15ms apart by post-cycle dispatcher replay: the lease kills its own writer, the rc viewer freezes until detach+re-attach (the field 'update freezes PTYs'). FIX: keyed (endpoint/session, by, conn, gen) — same-conn equal-gen = IDEMPOTENT REPLAY: seat + writer PRESERVED, no controller-replaced, no second initial batch; breadcrumb answers decision=idempotent (additive vocab). Equal-gen DIFFERENT-conn keeps today's silent swap (the ADR-0038 fix-6 successor — must not regress); strictly-newer keeps loud supersession, strictly-older keeps busy. BANKED open question (build-time look, not a blocker): why the dispatcher double-served one held attach 15ms apart — may have siblings. Gate: impl — the same-conn discriminator in resolve_subscribe's equal-gen branch + the idempotent decision label; unit — the four ladder cells (same-conn idempotent / different-conn swap / newer supersedes / older busy) against a mock seat; int — the bug-4 rig: replay one held Attach after a brain refresh, assert ONE writer + zero controller-replaced + the original rc interactive (RED-first), plus the different-conn successor leg stays green (redispatch/brain_swap suites).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3299414Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3299649Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3299886Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3300112Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3300333Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3300561Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3300794Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3301042Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3301281Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3301510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3301962Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3302202Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3302426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3302667Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3302892Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3303121Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3303469Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3303717Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3303935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3304264Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3304512Z               "line": 2948
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3304738Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3304964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3305291Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3305539Z               "line": 3128
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3305759Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3305984Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3306202Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3306426Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3306674Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3306903Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3307131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3307567Z               "path": "crates/spt-daemon/tests/attach_idempotent_replay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3307817Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3308044Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3308273Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3308497Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3308730Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3309064Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3309298Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3309527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3309847Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3310100Z               "line": 12093
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3310326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3310554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3310874Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3311117Z               "line": 12159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3311340Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3311560Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3311784Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3312003Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3312223Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3312442Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3312818Z       "id": "REQ-ATTACH-LINK-PUSH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3330285Z       "title": "AN OWNED SHELL OBSERVES ITS OWNER'S ATTACHMENT STATE AS AN ATTACHMENT FRAME ON THE EXISTING SHELL-LINK EVENT STREAM (releases#44). The SIBLING of REQ-ACTIVITY-LINK-PUSH in every structural respect, and deliberately so: link-scoped (the owner is implied by the link token, no new verb and no addressing surface), drive-class semantics -- ephemeral, latest-wins, CURRENT-STATE-CARRYING, so a redundant same-state resend is a harmless no-op the consumer derives edges from -- NEVER spooled and NEVER replayed, because a stale attachment is actively wrong rather than merely old. Current state is emitted on EVERY link establishment and re-link, which is what makes restart resync free. Bounded observation, sub-second class, never hard-real-time. IT GETS ITS OWN DriveHub SLOT CLASS: latest-wins is only correct WITHIN a class that supersedes itself, so an attachment push must never be able to eat an undelivered drive command or an activity frame, nor they it. WHAT THE FRAME CARRIES: whether a controller is attached and from which NODE, how many read-only viewers are attached and from which NODES, and which node CHANGED on this edge. THE VIEWER NODE LIST IS RETAINED IN-MEMORY ON THE BROKER'S ViewerSink FOR FRAME COMPOSITION ONLY, and that bound is part of the requirement rather than an implementation note: THE DURABLE CONTROL TRIPLE (driven_by / controlled / viewer_count) IS UNCHANGED, and durable viewer identity, if it is ever wanted, is ITS OWN REQUEST (kin: the register's IR-72 custody-surface gap -- noted in a comment, never built toward). The measurement that justifies retaining it at all: the viewer's origin node ALREADY REACHES the broker on the attach path (attach.rs attach_as_viewer_snap -> brain.rs subscribe_with `by`) and is DROPPED on the floor by a ViewerSink that keeps only tx/send/evicted/writer -- reachable-and-discarded on the correct write path, which is materially different from a source that was never built in the arm at all (releases#11b) and is why this is a retention rather than a board request. Gate: int -- a live shell link sees an attachment frame on controller attach and detach and on viewer attach and detach, naming the changed node; a re-link re-emits current state; and an attachment change during link-down is represented by the re-link's current-state emit, never by a replayed backlog.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3330566Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3330799Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3331024Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3331254Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3331475Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3331698Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3331926Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3332155Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3332403Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3332641Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3332866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3333176Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3333423Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3333647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3333872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3334159Z               "path": "docs/FLAKE-LEDGER.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3334404Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3334628Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3334853Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3335073Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3335300Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3335549Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3335788Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3336012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3336351Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3336597Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3336824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3337048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3337382Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3337620Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3337843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3338167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3338506Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3338759Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3339064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3339295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3339630Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3339871Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3340096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3340321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3340659Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3340902Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3341126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3341345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3341689Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3341931Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3342155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3342381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3342724Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3342972Z               "line": 223
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3343201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3343431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3343765Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3344003Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3344232Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3344460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3344799Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3345041Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3345265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3345489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3345832Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3346071Z               "line": 314
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3346300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3346523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3346858Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3347100Z               "line": 337
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3347324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3347555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3347989Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3348233Z               "line": 476
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3348456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3348685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3349100Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3349338Z               "line": 508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3349563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3349788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3350110Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3350350Z               "line": 147
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3350575Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3350795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3351110Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3351352Z               "line": 1189
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3351581Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3351815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3352134Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3352388Z               "line": 2879
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3352609Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3352836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3353156Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3353395Z               "line": 3536
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3353613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3353842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3354152Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3354396Z               "line": 3555
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3354621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3354839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3355163Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3355401Z               "line": 3571
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3355621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3355843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3356158Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3356402Z               "line": 3605
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3356730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3356955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3357284Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3357524Z               "line": 5676
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3357745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3357967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3358287Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3358521Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3358750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3359050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3359379Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3359617Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3359846Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3360072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3360405Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3360641Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3360868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3361097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3361421Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3361670Z               "line": 348
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3361897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3362127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3362450Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3362699Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3362924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3363150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3363477Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3363721Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3363945Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3364169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3364493Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3364731Z               "line": 429
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3364965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3365190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3365514Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3365757Z               "line": 539
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3365984Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3366204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3366637Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3366891Z               "line": 912
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3367120Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3367348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3367677Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3367920Z               "line": 940
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3368149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3368377Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3368723Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3369048Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3369271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3369491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3369801Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3370044Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3370269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3370496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3370826Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3371068Z               "line": 652
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3371302Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3371528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3371852Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3372095Z               "line": 661
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3372334Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3372554Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3372772Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3372996Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3373250Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3373489Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3373715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3374065Z               "path": "crates/spt/tests/attach_link_push_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3374305Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3374534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3374753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3375102Z               "path": "crates/spt/tests/attach_link_push_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3375459Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3375688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3375916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3376274Z               "path": "crates/spt/tests/attach_link_push_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3376526Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3376751Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3376973Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3377193Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3377422Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3377666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3377908Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3378133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3378471Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3378719Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3379036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3379264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3379598Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3379845Z               "line": 555
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3380065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3380313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3380646Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3380891Z               "line": 576
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3381129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3381348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3381690Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3381926Z               "line": 587
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3382155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3382373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3382751Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3382989Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3383218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3383448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3383800Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3384044Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3384266Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3384488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3384822Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3385075Z               "line": 634
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3385303Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3385633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3385962Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3386199Z               "line": 1160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3386423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3386649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3386973Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3387209Z               "line": 1181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3387466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3387692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3388016Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3388259Z               "line": 1213
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3388478Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3388702Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3388922Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3389241Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3389478Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3389700Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3389990Z       "id": "REQ-ATTACH-RESIZE-REPAINT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3408163Z       "title": "RESCOPED 2026-07-22 by ADR-0047 Amendment 2 (doyle-ratified): this REQ no longer asserts a defect. Its original claim — that the attach-stream resize never arms the presentation barrier, and that this is v0.39.4 field bug 3's root — is RETRACTED; the W3 bisect falsified it three ways (static trace send_attach_resize -> serve_attach Resize arm -> brain.resize -> KIND_RESIZE -> dispatch_resize -> begin_resize_serialized; the synthetic sibling's pass; the broker's dynamic trace attach -> RESIZE_DISPATCH -> SYNC_PUSH{controller=true} with no RESIZE_SYNC_DROP) and then pinned the real root in the rc CLIENT's console mode (REQ-RC-NEWLINE-PRESENTATION-TRUTH / KNOWN-HAZARDS 7.56). The ADR-0047 Amendment 1 DECISION (geometry change = one transaction, one exit shape, any entry) stands on its own merits and is not disturbed. WHAT THIS REQ NOW OWNS — the captured-shape regression apparatus that the bisect proved worth keeping: hertz's ENLYZEAM production capture + its integrity pins (*.log -text, the fixture README sha256 table, per-record length refusal in both the player and the reader); the capture-player replay vehicle; and the probe ladder that makes any verdict from it mean something — vehicle transparency per CELL (ConPTY re-renders, so byte equality is unsatisfiable by construction), the pre-state soundness self-check (narrow-captured bytes into a wide authority is sound only if absolutely addressed), the capability probe re-run at every shape revision with its own precondition asserted, and the no-vehicle control (grid+resize+repaint over the same bytes = 0 divergent rows, the standing proof the seam is clean). Oracle clauses are binding for this rig class and are written out in Amendment 2. Gate: unit — the vehicle-transparency predicate + its non-vacuity sibling + the record-integrity refusals; int — the client-model rig pair (rc-fixed vehicle = clean, rc vehicle = reproduces the field scrap) plus the no-vehicle control. NO impl stage: there is no broker-side implementation owed, and pretending otherwise would point an activated stage at evidence that does not exist. Kin: REQ-RC-NEWLINE-PRESENTATION-TRUTH (the actual fix), REQ-RESIZE-INPUT-MODE-INTEGRITY (7.55, untouched — its capture has no replay vehicle in its path).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3408558Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3408783Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3409098Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3409322Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3409559Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3409783Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3410037Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3410281Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3410503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3410805Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3411045Z               "line": 868
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3411273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3411501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3411951Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3412199Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3412523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3412755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3413201Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3413446Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3413673Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3413897Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3414121Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3414354Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3414612Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3414850Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3415075Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3415303Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3415546Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3415786Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3416008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3416411Z               "path": "crates/spt-daemon/tests/attach_resize_capture.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3416659Z               "line": 365
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3416897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3417117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3417536Z               "path": "crates/spt-daemon/tests/attach_resize_capture.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3417770Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3418005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3418228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3418639Z               "path": "crates/spt-daemon/tests/attach_resize_capture.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3418880Z               "line": 425
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3419190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3419419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3419824Z               "path": "crates/spt-daemon/tests/attach_resize_capture.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3420067Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3420287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3420517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3420921Z               "path": "crates/spt-daemon/tests/attach_resize_repaint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3421158Z               "line": 321
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3421389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3421718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3422129Z               "path": "crates/spt-daemon/tests/attach_resize_repaint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3422371Z               "line": 343
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3422601Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3422821Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3423049Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3423278Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3423535Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3423780Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3424001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3424415Z               "path": "crates/spt-term/tests/capture_vehicle_fidelity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3424652Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3424876Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3425105Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3425330Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3425549Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3425773Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3426003Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3426332Z       "id": "REQ-ATTACH-SEED-REQUEST-DOUBLE-SERVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3443063Z       "title": "A dispatcher-SEEDED attach Request is honored ONCE — the wire replay's copy of that same Request must not re-establish it. (Seed: DAEMON-LIFECYCLE W1 build, answering ADR-0047 decision 3's banked open question; origin CODE-PROVEN, not inferred.) THE ORIGIN: serve_attach (spt-daemon/src/attach.rs) processes the dispatcher-pinned `seed_request` through handle_attach_request BEFORE its event loop (ADR-0038 B, the durable-opener seed — it exists because a ROLLED ring can no longer replay the Request). It then subscribes the stream from the floor and enters the loop, whose `AttachRecord::Request` arm calls handle_attach_request UNCONDITIONALLY — there is NO `!attached` guard, and NO record that the seed already established this exact Request. When the ring has NOT rolled, the wire replay still carries that Request, so the SAME record is handled TWICE on the SAME conn, milliseconds apart, with identical (session_id, from_seq, intent, gen, identity) — exactly hertz's v0.39.4 bug-4 capture (conn1011, 15ms apart, post-refresh replay). The two arms are the same function on the same seed record; the seed is pinned by the dispatcher on the post-cycle replay, which is the field trigger. SIBLINGS to check at triage: any other serve family that seeds an opener record AND re-reads it from the replay (xfer/rest seeds), and whether a re-established seat should also re-run the access check. FIX SHAPE (not built, W1 deliberately shipped the broker-side idempotence instead): the serve worker knows it already honored a Request — a guard on the loop's Request arm (already attached + same record = ignore), which fixes the ORIGIN rather than absorbing it at the broker. The broker idempotence stays regardless: it closes the symptom for EVERY origin, including origins not yet found. A serve-path int rig replaying the REAL double-serve shape belongs to this REQ, not to W1 (doyle ruling 2026-07-22: do not simulate a behavior we have not explained). Kin REQ-ATTACH-IDEMPOTENT-REPLAY (the broker-side absorber), REQ-STREAM-OPENER-DURABLE (why the seed exists), ADR-0038 B.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3443363Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3443612Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3443849Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3444106Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3444354Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3444580Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3444809Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3445064Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3445315Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3445549Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3445777Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3446039Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3446283Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3446517Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3446751Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3447003Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3447250Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3447476Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3447707Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3447929Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3448253Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3448534Z       "id": "REQ-BENCH-STEP-LEDGER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3463398Z       "title": "BUILD-STEP TIMINGS ARE RECORDED AS ONE JSONL ROW SHAPE, READ ON DEMAND, AND GATE NOTHING. Coverage is CI workflow steps AND the local mechanical steps agents invoke on this box (gate-rig prebuilds, wave gate lanes, assembly compile-gate, release packaging) -- the local gate builds are the largest measured wall-clock sink and are invisible to CI timing entirely. Instrumentation lives in the workflow and in xtask timing wraps; it is NOT an spt binary feature. ONE ROW SHAPE: step name, sha or input-key, host, duration, timestamp -- plus an ok flag, because an aggregate that blends a three-second failure with a twenty-minute success under one step name describes neither, so failures are excluded rather than averaged in. TWO WRITERS, ONE FORMAT: the local wrap is xtask, the CI wrap is a shell snippet (the xtask binary cannot time the build that produces it), and a parity test pins the snippet against the single field list, because a format that drifts silently makes the history unreadable at exactly the moment somebody wants a trend. THE LEDGER IS NEVER COMMITTED: CI emits a per-run artifact, local steps append to a gitignored directory; a hand-maintained ledger file in git is the conflict-magnet class every lane would touch. REDUNDANCY IS KEYED ON THE INPUT, never on the run count: two runs of one step at the SAME key is repeated work and two runs at DIFFERENT keys is just work, and a counter that cannot tell them apart flags every honest build as waste; a repeat is reported as a CANDIDATE, since a rerun after a fix is legitimate. WRAPPING IS TRANSPARENT: the wrapped command's stdio is inherited untouched and its exit code is propagated, so instrumenting a step cannot change what that step does or how a caller reads it. Consumption is `xtask bench-report` on demand, read at milestone close-out, findings become filings. NO dashboard and NO per-run regression gate: this box's wall-clock moves with whatever else is building on it, so a threshold would manufacture reds out of load.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3463793Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3464035Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3464263Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3464483Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3464713Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3464941Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3465194Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3465437Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3465662Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3465890Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3466141Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3466384Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3466602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3466917Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3467159Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3467389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3467618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3467909Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3468156Z               "line": 3487
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3468390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3468624Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3468913Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3469245Z               "line": 3535
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3469469Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3469692Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3469917Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3470152Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3470403Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3470651Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3470875Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3471101Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3471353Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3471590Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3471824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3472120Z               "path": "crates/xtask/src/bench.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3472373Z               "line": 328
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3472595Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3472834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3473239Z               "path": "crates/xtask/src/bench.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3473487Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3473712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3473939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3474232Z               "path": "crates/xtask/src/bench.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3474471Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3474700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3474925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3475282Z               "path": "crates/xtask/tests/bench_row_parity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3475525Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3475749Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3475973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3476316Z               "path": "crates/xtask/tests/bench_row_parity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3476556Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3476778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3477005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3477352Z               "path": "crates/xtask/tests/bench_row_parity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3477596Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3477825Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3478048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3478406Z               "path": "crates/xtask/tests/bench_row_parity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3478644Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3478873Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3479188Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3479421Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3479647Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3479867Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3480087Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3480368Z       "id": "REQ-BIND-HONEST-SELF-STAMP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3491432Z       "title": "C2-ROOT (F028, doyle RCA 2026-07-03): the identity-attribution ROOT behind REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION — three composing defects let a psyche-hosted SessionStart hook stamp a FOREIGN perch: (1) roster::detect_self_id leg (a) scans the owlery ONE level (roster.rs:107 read_dir(owlery)) so a NESTED psyche perch owlery/<parent>/nested/<id>-psyche can never self-resolve; (2) [session.psyche_init] (claude-spt manifest ~L347) spawns the psyche with NO env_remove + no pinned child identity, so whatever OWL_SESSION_ID/SPT_AGENT_ID reaches the child resolves to a foreign top-level perch; (3) the hook then writes info.json (session_id/pid rebind) + sessions.log on the mis-resolved victim. FIX (spt-core half): (i) identity PINNED at spawn — ManifestRuntime role spawns inject the child's OWN SPT_AGENT_ID=<child perch id> + OWL_SESSION_ID=<child session>, AND detect_self_id enumerates NESTED perches (fix the one-level owlery scan); (ii) BIND HONESTY — a session-start stamp may only write a perch whose resolved id AFFIRMATIVELY matches; never a fallback pick; refuse + loud-skip when unresolved (kin REQ-MSG-CLI-ORIGIN honest-default + #9 ancestry). ADAPTER half = PERRI touchpoint (psyche_init env scrubbing / relies on runtime pinning; hook loses silent fallback-perch behavior) — FLAG doyle BEFORE any manifest move (adapter glue-model rule). See triage C2 fix (i)+(ii).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3491719Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3491958Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3492182Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3492420Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3492648Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3492920Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3493158Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3493410Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3493654Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3493873Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3494102Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3494345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3494593Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3494823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3495140Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3495386Z               "line": 1083
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3495615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3495844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3496140Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3496383Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3496717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3496950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3497255Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3497493Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3497723Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3497945Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3498171Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3498397Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3498645Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3498882Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3499192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3499594Z               "path": "crates/spt/tests/bind_honest_cross_perch_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3499836Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3500065Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3500290Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3500512Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3500738Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3500983Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3501226Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3501464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3501779Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3502026Z               "line": 602
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3502260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3502480Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3502771Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3503009Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3503231Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3503451Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3506648Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3506910Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3507138Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3507367Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3507719Z       "id": "REQ-BIND-PSYCHE-CUSTODY-SQUAT-GUARD",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3515041Z       "title": "MSG-IDENTITY W1 / F-036 leg c (perri field RCA, doyle ACCEPTED defense-in-depth): a bind whose --set-session-id equals a NESTED psyche perch's own custody sid is definitionally wrong and MUST be refused — core owns psyche-custody.json and can see the collision at bind time. ROOT CONTEXT: with the F-036 env leak, each stolen bind carried a psyche sid as the new pin; the identity-env sanitize (leg a) removes the known vector, this guard makes the CLASS unreachable (any future vector that tries to rotate a real endpoint's perch onto a psyche's custody sid is refused loud). Gate: a bind attempt whose target sid appears in psyche-custody.json as a psyche's OWN sid is REFUSED with a distinct loud token (unit: custody-sid collision refuses; a normal non-custody sid bind is unaffected). Kin REQ-PSYCHE-SID-CUSTODY, session-pin cluster, [[spt-core-findings-backlog]] F-036.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3515332Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3515571Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3515804Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3516032Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3516274Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3516506Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3516768Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3517016Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3517241Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3517480Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3517741Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3517989Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3518237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3518604Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3518848Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3519160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3519388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3519678Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3519921Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3520146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3520371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3520695Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3520937Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3521165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3521391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3521704Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3521945Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3522168Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3522497Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3522717Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3522947Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3523203Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3523446Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3523661Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3523891Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3524138Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3524375Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3524595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3524948Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3525192Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3525419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3525639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3525992Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3526235Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3526456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3526677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3526975Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3527223Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3527448Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3527681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3527981Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3528220Z               "line": 665
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3528449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3528669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3529088Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3529337Z               "line": 1585
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3529573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3529795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3530115Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3530359Z               "line": 1613
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3530582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3530806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3531116Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3531364Z               "line": 2559
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3531584Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3531822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3532130Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3532475Z               "line": 2599
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3532700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3532929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3533240Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3533478Z               "line": 3135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3533706Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3533930Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3534156Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3534384Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3534597Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3534824Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3535136Z       "id": "REQ-BOUNDARY-ROTATION-CREDENTIAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3538704Z       "title": "api boundary's rotation credential is designed, documented, and eventually anchor-proven (ADR-0032): the proof is the DEPARTED session's (prior sid / token) — --to-session-id is payload, never proof; the published surface documents the adapter prior-sid persistence pattern + loud-refusal requirement; the design-true end-state additionally accepts an OS-verified parent_pid-anchor ancestry proof making adapter sid-state optional",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3539057Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3539286Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3539510Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3539738Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3539977Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3540219Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3540459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3540689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3541046Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3541285Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3541505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3541733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3542139Z               "path": "docs/adr/0032-boundary-rotation-credential.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3542372Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3542595Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3542814Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3543151Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3543389Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3543641Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3543890Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3544114Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3544338Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3544590Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3544828Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3545055Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3545278Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3545524Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3545764Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3545987Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3546210Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3546430Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3546650Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3546917Z       "id": "REQ-BRAIN-HASH-ONCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3554788Z       "title": "REGISTRY-LIFECYCLE W1 (ADR-0040 rider; dropped THE-FORKENING W4 rider escalated — hertz re-measured live 2026-07-17: 61.29 MiB/s predicted vs 63.91 observed, 15.5%/core): the brain executable self-hash is captured EXACTLY ONCE per brain process (OnceLock in run_brain before the heartbeat loop); every write_ready reuses the cached value; failed capture stays None with no per-tick retry; current_exe_hash doc-comment corrected same commit. Once-at-start capture IS the resident-bytes truthfulness contract: the per-tick PATH re-read published the NEW file hash from a resident-OLD-bytes brain post-swap (breadcrumb lie in the enlyzeam class it exists to catch). 500ms ready-write cadence unchanged. Gate: impl — cached capture; unit — injected digest-counter==1 across initial+N heartbeat publishes with pid/generation/hash stable, fresh process fixture computes independently; existing D7 process-replacement e2e retained green (new brain publishes new hash first write).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3555065Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3555290Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3555518Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3555747Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3555976Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3556213Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3556465Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3556833Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3557061Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3557290Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3557535Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3557783Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3558010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3558352Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3558598Z               "line": 525
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3558818Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3559128Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3559346Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3559575Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3559824Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3560068Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3560286Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3560510Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3560759Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3560998Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3561229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3561560Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3561809Z               "line": 2376
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3562024Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3562252Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3562476Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3562696Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3562921Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3563134Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3563454Z       "id": "REQ-BRAIN-READY-WINDOW-OBSERVABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3580429Z       "title": "THE BRAIN_UP -> brain.ready WINDOW IS OBSERVABLE IN ONE GREP (RCA-242-R2-LINUX, ruled 2026-08-29). Every happy-path stretch between the BRAIN_UP line and the ready file used to be SILENT: announce_coordinator_image's Ok(true) arm is empty, resume_session_cursors' Ok(_) arm is empty AND is the always-taken one (the supervised daemon brain hosts no PTY sessions), and write_ready's first current_exe_hash() reads and SHA-256s the whole binary inline before the atomic write. THE COST WAS PAID TWICE: four golden cells burned a full untuned 30s readiness budget while their own daemon stderr showed BRAIN_UP at 26-65ms, and the stall point -- blocked on a broker reply READ versus inside the exe-hash -- could not be separated from the log at all, so the RCA closed UNDISCRIMINATED by construction. activity_link_push_e2e then failed again WARM, which carved it out of the load-tail ruling and made the undiscriminated window gate-blocking rather than a footnote. THE SHAPE IS ONE TOKEN FAMILY WITH PER-PHASE ELAPSED MS: three BRAIN_PHASE lines whose figures SUM TO THE GAP, so a reader names the stretch in one read instead of a second instrumented run. ELAPSED, NEVER WALL STAMPS -- CONN_LIFECYCLE already carries wall_ms for correlation and a second clock in one log is how two clocks start disagreeing. THE READY LINE ALSO CARRIES THE RESOLVED PATH (gate rider): a test polls a path it resolved itself, so a poller/writer mismatch is ruled in or out rather than inferred. THE HASH FIGURE IS TIMED WHERE IT IS PAID, INSIDE write_ready, AND CARRIES computed=true|false. This is the requirement, not an implementation detail: current_exe_hash memoises in a OnceLock, so an instrument that timed a SECOND call from the caller would measure a cache hit and report ~0ms with computed=false on every run -- a vacuous meter for the one stretch it exists to measure, and the failure would be invisible because 0ms reads as good news. EMISSION IS emit_line_err! THROUGHOUT so these breadcrumbs never become the next census's residue. SCOPE BOUNDARY, RULED: moving current_exe_hash OFF the ready path is the honest fix for that stretch and is NOT part of this requirement -- it touches ADR-0018 Q7's ratified readiness semantic and REQ-BRAIN-HASH-ONCE's resident-bytes truthfulness contract, and rides its own board request.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3580811Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3581039Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3581268Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3581489Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3581716Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3581954Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3582203Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3582539Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3582762Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3582990Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3583239Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3583473Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3583697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3584036Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3584278Z               "line": 226
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3584507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3584732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3585069Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3585305Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3585533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3585748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3586082Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3586321Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3586554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3586774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3587112Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3587351Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3587576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3587797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3588131Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3588370Z               "line": 482
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3588595Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3588823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3589238Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3589477Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3589700Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3589924Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3590147Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3590368Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3590622Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3590861Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3591085Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3591414Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3591666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3591899Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3592138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3592472Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3592712Z               "line": 2326
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3592990Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3593212Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3593437Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3593652Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3593875Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3594095Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3594409Z       "id": "REQ-BRAIN-RESUME-NO-CONN-DEADLOCK",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3624063Z       "title": "UPDATE-WEDGE round 3 (v0.30.5, doyle-ruled Option A 2026-07-09 — the v0.30.4 field-verify re-wedge, root code-PROVEN + dead-peer-INDEPENDENT): the daemon brain must NOT subscribe broker PTY sessions onto its own request/reply IPC conn — it has no consumer for that output and the subscription DEADLOCKS the conn. ROOT (todlando code-read, docs/UPDATE-WEDGE-2-ROUND3-CODEREAD.md; the net-runtime AND the counter-54 reap-drive were both FALSIFIED first — docs/UPDATE-WEDGE-2-ROUND3-RIG-VERDICT.md): a conn's send half is a single `SharedSend = Arc<Mutex<SendHalf>>` (broker.rs:78). Subscriber writer threads (`viewer_writer` broker.rs:1333/1342, `controller_writer` :1451) hold `send.lock()` ACROSS a BLOCKING `write_frame`; the dispatch reply path (`send_frame` :4221 → KIND_SESSIONS_REPLY / KIND_NET_STATUS_REPLY) needs the SAME lock. `resume_sessions` (brain.rs:1031→1054) subscribes every session as a Viewer onto the brain's MAIN conn — which is ALSO the brain's request/reply channel. The daemon brain hosts no PTY sessions (brainproc.rs:184) so run_brain never drains that output; it reads the conn only during the 500ms-heartbeat net_status()/sessions() calls (drain-and-DISCARD, `_ => continue`). When an actively-streaming session backs the conn up, a subscriber writer BLOCKS in write_frame holding send.lock() → the dispatch thread can't send the heartbeat reply → net_status()/sessions() never return → the heartbeat loop stalls → the brain never drains → the writer stays blocked = SELF-DEADLOCK on the brain conn's send mutex → every subscriber writer on it wedges → BRAIN_SUBSCRIBER_STALL_EVICT (controller writer blocked >15s). BOTH severities, one mechanism: RESPAWN (resume subscribes N + the replay burst floods the conn before the loop drains) AND STEADY-STATE (an active streamer's output between heartbeats fills the socket buffer). Counter-54 (REQ-UPDATE-TRIAL-DRAIN-DRIVE) added a 2nd per-heartbeat reply round-trip (sessions()) through the contended mutex — WIDENED the window (regression-window-exact), did not create it. The round-2 Viewer fix (REQ-BRAIN-RESUME-NO-CONTROL-STEAL) removed the STEAL but kept the brain a SUBSCRIBER — viewer_writer has the same send.lock()-across-write pattern AND viewers have no stall-evict valve — so v0.30.4 field-verify wedged again. FIX (Option A, brain-side, SEAMLESS): resume_sessions does NOT subscribe (drop the subscribe_with call; §3 verification guard confirmed NO brain consumer — digest/relay/net-consumer/shellwake/presence — reads the resumed subs). The brain conn then carries only request/reply → no subscriber backpressure → no deadlock. Keep the session_cursors seed only if harmless. Rides the brain-swap ⇒ seamless (no daemon.rs:368 broker restart). Option B (a dedicated Split-reader drain of the brain conn, brain.rs:230 — the pump's carrier) is the FORWARD path for when genuinely daemon-DRIVEN sessions land (the live-agent adapter) — deferred, noted, not built. Option C (the broker-side durable CLASS fix) = REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK, deferred. Int = the confirmer rig (brain+broker+PTY, brain_decouple template): N sessions actively producing output, brain resume-subscribed onto its req/reply conn; RED-first = heartbeat stalls + an active-streaming controller stall-evicted >15s WITHOUT any dead peer present (proves dead-peer-independence); assert BOTH severities (respawn interleave + steady-state output backup); Option A turns both green. Composes with REQ-BRAIN-RESUME-NO-CONTROL-STEAL (the round-2 Viewer fix this supersedes as the wedge cure), REQ-UPDATE-TRIAL-DRAIN-DRIVE (the counter-54 reap-drive that widened the window), REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict it stops triggering).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3624499Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3624733Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3624969Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3625202Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3625427Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3625671Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3625898Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3626156Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3626399Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3626634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3626958Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3627204Z               "line": 1567
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3627445Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3627670Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3627908Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3628141Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3628394Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3628651Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3628881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3629290Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3629544Z               "line": 1605
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3629768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3629990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3630328Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3630563Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3630792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3631010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3631335Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3631578Z               "line": 5773
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3631798Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3632027Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3632254Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3632482Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3632729Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3632976Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3633200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3633749Z               "path": "crates/spt-daemon/tests/brain_resume_conn_deadlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3633993Z               "line": 223
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3634225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3634450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3634890Z               "path": "crates/spt-daemon/tests/brain_resume_conn_deadlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3635126Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3635353Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3635577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3636016Z               "path": "crates/spt-daemon/tests/brain_resume_conn_deadlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3636259Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3636483Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3636706Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3636926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3637151Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3637403Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3637646Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3637869Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3638081Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3638306Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3638526Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3638835Z       "id": "REQ-BRAIN-RESUME-NO-CONTROL-STEAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3669288Z       "title": "UPDATE-WEDGE round 2 (v0.30.4, doyle-ruled 2026-07-09 — field incident on the counter-54 fetch--apply): a brain-respawn must NEVER steal, then stall-evict, the controller of a broker PTY session the daemon brain does not DRIVE. ROOT (field-pinned + SME, docs/UPDATE-WEDGE-2-RCA.md + docs/UPDATE-WEDGE-2-SME-todlando.md): `resume_sessions` (brain.rs:985) re-attaches EVERY session `KIND_SESSIONS` returns via `subscribe` = `subscribe_with(AttachIntent::Control, by:None)` (brain.rs:1450-1455). The docstring's 'a None identity never displaces (falls back to viewer)' is a MYTH for FREE / SAME-LOCAL-IDENTITY slots: `resolve_subscribe` (broker.rs:1134-1153) stall-evicts FIRST, then `become_controller` if the slot is now free OR the incumbent is also local (None==None) — viewer-fallback fires ONLY when a DIFFERENT REMOTE controls. So on a box with N spt-hosted broker PTYs, a brain-respawn STEALS the by:None controller of every free/local-controlled session (incl. the operator's LOCAL `spt rc`), which the daemon brain never drains (it hosts no PTY sessions — brainproc.rs:184) → 15s later `stall_evict_controller` (broker.rs:1039) releases driven_by → the session is UNCONTROLLABLE (Failure A). It also head-of-line-blocks the shared brain↔broker conn on the N-session controller-replay burst → every journaled `spt rc` retake deadlines ('brain IPC read deadline', the REQ-BROKER-ATTACH-JOURNAL-RESILIENT / #16 shared-conn symptom) → global rc failure on ALL N (Failure B). Field 2026-07-09 (operator-confirmed): fetch--apply 0.30.2→0.30.3 PROMOTED CLEANLY (the counter-54 fix worked) but under 7 spt-hosted PTYs (ALL with LOCAL by:None controllers) the resume SILENTLY STOLE all 7 (become_controller same-local re-take, NO Displaced notice → orphaned, output froze immediately, no rc-detach splash) + blocked every rc retake. The 5-vs-2 stall-evict split is ACTIVE-vs-IDLE, not remote-vs-local: 5 producing output → stolen writer blocked >15s → stall-evict; 2 idle → writer parked → no evict, but still silently stolen+frozen. The counter-54 promotion fix did NOT cause this — pre-existing resume-steal latent bug, hidden until N broker PTYs were present at a respawn; the single-black-holed-session A'-rig never exercised N-live-controllers-under-replay. FIX (brain-side): `resume_sessions` re-attaches as **Viewer** (`AttachIntent::Viewer`), NOT Control — a viewer never touches driven_by and is never stall-evicted (broker.rs:1063+ bounded try_send + private eviction), so steal-then-drop vanishes and the operator keeps/regains control; and it relieves shared-conn pressure (a slow viewer is DROPPED, never a 15s controller block) so rc retake gets through. Control ONLY for sessions the daemon brain genuinely DRIVES (empty set today → all become Viewer; forward-correct for the live-agent-adapter future). SECONDARY (escalation, ONLY if the gate shows residual B): stagger the resume re-attach + bound the viewer replay so the respawn burst can't saturate the conn. Int = the multi-broker-PTY-session RESPAWN rig (the coverage the A'-rig lacked): N real broker-spawned sessions with controllers producing output → real brain respawn/promote → assert (1) EVERY session keeps its controller across the swap (no stall-evict of a session the brain doesn't drive), (2) `spt rc` attaches/retakes IMMEDIATELY post-promote (no shared-conn saturation), (3) promotion still succeeds. RED-first: the current Control re-attach steals+evicts + deadlines rc. Composes with REQ-UPDATE-TRIAL-DRAIN-DRIVE (the orthogonal counter-54 promote fix), REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict it stops mis-firing on non-driven sessions), REQ-BROKER-ATTACH-JOURNAL-RESILIENT (the #16 shared-conn resilience). Distinct from REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE (that = the OLD brain's outgoing black-hole; this = the NEW brain's resume-steal).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3669704Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3669952Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3670182Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3670410Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3670634Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3670877Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3671107Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3671364Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3671602Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3671831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3672094Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3672335Z               "line": 703
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3672564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3672788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3673113Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3673351Z               "line": 1566
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3673579Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3673804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3674118Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3674451Z               "line": 2350
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3674680Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3674912Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3675140Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3675379Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3675632Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3675880Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3676103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3676418Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3676661Z               "line": 1583
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3676882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3677120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3677432Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3677683Z               "line": 1606
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3677903Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3678132Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3678355Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3678580Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3678828Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3679176Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3679406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3679810Z               "path": "crates/spt/tests/resume_no_control_steal_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3680052Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3680273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3680503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3680903Z               "path": "crates/spt/tests/resume_no_control_steal_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3681146Z               "line": 712
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3681366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3681590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3681982Z               "path": "crates/spt/tests/resume_no_control_steal_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3682219Z               "line": 738
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3682443Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3682659Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3682881Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3683124Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3683373Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3683621Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3683853Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3684082Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3684298Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3684523Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3684950Z       "id": "REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3701886Z       "title": "SEED (DEFERRED, doyle 2026-07-09 — post-counter-54 root-hardening for UPDATE-WEDGE; mint now, impl a FUTURE milestone): on a PLANNED brain-restart (`BRAIN_UPDATE_RESTART`, the seamless update-apply brain-cycle), the outgoing brain's LOCAL (by:None) controller conns are GRACEFULLY CLEAN-CLOSED as the brain is cycled, instead of hard-killed and left to black-hole. ROOT (field-pinned 2026-07-09, daemon.stderr.log L24277-24303): the update-restart path hard-kills the outgoing brain (`child.kill()`, brainproc.rs:851); its live-agent controller conns then block on dead pipes (never EOF) → the broker reads them WEDGED (broker.rs:2695-2700) → the new candidate's promotion DRAINED gate (`any_local_controller_wedged`, broker.rs:2704) stays true until the W2 stall-evict matures (~15s). REQ-UPDATE-TRIAL-DRAIN-DRIVE (counter-54) makes the candidate DRIVE that reap so it promotes within the 30s window — but at a ~15s wedge-maturity hitch (frozen PTYs during the swap). A CLEAN close makes the conn 'simply absent → drained=false AT ONCE → fast promote' (broker.rs:2699-2700), ELIMINATING the hitch = truly seamless (honors the paradigm the field freeze broke). SUPERSEDES the earlier livehost-reattach framing of 'Fix Y': livehost is SPAWN-FRESH (fresh session uuid/pid per boot, nothing to re-attach — wrong site, and it never ran in the trial window); the correct site is the brain-cycle / update-restart path (a bounded graceful-drain of the outgoing brain BEFORE the kill). Non-trivial: hard-kill → bounded graceful drain; a drain that hangs must NOT wedge the swap (timeout then kill anyway, never block the update). Composes with REQ-UPDATE-TRIAL-DRAIN-DRIVE (defense-in-depth reap-drive REMAINS for any conn that still black-holes — a peer/relay conn, a drain-timeout kill) + REQ-UPDATE-PROMOTE-DRAINED (the gate) + REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict). Int: a planned update-restart under a live-agent controller conn → the new candidate promotes WITHOUT waiting the ~15s wedge-maturity (drained reads false immediately, no STALL_EVICT), RED-first vs the current hard-kill-then-reap-drive ~15s hitch.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3702286Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3702519Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3702748Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3702996Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3703248Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3703469Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3703707Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3703953Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3704197Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3704421Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3704649Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3704897Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3705136Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3705370Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3705599Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3705856Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3706104Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3706331Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3706553Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3706773Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3706993Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3707331Z       "id": "REQ-BROKER-ATTACH-JOURNAL-RESILIENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3714827Z       "title": "A poisoned EffectJournal mutex or a sick NetHost runtime must NOT permanently brick all future attaches. Bug #16 (URGENT): a live spt-hosted endpoint (eel-a) attach fails with 'brain IPC read deadline elapsed' after a self-update brain-respawn — the broker survives the respawn and one journaled op (dispatch_net_stream_open journal.apply_once + loopback open_stream runtime.block_on nethost.rs:1060) enters a bad state, so every journaled attach silently kills its per-conn reply thread while non-journaled ops keep working. Fix: recover PoisonError via into_inner (effect.rs apply_once, replace the .expect panics) so one panic cannot brick all attaches; bound the loopback open_stream block_on (nethost.rs:1060) like the QUIC bounded_block_on so a sick runtime fails fast with an error frame not an opaque 10s deadline. Reinforces REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #16.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3715104Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3715329Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3715558Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3715777Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3716011Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3716240Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3716497Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3716744Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3716962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3717199Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3717447Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3717690Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3717914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3718234Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3718487Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3718706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3719035Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3719360Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3719611Z               "line": 1824
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3719834Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3720066Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3720285Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3720520Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3720772Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3721016Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3721244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3721468Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3721731Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3721970Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3722192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3722514Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3722757Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3722982Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3723315Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3723539Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3723758Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3723987Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3724213Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3724498Z       "id": "REQ-BROKER-EXIT-EVERY-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3743787Z       "title": "PORTER (releases#201, todlando mechanism pass 2026-08-21): the broker exit waiter emits a terminal KIND_EXIT for EVERY reap it performs, INCLUDING the reap whose PtySession::wait() yields Err. This requirement states EXISTENCE; REQ-BROKER-OUTPUT-BEFORE-EXIT states ORDERING — the two are separate seams over the same frame, and any Exit this requirement adds is bound by that one's exit-behind-output enqueue discipline. TODAY broker.rs's `if let Ok(status) = status` gates the WHOLE Exit emission block, and only that block: the row removal, the best-effort kill, the drain bytes_forwarded quiesce and the reap-time unlatch (stamp_reaped, REQ-HAZARD-CONTROL-STAMP-LIFETIME) all sit OUTSIDE it and all still run on the Err arm (measured at b88fab2a: block spans broker.rs 6430-6457, stamp_reaped at 6467). So the session is genuinely, completely gone from the table AND the perch is unlatched, while NO Exit frame ever reaches the controller or viewer sinks — the attached rc has no terminal event to act on and burns its full 30s reconnect window over a session that can never come back. The Err arm is reachable in the field, not only under injection: PtySession::wait (spt-term/src/pty.rs:203) is `self.child.lock().unwrap().wait().map_err(SurfaceError::Io)`, so ANY Io error on the child handle takes it — the kill-vs-natural reap race included, where our own kill() and the child's natural exit contend for the same handle. AN ABSENT EXIT CODE IS NOT A ZERO AND IT IS NOT A NO-RECORD (the absent-is-not-zero discipline, releases#197): ExitEvent.code is ALREADY Option<i32>, so the Err arm can name the death with the code ABSENT rather than fabricating a 0 or suppressing the frame — a suppressed frame is indistinguishable to the viewer from a session still running. Gate: impl — Exit enqueued on BOTH arms of the wait outcome, code absent-but-named on Err, still behind the drain quiesce; unit — the event built for an Err reap carries code: None and is not skipped; int — a NARROW fault valve makes wait() yield Err while row removal, drain quiesce and stamp_reaped ALL still run (the existing SPT_TEST_EXIT_WAITER_SUPPRESSED is precedent for the shape but suppresses the ENTIRE waiter, so it does NOT reproduce this face) => the attached controller and viewer OBSERVE an Exit frame, with the valve-off control arm proving the same panel observes the healthy Exit (non-vacuity: a panel no assertion depends on is untested by construction); doc — KNOWN-HAZARDS.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3744078Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3744306Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3744530Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3744745Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3744979Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3745217Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3745474Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3745713Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3745933Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3746170Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3746418Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3746657Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3746880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3747214Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3747452Z               "line": 8430
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3747676Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3747902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3748119Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3748353Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3748605Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3748841Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3749156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3749529Z               "path": "crates/spt-daemon/tests/exit_every_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3749776Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3750000Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3750234Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3750577Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3750821Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3751084Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3751324Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3751547Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3751766Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3751989Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3752209Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3752515Z       "id": "REQ-BROKER-OUTPUT-BEFORE-EXIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3759706Z       "title": "RC-RENDER-TRUTH W3 (ADR-0043 decision 1, hertz stale-glyphs RCA leg 1 P0): the PTY drain/output writer is the SOLE FIFO sequencer for terminal Output + Exit per attach sink — Exit is enqueued BEHIND all prior output (drain EOF/completion first, then Exit); the exit waiter never direct-writes KIND_EXIT around the queued output path (a mutex serializes bytes, not producer order). Kills the stranded-final-frame race (final EL/SGR-reset/cursor-show/?1049l lost when Exit overtakes Output — already admitted and compensated in the broker test suite, never fixed in production rc). Gate: impl — single sequencer, exit-behind-output enqueue; unit — ordering invariant on the writer queue (exit never precedes queued output for a sink); int — short-lived child emits 'XXXX ESC[2K ESC[?25h ESC[?1049l' then exits => that exact Output precedes Exit through the PRODUCTION broker->attach->rc path; doc — ADR-0043.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3759973Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3760198Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3760422Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3760655Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3760880Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3761104Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3761334Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3761566Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3761813Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3762046Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3762273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3762656Z               "path": "docs/adr/0043-terminal-render-lifecycle.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3762908Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3763135Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3763360Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3763590Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3763934Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3764187Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3764423Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3764645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3764993Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3765241Z               "line": 3646
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3765460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3765683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3766017Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3766256Z               "line": 3786
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3766486Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3766714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3767044Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3767290Z               "line": 3800
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3767519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3767748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3768086Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3768339Z               "line": 3980
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3768577Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3768811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3769221Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3769468Z               "line": 8457
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3769696Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3769928Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3770148Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3770377Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3770625Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3770872Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3771106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3771482Z               "path": "crates/spt-daemon/tests/render_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3771730Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3771955Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3772189Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3772411Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3772648Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3773010Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3773253Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3773482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3773821Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3774068Z               "line": 10497
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3774292Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3774517Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3774737Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3774968Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3775201Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3775419Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3775700Z       "id": "REQ-BROKER-SCREEN-GRID",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3782759Z       "title": "Bugs #6 + #12 + #7/#8-artifacts: the broker is a raw-byte pump with no screen model — OutputLog replays the raw ring from seq 0 into a fresh terminal on attach, so an alt-screen TUI (Claude Code) corrupts scrollback (#6) and rc-to-a-pre-running-endpoint garbles (#12 — rc and endpoint run --attach are the SAME client fn, so it is replay content not a client-VT bug). Fix: a server-side VT/grid/screen model (tmux/mosh-style) that maintains authoritative screen + alt/main + cursor and synthesizes a CLEAN current-screen repaint on attach instead of replaying mid-stream ring bytes. Also eliminates residual-cell artifacts on animate/scroll/resize (#7/#8). Operator NON-NEGOTIABLE: accurate PTY representation with zero artifacts. (win32 vterm in the report means this server-side emulator, not ConPTY which is already the backend.) See docs/NEXT-MILESTONE-BUG-TRIAGE.md #6/#12.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3783033Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3783260Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3783489Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3783718Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3783941Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3784166Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3784400Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3784628Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3784876Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3785115Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3785340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3785817Z               "path": "docs/adr/0031-server-side-screen-grid-render-repaint.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3786066Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3786399Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3786624Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3786851Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3787076Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3787324Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3787563Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3787786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3788077Z               "path": "crates/spt-term/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3788320Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3788544Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3788767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3789164Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3789401Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3789626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3789846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3790152Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3790384Z               "line": 945
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3790622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3790845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3791163Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3791406Z               "line": 1245
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3791629Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3791854Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3792078Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3792307Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3792564Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3792803Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3793056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3793381Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3793631Z               "line": 12371
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3793857Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3794083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3794407Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3794645Z               "line": 635
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3794864Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3795089Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3795427Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3795652Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3795905Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3796154Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3796381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3796701Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3796944Z               "line": 12014
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3797164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3797397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3797697Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3797946Z               "line": 1380
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3798176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3798399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3798704Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3799036Z               "line": 1394
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3799265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3799495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3799804Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3800053Z               "line": 1416
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3800276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3800500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3800810Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3801054Z               "line": 1435
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3801276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3801503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3801804Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3802052Z               "line": 1448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3802281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3802504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3802805Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3803048Z               "line": 1472
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3803287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3803506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3803816Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3804058Z               "line": 1482
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3804281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3804509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3804813Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3805163Z               "line": 1493
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3805390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3805644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3805943Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3806188Z               "line": 1504
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3806412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3806639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3806951Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3807196Z               "line": 1514
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3807419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3807642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3807947Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3808191Z               "line": 1522
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3808421Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3808639Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3808859Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3809173Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3809389Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3809616Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3809925Z       "id": "REQ-BROKER-STOP-DENY-NAMES-BLAST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3827130Z       "title": "The endpoint-deny refusal TELLS THE CALLER WHAT IT COST THEM AND HOW TO PROCEED, carrying TWO required elements rather than a bare denial. FIRST, THE BLAST RADIUS BY NAME: the refusal states that the operation would kill the running sessions of all spt-hosted endpoints and LISTS THE RESIDENT SESSIONS, reusing the composition the live-session refusal already prints — a refusal that says only 'denied' teaches nothing, while one that names the eight endpoints about to die explains itself. SECOND, THE GROUND AND ITS CURE: the refusal names WHICH ground identified the caller as an endpoint, and the ONE action that clears THAT ground. THE PRINTED ACTION MUST BE TRUE FOR THE GROUND THAT ACTUALLY FIRED — an environment-variable ground prints unsetting that named variable, an ancestry ground prints running from a shell not descended from an agent session — because an instruction that cannot clear the condition it is offered for is the same defect as a warning that prints a command the reader cannot run, arriving from the opposite direction. THE REASON IT IS SAFE TO PRINT A CLEARING ACTION AT ALL is that clearing the environment does NOT clear the ground: an agent that unsets its identity variables is STILL caught by the ancestry leg, so the printed line helps a HUMAN whose shell merely inherited the variable while doing nothing for an agent trying to escape. That property is load-bearing and therefore PINNED BY ITS OWN UNIT — environment variables cleared plus an ancestry ground still refuses. Without that pin the printed unset line IS an escape hatch and this requirement inverts from a guard into a bypass manual, which is exactly the failure mode a prohibition written as text rather than enforced at the tool layer always reaches. Gate: impl — the two-element refusal composition with the per-ground clearing action selected from a TYPED ground rather than by matching the ground's prose, so the two can never disagree about which leg fired; unit — the refusal carries BOTH elements (the resident list AND the ground with its clearing action), each ground kind yields the action that actually clears it, and the escape-hatch pin: env cleared + ancestry ground still refuses.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3827513Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3827744Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3827973Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3828200Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3828428Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3828654Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3828906Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3829235Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3829459Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3829692Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3829940Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3830180Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3830404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3830692Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3830941Z               "line": 8041
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3831165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3831380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3831781Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3832024Z               "line": 24229
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3832247Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3832471Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3832697Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3832923Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3833169Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3833418Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3833641Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3833870Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3834118Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3834356Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3834585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3834871Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3835119Z               "line": 38342
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3835343Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3835564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3835852Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3836093Z               "line": 38399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3836328Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3836552Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3836774Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3836995Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3837214Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3837428Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3837733Z       "id": "REQ-BROKER-STOP-ENDPOINT-DENY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3860677Z       "title": "A broker-stopping command invoked from a context that resolves to an spt ENDPOINT is a FULL NO-OP that refuses, under every flag combination. Two commands are broker-stopping: `spt daemon stop` (INCLUDING `--force`) and `spt update apply --finish`. THE GROUNDING IS THAT THE CALLER CANNOT SURVIVE ITS OWN COMMAND: stopping the broker kills the hosted PTY of every spt-hosted endpoint on the node INCLUDING THE INVOKER'S OWN, so the agent's next chained command dies with the session that would have reported the outcome — the failure is silent from the only side that could see it, which is why this is enforced at the tool layer and not written as advice an agent is asked to follow. THE HUMAN CONTRACT IS UNTOUCHED: the pre-existing live-session refusal keeps its exact shipped behavior and `--force` remains a human's override of it. The endpoint deny is deliberately NOT overridable by any flag, because the caller who would reach for `--force` here is precisely the caller who cannot live through the result; an override would be a footgun with a safety catch that only the wrong hand can reach. THE RESOLUTION SEAM IS REUSED, NEVER RE-INVENTED: the same agent-ground resolution the engine-room ceremony refusal already uses answers this question, so 'what counts as an agent' has ONE definition on this node and a change to it can never make two refusals disagree. REFUSAL PRECEDES EVERY SIDE EFFECT — before the live-session guard, before the stop-inhibit is minted, before any teardown — so a refused call leaves nothing behind to clean up. ONE GUARD SITE PER COMMAND FAMILY, and for the finish command that site is INSIDE the apply function's finish arm, which is what BOTH the explicit `update apply --finish` verb AND the composite update's lethal-last Finish leg route through: guarding the verb alone would leave the composite lethal, and guarding both separately would be two rules free to drift. The composite already treats a failed finish leg as non-aborting, so the refusal degrades into the existing contract instead of inventing one. THE NON-FINISH `apply` ARM STAYS UNGUARDED and that is a decision, not an omission: it hands off to the running broker in place, the broker survives, the invoker's PTY does not die, and guarding it would deny agents a leg that is safe for them today. Gate: impl — the pure deny decision over the reused agent-ground resolution, wired at both sites ahead of every side effect, with the single-site rationale stated at the finish guard so no one later adds a second one at the verb; unit — an endpoint context is refused with force=true and force=false alike, a human context is unaffected in both, the finish arm refuses while the non-finish arm proceeds, and the decision is pure over its ground input; int — an e2e proves an endpoint-context caller cannot stop the daemon by ANY flag combination and that the daemon is still running afterwards.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3863790Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3864052Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3864285Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3864508Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3864732Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3864963Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3865192Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3865446Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3865689Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3865912Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3866146Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3866389Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3866634Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3866856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3867152Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3867409Z               "line": 8040
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3867632Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3867864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3868145Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3868398Z               "line": 8095
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3868618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3868842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3869219Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3869477Z               "line": 9358
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3869700Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3869919Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3870147Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3870378Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3870621Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3870855Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3871085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3871504Z               "path": "crates/spt/tests/broker_stop_endpoint_deny_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3871743Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3871966Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3872329Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3872553Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3872777Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3873033Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3873276Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3873500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3873787Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3874030Z               "line": 38310
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3874264Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3874482Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3874702Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3874922Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3875149Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3875362Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3875648Z       "id": "REQ-BUILD-UNIQUE-BIN-NAMES",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3881911Z       "title": "No two workspace packages declare a bin of the same name. Same-named bins share ONE `target/<profile>/` output filename, clobber each other, and a CARGO_BIN_EXE_* lookup then resolves to whichever built last (the PR#28 Windows gate-escape). The invariant was previously carried ONLY as prose that named a single counterpart by name, and prose of that shape ages the moment the counterpart moves: a reader greps the named bin, finds nothing, and concludes the hazard is retired. ENUMERATION IS BINDING: the check reads cargo metadata target list, NEVER `[[bin]]` manifest stanzas — a stanza grep is structurally unable to see an autodiscovered src/bin/*.rs target, so it would certify an absence it cannot observe, which is how a live bin was recorded as non-existent in the register.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3882177Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3882407Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3882641Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3882865Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3883098Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3883319Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3883579Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3883822Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3884042Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3884271Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3884523Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3884761Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3884990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3885410Z               "path": "crates/xtask/src/binnames.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3885652Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3885880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3886098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3886388Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3886631Z               "line": 597
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3886856Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3887086Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3887309Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3887533Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3887786Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3888030Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3888248Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3888482Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3888729Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3889051Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3889279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3889599Z               "path": "crates/xtask/src/binnames.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3889837Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3890062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3890297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3890597Z               "path": "crates/xtask/src/binnames.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3890839Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3891067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3891295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3891598Z               "path": "crates/xtask/src/binnames.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3891837Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3892061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3892286Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3892591Z               "path": "crates/xtask/src/binnames.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3892829Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3893066Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3893344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3893573Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3893793Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3894015Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3894358Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3894653Z       "id": "REQ-CARRIER-CLAIM-EXCLUSIVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3907065Z       "title": "MSG-IDENTITY W4 / F-033 + operator self-send probe 2026-07-09 (dup-delivery cluster, RCA-FIRST): a spooled message row is delivered by EXACTLY ONE carrier — the first carrier to take a row (hook-poll drain, relay idle-inject, relay-backlog, psyche) atomically CLAIMS it so no other carrier can re-deliver the same row. FIELD EVIDENCE (authoritative, operator-observed): a default-window doyle-to-doyle send while doyle was BUSY delivered on BOTH the busy POLL path AND the idle RELAY path; spool row 156: window='default', delivered=1, taken_leg='idle-inject' — the relay claimed a row a poll also surfaced (REQ-SPOOL-TAKE-AUDIT instrument, already shipped, is the RCA tool: taken_leg/taken_sid/taken_at per row). PRIOR: F-033 (perri 2026-07-08) — the psyche-download filing arrived as TWO copies, dup-delivery live-confirmed. RCA-FIRST (report-before-fix): pin whether the poll drains before/after the relay's delivered=1 mark; whether the busy-to-idle edge re-offers a row a poll already took; whether take-marking is atomic per carrier or check-then-mark racy. DISTINCT from F-035 (that = active_only window honor, spt-core exonerated; THIS = a default msg on both carriers — F-035's lock never asserted a default msg can't ride both). Gate: int — a default send to a BUSY live agent that polls mid-turn AND transitions idle delivers EXACTLY ONCE (spool-audit shows one taken_leg, recipient sees one copy); unit — concurrent take attempts on one row yield one winner. Kin REQ-SPOOL-TAKE-AUDIT, REQ-RELAY-NO-BUSY-DELIVER, REQ-IDLE-PARKED-DELIVERY, [[spt-core-findings-backlog]].",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3907343Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3907576Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3907804Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3908024Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3908244Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3908476Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3908700Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3909049Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3909291Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3909513Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3909849Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3910095Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3910338Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3910562Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3910882Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3911120Z               "line": 639
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3911344Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3911567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3911878Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3912117Z               "line": 676
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3912339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3912566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3912871Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3913114Z               "line": 726
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3913344Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3913571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3913886Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3914130Z               "line": 829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3914359Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3914584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3914889Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3915125Z               "line": 863
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3915351Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3915569Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3915788Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3916023Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3916270Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3916514Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3916737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3917118Z               "path": "crates/spt-store/tests/carrier_claim_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3917356Z               "line": 1
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3917584Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3917806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3918179Z               "path": "crates/spt-store/tests/carrier_claim_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3918531Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3918756Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3919066Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3919299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3919523Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3919772Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3920011Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3920238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3920540Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3920784Z               "line": 1681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3921013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3921236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3921541Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3921785Z               "line": 1751
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3922009Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3922228Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3922452Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3922672Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3922889Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3923107Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3923379Z       "id": "REQ-CI-DOCS-ONLY-THIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3933450Z       "title": "CI (operator-ruled 2026-07-16, from PR #8 review; registry-only extension operator-approved 2026-07-27; superseded for main pushes by ADR-0050 on 2026-07-29): a PR whose ENTIRE diff is Markdown OUTSIDE docs-site/ and/or the declarative `traceable-reqs.toml` registry runs THIN CI — the heavy build/test jobs are skipped via a changed-files classifier job. `traceable-reqs.toml` has no Rust/product consumer; its load-bearing correctness gate is traceability. Invariants: the traceability gate ALWAYS runs (doc/registry tags and activated-stage coverage are load-bearing evidence, and a run with zero checks is unmergeable); any docs-site/ change runs the PR lint/unit/traceability lane; any other non-Markdown path runs that same lane. Main pushes also run thin CI only; the full evidence for main's exact SHA is the uncancelled golden run that produced it, and main advances only by fast-forward to that tested SHA. The classifier is plain git diff over the PR merge commit (HEAD^1..HEAD, fetch-depth 2) — no third-party changed-files action on the self-hosted runners. Skipped-required-check note: GitHub treats an if-skipped job as satisfying required status checks, and the classifier + traceability always report, so thin PRs stay mergeable.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3933733Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3933963Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3934187Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3934415Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3934639Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3934892Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3935132Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3935355Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3935584Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3935832Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3936081Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3936307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3936593Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3936828Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3937052Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3937280Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3937500Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3937738Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3937996Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3938243Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3938462Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3938695Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3939033Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3939275Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3939498Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3939718Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3939934Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3940156Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3940448Z       "id": "REQ-CI-FREE-SPACE-PREFLIGHT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3972337Z       "title": "Every CI job on a shared self-hosted runner FAILS LOUD AND FIRST on insufficient free disk, never obscurely on a downstream timing/space symptom: a preflight step asserts a free-space floor on the workspace drive and fails naming the RESOURCE (free bytes, floor, drive) so the next exhaustion costs one clear red instead of a release window of mystery flakes (proposer: deployah, during the v0.44.0 disk-exhaustion incident — the rule-failed-its-author-needs-a-mechanism shape: 'check disk first' was already a memory rule and still cost two CI windows because it lived in judgement, not mechanism). Floor calibration honest at mint: the observed incident burned tens of GB per suite run (leaked fixture dirs + build targets); pick a floor from measured suite consumption plus headroom and RECORD the derivation in the workflow comment — an unexplained magic number invites drift. AMENDED 2026-08-03 (hertz RCA of golden 30860770146, doyle-ruled option (i) the same day): 'FIRST' now means first among EXPENSIVE steps, not literally step 1, in the two two-host jobs — there the floor is asserted AFTER `actions/checkout`, because checkout runs `git clean -ffdx` and that IS the reclaim. Measured: the Windows test leg materialises ~50 GiB of gitignored `target/` (29,777 of 30,022 files written inside that job's own window), the next job's checkout deletes it, and twohost-a starts seconds later — so the pre-checkout read is taken at the disk's maximum. 30860770146 died exactly there: RESOURCE red at 24.4 GiB free, no test run, over bytes its own next step was about to reclaim; the reorder alone would have turned that red green with zero reclaim. The protective purpose is intact — checkout is seconds and every build is still downstream — but the ordering is now a stated exception rather than an accident. EXTENDED 2026-08-29 to the n1-gate job (deployah, on the v0.66.0 SEMAPHORE cut; doyle informed with the measurement): n1-gate had kept the literal-first shape and hit the identical trap twice in one cut. Measured on golden 33273378238 attempt 2, hfenduleam: n1-gate asserted PRE-checkout at 21:58:36 and read 32,219,230,208 free against the 34,359,738,368 floor and failed in 9 seconds with checkout SKIPPED, while twohost-a on the SAME BOX asserted POST-checkout at 21:59:15 and read 104,530,997,248 and passed — 39 seconds apart, ~72 GB reclaimed by the intervening `git clean -ffdx`, opposite outcomes decided solely by read order. Two pre-checkout low-water readings 64 minutes apart (r2 20:54:36, r3 21:58:36) agree within 10 MB, so the adjacency is deterministic, not a flake, and a bounded WAIT placed before checkout cannot fix it by construction — the reclaim it would wait for is performed by its own next step. WIDENED the same day to the `test` job (doyle ruling on the scope note this entry carried): that latent-shape note is DISCHARGED, not deleted — leaving the amendment clause armed on one job is precisely how the trap survived 26 days to cost a cut two golden attempts. Gate applied before moving it: the `test` floor was verified to carry NO checkout-protective purpose — its comment derives the 32 GiB from the observed full-suite footprint plus headroom for one complete run, so it guards the SUITE, not checkout. The checkout-protective steps in that job are the two reap guards (Windows exe-lock, Linux flood orphans), whose own comments state they must precede checkout because the post-checkout guard is too late for the clean; they STAY pre-checkout and only the floor moved. EXTENDED 2026-09-06 (WEBSERVE floor trio IR-46/IR-59/IR-73): all eight ci.yml/release.yml floor sites are post-checkout, having no checkout-protective purpose. START and always-run END DISK assertions record raw free bytes, the unchanged 32 GiB floor, job/runner identity and PASS or RED, labelled INSTANT; END runs before teardown even after workload failure. Golden test and n1-gate carry the same readings, with a fresh assertion immediately before docs-drift. These samples are not a run minimum or a headroom guarantee. Raising the floor lacks measured peak evidence; continuous sampling is not part of this remedy.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3972733Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3972957Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3973176Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3973402Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3973631Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3973884Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3974194Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3974423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3974723Z               "path": "docs/INFRA-REGISTER.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3974966Z               "line": 2634
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3975186Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3975411Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3975632Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3975864Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3976113Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3976350Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3976570Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3976794Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3977047Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3977285Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3977505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3977795Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3978030Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3978259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3978481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3978767Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3979091Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3979325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3979554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3979840Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3980074Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3980298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3980518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3980801Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3981043Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3981268Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3981491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3981777Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3982020Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3982244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3982469Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3982760Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3982993Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3983216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3983443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3983726Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3984063Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3984291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3984516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3984797Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3985036Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3985259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3985483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3985769Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3986009Z               "line": 226
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3986235Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3986467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3986753Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3986992Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3987220Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3987444Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3987750Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3987993Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3988214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3988436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3988742Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3989064Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3989285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3989509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3989810Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3990051Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3990271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3990491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3990796Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3991034Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3991257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3991476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3991775Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3992017Z               "line": 592
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3992237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3992461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3992866Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3993114Z               "line": 615
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3993383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3993606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3993906Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3994148Z               "line": 703
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3994367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3994594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3994894Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3995132Z               "line": 717
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3995362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3995587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3995892Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3996129Z               "line": 841
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3996353Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3996569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3996872Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3997112Z               "line": 855
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3997342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3997562Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3997866Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3998110Z               "line": 958
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3998333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3998553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3998849Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3999173Z               "line": 972
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3999398Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3999620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.3999925Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4000164Z               "line": 1048
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4000388Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4000601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4000912Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4001150Z               "line": 1138
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4001380Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4001599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4001907Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4002148Z               "line": 1192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4002477Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4002706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4003007Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4003251Z               "line": 1278
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4003478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4003703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4004012Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4004252Z               "line": 1322
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4004481Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4004708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4005015Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4005255Z               "line": 1373
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4005478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4005702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4006007Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4006246Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4006476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4006699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4007014Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4007251Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4007484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4007702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4008012Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4008250Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4008474Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4008694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4009089Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4009334Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4009552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4009775Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4010076Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4010318Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4010542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4010771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4011072Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4011425Z               "line": 282
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4011654Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4011874Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4012092Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4012321Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4012572Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4012813Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4013033Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4013253Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4013472Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4013690Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4013968Z       "id": "REQ-CI-LINK-HEALTH-PROBE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4035492Z       "title": "The shared-runner quiet predicate gains a NETWORK axis: both two-host jobs measure the link to their peer immediately before rendezvous, print it, and carry it in the bench ledger. (INFRA-REGISTER IR-1; hertz 2026-08-03.) WHY THE EXISTING PREDICATE CANNOT SEE THIS: its two axes are process-shaped (zero non-terminal CI runs; no local cargo/rustc/nextest by parent chain), and both PASSED on run 30771155390 — a run whose link took 321s for a 1s checkout with bidirectional 10s QUIC dial timeouts, PUMP_PEER_FAIL moving a 0→3→0 and b 8→22→8 across green/red/rerun. A network-shaped red was triaged as a product one because nothing in the run recorded the network. kitsubito is wifi-only INDEFINITELY (operator-confirmed 2026-08-02), so the link cannot be hardened and the predicate must SEE it. JITTER IS THE SIGNAL, NOT THE MEDIAN: the motivating link mostly worked, so the probe takes 5 samples and records BOTH `link-rtt-med-<peer>` and `link-rtt-max-<peer>` rows — measured while building this, an idle link ran 10..83ms on one direction and 3..75ms on the other, i.e. the spread is the whole datum and a median alone reads healthy through the failure. ALSO CARRIED: DERP-vs-direct path (a relayed rendezvous is a different network than the one the rig's timings were tuned on), sample loss, and the peer's resolved IP so a reader can check it against the rig's own SPT_TWO_HOST_PEER_IP. AN INSTRUMENT, NOT A GATE — always exits 0, no threshold refuses a rendezvous: whether a number should is an unmade ruling, and a probe that reds a run converts 'the link was slow' into 'the suite failed', which is the confusion it exists to remove. A FAILED PROBE IS A LABELLED HOLE, NEVER SILENCE: no tailscale on PATH or no reply still writes an `ok:false` row, because 'attempted and did not land' is a different claim from 'never probed'. The absence of the CLI is TESTED rather than caught on the pwsh side (under GitHub's `stop` preference a missing command is terminating), and the bash side uses no `| head` (pipefail + SIGPIPE = 141 on an instrument). Gate: impl = .github/bench/link-probe.{sh,ps1} + the probe step in twohost-a (peer kitsubito) and twohost-b (peer hfenduleam), both exercised on the REAL boxes before shipping — five-sample success, no-reply, and absent-CLI arms on each shell, the absent-CLI mutation counted before it ran after a first attempt silently re-measured the unmutated arm; doc = docs/GOLDEN-CI.md 'The link is a third axis' (how to read the LINK line, what relay/loss/jitter each mean, and that the probe does not gate). Kin REQ-BENCH-STEP-LEDGER (the row shape these writers share, and whose parity gate now DISCOVERS its writers instead of listing them), REQ-CI-FREE-SPACE-PREFLIGHT (the same predicate's disk axis, amended the same day).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4035807Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4036036Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4036267Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4036483Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4036719Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4036944Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4037193Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4037430Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4037654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4037926Z               "path": "docs/GOLDEN-CI.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4038166Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4038393Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4038612Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4038833Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4039258Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4039507Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4039750Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4039977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4040292Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4040531Z               "line": 1090
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4040751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4040975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4041280Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4041518Z               "line": 1227
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4041742Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4041965Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4042184Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4042414Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4042667Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4042914Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4043138Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4043386Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4043634Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4043912Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4044138Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4044356Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4044580Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4044808Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4045108Z       "id": "REQ-CI-LOAD-BEARING-PATCH-PIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4067192Z       "title": "A `[patch.crates-io]` pin that FIXES A SHIPPED DEFECT is asserted still in force by `xtask check`, in BOTH of the two ways it can silently lapse. (INFRA-REGISTER IR-4 part 1, releases#125 fix-lane intake; hertz 2026-08-03.) THE PIN AT RISK: swarm-discovery 0.6.0-alpha.2's `updater::gc` answers a send to a stopped actor by scheduling another gc task 10ms later — a ~100 Hz retry loop per destroyed updater that can never reach a live receiver, so every updater recreation leaks one more loop. Latent in EVERY daemon since v0.38.1; the field cost was a kitsubito daemon burning two cores for two weeks (~9 accumulated loops). Fixed upstream in rkuhn/swarm-discovery PR #27, which is in NO crates.io release (0.6.3 predates it) and iroh pins swarm-discovery to EXACTLY 0.6.0-alpha.2, so no published version satisfies the graph — the tree carries a minimal-delta backport fork pinned by `rev`, i.e. content-addressed. TWO FAILURE MODES, WHICH IS WHY ONE ASSERTION IS NOT ENOUGH: (1) a routine `cargo update` or an iroh bump re-resolves Cargo.lock back to the registry crate while the stanza still sits in Cargo.toml looking correct — the lock disagrees with the manifest, or resolves from the registry outright; (2) the STANZA IS DELETED, after which there is nothing left for the lock to disagree with and a lock-only check reads clean over a reintroduced defect. So the manifest is asked whether the pin exists AT ALL, and only then is the lock asked whether it agrees. THE EXPECTED REV IS READ FROM THE MANIFEST, never duplicated into xtask: a third copy of the sha is one more thing to forget, and a legitimate re-pin would then red on the wrong file. What IS hardcoded is the crate plus the reason its patch is load-bearing — the judgement a lock file cannot carry and a human needs in order to decide whether dropping it is safe — and the refusal PRINTS that reason plus its own drop condition (upstream ships PR #27 AND iroh's pin reaches it), so the guard states when it should be removed rather than becoming permanent by default. Removing a crate from the guard list is therefore a reviewed edit in the same commit, not a silent lapse. Gate: impl = LOAD_BEARING_PATCHES + check_load_bearing_patch_pins wired into `xtask check` (already a golden docs-drift step on both OS legs, so this rides an existing leg rather than adding one); unit = the three failure modes each proved separately (deleted stanza, registry resolution, moved rev), the two parser traps that would make the guard answer for the wrong thing (a prefix-named crate, the trailing `[[patch.unused]]` table), and an arm that runs the real workspace so the guard cannot ship green against a tree it does not actually hold. Kin REQ-CI-WINDOWS-PHASE-A-BOUND, REQ-HEAVY-UNIT-CLASSIFICATION (same `xtask check` seam: a rule that outlived the memory it depended on).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4067575Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4067812Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4068045Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4068264Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4068495Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4068723Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4069048Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4069302Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4069526Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4069758Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4070006Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4070249Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4070470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4070759Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4071009Z               "line": 1032
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4071229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4071454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4071735Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4071977Z               "line": 1078
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4072206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4072431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4072727Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4072965Z               "line": 1107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4073193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4073413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4073693Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4073931Z               "line": 1127
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4074150Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4074375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4074656Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4074895Z               "line": 1159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4075123Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4075348Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4075573Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4075799Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4076055Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4076294Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4076517Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4076750Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4076994Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4077552Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4077786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4078072Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4078315Z               "line": 1187
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4078539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4078762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4079127Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4079374Z               "line": 1199
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4079598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4079828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4080115Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4080358Z               "line": 1208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4080585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4080810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4081092Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4081333Z               "line": 1217
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4081564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4081798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4082080Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4082333Z               "line": 1232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4082556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4082780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4083057Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4083297Z               "line": 1247
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4083520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4083744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4084033Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4084268Z               "line": 1262
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4084496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4084715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4085002Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4085235Z               "line": 1276
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4085460Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4085678Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4085903Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4086128Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4086450Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4086671Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4086953Z       "id": "REQ-CI-LOCAL-GATE-DISPOSAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4093651Z       "title": "Local gate-battery parity (path-scoped reap before target disposal + free-byte proof): a local self-hosted gate battery that creates a throwaway Cargo target reaps only process trees owned by that battery, with ownership proved by executable path or owned temporary/cache root under its workspace or declared target roots — never by process name alone; proves the scoped survivor census is zero BEFORE deleting the target; and reports drive free bytes before and after disposal. It MUST NOT machine-wide kill spt processes. Evidence: six Phase-B child daemons outlived suite completion for about two minutes in-job and indefinitely in local rigs; foreign job processes exited with the job; post+30s scoped census was zero. This extends existing CI end-reap semantics to local gate rigs, not production lifecycle behavior.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4093922Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4094153Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4094380Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4094646Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4094890Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4095114Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4095346Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4095594Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4095838Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4096063Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4096291Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4096543Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4096787Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4097010Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4097236Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4097485Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4097724Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4097952Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4098176Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4098391Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4098616Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4098911Z       "id": "REQ-CI-NOTIFY-CANCELLED-CLASS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4113794Z       "title": "releases#107: the CI notifier classifies CANCELLED separately from FAILURE, so a cancelled golden run stops paging the fleet as a red. `.github/ci/ci-notify.sh` `check()` (lines 94-111) folds `failure | cancelled` into one `failing` string and renders `verdict=\"FAILURE\"` for any non-empty value. PRECEDENCE IS THE WHOLE RISK: a genuine failure normally CANCELS its siblings, so mixed failure+cancelled IS the shape of a real red — ANY `failure` present ⇒ FAILURE verdict (cancelled jobs may still be listed as context); ONLY zero failures AND ≥1 cancelled ⇒ the cancelled class, worded so it does not contain the word FAILURE. `skipped` stays non-red (REQ-CI-DOCS-ONLY-THIN deliberately skips jobs on docs-only PRs). Getting the precedence backwards silences real reds. Gate: impl — the split classes plus a LIBRARY seam, because the script is untestable as written (it `exit 0`s early when `spt` is absent from PATH and otherwise proceeds to real sends). Minted proposing a `CI_NOTIFY_DRY_RUN` env knob; SHIPPED as `SPT_CI_NOTIFY_LIB=1`, which sources the file for its `compute_verdict`/`compose_body` functions and returns before the probe/recipient/send sections — the seam `reap-census.sh` already established with `SPT_CI_REAP_LIB`, and it exposes the BODY as well as the verdict, which the wording half of this requirement needs. Executing (rather than sourcing) with the flag set exits 2 rather than no-opping to 0. unit — a `ci-notify-selftest.sh` driving the RESULT_* matrix (all-success / single-failure / all-cancelled / failure+cancelled / skipped-only / never-ran) and asserting both the verdict and the rendered body, wired into golden.yml the way `.github/ci/reap-census-selftest.sh` is. The selftest MUST carry a POSITIVE CONTROL — that a real FAILURE still pages — not merely that cancelled goes quiet. Kin REQ-CI-DOCS-ONLY-THIN, REQ-GOLDEN-CI-LANE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4114070Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4114309Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4114648Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4114875Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4115104Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4115343Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4115587Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4115822Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4116047Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4116267Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4116520Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4116758Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4116977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4117268Z               "path": ".github/ci/ci-notify.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4117503Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4117726Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4117949Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4118168Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4118389Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4118643Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4118886Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4119196Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4119421Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4119677Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4119921Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4120145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4120478Z               "path": ".github/ci/ci-notify-selftest.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4120718Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4120944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4121167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4121477Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4121716Z               "line": 339
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4121939Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4122168Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4122392Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4122612Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4122830Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4123055Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4123342Z       "id": "REQ-CI-POSTJOB-DAEMON-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4146380Z       "title": "A CI job REAPS ITS OWN test-spawned daemons at battery end, in-job, and logs a process census at job start AND job end so contamination and reap effectiveness are visible in every run's log. (Load-flake family leg 1, doyle-ratified 2026-07-22 from deployah's third-run analysis.) THE SIGNATURE THIS CLOSES: a DIFFERENT single daemon-spawning test dying per run with a bare exit 1 and NO assertion output — process-level death, not a failed assert — while sibling tests in the same families pass alongside it, on BYTE-IDENTICAL code. Evidence: release PR #56 ran four times over a zero-.rs-delta tree; runs 1/2/3 killed brain_decouple (twice, on a disk-starved box), then adapter_translate, then adapter_digest at 105.9 GB free; box census during runs showed 43 live spt-family processes and 6486 handles against an 1881-test Phase-A full-parallel battery; run 4 went GREEN once disk and leaked session-0 daemons were cleared. WHY IN-JOB IS LOAD-BEARING AND NOT A CONVENIENCE: there are TWO leak populations on hfenduleam. Population A is session-1 (agent/gate-spawned) and is sweepable by path from any shell. Population B is SESSION-0, spawned by the actions.runner.* service — a session-1 shell CANNOT kill those (Access denied; ExecutablePath unreadable) even though they are healthy. Every CI run therefore leaves session-0 daemons behind that contend with the NEXT run while also leaking its own mid-run, and an external sweep can never reach them. The runner's own job context owns its session-0 children, so only a post-job step inside the job can reap them. KILL SCOPE IS NARROW AND PATH-VERIFIED PER-PID AT KILL TIME (never machine-wide, and never trusting the census snapshot, whose pids can be recycled): eligible only under the run's own build roots — CARGO_TARGET_DIR, the workspace target, the notify-adapter checkout's target, RUNNER_TEMP, and the pinned n1 old-broker build cache. TWO HARD EXCLUSIONS are checked AFTER the root test rather than instead of it, so that live infra survives a bug in the root computation: anything under an spt-core/bin/ install prefix, and any owl binary. A process whose image path cannot be READ is reported but NEVER killed — unreadable means unverifiable and the safe direction is to leave it standing. A BOUNDED SETTLE precedes the kill pass so a cleanly-exiting daemon is not counted as a leak; after it, a survivor is a leak by definition, which is what makes the strict-mode trigger a mechanism rather than a judgement call. Rides BOTH the test and n1-gate jobs (doyle scope ruling): n1_pairing spawns real daemon trees from the workspace and from the out-of-tree pin cache, so reaping one job leaves half the cause standing. Gate: impl — the two census/reap scripts under .github/ci/ plus their job-start and always() job-end wiring on both jobs, both runners. Kin REQ-CI-WINDOWS-PHASE-A-BOUND (the other cause-side leg), REQ-CI-DOCS-ONLY-THIN (recipe-layer precedent: impl-only, no product code).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4146760Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4146995Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4147220Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4147451Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4147676Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4147938Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4148186Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4148414Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4148652Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4148906Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4149230Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4149449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4149748Z               "path": ".github/ci/reap-census.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4149984Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4150204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4150428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4150733Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4150971Z               "line": 736
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4151201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4151430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4151731Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4151972Z               "line": 989
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4152201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4152427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4152725Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4152970Z               "line": 1157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4153190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4153519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4153829Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4154072Z               "line": 1294
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4154302Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4154525Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4154744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4154970Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4155220Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4155460Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4155682Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4155915Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4156157Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4156395Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4156615Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4156835Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4157049Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4157268Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4157565Z       "id": "REQ-CI-PRERELINK-EXE-LOCK-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4179241Z       "title": "NO CI step that RELINKS a workspace binary runs while an earlier phase's leaked binary is still executing from the same target. (BAROMETER golden triage, hertz RCA 2026-08-02, releases#123.) THE DEFECT THIS CLOSES IS PLACEMENT, NOT MECHANISM: REQ-CI-POSTJOB-DAEMON-REAP's reap already kills exactly the right processes with exactly the right scoping, but it is the LAST step in the job, so it runs after every step it would have saved. Windows cannot overwrite a running image, so a leaked `spt.exe` from Phase A/B makes the next `cargo test -p spt --test <x>` die with 'failed to remove file ...\\target\\debug\\spt.exe: Access is denied. (os error 5)'. EVIDENCE, twice out of twice on the same head: golden 30754060525 and 30758010357, both Windows `test` jobs — job-start census scoped=0 (so the leak is generated IN-job, not inherited), pre-reap census scoped=4 with the same handle-count signature both runs (two ~258-260 daemons + two ~134 brains), job-end reap killing 4 and 3 respectively AFTER the job had already died of them. The second run also shows the masking: run 1's Phase-A red hid this, and every run that survives Phase A dies at the notify relink instead. THE FIX IS CLASS-SHAPED: the guard rides EVERY relink-after-an-E2E edge (notify, installer, docs-drift, and the two-host gated-CLI step in twohost-a), not only the edge that reddened a run. ONE PREDICATE OVER ONE POPULATION: it is the same reap-census script under a `prerelink` phase, so a mid-job reap can never classify a process differently from the job-end reap; the pre-existing inline `Get-Process | Stop-Process` before the docs gate is REPLACED by it rather than left as a second, weaker rule (it scoped by GITHUB_WORKSPACE alone, missing CARGO_TARGET_DIR/RUNNER_TEMP/n1-cache roots, re-verified nothing at kill time, and printed no evidence). Census labels carry the phase (`prerelink-pre-reap`, `prerelink`) so a mid-job census is never counted as an end-of-job one by the strict-mode trigger. STRICT STAYS AN END-OF-JOB MECHANISM: a prerelink survivor warns and never reds its own step, because the relink it guards is the very next step and fails with the exact file it could not remove — a louder and more specific signal than a reap step exiting 1. WINDOWS-ONLY BY CONSTRUCTION: Linux replaces a running exe happily; role B (Linux) of the two-host pair needs no guard. Gate: impl — the `prerelink` phase in .github/ci/reap-census.ps1 plus its four wirings in golden.yml. No unit stage, for REQ-CI-POSTJOB-DAEMON-REAP's stated reason: the evidence is a recipe the runner executes and the acceptance is read off the run log (a `CI-REAP-PRERELINK summary:` line before each relink, and no os-error-5). Kin REQ-CI-POSTJOB-DAEMON-REAP (same machinery, the other placement), REQ-CI-WINDOWS-PHASE-A-BOUND (the co-tenant load leg).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4179618Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4179851Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4180075Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4180304Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4180534Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4180786Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4181029Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4181347Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4181575Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4181827Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4182064Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4182289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4182594Z               "path": ".github/ci/reap-census.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4182833Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4183062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4183281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4183586Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4183820Z               "line": 514
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4184045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4184276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4184579Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4184823Z               "line": 545
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4185042Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4185275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4185580Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4185833Z               "line": 580
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4186058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4186283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4186583Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4186819Z               "line": 1264
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4187042Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4187261Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4187479Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4187709Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4187962Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4188196Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4188423Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4188643Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4188911Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4189231Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4189450Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4189681Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4189902Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4190125Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4190531Z       "id": "REQ-CI-TOOLCHAIN-VERSION-PRINT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4209955Z       "title": "Every golden run PRINTS the toolchain that judged it, on BOTH OS legs, from inside the job. (INFRA-REGISTER IR-4 part 3, carrying IR-9; hertz 2026-08-03.) WHY A PRINT IS EVIDENCE AND A BOX IS NOT: both golden boxes own rustup-managed toolchains that drift independently, so 'did CI resolve this the way I did?' — the question the acaaa4f lock comparison needed answered — had NO answer in any run log. MEASURED on the two boxes' INTERACTIVE accounts 2026-08-03: hfenduleam (Windows leg) cargo/rustc 1.93.0, clippy 0.1.93; kitsubito (Linux leg) cargo/rustc 1.96.0, clippy 0.1.96 — three minor versions apart, which is IR-9's class with numbers on it. That measurement is a PRIOR, not the fact: a runner service account's toolchain is what judges a lane and an interactive shell on the same box does not prove it, which is precisely why the step prints from inside the job. Direction of the skew is deliberately NOT asserted — clippy renames and removes lints as well as adding them, so 'newer is stricter' is unmeasured. IR-9's docs half (align the boxes, or declare one authoritative clippy leg) is HELD by doyle's ruling of the same day: rule it once this step reports runner-account versions, rather than on the prior. STEP SHAPE: one `TOOLCHAIN ` line prefix on every line of both legs so a run's toolchain is one grep; cargo, rustc, and clippy versions are the load-bearing three and their absence reds the step; the rustup active-toolchain line is a convenience and its absence must NOT red a step whose whole job is to print — which needs a different construction per shell, and both were exercised before shipping rather than reasoned about. Windows: under GitHub's pwsh wrapper (`$ErrorActionPreference = 'stop'` + a trailing `$LASTEXITCODE` check) a MISSING COMMAND is a terminating error, so rustup's absence is TESTED with Get-Command rather than caught, and a present rustup's non-zero exit is cleared before the wrapper reads it. Linux: no `| head` anywhere — under `set -o pipefail` a producer SIGPIPEd by an early-exiting head surfaces as exit 141 and reds the print, so first-line trimming is parameter expansion. Gate: impl = the two `Toolchain versions` steps in golden.yml's `test` job (the job that builds, tests, and lints, so the one whose resolver and lint set a reader is asking about). Kin REQ-LOCK-TOUCHING-LANE-PROCEDURE (the procedure that sends an author here), REQ-CI-LOAD-BEARING-PATCH-PIN.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4210255Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4210484Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4210703Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4210931Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4211164Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4211412Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4211655Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4214732Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4214999Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4215252Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4215490Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4215740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4216052Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4216301Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4216526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4216751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4217061Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4217299Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4217532Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4217756Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4217977Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4218195Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4218448Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4218685Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4218907Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4219236Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4219483Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4219728Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4219942Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4220161Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4220376Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4220738Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4221034Z       "id": "REQ-CI-WINDOWS-PHASE-A-BOUND",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4245754Z       "title": "Phase-A nextest parallelism is BOUNDED on the Windows self-hosted leg, so the full-parallel 1881-test battery stops saturating a box that also hosts the live agent fleet. (Load-flake family leg 2 = deployah option (c), doyle-ratified 2026-07-22.) Windows leg ONLY: kitsubito does not host the fleet, and its parallelism is deliberately untouched. MECHANISM AND WHY THIS ONE: the bound lives in a [profile.ci-windows] nextest profile selected by a STEP-LEVEL NEXTEST_PROFILE expression on the Phase-A step, NOT by a per-OS pair of Phase-A steps — duplicating that step would put a FOURTH copy of the <HEAVY> filter string in the tree, and .config/nextest.toml's own header names keeping THREE in sync as the standing hazard. THE NON-INHERITANCE GATE-CHECK (doyle demanded it discharged, and it did not come back clean): a custom nextest profile inherits scalar settings from default but NOT profile.default.overrides — the argument cuts both ways. Of the five overrides on default, exactly ONE is kind(test): the by-binary <HEAVY> integration filter, which is Phase B's alone and needs no mirror. The other FOUR are the FLAKE-LEDGER: attach_viewport_reconnects_across_a_broker_bounce class — real-broker units that are kind(bin)/kind(lib), escape the by-binary filter, and therefore RUN IN PHASE A depending on the heavy-broker-pty group to stay serialized (rc::tests four names, (applyhost|livehost|pump)::tests, wansend::tests, api::startup::tests). Shipping the profile without them would have SILENTLY UN-SERIALIZED ON WINDOWS the exact class whose un-serialization produced two separate 240s timeouts. They are mirrored verbatim, and the parity is ENFORCED rather than remembered: xtask check's check_phase_a_profile_parity fails the build when a default override that is not kind(test) is missing from ci-windows, keyed on that SHAPE and not on a name list — the same posture as that ledger entry's second half, whose whole lesson is that a class written in prose and shipped as an enumeration decays. A DRIFTED mirror reads as missing, not as present: the invariant is that it is the SAME filter in both profiles, not that something is in both. THE BOUND ITSELF IS CHOSEN, NOT DERIVED, and is recorded that way at the value: hfenduleam is 16 logical cores and the bound is 8 (half), for fleet-co-tenant headroom. No measurement separates 8 from 6 or 12 and none was run — the ratified fix is stop saturating the box, not find the saturation knee. Retuning is one integer. Gate: impl — the ci-windows profile with its mirrored overrides plus the ci.yml step-level profile selection plus the xtask parity check; unit — the parity predicate's exemption rule (a kind(test) override needs no mirror), its detection of an unmirrored Phase-A override, its rejection of a DRIFTED mirror, and a case over the REAL checked-in config so the check cannot ship green against a tree that already violates it. Kin REQ-CI-POSTJOB-DAEMON-REAP (the other cause-side leg), REQ-HEAVY-UNIT-CLASSIFICATION (the check one layer in), FLAKE-LEDGER: attach_viewport_reconnects_across_a_broker_bounce + the HEAVY-AT-BIRTH ruling (.config/nextest.toml).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4246059Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4246293Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4246513Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4246742Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4246970Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4247189Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4247439Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4247679Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4247901Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4248131Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4248374Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4248616Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4248841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4249222Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4249460Z               "line": 938
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4249686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4250010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4250304Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4250544Z               "line": 964
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4250768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4250998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4251289Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4251531Z               "line": 977
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4251755Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4251975Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4252200Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4252428Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4252685Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4252929Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4253156Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4253389Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4253638Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4253882Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4254105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4254401Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4254639Z               "line": 2942
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4254878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4255103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4255406Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4255651Z               "line": 2952
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4255881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4256110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4256396Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4256648Z               "line": 2979
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4256872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4257101Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4257384Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4257636Z               "line": 2994
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4257864Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4258092Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4258321Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4258541Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4258771Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4259095Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4259344Z       "id": "REQ-CLI-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4265813Z       "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). SUPERSEDED (F-025 item 3): the LISTING SHAPE now lives in REQ-ENDPOINT-LIST-NODE-GROUPED (node-grouped over unique instances, not grouped-by-subnet) + REQ-ENDPOINT-LIST-REST-FILTER (suspended-hidden + --show-all); the `--local` flag was dropped by REQ-ENDPOINT-LIST-MERGE-LOCAL (the list ALWAYS merges local). This REQ owns only the endpoint noun NAMESPACE + parse surface — not the render shape.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4266084Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4266312Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4266535Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4266760Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4266990Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4267213Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4267460Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4267699Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4267934Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4268147Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4268395Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4268625Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4268847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4269241Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4269499Z               "line": 482
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4269722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4269947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4270237Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4270477Z               "line": 2390
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4270699Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4270923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4271200Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4271433Z               "line": 6213
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4271654Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4271874Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4272199Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4272418Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4272671Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4272909Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4273128Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4273358Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4273606Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4273844Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4274072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4274354Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4274601Z               "line": 29437
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4274829Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4275054Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4275288Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4275511Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4275755Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4275979Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4276228Z       "id": "REQ-CLI-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4278298Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4278564Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4278790Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4279109Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4279335Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4279572Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4279806Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4280054Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4280296Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4280521Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4280755Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4281003Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4281246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4281474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4281793Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4282031Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4282258Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4282486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4282825Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4283068Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4283397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4283636Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4283970Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4284214Z               "line": 337
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4284451Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4284679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4284966Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4285209Z               "line": 1039
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4285437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4285661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4285947Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4286191Z               "line": 2540
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4286425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4286667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4286947Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4287199Z               "line": 7906
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4287436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4287660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4287960Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4288200Z               "line": 8088
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4288424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4288647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4288933Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4289263Z               "line": 8214
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4289515Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4289740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4289962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4290198Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4290451Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4290695Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4290924Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4291157Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4291405Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4291648Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4291868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4292202Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4292568Z               "line": 472
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4292798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4293032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4293309Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4293591Z               "line": 31154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4293820Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4294043Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4294268Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4294488Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4294716Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4294930Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4295188Z       "id": "REQ-CLI-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4297319Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4297579Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4297806Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4298040Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4298283Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4298516Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4298755Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4299098Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4299341Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4299566Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4299798Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4300046Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4300286Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4300523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4300811Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4301059Z               "line": 2384
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4301284Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4301508Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4301736Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4301965Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4302218Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4302467Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4302690Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4302923Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4303188Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4303435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4303668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4304080Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4304337Z               "line": 29402
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4304560Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4304789Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4305010Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4305242Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4305466Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4305687Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4305932Z       "id": "REQ-CLI-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4311657Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4311928Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4312163Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4312383Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4312634Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4312873Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4313097Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4313327Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4313577Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4313819Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4314043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4314325Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4314557Z               "line": 21060
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4314786Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4315011Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4315235Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4315570Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4315821Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4316074Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4316294Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4316521Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4316764Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4317008Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4317228Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4317451Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4317666Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4317895Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4318186Z       "id": "REQ-CLI-BROKEN-PIPE-TOLERANT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4322003Z       "title": "#10 (F026 micro): `spt <anything> | <pager/Select-First-N>` must not PANIC when stdout closes early. A closed downstream reader mid-print panics with 'failed printing to stdout: The pipe is being closed. (os error 232)' (live repro: `spt daemon status | Select -First N`). Fix: tolerate BrokenPipe process-wide — a write to a closed stdout exits 0 (SIGPIPE-equivalent: a consumer that stops reading is a normal end, not a crash), without leaking a Rust panic + backtrace to the user.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4322270Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4322498Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4322723Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4322943Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4323166Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4323390Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4323630Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4323868Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4324086Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4324313Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4324555Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4324793Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4325013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4325295Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4325533Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4325756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4325986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4326266Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4326511Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4326731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4326958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4327338Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4327582Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4327802Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4328021Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4328244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4328464Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4328713Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4329033Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4329255Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4329486Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4329730Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4329968Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4330186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4330473Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4330707Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4330932Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4331154Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4331383Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4331604Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4331823Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4332045Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4332321Z       "id": "REQ-CLI-HELP-MARKDOWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4340375Z       "title": "`spt --help` (and every subcommand --help) renders the inline Markdown authored in the clap doc-comments as terminal styling, never as literal markers: `**bold**` → ANSI bold, `` `code` `` → ANSI cyan, `[text](url)` → `text`. The markers are STRIPPED either way — a raw `**` or backtick must NEVER reach the user (the operator-reported v0.12.0 defect: help text reads `**ctrl-b**` and stray backticks verbatim). Color/bold escapes are emitted ONLY when the help is going to a real terminal AND color is not suppressed (NO_COLOR unset · CLICOLOR != 0 · CLICOLOR_FORCE forces on); a pipe / redirect / CI / NO_COLOR falls back to strip-only (clean plaintext, zero escapes) so machine-readable help is byte-identical regardless of marker syntax. Pure transform over the clap-rendered help string at the single run()/bare_invocation chokepoint; preserves pre-existing ANSI (CSI sequences passed through untouched), never spans markers across a newline, leaves unmatched/empty markers literal, and does not alter the help layout. (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4340741Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4340966Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4341191Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4341409Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4341639Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4341868Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4342112Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4342353Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4342578Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4342805Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4343046Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4343284Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4343509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4343805Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4344039Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4344276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4344496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4344796Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4345036Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4345262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4345489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4345781Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4346028Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4346262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4346485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4346777Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4347025Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4347250Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4347473Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4347701Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4347927Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4348177Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4348416Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4348636Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4348861Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4349199Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4349441Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4349661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4350061Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4350303Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4350527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4350754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4351044Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4351283Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4351503Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4351728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4352017Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4352256Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4352480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4352700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4352991Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4353232Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4353459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4353683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4353979Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4354216Z               "line": 393
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4354460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4354685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4354971Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4355209Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4355433Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4355662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4355961Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4356202Z               "line": 413
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4356421Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4356646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4356941Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4357185Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4357408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4357628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4357918Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4358154Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4358483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4358703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4359086Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4359328Z               "line": 444
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4359549Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4359777Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4359996Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4360216Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4360440Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4360660Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4360901Z       "id": "REQ-CLI-JSON",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4366326Z       "title": "A global `--json` flag (clap global=true) honored by the READ/STATUS command set: endpoint list/whoami, daemon status, subnet status/show-code, endpoint description/role, adapter list/version, notif list, grant list, access list, shell list, how-to (endpoint digest already has it). Action commands do not honor it. A shared print_json() helper + a coverage TEST asserting every command in the set emits valid JSON (guards against the missing-shared-formatter drift). Output uses explicit per-command output DTOs with committed field names — internal structs are NOT serialized verbatim (their fields would become a public contract; JSON is a consumed wire-parity surface). (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4366586Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4366820Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4367048Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4367271Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4367496Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4367726Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4367954Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4368202Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4368441Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4368670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4368893Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4369221Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4369460Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4369680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4369966Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4370203Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4370437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4370657Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4371038Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4371282Z               "line": 777
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4371509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4371731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4372008Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4372246Z               "line": 2302
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4372469Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4372689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4372961Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4373205Z               "line": 2608
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4373428Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4373647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4373924Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4374164Z               "line": 5355
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4374390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4374617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4374899Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4375147Z               "line": 5406
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4375375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4375604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4375881Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4376120Z               "line": 5439
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4376339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4376562Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4376838Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4377081Z               "line": 5525
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4377308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4377531Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4377808Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4378047Z               "line": 5549
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4378267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4378489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4378767Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4379091Z               "line": 5561
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4379321Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4379541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4379944Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4380182Z               "line": 5569
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4380410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4380635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4380907Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4381145Z               "line": 5688
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4381364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4381589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4381866Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4382112Z               "line": 5826
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4382333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4382554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4382835Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4383073Z               "line": 6063
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4383297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4383521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4383803Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4384037Z               "line": 6117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4384274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4384498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4384785Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4385027Z               "line": 6219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4385253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4385478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4385749Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4385993Z               "line": 6238
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4386216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4386441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4386726Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4386961Z               "line": 6259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4387190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4387412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4387697Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4387940Z               "line": 6322
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4388168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4388396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4388679Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4388927Z               "line": 6330
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4389251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4389589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4389871Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4390115Z               "line": 6354
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4390337Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4390561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4390838Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4391076Z               "line": 6437
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4391299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4391519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4391796Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4392035Z               "line": 8218
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4392263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4392482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4392762Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4392999Z               "line": 8315
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4393222Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4393490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4393781Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4394020Z               "line": 8588
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4394248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4394477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4394753Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4394997Z               "line": 9075
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4395221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4395439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4395723Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4395962Z               "line": 9087
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4396185Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4396404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4396686Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4396925Z               "line": 9122
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4397144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4397368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4397643Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4397884Z               "line": 9140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4398206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4398428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4398709Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4399052Z               "line": 13559
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4399276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4399501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4399792Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4400035Z               "line": 13582
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4400253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4400473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4400751Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4400987Z               "line": 14300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4401211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4401436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4401717Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4401955Z               "line": 14330
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4402179Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4402408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4402680Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4402934Z               "line": 14352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4403160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4403401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4403679Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4403921Z               "line": 14486
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4404149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4404369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4404646Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4404880Z               "line": 14623
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4405113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4405332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4405618Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4405858Z               "line": 14669
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4406084Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4406311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4406593Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4406837Z               "line": 15786
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4407065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4407284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4407575Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4407823Z               "line": 15815
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4408157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4408382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4408661Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4408901Z               "line": 15831
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4409216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4409436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4409727Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4409966Z               "line": 15873
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4410189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4410408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4410686Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4410929Z               "line": 15895
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4411157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4411385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4411663Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4411905Z               "line": 20554
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4412133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4412358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4412639Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4412879Z               "line": 20566
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4413101Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4413321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4413597Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4413835Z               "line": 20574
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4414061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4414286Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4414563Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4414806Z               "line": 20583
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4415024Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4415253Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4415525Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4415769Z               "line": 20593
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4415993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4416216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4416488Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4416833Z               "line": 20891
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4417063Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4417286Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4417567Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4417806Z               "line": 21415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4418036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4418259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4418540Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4418778Z               "line": 21528
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4419088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4419312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4419586Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4419833Z               "line": 22310
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4420053Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4420278Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4420550Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4420788Z               "line": 22341
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4421007Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4421232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4421518Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4421761Z               "line": 22742
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4421983Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4422213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4422490Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4422732Z               "line": 22753
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4422960Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4423180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4423458Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4423701Z               "line": 23093
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4423924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4424144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4424419Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4424655Z               "line": 23876
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4424874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4425099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4425375Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4425609Z               "line": 23886
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4425842Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4426061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4426438Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4426677Z               "line": 23959
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4426906Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4427128Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4427347Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4427580Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4427832Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4428070Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4428300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4428600Z               "path": "crates/spt/tests/json_emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4428829Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4429144Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4429363Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4429583Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4429815Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4430055Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4430299Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4430519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4430800Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4431037Z               "line": 29356
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4431267Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4431491Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4434680Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4434926Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4435190Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4435410Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4435706Z       "id": "REQ-CLI-MONIC-TRIGGER-SECTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4453816Z       "title": "`spt endpoint monic --help` carries a composed `Trigger kinds:` section naming every kind a trigger can watch, WHAT it watches, and WHETHER ANYTHING EVALUATES IT TODAY — the third column being the load-bearing one, because `user-input` and `agent-output` are ratified but INERT, and a section that listed them beside the live kinds without saying so would present a trigger that can never fire as one that works. That is the same honesty `monic list` already owes a stored trigger, now owed at the moment of CHOOSING one. The section is composed AT RENDER TIME from a single row table whose row carries the `TriggerKind` ITSELF, so the kind's wire spelling and its evaluated-today answer are DERIVED — from the enum and from the existing `has_live_consumer` predicate — rather than restated beside them: a kind cannot appear in the help under a spelling the `--triggers` parser would reject, nor be described as evaluated when nothing evaluates it, and a kind added to the vocabulary reaches the help by the sole act of being in the table. PLAIN TEXT, no inline Markdown, for the reason the surface section carries the identical rule: the CLI renders help through `helpfmt`, and a composer in the store crate can be read by a consumer that never passes through that renderer, so a Markdown marker reaches one audience styled and the other as literal asterisks. The words match the published docs table (kind | watches | evaluated today) rather than paraphrasing it, so an operator who read the manual and an operator who read the help learned the same vocabulary. Gate: doc — the docs-site trigger-kind table these rows speak in the same words, and the generated public CLI reference; impl — the row table beside the enum it describes, the render-time composer taking the table AS A PARAMETER, and the after-help wiring at the sited verb; unit — a fixture table carrying an INVENTED row renders that row with no edit to any display site (table-drivenness proven rather than inferred from a snapshot whose rows all agree), EVERY enum variant is present in the table (a kind added to the vocabulary cannot be silently missing from the section), a live and an inert row render their differing third column, the rendered help at the sited verb carries the composer's own text byte-for-byte rather than a second literal, and that help leaks no internal code.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4454241Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4454475Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4454703Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4454927Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4455147Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4455386Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4455608Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4455856Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4456192Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4456421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4456755Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4456993Z               "line": 453
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4457217Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4457437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4457662Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4457889Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4458137Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4458376Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4458601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4458908Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4459235Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4459455Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4459679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4459985Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4460237Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4460466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4460689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4461004Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4461253Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4461480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4461701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4462011Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4462251Z               "line": 182
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4462470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4462698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4463013Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4463252Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4463472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4463696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4464001Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4464238Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4464463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4464691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4465101Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4465354Z               "line": 936
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4465596Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4465821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4466106Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4466351Z               "line": 963
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4466578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4466805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4467086Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4467334Z               "line": 2212
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4467558Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4467782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4468063Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4468311Z               "line": 2233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4468532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4468764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4469137Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4469383Z               "line": 2243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4469615Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4469839Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4470067Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4470301Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4470549Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4470798Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4471016Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4471254Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4471503Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4471742Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4471964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4472271Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4472506Z               "line": 2019
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4472730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4472949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4473253Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4473498Z               "line": 2044
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4473722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4473941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4474251Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4474498Z               "line": 2090
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4474723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4475042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4475346Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4475585Z               "line": 2124
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4475808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4476033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4476309Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4476554Z               "line": 35725
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4476777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4477000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4477284Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4477522Z               "line": 35767
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4477745Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4477965Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4478185Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4478394Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4478609Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4478829Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4479186Z       "id": "REQ-CLI-NODE-VERB-PRIMARY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4506116Z       "title": "THE PER-MACHINE SUPERVISOR SURFACE IS SPELLED `spt node`, AND `spt daemon` REMAINS A FULL ALIAS OF IT — ONE PARSE TREE, NOT TWO. The noun operators type for their own machine was `daemon`, which names the PROCESS rather than the thing the process supervises; the surface is a node's state (daemon state, member subnets, local endpoints), so `node` is the primary spelling and `daemon` is a clap `visible_alias` on the same command. THE ALIAS IS FULL AND PER-SUBCOMMAND, NOT ROOT-ONLY: bare (the status view), run (incl. the hidden --detached auto-start-ladder flag), start, stop (incl. --force), status, access + its allow/deny/remove editing arms, refresh, and the hidden brain entry (bare and stamped) all parse identically under either spelling. A root-only equivalence proves the alias resolves and proves NOTHING about a subcommand added later under one spelling, which is why the unit asserts the parsed action as a VALUE per subcommand rather than matching variants. THE CHANGE IS CLI-SURFACE-ONLY: the spt-daemon crate, the wire, and the docs model term `spt-daemon` are untouched, and `daemon access` is mirrored as a NOUN, not duplicated as policy — one parse tree, one roster store. THE DEPRECATION NOTE IS SHARED AND ALIAS-NEUTRAL (doyle fork-D ruling): clap renders help per COMMAND, not per alias, so the note lives in the one `///` block and is worded to be TRUE under both spellings — deprecation when read on `daemon --help`, information when read on `node --help`. No argv sniffing, no stderr-only notice, no second variant. THE BRAIN SPAWN ARGV KEEPS THE `daemon` SPELLING (doyle fork-A ruling, KH-2.3): brain_child_args builds `daemon brain --generation N --start-reason R`, and the compatibility it exists for runs toward binaries that PREDATE the alias — an N-1 parser knows only the old spelling and an alias cannot rescue a parser that never had it, so migrating the spawn site is a later milestone gated on a fleet version floor, never this lane. REMOVAL OF THE ALIAS IS BLOCKED ON AN INSTALL-ARTIFACT MIGRATION (doyle fork-C ruling) AND THAT CONSTRAINT RIDES THE DOC SURFACE, not this file alone: installed OS service units and scheduled-task rungs on every deployed machine already carry `spt daemon run`, and renaming the verb does not rewrite them, so a future milestone must migrate those artifacts before scheduling removal. THE DEPRECATED SPELLING IS DOCUMENTED, NOT HIDDEN (doyle fork-E ruling): `visible_alias` rather than the hidden `--deferred`-style precedent, so the alias reaches the generated reference as a findable deprecated row — a deprecation an operator cannot find is not a deprecation. Gate: impl — the primary/alias rename with the shared note, the dispatch arm, the surface-help path table moved to the primary spelling, and the KH-2.3 spawn-argv sentence; unit — per-subcommand alias equivalence over the enumerated surface, the bare form defaulting to the status view under both spellings, and the note rendering in BOTH spellings' long help (the shape-(i) choice made visible, so moving the note to a runtime print reds here); doc — CONTEXT.md's disambiguation line separating this VERB from the retired `spt-node` separate-process deliverable, plus the reference regen carrying the deprecated row and the removal constraint. Kin REQ-CLI-2 (the noun this re-spells), REQ-HAZARD-HANDOFF-ARGV-COMPAT (the spawn argv it must not modernize), REQ-DOCS-5 (the generator whose drift gate must be green on the regen).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4506502Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4506727Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4506955Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4507178Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4507394Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4507628Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4507856Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4508099Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4508337Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4508553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4508813Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4509135Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4509368Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4509588Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4509818Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4510050Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4510298Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4510537Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4510757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4511096Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4511334Z               "line": 1279
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4511557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4511776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4512132Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4512370Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4512593Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4512809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4513094Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4513334Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4513561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4513785Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4514170Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4514412Z               "line": 2086
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4514636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4514859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4515136Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4515375Z               "line": 2541
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4515604Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4515823Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4516043Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4516267Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4516516Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4516757Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4516981Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4517200Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4517443Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4517677Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4517901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4518178Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4518421Z               "line": 31245
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4518649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4518865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4519235Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4519474Z               "line": 31290
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4519695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4519914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4520187Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4520425Z               "line": 36817
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4520649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4520873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4521145Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4521389Z               "line": 36852
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4521608Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4521831Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4522056Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4522273Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4522495Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4522711Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4522987Z       "id": "REQ-CLI-OUTPUT-MARKDOWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4534691Z       "title": "Human-prose COMMAND OUTPUT (not just `--help`) renders the inline Markdown authored in its source strings as terminal styling, never literal markers: `` `code` `` → ANSI cyan, `**bold**` → ANSI bold, `[text](url)` → `text`, markers STRIPPED either way. REQ-CLI-HELP-MARKDOWN only hooked the clap `--help` chokepoint, so command output still printed raw Markdown (audit: `spt how-to` topic text showed `# headers`/backticks, `spt subnet`/`subnet status` hint footers showed stray backticks, the daemon-status `not running` line, the `ENDPOINT_RUN_STARTED` attach hint, and the daemon's `SUBNET_DETACHED` startup line — 13 prose surfaces). The same line-bounded pure `helpfmt::render` is applied at each emit site, color-gated by the OUTPUT STREAM's own tty (`stdout_color` for print/println, the new `stderr_color` for eprintln). HARNESS-SAFETY (binding): color is tty-gated, so an adapter (piped / non-tty / NO_COLOR) gets STRIP mode = zero ANSI + markers removed; every dual-contract MACHINE token on a rendered line (`ENDPOINT_RUN_STARTED:`, `NO_SUCH_TOPIC:`, `SUBNET_DETACHED:`) carries NO Markdown markers, so it survives strip byte-intact — the adapter parse is never perturbed. Pure-machine output (the `<EVENT …>` envelope, bringup parse-tokens SEEDED/BOUND/READY/NO_SEED, `--json`, QR) is NEVER routed through the renderer. The one spt-daemon source string (`SUBNET_DETACHED`, the bin-local renderer is unreachable from the daemon crate) is authored marker-free instead. (v0.12.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4534977Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4535201Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4535429Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4535650Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4535875Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4536100Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4536347Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4536590Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4536810Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4537044Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4537292Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4537530Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4537845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4538167Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4538416Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4538640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4538858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4539226Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4539468Z               "line": 4799
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4539684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4539909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4540185Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4540422Z               "line": 8848
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4540640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4540863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4541144Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4541382Z               "line": 14559
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4541607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4541832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4542108Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4542350Z               "line": 14713
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4542570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4542800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4543086Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4543327Z               "line": 15810
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4543544Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4543769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4544060Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4544292Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4544508Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4544723Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4544946Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4545165Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4545414Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4545648Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4545874Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4546102Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4546345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4546583Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4546807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4547084Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4547332Z               "line": 34655
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4547680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4547910Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4548201Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4548442Z               "line": 377
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4548661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4548890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4549262Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4549496Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4549714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4549934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4550221Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4550459Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4550682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4550897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4551186Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4551423Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4551642Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4551872Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4552092Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4552310Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4552539Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4552754Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4553021Z       "id": "REQ-CLI-STACK-HEADROOM",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4569947Z       "title": "THE CLI MUST HAVE ROOM TO BUILD ITS OWN ARGUMENT TREE, WITH MEASURED HEADROOM. clap's derive-built `Command` tree is constructed recursively at the top of every invocation and its cost scales with the argument population; `main` ran `cli::run()` on the MAIN thread, whose stack on Windows is the PE-header default (1 MiB, not settable at runtime), while a Rust-spawned thread's is explicit. IR-33 measured the tree within roughly SIX net new arguments of exhausting it: U1's eight hidden bool args made EVERY invocation die with 'thread main has overflowed its stack', exit -1073741571 (0xC00000FD), INCLUDING `--version` — before any of our own code ran. The failure face is why this is a requirement and not a tuning note: it presents as a totally broken binary that names no stack, and through REQ-DOCS-5's generator (which enumerates the tree by PARSING the binary's own root help) it presents instead as a silently gutted docs page that the drift check then compares to itself and blesses. FIX: run the CLI on an explicitly-sized thread, so the argument population stops being a budget the next verb-surface lane has to fit under. THE WRAPPER MUST BE FAITHFUL, WHICH IS THE WHOLE RISK OF THE CHANGE: a panic inside the CLI must still leave the process with the SAME face it had when the panic unwound out of main — the same message through the same hook, and the same nonzero exit code (101) — and an ordinary return must exit with the INNER run's code, not the join's. A spawn failure falls back to running inline and SAYS SO, because a resource blip must not turn into a dead CLI, and a silent fallback would restore the old ceiling invisibly. Gate: impl — the sized-thread wrapper in main.rs with its fidelity mapping and its loud fallback; unit — the wrapper driven with a returning closure and a PANICKING one, asserting the code passes through and the panic maps to 101 (the prod call site passes `cli::run` to the same function, so this is the real wrapper and not a parallel spelling); int — a smoke that the DEBUG-built binary answers `--help` with non-empty stdout at exit 0, which is the only assertion that would have caught IR-33 in its own build profile and also backstops the empty-emit generator above.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4570335Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4570563Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4570792Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4571016Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4571231Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4571459Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4571684Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4571933Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4572168Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4572390Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4572615Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4572867Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4573101Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4573325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4573711Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4573950Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4574175Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4574393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4574674Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4574907Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4575126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4575347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4575624Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4575864Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4576084Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4576301Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4576517Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4576737Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4576980Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4577217Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4577432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4577772Z               "path": "crates/spt/tests/cli_stack_smoke.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4578011Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4578229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4578454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4578783Z               "path": "crates/spt/tests/cli_stack_smoke.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4579107Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4579326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4579551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4579876Z               "path": "crates/spt/tests/cli_stack_smoke.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4580104Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4580323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4580542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4580866Z               "path": "crates/spt/tests/cli_stack_smoke.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4581103Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4581319Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4581538Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4581757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4581982Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4582325Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4582563Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4582781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4583070Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4583303Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4583528Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4583743Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4583975Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4584191Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4584406Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4584624Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4584910Z       "id": "REQ-CLI-SURFACE-SECTION-SITED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4602228Z       "title": "The composed `Control surfaces:` section rides the --help of exactly the verbs whose invocation NAMES A SURFACE, and of no others, so the vocabulary meets the operator at the moment of choosing rather than in a manual: `knock` bare, `knock send`, `knock approve`, `knock new-code`, `knock list`; `endpoint access allow` / `deny` / `remove` and the FLAGLESS `endpoint access` listing (which is an EndpointCmd variant, not an AccessCmd one — a distinct site that a subcommand-only sweep silently misses); `daemon access` and its `allow` / `deny` / `remove`; and `subnet create`. DELIBERATELY EXCLUDED and recorded as decided, not overlooked: `knock redeem` and `knock deny` (the surfaces are already fixed by the code or the knock — printing the table there invites the reader to believe they have a choice), and `endpoint fork`, which keeps its existing INLINE FORK+DISCOVER prose because a two-surface verb is better served by a sentence than by a table. The section is appended through clap's after-help placeholder, which the tree uses nowhere today — a NEW PATTERN, so the root help template's existing but unused placeholder is what carries it, and the section text itself comes from the surface table's composer rather than from any per-verb literal. Public help stays free of internal codes at all depths, including the three-deep sites the docs-site drift gate cannot reach. Gate: doc — the public CLI reference; impl — the after-help wiring at each named site, fed by the single composer; unit — every named verb's rendered help carries the section and every excluded verb's does not, the flagless listing site is covered distinctly from its subcommands, the rendered text matches what the composer produced for the same table, and A WALK OVER EVERY NAMED SITE'S RENDERED HELP ASSERTS NO INTERNAL CODE (REQ-, ADR-, F-) APPEARS AT ANY DEPTH — the row that closes the three-deep gap the docs-site drift gate cannot reach, and which earns its green two ways rather than by default: the walk's site set is PINNED (it asserts it visited exactly the named sites, so an empty or truncated enumeration fails loudly rather than passing vacuously) and the same predicate is proven ABLE TO FAIL against a fixture help text carrying a code.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4602514Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4602739Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4602969Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4603192Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4603425Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4603650Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4603877Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4604142Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4604381Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4604605Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4604948Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4605182Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4605400Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4605625Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4605845Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4606074Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4606317Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4606555Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4606778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4607062Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4607304Z               "line": 2152
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4607525Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4607749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4608030Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4608379Z               "line": 2183
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4608602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4608825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4609197Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4609452Z               "line": 2196
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4609676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4609895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4610176Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4610411Z               "line": 2291
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4610636Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4610853Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4611073Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4611293Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4611551Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4611789Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4612012Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4612241Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4612483Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4612731Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4612951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4613242Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4613476Z               "line": 35693
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4613704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4613924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4614210Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4614447Z               "line": 35832
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4614673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4614899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4615175Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4615409Z               "line": 36873
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4615636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4615861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4616152Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4616391Z               "line": 37388
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4616614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4616838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4617115Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4617352Z               "line": 37440
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4617583Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4617808Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4618028Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4618347Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4618566Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4618785Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4619133Z       "id": "REQ-CLI-WIN-VT-ENABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4624747Z       "title": "A7 (F028, operator, Win10 conhost): ANSI emitted without VT enable → garbled console. Evidence (raw PowerShell 7, Win10 conhost): literal `←[36m` in `endpoint list` + `--help`. ROOT: ENABLE_VIRTUAL_TERMINAL_PROCESSING is enabled ONLY on the rc attach path (rc.rs:746, REQ-RC-WIN-VT-OUTPUT) — plain CLI stdout never enables it, and the color decision doesn't fall back when the console can't render VT. FIX: lift the rc.rs VT-enable into a SHARED startup helper for every colored-output path; if SetConsoleMode fails (or stdout isn't a console), STRIP colors (the ansi_wrap/helpfmt color=false path already exists — plumb the decision, not new rendering). Windows Terminal masks this (VT always on) — TEST on raw conhost. See triage A7.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4625012Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4625233Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4625477Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4625702Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4625939Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4626163Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4626416Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4626655Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4626879Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4627108Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4627346Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4627590Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4627807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4628105Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4628335Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4628559Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4628777Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4629087Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4629317Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4629570Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4629917Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4630138Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4630373Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4630620Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4630859Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4631077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4631368Z               "path": "crates/spt/src/helpfmt.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4631611Z               "line": 329
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4631831Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4632051Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4632269Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4632493Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4632705Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4632928Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4633250Z       "id": "REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4642320Z       "title": "MSG-IDENTITY W6 / F-039 leg e (doyle W6 LOCK 2026-07-10, minted per amendment 3 — hertz's five invariants VERBATIM from his RCA fix-shape item 5): 'Build a deterministic black-holed-controller harness against current v0.30.6 semantics and assert: unrelated sessions continue; the bad physical connection is canceled/closed within the bound; its writer exits; a fresh viewer can attach; no lock or task remains owned by the retired connection.' The harness is the standing conformance rig for the r4 SHAREDSEND fix-class — hertz's RCA discipline: only after a timestamped incident maps to a FAILING lifecycle invariant does an ownership/cancellation defect get fixed (the likely shape being complete physical-connection cancellation and writer-task join/retirement, never a broader timeout increase). Consumes REQ-CONN-POISON-ATTRIBUTION's records (conn id + lifecycle events are what make the five assertions checkable deterministically). Kin REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (the invariant class under test — its brain_decouple int stays the Windows-mandatory gate leg), REQ-CONN-POISON-DIAL-SCOPE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4642635Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4642863Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4643082Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4643618Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4644125Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4644773Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4645375Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4645937Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4646420Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4646950Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4647560Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4648119Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4648604Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4649225Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4649831Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4650380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4651089Z               "path": "crates/spt-daemon/tests/conn_blackhole_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4651964Z               "line": 245
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4652517Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4653013Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4653491Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4653971Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4654515Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4655139Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4655726Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4656264Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4656744Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4657209Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4657763Z       "id": "REQ-CONN-POISON-ATTRIBUTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4673241Z       "title": "MSG-IDENTITY W6 / F-039 legs b-d (doyle W6 LOCK 2026-07-10, minted per amendment 3): every broker-conn lifecycle record is ATTRIBUTABLE — the W6 RCA's terminal undecidability (per-line 1:1 CONN_WRITE_POISONED churn = fresh-carrier churn OR stderr interleave artifact) exists because records carry no stable conn identity, no role/endpoint/session context, and no timestamps, and the once-per-conn poison latch hides multiplicity. THREE LEGS. (b) IDENTITY: mint a stable per-physical-conn id (monotonic u64 at conn construction — Arc::ptr_eq is the only identity today and it does not survive a log line) plus subscriber role and endpoint/session where known, stamped on CONN_WRITE_POISONED, CONN_WRITE_RETIRED, logical stall-evict, attach/resume/detach, and write-retirement records (RCA attach sites: presence nethost.rs:379, stream nethost.rs:258, controller broker.rs:891, viewer broker.rs:1073). (c) TIME: daemon stderr correlation records carry wall-clock AND monotonic timestamps (stderrlog has neither; broker+brain share one file — interleave is unresolvable without them). (d) LIFECYCLE (doyle-confirmed UNCONDITIONAL, not debug-gated): one BOUNDED set of per-conn lifecycle events — write start/timeout-cancel/transport close/writer exit/replacement-reattach (hertz RCA fix-shape items 1-3). Constraint (doyle LOCK): the split/attribution must not REDUCE total information, only correct its attribution; NO timeout-value changes; NO suppression-as-fix. Gate: unit — lifecycle records carry conn id + role + timestamps; the id is unique per physical conn and stable across that conn's records. Kin REQ-CONN-POISON-DIAL-SCOPE (leg a, the token split these fields ride on), REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS (leg e, consumes these records), REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (behavior invariant preserved).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4688016Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4688584Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4689156Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4689649Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4690115Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4690617Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4691129Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4691728Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4692272Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4692748Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4693278Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4693905Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4694438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4695014Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4695745Z               "line": 2559
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4696307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4696789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4697365Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4698103Z               "line": 2799
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4698658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4699345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4699932Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4700670Z               "line": 2829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4701224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4701713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4702293Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4703012Z               "line": 3490
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4703565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4704049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4704621Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4705361Z               "line": 3683
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4705918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4706413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4706992Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4707715Z               "line": 3745
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4708273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4708764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4709430Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4710153Z               "line": 3952
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4710710Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4711192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4711760Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4712486Z               "line": 4002
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4713035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4713515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4714097Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4714831Z               "line": 4037
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4715378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4715863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4716440Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4717166Z               "line": 5941
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4717717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4718199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4718761Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4719657Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4720207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4720703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4721260Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4721973Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4722506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4722981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4723546Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4724267Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4724815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4725306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4725866Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4726576Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4727125Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4727610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4728177Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4728906Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4729549Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4730032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4733878Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4734655Z               "line": 457
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4735213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4735719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4736291Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4737017Z               "line": 467
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4737574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4738066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4738624Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4739447Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4739996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4740492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4741067Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4741804Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4742352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4742834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4743412Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4744148Z               "line": 513
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4744696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4745310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4745901Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4746630Z               "line": 566
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4747175Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4747658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4748245Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4749050Z               "line": 759
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4749599Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4750078Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4750551Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4751013Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4751542Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4752146Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4752694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4753165Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4753691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4754277Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4754835Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4755422Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4756161Z               "line": 713
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4756724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4757218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4757803Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4758542Z               "line": 785
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4759186Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4759677Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4760159Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4760629Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4761101Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4761568Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4762097Z       "id": "REQ-CONN-POISON-DIAL-SCOPE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4777687Z       "title": "MSG-IDENTITY W6 / F-039 (deployah field-acceptance follow-up 2026-07-10, RCA-FIRST — mint per the v0.30.6 PASS handoff): ambient CONN_WRITE_POISONED log-churn correlates 1:1 with PUMP_PEER_FAIL submit-dials to OFFLINE peers (enlyzeam/kitsubito/gravity) with NO wedge and NO freeze — pre-existed the blackhole rig = log-noise/mislabel, not a defect in the r4 fix. CODE CONTEXT: conn.rs poison_and_cancel emits the loud CONN_WRITE_POISONED line for a write that 'exceeded its bound (OR FAILED)' (conn.rs:181) — the fast-FAIL branch (broken pipe / conn refused on an already-dead counterpart) shares the log tag with the TIMEOUT branch that is the field-acceptance wedge observable, so routine conn teardown under offline-peer dial churn reads like poison events. RCA-FIRST: pin the exact write site that fails per PUMP_PEER_FAIL cycle (BrokerConn is broker-side — which broker conn write rides each pump dial failure? status/event fan-out to a departed subscriber? brain-side notification?) BEFORE changing anything — the correlation mechanism is unpinned. FIX SHAPE (post-RCA, doyle rules at lock): reserve the loud CONN_WRITE_POISONED token for the DEADLINE-EXCEEDED class (the wedge observable blackhole-controller.ps1 watches); a plain write-FAIL on an already-dead conn retires quietly (debug-level or a distinct low-noise token). MUST NOT weaken the r4 invariant: every failure path still poisons + retires the conn (REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK behavior unchanged — only the log LOUDNESS is scoped). Gate: unit — deadline-exceeded emits the loud token, fast-fail does not (both still poison); field — offline-peer churn no longer floods daemon.stderr.log with CONN_WRITE_POISONED. Kin REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (the invariant this must preserve), REQ-PUMP-PEER-ISOLATION (the offline-peer dial neighborhood), [[v0306-published]].",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4792886Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4793449Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4793996Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4794475Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4794949Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4795448Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4795959Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4796551Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4797089Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4797577Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4798096Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4798779Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4799406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4799980Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4800702Z               "line": 239
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4801254Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4801731Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4802197Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4802670Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4803184Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4803770Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4804314Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4804782Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4805299Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4805875Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4806404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4806971Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4807688Z               "line": 707
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4808236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4808728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4809386Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4810107Z               "line": 753
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4810651Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4811146Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4811615Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4812081Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4812540Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4812996Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4813487Z       "id": "REQ-CONSENT-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4816454Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4819613Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4820190Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4820691Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4821325Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4821817Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4822326Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4822865Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4829065Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4829685Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4830177Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4830716Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4831322Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4831862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4832458Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4833201Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4833759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4834258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4834849Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4835633Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4836189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4836683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4837278Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4838027Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4838594Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4839188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4839783Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4840513Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4841071Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4841569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4842145Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4842884Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4843437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4843934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4844523Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4845248Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4845807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4846301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4846877Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4847614Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4848172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4848659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4849308Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4850015Z               "line": 23873
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4850701Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4851201Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4851673Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4852144Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4852662Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4853249Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4853787Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4854259Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4854785Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4855369Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4855908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4856499Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4857252Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4857807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4858309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4858894Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4859733Z               "line": 380
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4860299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4860802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4861403Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4862154Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4862713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4863208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4863799Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4864538Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4865124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4865614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4866219Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4866941Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4867503Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4868001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4868592Z               "path": "crates/spt-store/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4869669Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4870269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4870803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4871540Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4872278Z               "line": 31624
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4872884Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4873407Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4873920Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4874430Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4874922Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4875417Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4875952Z       "id": "REQ-CONSENT-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4878770Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4881776Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4882386Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4882920Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4883449Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4883958Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4884499Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4885071Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4885706Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4886345Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4886968Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4887635Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4888367Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4889140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4889873Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4890756Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4891452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4892078Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4892797Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4893684Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4894389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4895011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4895742Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4896623Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4897323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4897968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4898706Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4899799Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4900505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4901144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4901870Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4902728Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4903392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4903992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4904684Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4905538Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4906201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4906792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4907446Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4908246Z               "line": 23664
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4908918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4909628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4910274Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4911085Z               "line": 23722
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4911757Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4912344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4912928Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4913517Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4914147Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4914843Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4915504Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4916093Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4916722Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4917410Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4918049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4918734Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4919668Z               "line": 419
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4920327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4920933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4921630Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4922474Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4923127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4923729Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4924545Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4925393Z               "line": 472
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4926059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4926653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4927349Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4928193Z               "line": 516
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4928860Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4929547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4930204Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4931006Z               "line": 33285
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4931652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4932219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4932834Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4933597Z               "line": 33367
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4934229Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4934786Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4935333Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4935876Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4936427Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4936975Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4937557Z       "id": "REQ-CONSENT-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4943208Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4948431Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4949167Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4949748Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4950328Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4950906Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4951478Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4952036Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4952666Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4953271Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4954040Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4954660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4955264Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4955959Z               "line": 370
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4956574Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4957131Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4957683Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4958240Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4958835Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4959574Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4960183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4960850Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4961637Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4962253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4962809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4963469Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4964247Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4964877Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4965440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4966113Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4966885Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4967501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4968069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4968727Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4969614Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4970233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4970806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4971467Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4972241Z               "line": 1263
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4972847Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4973397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4973996Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4974721Z               "line": 23790
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4975335Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4975898Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4976558Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4977111Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4977708Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4978366Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4979050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4979735Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4980522Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4981133Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4981694Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4982243Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4982782Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4983387Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4984038Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4984647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4985335Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4986120Z               "line": 1659
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4986744Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4987310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4987982Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4988777Z               "line": 1706
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4989487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4990047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4995140Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4995999Z               "line": 2346
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4996637Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4997206Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4997754Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4998293Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4998833Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.4999477Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5000080Z       "id": "REQ-CONTROL-STAMP-CONVERGENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5005404Z       "title": "REGISTRY-LIFECYCLE W2 (ADR-0041 decision 4, emphasys C3 P1): control-stamp writes are session/generation-VALIDATED (or per-endpoint stamp transitions serialized) so a pre-reap KIND_SESSIONS snapshot can never relatch controlled=true after the exit-waiter reap; no fs I/O under global locks (KH 7.12); every no-session path clears all three control fields (controlled/driven_by/viewer_count). Gate: impl — validated/serialized stamp transitions; unit — stale-snapshot write refused after a newer no-session truth, no-session paths clear all three; int — poll-vs-reap interleave converges to cleared stamps (the relatch regression); doc — ADR-0041.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5009684Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5010276Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5010805Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5011334Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5011859Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5012383Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5012904Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5013440Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5013988Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5014566Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5015111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5015748Z               "path": "docs/adr/0041-endpoint-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5016428Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5016990Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5017566Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5018124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5018643Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5019300Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5019910Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5020457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5021067Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5021717Z               "line": 1115
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5022276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5022801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5023407Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5024053Z               "line": 1152
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5024606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5025135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5025732Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5026373Z               "line": 3599
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5026935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5027464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5028055Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5028698Z               "line": 6214
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5029530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5030107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5030756Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5031400Z               "line": 8473
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5031953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5032483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5033084Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5033723Z               "line": 816
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5034291Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5034818Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5035333Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5035848Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5036396Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5036961Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5037533Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5038182Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5038877Z               "line": 826
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5039502Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5040033Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5040552Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5041073Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5041631Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5042215Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5042762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5043367Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5044020Z               "line": 10139
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5044580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5045111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5045444Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5045726Z               "line": 1673
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5045979Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5046246Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5046509Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5046762Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5047028Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5047280Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5047607Z       "id": "REQ-CONTROLLER-LEASE-IDENTITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5058392Z       "title": "RC-RENDER-TRUTH W2 (ADR-0044 decisions 1+2, hertz same-machine --take split-brain RCA P0-A/B, doyle seam-verified broker.rs resolve_subscribe 1296-1318 + 1334-1347): each rc invocation/attach stream mints a UNIQUE controller lease id carried through SubscribeReq, the controller slot, and Input/Resize; node identity stays separate as attribution/access policy only. The ONLY silent successor/replay case is same-lease + equal-or-newer generation (ADR-0038 fix-6 dispatcher-recovery contract preserved exactly); same node + different lease = DISTINCT controller. Explicit Take on a distinct incumbent lease ALWAYS revokes loudly AND authoritatively — atomically revoke/fence the old lease and FORCE its attach stream closed, then install the taker, regardless of whether by-node strings match; the Displaced notice is best-effort (today old.tx.try_send at broker.rs:1342-1345 can DROP the notice on a Full queue while become_controller still replaces — the revoke/close must land even when notice enqueue fails; the closed stream is itself the terminal signal rc's PumpEnd::Displaced/EOF path handles). Today same_identity keys on controller_by()==by alone, intent never consulted; two same-machine windows collapse to one identity and --take silently swaps the sink leaving the incumbent input-capable but blind. Acceptable identity seam: (by, nonzero attach generation) as the logical lease. GENERATION LADDER (doyle ruling 2026-07-18, resolves fix-6/Busy conflict at T6): within the SAME by — equal gen = silent successor (dispatcher recovery, unchanged); STRICTLY NEWER gen (Control or Take) = loud+fenced supersession (full W2 revoke — without it a live replacement viewport bounces Busy off a stale-replay worker serving a zombie stream forever = post-restart lockout, fix-6 order-independence regression); OLDER gen = refused Busy (unchanged). Across DIFFERENT by: Control = Busy, Take = loud revoke. Deliberate UX: a second same-node window's plain rc loudly displaces the first (pre-W2 did the same replacement SILENTLY with the loser blind-but-interactive; loud+fenced strictly better; --view = coexistence). redispatch_stall T6 must stay green UNMODIFIED. N-1: lease field additive; absent lease (older client) degrades to legacy node-identity semantics for that subscriber. Gate: impl — lease mint + carry + loud distinct-lease Take; unit — same-lease equal/newer gen stays silent, same-node different-lease Take displaces loudly, older-gen replay still refused busy; int — hertz regression steps 1-4 + 7-8 (A gets Displaced{by} + terminal stream completion, output reaches B only, metadata identifies B, one controller slot; separate equal-lease replay test proves dispatcher recovery stays silent); doc — ADR-0044.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5058824Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5059163Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5059511Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5059778Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5060035Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5060298Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5060562Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5060826Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5061119Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5061391Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5061649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5062025Z               "path": "docs/adr/0044-controller-lease-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5062297Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5062555Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5062813Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5063071Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5063335Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5063614Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5063891Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5064149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5064487Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5064764Z               "line": 2668
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5065027Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5065298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5065633Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5065918Z               "line": 3105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5066179Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5066446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5066775Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5067161Z               "line": 3196
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5067428Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5067685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5068019Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5068292Z               "line": 3947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5068552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5068807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5069232Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5069524Z               "line": 4032
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5069790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5070052Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5070348Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5070629Z               "line": 1215
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5070886Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5071140Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5071400Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5071664Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5071946Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5072213Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5072476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5072838Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5073110Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5073364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5073621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5073977Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5074246Z               "line": 370
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5074508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5074762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5075119Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5075395Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5075663Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5075921Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5076178Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5076439Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5076715Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5077101Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5077354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5077697Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5077970Z               "line": 10538
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5078231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5078485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5078815Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5079160Z               "line": 10589
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5079430Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5079687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5079991Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5080268Z               "line": 3805
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5080522Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5080783Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5081038Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5081295Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5081552Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5081808Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5082120Z       "id": "REQ-CONTROLLER-LIVENESS-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5092392Z       "title": "B-2 (REMOTE-TRUTH triage §B-2, REDUCED @bdc1242): a stale ONLINE+CONTROLLED stamp on a live-session perch self-heals — the info.json driven_by/controlled RECORD is made to match the broker's SINK-TABLE TRUTH. ROOT (persisted-stale-stamp class, doyle Q1): the livehost control reap gates on !has_session (reconcile_hosted_liveness), and a brain-only update KEEPS the session (REQ-UPD-3), so a controller stamp that went stale WHILE the session lived was never re-derived from broker truth. NOT a transport bug: (a) a persisted conn is the REQ-UPD-3 feature; (b) an idle-severed conn eventually EOFs via QUIC keepalive → handle_conn detach (path 1) — and the reason paths 1-3 previously failed to clean up was the B-1 broker floor-lock POISON WEDGE (cleanup panicked under the poisoned lock), now fixed. REDUCTION (doyle, my ground-truth): the prescription was 80% pre-built — converge_perch_stamps (broker.rs, REQ-HAZARD-CONTROL-STAMP-CONVERGENCE) ALREADY converges info.json driven_by/controlled to the broker's controller_by/has_controller on EVERY KIND_SESSIONS poll, and the livehost reconcile already TRIGGERS that poll per tick (query_live_session_endpoints). So NO new IPC query, NO new livehost arm, NO 5th detach path — the ONLY gap is that a controller whose WRITER THREAD died (severed conn: the writer failed a socket write, or a detach dropped by the prior B-1 wedge) still reports controller_by=Some/has_controller=true, so converge keeps the stale stamp. FIX: a broker-side lazy-reap in the KIND_SESSIONS snapshot closure — OutputLog::reap_dead_controller() drops a controller whose _writer.is_finished() BEFORE controller_by/has_controller are read, so the reply + the off-lock converge both see the honest (cleared) state and the stamp clears. LOCK-SAFE: the reap drops the sink in-memory ONLY (no stamp_driven_by → no info.json I/O under the log lock, the KH 7.12/5.16 lock-across-effect discipline); the OFF-lock converge_perch_stamps writes the honest stamp. KH 7.15 held by construction: the reap only ever CLEARS, never latches driven_by; a LIVE (idle, parked-on-rx.recv) controller is is_finished()==false so it is NEVER false-reaped. RESIDUAL (doyle Q2 accepted): a TRULY IDLE severed controller (writer parked on recv, no output, conn not yet EOF'd) stays is_finished()==false and converges only on output-resume / conn-EOF — that harder active-probe case is the RESERVED REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT (SessionInfo.controller_by doc), deliberately NOT built here so the reserved seed keeps its scope. Red-first: a dead-writer sink → reap clears it (controller_by honest None → converge clears the stamp); a live-writer sink → UNTOUCHED (no-false-reap control).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5092737Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5092995Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5093258Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5093511Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5093821Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5094092Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5094359Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5094645Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5095020Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5095276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5095543Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5095825Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5096092Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5096359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5096688Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5096964Z               "line": 2720
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5097226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5097483Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5097751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5098007Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5098289Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5098564Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5098826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5099243Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5099533Z               "line": 1508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5099794Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5100056Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5100313Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5100584Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5100869Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5101141Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5101403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5101732Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5102013Z               "line": 12494
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5102275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5102529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5102862Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5103133Z               "line": 12590
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5103397Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5103650Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5103912Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5104161Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5104414Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5104666Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5104942Z       "id": "REQ-CONV-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5107014Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5107310Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5107573Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5107834Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5108087Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5108353Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5108610Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5108892Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5109277Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5109550Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5109812Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5110093Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5110364Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5110616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5110943Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5111225Z               "line": 1695
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5111487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5111754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5112088Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5112360Z               "line": 676
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5112621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5112879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5113203Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5113474Z               "line": 907
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5113735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5113996Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5114321Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5114597Z               "line": 1717
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5114854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5115111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5115445Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5115712Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5116079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5116334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5116673Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5116940Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5117202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5117459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5117788Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5118060Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5118318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5118574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5118899Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5119256Z               "line": 639
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5119523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5119786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5120124Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5120401Z               "line": 1222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5120663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5120914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5121262Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5121531Z               "line": 568
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5121803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5122061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5122404Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5122676Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5122939Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5123200Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5123453Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5123719Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5124006Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5124277Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5124532Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5124799Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5125085Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5125356Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5125619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5125953Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5126225Z               "line": 2304
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5126493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5126753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5127195Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5127476Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5127739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5127995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5128329Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5128605Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5128868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5129221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5129562Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5129835Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5130093Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5130351Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5130608Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5130864Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5131118Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5131370Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5131638Z       "id": "REQ-CONV-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5133255Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5133547Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5133799Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5134061Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5134313Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5134580Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5134832Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5135111Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5135383Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5135640Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5135902Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5136174Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5136447Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5136700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5137039Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5137417Z               "line": 1352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5137678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5137940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5138279Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5138555Z               "line": 783
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5138808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5139132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5139504Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5139776Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5140033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5140291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5140633Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5140906Z               "line": 1232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5141173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5141424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5141763Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5142030Z               "line": 1243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5142301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5142558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5142896Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5143162Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5143420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5143676Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5143982Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5144258Z               "line": 12140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5144510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5144765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5145070Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5145344Z               "line": 12156
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5145609Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5145876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5146181Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5146453Z               "line": 12448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5146710Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5146969Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5147231Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5147497Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5147782Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5148156Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5148414Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5148682Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5149048Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5149330Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5149583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5149921Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5150189Z               "line": 1737
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5150447Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5150711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5151036Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5151302Z               "line": 1862
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5151556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5151809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5152143Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5152420Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5152677Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5152937Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5153192Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5153437Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5153704Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5153951Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5154256Z       "id": "REQ-CRC-SWAP-OLD-DISPLACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5157882Z       "title": "C1 (F028, infra; memory crc-swap-old-litter-brick, RCA'd ENLYZEAM + confirmed systemic): crc_swap `.old`-litter bricks every subsequent adapter update. apply_crc_swap Phase-3 `let _ = remove_file(.old)` (spt-daemon/src/crc_swap.rs:129-133) silently fails whenever ANY pre-update process still image-maps the old binary (NORMAL on a live box — endpoint launch children survive updates). The NEXT update's first commit-op rename(exe->exe.old) = MoveFileExW(REPLACE_EXISTING) must delete the mapped .old -> win32 err 5 -> whole apply fails + rolls back FOREVER, context-free. FIX: (i) DISPLACE not replace — when <target>.old exists, rename it aside to a unique suffix (rename succeeds on mapped files; spt's own updater already does spt.exe.old-<counter>); GC stale .old.* opportunistically. (ii) Wrap swap io errors with op + path (`rename claude-spt.exe -> claude-spt.exe.old: …`). Unit seam exists (crc_swap tests). See triage C1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5158281Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5158542Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5158798Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5159118Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5159394Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5159646Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5159928Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5160200Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5160462Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5160721Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5161002Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5161266Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5161534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5161872Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5162135Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5162411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5162665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5163003Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5163275Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5163535Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5163800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5164124Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5164396Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5164649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5164907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5165236Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5165508Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5165765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5166017Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5166346Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5166610Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5166873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5167126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5167450Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5167726Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5167988Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5168347Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5168603Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5168865Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5169238Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5169529Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5169788Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5170050Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5170322Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5170593Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5170845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5171174Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5171451Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5171703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5171966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5172286Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5172557Z               "line": 539
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5172819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5173085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5173414Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5173691Z               "line": 589
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5173949Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5174205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5174537Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5174809Z               "line": 638
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5175071Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5175318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5175647Z               "path": "crates/spt-daemon/src/crc_swap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5175919Z               "line": 669
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5176172Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5176436Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5176688Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5176943Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5177189Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5177448Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5177747Z       "id": "REQ-CREATE-BIND-REST-ACTIVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5184237Z       "title": "A successful fresh `endpoint run --create` bind MUST normalize rest intent to active IN THE SAME lifecycle transition — it must not leave `rest_state=suspended` from the prior life, and must never require a separate explicit `endpoint wake` to make a freshly-bound-online endpoint's rest vocabulary truthful. RE-PROVEN PRESENT on 0.44.0 (hertz W0 item 3, 2026-07-27, isolated build): `endpoint stop` -> raw status=offline rest_state=suspended session_id=5c93...; successful `run --create --start` minted session 714260b31d440df3 status=online — rest_state STILL suspended; independent repeat matched (new session 595f..., same sticky suspended). Sibling probes: fresh create with no prior perch carries NO rest_state field (the field itself is inherited residue, not a fresh stamp); explicit `endpoint wake` on the reproduced row flips suspended->active (the transition exists and works — it is simply never taken by the create/bind path). Downstream symptom from the original F-034 filing: `endpoint suspend` NO_EDGEs on a visibly ONLINE endpoint because the recorded rest state already claims suspended. FIX SHAPE: the create/bind success path stamps rest intent active atomically with the online transition (terminal-normalize family — same transition, never a follow-up repair step); deliberate suspend-while-online semantics (ADR'd rest vocabulary) must be preserved — the normalization applies to FRESH binds inheriting a dead life's rest state, not to a live session an operator suspended. Kin: KH 7.49 (a verb never stamps a state it did not cause — this is the inverse: a transition failing to stamp the state it DID cause), terminal-normalize work 0.41-0.43 (which closed the adjacent shapes but never reached this seam).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5184636Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5184896Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5185149Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5185403Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5185655Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5185912Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5186169Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5186451Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5186713Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5186962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5187329Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5187599Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5187854Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5188106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5188421Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5188689Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5189032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5189289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5189599Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5189868Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5190113Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5190363Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5190616Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5190860Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5191127Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5191389Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5191641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5192014Z               "path": "crates/spt/tests/create_bind_rest_active_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5192295Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5192547Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5192805Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5193062Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5193319Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5193600Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5193910Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5194177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5194497Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5194777Z               "line": 2174
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5195031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5195292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5195614Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5195881Z               "line": 2200
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5196143Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5196391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5196711Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5197096Z               "line": 2246
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5197355Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5197607Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5197871Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5198126Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5198376Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5198638Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5198911Z       "id": "REQ-DAEMON-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5199392Z       "title": "One per-machine spt-daemon owning all per-machine state",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5199677Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5199935Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5200192Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5200446Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5200707Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5200966Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5201229Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5201505Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5201782Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5202035Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5202293Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5202559Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5202831Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5203083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5203412Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5203680Z               "line": 357
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5203932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5204189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5204504Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5204770Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5205019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5205272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5205595Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5205856Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5206117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5206359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5206679Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5206941Z               "line": 1197
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5207199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5207448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5207772Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5208035Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5208392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5208652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5209051Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5209337Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5209584Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5209841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5210156Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5210419Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5210668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5210911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5211229Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5211497Z               "line": 632
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5211751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5211994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5212333Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5212619Z               "line": 1308
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5212891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5213158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5213478Z               "path": "crates/spt-daemon/src/relay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5213744Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5214005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5214268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5214573Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5214849Z               "line": 498
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5215108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5215359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5215674Z               "path": "crates/spt/src/api/live.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5215941Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5216198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5216450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5216773Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5217049Z               "line": 1017
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5217301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5217558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5217975Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5218250Z               "line": 1183
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5218507Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5218769Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5219089Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5219354Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5219640Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5219902Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5220163Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5220551Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5220817Z               "line": 2
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5221074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5221331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5221712Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5225819Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5226096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5226358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5226725Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5227010Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5227270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5227527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5227876Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5228137Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5228400Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5228657Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5228907Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5229278Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5229574Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5229844Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5230099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5230423Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5230690Z               "line": 388
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5230957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5231214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5231534Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5231802Z               "line": 396
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5232065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5232319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5232781Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5233062Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5233315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5233571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5233896Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5234163Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5234420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5234669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5234998Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5235269Z               "line": 2410
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5235530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5235793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5236117Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5236389Z               "line": 4058
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5236646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5236909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5237229Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5237509Z               "line": 2196
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5237777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5238030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5238363Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5238631Z               "line": 2233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5238893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5239222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5239565Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5239833Z               "line": 2256
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5240091Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5240342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5240674Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5240945Z               "line": 2285
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5241198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5241446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5241779Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5242052Z               "line": 2333
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5242418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5242672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5243004Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5243274Z               "line": 2376
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5243531Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5243778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5244088Z               "path": "crates/spt-daemon/src/relay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5244356Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5244613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5244867Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5245187Z               "path": "crates/spt-daemon/src/relay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5245463Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5245718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5245971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5246281Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5246549Z               "line": 1295
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5246797Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5247049Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5247302Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5247559Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5247812Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5248059Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5248342Z       "id": "REQ-DAEMON-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5248691Z       "title": "Broker/brain split for seamless self-update",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5249054Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5249311Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5249562Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5249816Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5250069Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5250332Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5250589Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5250859Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5251123Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5251387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5251687Z               "path": "docs/TWO-HOST-RUNBOOK.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5251959Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5252202Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5252454Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5252707Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5252978Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5253265Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5253526Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5253882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5254201Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5254473Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5254720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5254977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5255292Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5255559Z               "line": 1565
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5255817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5256066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5256379Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5256641Z               "line": 1644
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5256893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5257147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5257466Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5257743Z               "line": 2252
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5258001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5258258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5258580Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5258849Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5259174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5259436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5259756Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5260028Z               "line": 5515
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5260286Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5260535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5260849Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5261121Z               "line": 8994
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5261376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5261622Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5261933Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5262195Z               "line": 9642
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5262443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5262694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5262995Z               "path": "crates/spt-daemon/src/codec.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5263377Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5263624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5263881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5264194Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5264461Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5264714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5264960Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5265271Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5265528Z               "line": 527
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5265776Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5266021Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5266326Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5266584Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5266834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5267086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5267392Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5267654Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5267908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5268159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5268494Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5268765Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5269083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5269334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5269663Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5269930Z               "line": 1278
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5270183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5270431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5270750Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5271007Z               "line": 1563
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5271265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5271508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5271823Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5272093Z               "line": 1775
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5272344Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5272601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5272920Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5273197Z               "line": 1887
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5273559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5273812Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5274131Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5274399Z               "line": 2162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5274651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5274901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5275230Z               "path": "crates/spt-daemon/src/transport.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5275492Z               "line": 10
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5275750Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5275997Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5276252Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5276509Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5276785Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5277047Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5277304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5277623Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5277886Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5278158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5278410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5278758Z               "path": "crates/spt-daemon/tests/netbroker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5279112Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5279378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5279634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5279960Z               "path": "crates/spt-daemon/tests/netbroker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5280233Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5280485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5280743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5281067Z               "path": "crates/spt-daemon/tests/netbroker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5281335Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5281586Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5281840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5282164Z               "path": "crates/spt-daemon/tests/netbroker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5282421Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5282672Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5282923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5283348Z               "path": "crates/spt-daemon/tests/netstream.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5283610Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5283862Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5284110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5284425Z               "path": "crates/spt/tests/brain_survive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5284686Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5284932Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5285177Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5285427Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5285680Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5285944Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5286201Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5286454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5286759Z               "path": "crates/spt-daemon/src/codec.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5287021Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5287268Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5287521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5287831Z               "path": "crates/spt-daemon/src/codec.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5288098Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5288345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5288593Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5288902Z               "path": "crates/spt-daemon/src/codec.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5289251Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5289504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5289747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5290062Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5290323Z               "line": 617
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5290578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5290830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5291121Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5291398Z               "line": 1896
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5291646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5291900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5292195Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5292466Z               "line": 1981
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5292714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5292967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5293274Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5293645Z               "line": 1998
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5293951Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5294213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5294519Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5294781Z               "line": 2129
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5295043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5295290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5295618Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5295893Z               "line": 2350
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5296146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5296404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5296718Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5296990Z               "line": 2418
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5297246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5297504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5297833Z               "path": "crates/spt-daemon/src/transport.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5298109Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5298364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5298619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5299039Z               "path": "crates/spt-daemon/tests/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5299306Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5299558Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5299811Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5300064Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5300316Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5300566Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5300816Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5301089Z       "id": "REQ-DAEMON-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5301457Z       "title": "Any api invocation auto-starts the daemon if absent",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5301728Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5301986Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5302240Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5302497Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5302745Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5303002Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5303259Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5303536Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5303919Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5304163Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5304430Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5304702Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5304968Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5305221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5305545Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5305811Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5306061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5306326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5306648Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5306910Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5307167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5307421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5307731Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5307993Z               "line": 550
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5308246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5308499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5308794Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5309164Z               "line": 7904
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5309422Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5309679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5309980Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5310252Z               "line": 14229
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5310505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5310763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5311053Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5311323Z               "line": 14250
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5311579Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5311832Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5312075Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5312327Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5312599Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5312852Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5313100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5313415Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5313673Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5313926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5314181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5314613Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5314875Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5315123Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5315362Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5315610Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5315857Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5316124Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5316391Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5316635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5316957Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5317218Z               "line": 3537
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5317465Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5317718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5318009Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5318271Z               "line": 38567
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5318511Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5318768Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5319092Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5319354Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5319605Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5319845Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5320121Z       "id": "REQ-DAEMON-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5320426Z       "title": "Honor every KNOWN-HAZARDS invariant",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5320693Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5320936Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5321193Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5321436Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5321686Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5321936Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5322186Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5322458Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5322716Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5322960Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5323212Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5323478Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5323736Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5323989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5324313Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5324572Z               "line": 2024
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5324931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5325178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5325503Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5325764Z               "line": 2114
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5326017Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5326264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5326579Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5326847Z               "line": 2136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5327086Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5327331Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5327578Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5327826Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5328088Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5328350Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5328597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5328926Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5329275Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5329523Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5329780Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5330025Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5330280Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5330551Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5330813Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5331058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5331381Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5331649Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5331897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5332149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5332462Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5332728Z               "line": 4290
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5332981Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5333229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5333543Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5333811Z               "line": 4364
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5334062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5334305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5334625Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5334892Z               "line": 4394
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5335141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5335486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5335815Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5336086Z               "line": 4427
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5336334Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5336581Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5336820Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5337068Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5337317Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5337563Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5337830Z       "id": "REQ-DAEMON-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5339740Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5340025Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5340275Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5340537Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5340787Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5341035Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5341284Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5341560Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5341823Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5342065Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5342318Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5342589Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5342848Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5343084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5343406Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5343668Z               "line": 670
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5343916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5344170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5344480Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5344747Z               "line": 1617
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5345123Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5345368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5345692Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5345956Z               "line": 1630
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5346201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5346441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5346756Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5347013Z               "line": 1648
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5347257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5347504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5347828Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5348091Z               "line": 1689
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5348338Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5348580Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5348821Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5349165Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5349436Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5349698Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5349941Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5350200Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5350462Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5350734Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5350977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5351300Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5351567Z               "line": 2230
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5351815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5352064Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5352373Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5352635Z               "line": 2254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5352878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5353130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5353445Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5353707Z               "line": 2280
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5353957Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5354205Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5354448Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5354687Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5354931Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5355182Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5355449Z       "id": "REQ-DAEMON-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5358102Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5358383Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5358631Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5358884Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5359220Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5359473Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5359715Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5359992Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5360249Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5360501Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5360751Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5361018Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5361275Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5361537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5361855Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5362118Z               "line": 779
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5362370Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5362614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5362928Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5363190Z               "line": 818
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5363443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5363690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5364005Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5364267Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5364512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5364861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5365171Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5365447Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5365694Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5365943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5366233Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5366493Z               "line": 7984
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5366745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5366990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5367275Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5367537Z               "line": 8087
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5367785Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5368033Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5368276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5368524Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5368786Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5369129Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5369369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5369614Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5369884Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5370156Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5370399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5370724Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5370986Z               "line": 371
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5371229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5371472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5371782Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5372039Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5372288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5372530Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5372835Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5373120Z               "line": 408
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5373364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5373612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5373945Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5374204Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5374452Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5374698Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5374948Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5375193Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5375435Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5375677Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5376041Z       "id": "REQ-DAEMON-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5377973Z       "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).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5378254Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5378507Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5378760Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5379084Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5379337Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5379581Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5379848Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5380113Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5380368Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5380621Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5380888Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5381150Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5381397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5381722Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5381985Z               "line": 837
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5382237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5382481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5382801Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5383061Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5383318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5383567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5383877Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5384139Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5384387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5384630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5384920Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5385286Z               "line": 7905
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5385547Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5385795Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5386043Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5386325Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5386596Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5386848Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5387101Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5387349Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5387622Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5387874Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5388134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5388456Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5388714Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5389052Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5389301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5389596Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5389854Z               "line": 31154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5390102Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5390355Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5390597Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5390839Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5391095Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5391337Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5391605Z       "id": "REQ-DAEMON-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5392911Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5393328Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5393683Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5394003Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5394245Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5394498Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5394746Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5395009Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5395267Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5395514Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5395780Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5396045Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5396435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5396688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5397017Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5397280Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5397571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5397824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5398139Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5398401Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5398657Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5398931Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5399317Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5399579Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5399852Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5400119Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5400367Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5400623Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5400896Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5401214Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5401474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5401832Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5402118Z               "line": 371
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5402380Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5402633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5402962Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5403229Z               "line": 408
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5403490Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5403743Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5403992Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5404243Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5404486Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5404734Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5405002Z       "id": "REQ-DAEMON-9",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5408021Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5408418Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5408680Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5408927Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5409254Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5409520Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5409787Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5410059Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5410326Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5410574Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5410831Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5411112Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5411374Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5411632Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5411959Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5412225Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5412467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5412720Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5413040Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5418625Z               "line": 5586
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5418916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5419288Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5419659Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5419948Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5420218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5420504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5420853Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5421124Z               "line": 528
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5421386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5421677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5422016Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5422448Z               "line": 577
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5422717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5422975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5423275Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5423552Z               "line": 8181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5423805Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5424054Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5424301Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5424563Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5424835Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5425102Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5425349Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5425606Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5425877Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5426141Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5426393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5426708Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5426995Z               "line": 3142
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5427248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5427498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5427801Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5428063Z               "line": 38414
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5428302Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5428593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5428846Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5429180Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5429432Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5429675Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5429965Z       "id": "REQ-DAEMON-BITS-AMBIGUITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5451038Z       "title": "SEED (inactive, RCA-first — do NOT close on agreement): nothing on a node surfaces WHICH BITS ARE SERVING, and the same silent wrong-state shape bit twice in one day (2026-07-25). Case 1 (adapter-side echo): a post-reboot ensure race left a dev-build alchemy Hub Daemon serving release shells — version skew visible only by manually comparing process image paths. Case 2 (core, field-measured by flynn): TWO spt daemons resident with live brains on one node — the installed main daemon (owning ALL sockets: the 5474 listeners and every established connection, single home_tag pipe family) and an orphaned scratchpad-built daemon (auto-started into the node by ensure_running from a stray dev-binary invocation at 16:18, holding zero sockets, resident for hours) — while `spt --version` on any binary file answers nothing about which process is answering. Measured sharp edges to carry into the RCA: (a) exe path and resolved HOME are independent — the orphan ran scratchpad bits against the DEFAULT home, so 'where the binary lives' predicts nothing about 'whose state it mutates'; (b) the brain.ready breadcrumb is ONE FILE PER HOME, LAST-WRITER-WINS, keyed by generation — with two brains in one home the stamp can be written by the daemon you are NOT gating on, so any readiness/identity gate that trusts it must first establish single-writer; (c) the breadcrumb's exe_hash (SHA-256 of resident bytes captured at process start) is the RIGHT discriminator — image path answers what is on disk, not which bits are answering — but only under (b)'s single-writer precondition; (d) reap order matters: killing the breadcrumb's last writer leaves the file describing a dead brain's bits until the survivor's next ready write, so any bits-gate readback must be re-established AFTER a reap, never carried across one. Open RCA questions before any fix is designed: why did the second daemon's cold-start not refuse against the live singleton (socket-bind loss is survivable-and-resident today — is that the right posture?); what should ensure_running check BEYOND socket liveness (bits identity?); where does 'which bits are serving' surface to an operator (endpoint list? daemon status verb?). Kin: the NEVER-SEALING-OBSERVABILITY candidate (same shape — silent wrong-state only a human staring at the right field catches). Proposed by todlando (his lane), relayed by flynn with the socket-ownership + exe_hash measurements; seeded by doyle. The orphan pair was reaped by path 2026-07-25 (verified by exact ExecutablePath, supervisor before brain); the reap resolved the instance, not the class. RCA POINTS FROM THE PROPOSING LANE (todlando, extended into THIS record 2026-07-26 rather than minted as a second seed): (1) ORDERING — 'do both pids resolve the same spt_home?' is the FIRST question, not a co-equal fact, because every other discriminator is conditioned on its answer: brain.ready is `<spt_home>/brain.ready`, ONE path, single-writer BY DESIGN, so a shared home makes the breadcrumb a contended file and `generation` — the readiness gate's key, which exists precisely to prevent false promotion — becomes satisfiable by the stamp of the daemon you are NOT gating on. Prior art on this node: default-home `home_tag` sockets already cross-talk the live daemon's hubs, so shared-home cross-talk is an established class here, not a hypothetical. (2) GATE ON RESIDENT BYTES, NEVER ON IMAGE PATH — AND TREAT ABSENCE AS UNPROVEN. Path answers 'what is on disk where I asked'; with two daemons on different bits the only question that matters is 'which bits answered me'. Path is the exact field that has already lied in the field: KH 6.11 — the broker resolves `current_exe()` PER SPAWN (`crates/spt-daemon/src/brainproc.rs`), which on Linux is inode-tracking, so an `update apply` rename made the respawn land on the OLD bytes while readiness passed and the trial recorded `applied:N` (kitsubito v0.4.1); `exe_hash` (lowercase-hex SHA-256 of resident bytes, captured ONCE at process start — `current_exe_hash`, `crates/spt-daemon/src/brainproc.rs:402`) exists BECAUSE the path-derived belief was provably wrong, and the enlyzeam 0.3.0-under-0.3.2-on-disk case is the same record/reality divergence one layer up. Constraint any observability gate must inherit and must NOT weaken: `exe_hash` is ADDITIVE/BEST-EFFORT — omitted when the self-read fails, `None` on any pre-D7 stamp — and today's `bytes_gate` deliberately degrades an absent hash to readiness-only promotion with a loud `PROMOTE_BYTES_UNVERIFIED` (N-1 compat, `brainproc.rs:1042`). An operator-facing 'which bits are serving' answer must degrade the OTHER WAY: absent hash reads UNPROVEN — never PASS, and never a silent fall back to image path. A compat degrade that is correct for ACCEPTING an update is wrong for ASSERTING an identity. (3) SERVICE OWNERSHIP IS DECIDED BY SOCKET/HUB BINDING, NOT BY START TIME. Case 2 measured the instance (main holds all 5474 listeners + every established connection; the scratchpad daemon holds zero sockets and was the LATER start) but the INFERENCE RULE is what must survive the instance: a later start is not thereby the loser and an earlier start is not thereby the server — 'who is serving' is answered by who owns the binding, so any gate, reap, or diagnostic that ranks candidates by pid or start time is guessing at the one fact it is supposed to establish. (4) REAP-ORDER SYMMETRY — (d)'s re-establish-the-gate-AFTER-the-reap rule holds identically on the REVERT path; a bits-gate readback may never be carried across a reap or a rollback in either direction. (5) SINGLE RECORD — this seed is the one home for the class (premature-closure guard: convergent reads are not a root cause, and a green re-read after a reap assigns owner without closing); the socket-bind-loss posture question stays OPEN inside it, and the orphan-pair instance stays closed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5451543Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5451807Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5452060Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5452333Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5452599Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5452847Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5453109Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5453385Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5453647Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5453906Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5454162Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5454431Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5454702Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5454951Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5455228Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5455500Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5455777Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5456029Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5456281Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5456529Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5456773Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5457063Z       "id": "REQ-DAEMON-REFRESH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5461251Z       "title": "THE-FORKENING W4 (operator add 2026-07-14): `spt daemon refresh` — restart the daemon BRAIN without a binary swap and WITHOUT touching the broker: exactly the apply_staged brain-cycle path (brain stop -> respawn -> readiness trial -> promote, incl. the trial-drain drive REQ-UPDATE-TRIAL-DRAIN-DRIVE and viewer-only resume REQ-BRAIN-RESUME-NO-CONTROL-STEAL) minus the swap. Recovery verb for wedged brain-held state (field motivator 2026-07-14: endpoint bringup broken on a live daemon + deployah down — today's only remedy is a full daemon bounce that kills every PTY). Broker + PTYs survive by construction (handoff invariant). Failure = the existing trial rollback semantics (old brain resumes; refresh reports loud). Gate: unit — verb routes the brain-cycle without staging/swap preconditions; int — refresh on a live daemon with a hosted PTY: brain generation changes, PTY survives, endpoint stays attached; doc — daemon docs name refresh next to stop/start. Kin apply_staged (the path it reuses), REQ-UPDATE-TRIAL-DRAIN-DRIVE, REQ-BRAIN-RESUME-NO-CONTROL-STEAL.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5461645Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5461899Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5462155Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5462400Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5462643Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5462888Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5463141Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5463383Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5463655Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5463907Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5464155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5464433Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5464698Z               "line": 690
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5464943Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5465196Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5465445Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5465693Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5465955Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5466212Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5466460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5466779Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5467037Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5467291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5467532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5467822Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5468085Z               "line": 2551
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5468333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5468577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5468872Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5469216Z               "line": 8145
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5469468Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5469719Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5469961Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5470213Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5470571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5470834Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5471082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5471411Z               "path": "crates/spt/tests/daemon_refresh_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5471672Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5471911Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5472159Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5472412Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5472663Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5472927Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5473180Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5473423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5473743Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5474006Z               "line": 831
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5474253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5474505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5474792Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5475063Z               "line": 26208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5475315Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5475575Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5475818Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5476066Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5476319Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5476559Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5476869Z       "id": "REQ-DAEMON-RESTART-SELF-INTERRUPTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5485028Z       "title": "SEED (inactive — operator-workflow trap, field-paid 2026-07-25): an spt-hosted context CANNOT restart the daemon, because the restart's STOP phase tears down the very context running the restart command — the START half never executes and the daemon stays down until an operator starts it by hand. Field case (this node, 17:47–17:50): an agent-kicked restart's stop-begin swept the initiating context and everything sharing its Job Object (flynn's shell + the relay-hopped alchemy Hub, cross-context job members — see REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE's field-firing record); the broker drained ~2m10s to final exit (stderr ends abruptly at 17:50:05.8 amid routine traffic, no shutdown markers); the START was already dead; the operator manually started whatever binary was installed (v0.42.0), with no channel conveying which bits the restarting agent had intended — binary choice silently transferred to whoever brings the daemon up (kin: REQ-DAEMON-BITS-AMBIGUITY, the same which-bits-serve blindness). CONSEQUENCES: (a) every RESTART-REQUIRED apply (broker update, seed-skew restart per hazard 7.9) is operator-only today, and nothing documents that; (b) stop-begin kills bound shells with `close_shell` unrun, so even the GRACEFUL stop path manufactures stale-online shell records on every restart — healed at the read gates by REQ-HAZARD-SHELL-STALE-ONLINE's derivation, but manufactured nonetheless, and on pre-derivation binaries the records lie until the next bind; (c) a restart initiated from inside the system it restarts is a self-interruption with no error surface — the initiator dies believing the restart is in flight. Option space at activation: (1) daemon-owned restart verb — the OUTGOING broker spawns its successor job-neutrally (the 7.10 WMI→schtasks→breakaway ladder already exists) before exiting, so the caller only requests and its death is irrelevant; (2) a detached job-neutral restart helper (same detached_no_inherit + ladder) that survives the caller; (3) status quo + the public contract documents restart as operator-only. Whichever wins must also answer where the INTENDED-BITS declaration lives so a manual or automated starter picks the right binary (the (c)/BITS-AMBIGUITY joint).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5485438Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5485699Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5485949Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5486227Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5486489Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5486741Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5486993Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5487275Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5487547Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5487800Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5488058Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5488444Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5488724Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5489048Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5489320Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5489601Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5489868Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5490111Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5490359Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5490608Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5490868Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5491161Z       "id": "REQ-DAEMON-SERVICE-INSTALL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5493939Z       "title": "F-038 RIDER (flynn nice-to-have, QUEUED not activated): a documented OS-service registration recipe or `spt daemon install-service` verb so the daemon itself survives box reboot (flynn's box runs managed_by:null = daemon-at-boot unprovisioned; kitsubito's hand-rolled systemd --user unit = prior art). NOT in MSG-IDENTITY scope — REQ-ENDPOINT-AUTOSTART covers the daemon-start-to-endpoint leg; the boot-to-daemon leg stays interim (logon scheduled task / systemd unit). Activate at an infra-provisioning milestone; shape (recipe doc vs verb) ruled then. Kin [[daemon-service-detection-gotcha]] (global-OS-state detection blind on dev box — a verb must not regress that), [[kitsubito-linux-rig]].",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5494277Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5494539Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5494792Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5495073Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5495335Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5495588Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5495840Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5496118Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5496383Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5496632Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5496890Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5497167Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5497430Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5497792Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5498049Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5498327Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5498589Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5498841Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5499173Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5499431Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5499680Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5499985Z       "id": "REQ-DAEMON-STATUS-JSON-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5502045Z       "title": "D2 (F028, perri F-d): `daemon status --json` truth drift. managed_by/managed_active read null in JSON while the HUMAN view says 'managed-by: manual — at-logon task registered' (the two surfaces disagree); and pump staleness (the STALLED diagnosis, B5) is NOT computable from JSON — only a raw pump_heartbeat_ms is emitted, no derived staleness/stalled field. FIX: JSON managed_by/active match the human render, and add a derived pump-staleness/stalled field so B5's condition is machine-observable. See triage D2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5502331Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5502585Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5502833Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5503109Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5503362Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5503605Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5503853Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5504121Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5504376Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5504631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5504879Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5505147Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5505404Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5505652Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5505905Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5506166Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5506433Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5506683Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5506933Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5507178Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5507422Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5507709Z       "id": "REQ-DAEMON-STDERR-PERSIST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5509596Z       "title": "W3 (LIFECYCLE-TRUTH, observability): broker + brain stderr tee to a rotating size-capped file under SPT_HOME (e.g. 2x5MB), stamped per generation. ROOT: detached daemon nulls stdio -> the 2026-07-06/07 incident window left ZERO logs (both RCAs ran blind; rigs had to recreate everything). KNOWN-HAZARDS note: never inherit handles (REQ-HAZARD-DETACHED-DAEMON-STDIO) — open the file in-process, don't pipe.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5509878Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5510125Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5510377Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5510625Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5510874Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5511132Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5511394Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5511650Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5511893Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5512145Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5512400Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5512672Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5512924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5513253Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5513526Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5513769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5514018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5514328Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5514595Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5514841Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5515091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5515406Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5515663Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5515917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5516159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5516469Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5516726Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5516983Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5517229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5517643Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5517907Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5518160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5518406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5518721Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5519055Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5519308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5519560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5519855Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5520114Z               "line": 7922
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5520360Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5520603Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5520852Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5521100Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5521367Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5521629Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5521877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5522187Z               "path": "crates/spt/tests/common/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5522449Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5522714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5522965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5523305Z               "path": "crates/spt/tests/projindex_reader_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5523577Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5523833Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5524081Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5524339Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5524597Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5524860Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5525126Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5525372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5525694Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5525962Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5526214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5526463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5526782Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5527048Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5527305Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5527558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5527887Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5528256Z               "line": 209
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5528514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5528772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5529162Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5529438Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5529702Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5529945Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5530202Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5530444Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5530698Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5530940Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5531250Z       "id": "REQ-DAEMON-STOP-LIVE-SESSION-WARN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5532051Z       "title": "W3 (LIFECYCLE-TRUTH, promoted old follow-wave seed): `daemon stop` with live hosted sessions warns + requires --force (or names the sessions it will kill) instead of silently killing them.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5532327Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5532581Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5532843Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5533099Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5533349Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5533617Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5533889Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5534165Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5534412Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5534674Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5534942Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5535199Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5535453Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5535749Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5536018Z               "line": 8014
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5536278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5536531Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5536832Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5537094Z               "line": 8067
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5537352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5537603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5537899Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5538263Z               "line": 8089
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5538523Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5538778Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5539116Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5539394Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5539655Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5539923Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5540170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5540500Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5540762Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5541019Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5541267Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5541519Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5541776Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5542043Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5542305Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5542549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5542840Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5543103Z               "line": 38288
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5543364Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5543606Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5543862Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5544120Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5544357Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5544600Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5544886Z       "id": "REQ-DIAL-FAILED-ADDR-MEMORY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5549949Z       "title": "WAN-TRUTH #40 F2/F3 mechanism: the node remembers the exact ADDRESSES its dials just failed on — never the peer, never the chain leg (doyle ruling 2026-07-31, amending the RCA's per-leg/per-peer wording, which would have deleted the strand-heal guarantee REQ-PEER-ROUTE-CHAIN was built to provide). The record is keyed on the full address actually dialed, compared by exact equality; it is TTL-bounded and cleared by a successful dial or validation of that address, so a transient failure can never permanently ban an address that works. It is RAM-only and node-LOCAL: a restart forfeits it (one wasted dial, re-marked on the next failure), no new persisted store is introduced, and the fact never rides the gossip/roster DTO in any form. It is BUILT at the dial site (which owns the address that was dialed) and consumed by its two leaves — REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP and REQ-RECONCILE-FAILED-ADDR-REFUSE — through ONE shared helper, so neither consumer re-derives the equality. Gate: impl — the type, its construction at the dial site, the clear-on-success, the TTL, and the carry to the pump-side consumer over the existing local presence field; unit — an exact address matches and a differing address does not, a successful dial clears the record, an expired record stops matching, and the type carries no serialization onto any gossip DTO.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5550254Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5550516Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5550760Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5551007Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5551255Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5551508Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5551781Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5552036Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5552288Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5552536Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5552809Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5553066Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5553324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5553649Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5553915Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5554157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5554403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5554728Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5554985Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5555232Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5555475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5555799Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5556057Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5556310Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5556563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5556883Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5557261Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5557508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5557765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5558065Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5558332Z               "line": 1696
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5558585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5558834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5559233Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5559493Z               "line": 698
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5559743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5559988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5560303Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5560570Z               "line": 1598
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5560819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5561072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5561373Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5561639Z               "line": 1636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5561882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5562134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5562448Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5562716Z               "line": 1650
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5562964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5563216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5563531Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5563788Z               "line": 1048
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5564036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5564279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5564590Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5564845Z               "line": 1102
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5565090Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5565334Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5565583Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5565836Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5566102Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5566364Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5566608Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5566856Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5567123Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5567385Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5567727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5568059Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5568325Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5568573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5568827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5569221Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5569493Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5569738Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5569986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5570303Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5570572Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5570820Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5571074Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5571398Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5571655Z               "line": 223
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5571909Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5572160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5572485Z               "path": "crates/spt-daemon/src/failedaddr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5572752Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5572994Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5573242Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5573480Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5573728Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5573967Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5574215Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5574511Z       "id": "REQ-DIAL-ROUTE-LEG-ATTRIBUTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5580183Z       "title": "WAN-TRUTH #41 leg 1: every submitted dial says WHAT address it dialed and WHICH leg of the route chain produced it, at submit and again on failure. The 2026-07-30 cross-site RCA had to infer the dialed address from timing alone, which is what made a days-long partial outage expensive to diagnose rather than merely bad. The attribution is a VERDICT type over the chain, not a free-text log fragment: one token per outcome, single-sourced so the log sites and the tests that match them can never spell it differently. Critically, the post-lane-1 skip is its own verdict and never collapses into plain discovery: after REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP a node that HOLDS a validated roster address can still fall to discovery because that exact address is the one its last dial failed on, and reporting that as discovery asserts the opposite diagnosis -- that this node has no roster address for the peer -- which would poison the #42/#49 relay RCA this observability exists to serve. The unresolved outcome splits the same way. This requirement owns only the REPORTING; REQ-PEER-ROUTE-CHAIN continues to own the chain order and this must never change an outcome. Gate: impl -- the leg verdict type and its single-source token, returned by the resolver and logged at the submit site, at the submit-refused failure, at the no-route failure, and carried to the drained DIAL_FAILED line (unrecorded means unknown, never a guess); unit -- each chain leg resolves to its own verdict on the existing chain rig, the just-failed roster address resolves to the SKIP verdict while a differing roster address still resolves to the roster verdict, and the unresolved cases split the same way.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5580570Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5580820Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5581070Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5581319Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5581558Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5581810Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5582062Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5582324Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5582592Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5582836Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5583088Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5583345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5583611Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5583860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5584175Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5584436Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5584694Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5584941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5585353Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5585614Z               "line": 386
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5585860Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5586107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5586422Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5586679Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5586932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5587174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5587488Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5587746Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5587994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5588243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5588563Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5588823Z               "line": 762
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5589155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5589407Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5589716Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5589989Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5590247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5590500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5590820Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5591082Z               "line": 801
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5591332Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5591574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5591893Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5592150Z               "line": 1066
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5592404Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5592646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5592961Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5593228Z               "line": 1269
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5593470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5593720Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5594040Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5594329Z               "line": 1301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5594677Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5594925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5595249Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5595515Z               "line": 1322
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5595763Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5596011Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5596265Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5596511Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5596785Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5597043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5597291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5597625Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5597892Z               "line": 580
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5598146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5598392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5598722Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5599070Z               "line": 609
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5599316Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5599562Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5599820Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5600063Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5600339Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5600601Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5600840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5601154Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5601413Z               "line": 2451
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5601661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5601902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5602219Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5602481Z               "line": 2469
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5602725Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5602978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5603293Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5603560Z               "line": 2534
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5603802Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5604045Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5604285Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5604528Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5604783Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5605031Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5605323Z       "id": "REQ-DIGEST-CROSS-NODE-PULL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5609035Z       "title": "The digest SNAPSHOT PULL crosses nodes: `spt endpoint digest <[subnet:]id@node>` (including `--after <seq>` incremental polling) resolves and serves under the EXISTING address gate — the CROSS_NODE_M4 qualified-address refusal lifts for the pull verb only. The structured-delta stream stays node-local until a real cross-node subscriber exists (ADR-0048 decision 5, defer-until-consumer; operator-ruled 2026-07-24). Access policy is NOT new — fetch was ratified address-gated long ago; this is routing. Composition note: REQ-DIGEST-SEAL-ON-IDLE's stable seqs are what make remote --after polling trustworthy. Forcing customer: spt-mobile 'view live digest of ANY endpoint' (host proxies transparently once the refusal lifts). Gate: int — two-node rig: a qualified digest pull from the non-hosting node returns the hosting node's buffer; --after returns only rows past the cursor; the address gate still refuses a non-resolvable caller.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5609340Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5609592Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5609838Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5610094Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5610337Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5610584Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5610837Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5611086Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5611352Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5611606Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5611858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5612188Z               "path": "docs-site/src/reference/json-shapes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5612448Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5612689Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5612942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5613266Z               "path": "docs/adr/0048-idle-edge-contract.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5613524Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5613771Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5614120Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5614372Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5614620Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5614892Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5615151Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5615401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5615725Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5615982Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5616230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5616474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5616793Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5617052Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5617304Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5617550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5617867Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5618134Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5618378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5618627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5619031Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5619303Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5619561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5619808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5620128Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5620394Z               "line": 226
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5620645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5620887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5621202Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5621459Z               "line": 126
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5621712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5621960Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5622274Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5622533Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5622791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5623041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5623358Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5623630Z               "line": 1264
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5623884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5624136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5624555Z               "path": "crates/spt-net/src/net/digestpull.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5624822Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5625076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5625320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5625653Z               "path": "crates/spt-net/src/net/digestpull.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5625908Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5626156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5626400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5626695Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5626949Z               "line": 2630
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5627191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5627439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5627720Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5627983Z               "line": 2639
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5628234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5628479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5628761Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5629113Z               "line": 2722
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5629362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5629625Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5629915Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5630178Z               "line": 1130
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5630426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5630669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5630963Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5631228Z               "line": 1182
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5631477Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5631724Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5631971Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5632224Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5632482Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5632740Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5632983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5633327Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5633587Z               "line": 207
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5633957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5634204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5634553Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5634814Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5635062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5635312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5635650Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5635908Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5636155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5636402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5636745Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5636998Z               "line": 380
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5637246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5637494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5637833Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5638090Z               "line": 488
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5638342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5638594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5638930Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5639288Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5639532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5639780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5640113Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5640376Z               "line": 635
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5640623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5640871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5641190Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5641448Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5641704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5641950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5642264Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5642526Z               "line": 3039
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5642784Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5643032Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5643281Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5643538Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5643804Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5644071Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5644411Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5644731Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5644994Z               "line": 2293
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5645247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5645490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5645819Z               "path": "crates/spt-net/src/net/digestpull.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5649548Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5649824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5650082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5650421Z               "path": "crates/spt-net/src/net/digestpull.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5650687Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5650936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5651178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5651517Z               "path": "crates/spt-net/src/net/digestpull.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5651779Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5652041Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5652287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5652621Z               "path": "crates/spt-net/src/net/digestpull.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5652878Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5653125Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5653368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5653659Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5653926Z               "line": 33573
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5654170Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5654423Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5654664Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5654915Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5655154Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5655396Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5655668Z       "id": "REQ-DIGEST-CURSOR",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5660370Z       "title": "`spt endpoint digest` gains incremental turn-end consumption (extends REQ-TERM-4/5): `--last <N>` = the last N TURNS (the digest's natural unit; --last 1 = the latest turn = turn-end output); a per-entry STABLE SOURCE-DERIVED `seq` in the --json output (deterministic from the entry's append position in the source — transcript record index across the session ledger / digest.log index — so a live re-projection yields the same seq for the same committed entry; NOT a window-position index that renumbers on slide); `--after <seq>` = entries newer than seq still in the window (full window + signal if seq predates it, mirroring the version-slide full-refresh). An in-flight (still-growing) entry is flagged `partial: true` with NO stable seq until finalized (consumer reprocesses partial, skips <= seq). Also emit per-entry `ts` where present (seq is the authoritative dedup+cursor key). The digest's agent text is sufficient fidelity (no raw-source mode). BINDING doc-guidance: an adapter's [digest] extractor / api digest-entry MUST classify delivered user-facing messages as turn-opening `input` (equiv to direct PTY user-input), else messaging-driven sessions collapse into a few giant turns and --last/seq lose granularity. (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5660818Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5661066Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5661314Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5661567Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5661811Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5662067Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5662315Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5662586Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5662852Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5663094Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5663375Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5663637Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5663886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5664129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5664415Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5664673Z               "line": 657
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5664920Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5665168Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5665410Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5665661Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5665923Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5666189Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5666433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5666847Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5667111Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5667363Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5667612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5667927Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5668182Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5668425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5668683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5669068Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5669336Z               "line": 439
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5669580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5669828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5670138Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5670397Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5670649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5670897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5671217Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5671469Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5671727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5671979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5672274Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5672537Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5672780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5673029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5673322Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5673577Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5673826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5674084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5674384Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5674642Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5674889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5675137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5675437Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5675699Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5676049Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5676293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5676603Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5676870Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5677112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5677356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5677671Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5677937Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5678182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5678434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5678747Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5679091Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5679342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5679582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5679896Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5680154Z               "line": 355
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5680407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5680644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5680967Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5681228Z               "line": 372
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5681476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5681719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5682025Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5682287Z               "line": 423
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5682534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5682777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5683068Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5683322Z               "line": 766
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5683565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5683810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5684099Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5684366Z               "line": 772
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5684610Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5684854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5685144Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5685406Z               "line": 2629
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5685658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5685907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5686293Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5686562Z               "line": 2674
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5686809Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5687062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5687353Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5687615Z               "line": 2684
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5687863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5688116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5688407Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5688670Z               "line": 2790
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5688917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5689244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5689535Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5689794Z               "line": 2867
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5690047Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5690294Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5690532Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5690781Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5691052Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5691320Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5691571Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5691816Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5692078Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5692342Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5692594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5692914Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5693181Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5693428Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5693671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5694000Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5694319Z               "line": 405
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5694569Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5694817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5695132Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5695389Z               "line": 433
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5695637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5695994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5696309Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5696577Z               "line": 905
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5696819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5697066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5697384Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5697651Z               "line": 956
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5697893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5698137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5698452Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5698714Z               "line": 970
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5699053Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5699292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5699602Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5699867Z               "line": 1006
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5700119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5700363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5700674Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5700936Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5701189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5701441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5701726Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5701992Z               "line": 33487
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5702235Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5702481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5702763Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5703025Z               "line": 33506
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5703268Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5703516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5703798Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5704065Z               "line": 33543
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5704312Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5704555Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5704798Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5705041Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5705286Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5705520Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5705811Z       "id": "REQ-DIGEST-FETCHER-STRATEGY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5710833Z       "title": "Bug #17 (W6b, closes eel-a end-to-end): [digest] gains a `fetcher` strategy mirroring [history]'s locate/normalize split (CONTEXT §history: [digest] mirrors history's two strategies — locate ownership). ROOT: the pre-W6b [digest] had only the locate_normalize analog (spt-core resolves ONE `source` template + pre-reads the file), which CANNOT express a PARTITIONED transcript layout — CC's projects/<munge(cwd)>/<session_id>.jsonl or a date-globbed rollout tree — the exact case CONTEXT already assigns to the adapter. spt-core (correctly) provides NO {project}/slug key (harness-specific cwd munging = the charter violation FIX-A was rejected for). Fix: strategy = fetcher makes the ADAPTER's extractor locate + read + emit normalized records; spt-core runs it bounded (no locate, no pre-read, no stdin) and consumes stdout, feeding only the harness-NEUTRAL inputs it owns — {session_id}, the perch-bound {cwd} (info.json.cwd), and the captured [env] direction=read vars (W6/REQ-DIGEST-PROFILE-ENV) — so the extractor globs the unique {session_id} under {read-var-root}/projects/ with no slug. Keeps locate_normalize (default, back-compat) for a trivial single-file harness. Distinct capability from REQ-DIGEST-PROFILE-ENV (which supplies the root env). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #17.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5711129Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5711376Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5711623Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5711866Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5712111Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5712349Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5712605Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5712851Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5713114Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5713376Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5713618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5713957Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5714219Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5714467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5714810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5715096Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5715368Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5715610Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5715856Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5716099Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5716357Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5716619Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5716882Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5717129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5717444Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5717711Z               "line": 280
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5717958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5718200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5718499Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5718761Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5719096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5719342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5719629Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5719901Z               "line": 22480
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5720144Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5720407Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5720655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5720901Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5721164Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5721417Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5721665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5721970Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5722226Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5722470Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5722714Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5722953Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5723207Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5723468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5723726Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5723969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5724284Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5724541Z               "line": 2520
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5724789Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5725032Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5725275Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5725520Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5725863Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5726104Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5726401Z       "id": "REQ-DIGEST-GENERATION-SUPERSEDE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5735515Z       "title": "W3 (LIFECYCLE-TRUTH, digest projection truth — flynn filing spt-mobile d0aa3f4): a one-shot `endpoint digest --json` snapshot must return each logical activity row ONCE across a checkpoint/resume, not once per seq-generation. ROOT (spt-core-side, not a consumer bug): the K-session span (digest.rs activity_spanned, SPAN_SESSIONS=5) runs the [digest] extractor per session file and tags each row seq=(ledger_ordinal<<32)|localseq (REQ-DIGEST-CURSOR). A checkpoint/resume (self-/clear + Psyche rebuild) makes the harness REPLAY the prior generation's transcript into the NEW session file, so the ancestor's rows appear in BOTH the ancestor file AND the resume file at the SAME localseq — the span UNIONS them, one logical row surfacing under two full seqs (gen23,local208) + (gen25,local208), identical text/ts/localseq. Consumers dedup by exact seq (the documented authoritative key) so nothing collapses -> duplicate rows in every snapshot / `--after` view (`--follow from:0` is CLEAN — it reads current-generation only; the SPAN is the sole culprit). The trigger cannot disambiguate: `api boundary clear` records SessionTrigger::Clear for BOTH a fresh /clear (disjoint) and a carry-forward checkpoint (reporting.rs:94) — so a structural skip-ancestor needs new boundary metadata + adapter cooperation, deferred. FIX (doyle ruling — flynn Option 1 Supersede, projection-local, source-independent): within the span, collapse cross-generation replay dupes — an Activity record from an OLDER ordinal is dropped when an identical logical record (role, ts, text, tool) exists under a NEWER ordinal; keep the NEWEST-ordinal occurrence so the surviving seq is the live generation (snapshot + follow agree on seq). Cross-generation ONLY (never dedup within one ordinal — a session cannot replay itself; identical within-gen rows are real). Supersede runs on the raw span items BEFORE the window fold (project_timeline) so window_turns counts real turns, not phantoms; and a boundary divider adjacent to a now-fully-superseded ancestor is not left orphaned. Context entries (REQ-TERM-7, single digest.log) are not per-session-spanned -> untouched. Int = a two-session span rig where session B's extracted lines are a superset replay of A (same ts/text at same localseq) + B's own new tail: RED-first (pre-fix shows every A row twice); post-fix each logical row appears ONCE under B's generation, B's tail intact, the /clear boundary marker preserved when A retains rows.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5735911Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5736159Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5736404Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5736649Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5736904Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5737148Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5737406Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5737692Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5737954Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5738216Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5738463Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5738730Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5739073Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5739334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5739672Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5739944Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5740211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5740457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5740772Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5741035Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5741288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5741546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5741880Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5742159Z               "line": 357
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5742412Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5742674Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5742918Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5743171Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5743637Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5743899Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5744134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5744522Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5744779Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5745031Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5745274Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5745527Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5745785Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5746062Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5746325Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5746567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5746887Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5747157Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5747403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5747661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5747975Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5748243Z               "line": 720
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5748504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5748761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5749149Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5749424Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5749676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5749922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5750242Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5750513Z               "line": 752
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5750771Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5751017Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5751266Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5751514Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5751763Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5752011Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5752306Z       "id": "REQ-DIGEST-JSON-SELF-CONTAINED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5762122Z       "title": "TEARDOWN-AUTHORITY W4 (perri adapter-surface finding 2026-07-19, doyle-grounded and RE-SCOPED; title AMENDED at gate 2026-07-19 — the original welded version to --after polling, todlando falsified it from digesthub.rs/cli.rs and doyle ruled the amendment rides the wave: fifth instance of the claim-keyed-on-the-wrong-thing class, this one in the REQ registry itself): `spt endpoint digest <id> --json` must be self-contained on stdout. Today the digest snapshot version is NOT a field of the --json object at all — it exists ONLY in the DIGEST:<id> version=N trailer that cmd_digest eprintln!s at cli.rs:1619 — so a JSON consumer that wants it is FORCED to parse stderr. NUMBER-SPACE TRUTH (the amendment): version is digesthub's monotonic PROJECTION counter — it bumps when the projected digest CHANGES, serves as the --follow from_version floor and a change-detection cursor, and is NOT valid --after input; --after filters on entry seq ((ledger_ordinal<<32)|line_idx), a different number space, so a version passed as --after predates the window every time. NOTE the corrected history (perri's original RCA framed this as a fleet outage and doyle falsified it; perri confirmed): the trailer has been on STDERR since it was added 2026-06-03 (16f4c8e) and no stdout trailer ever existed, so stdout-only consumers never choked — this is a CONTRACT-COMPLETENESS defect, low priority, NOT an outage. FIX: (a) emit version as a top-level integer field inside the --json object (field name pinned by the consumer — perri's adapter parses 'version' — so no second round is needed), alongside the existing after_predates_window signal; (b) gate the stderr trailer on the non-json path so --json leaves stderr clean while the human path keeps its status line. Result: --json stdout = pure self-contained JSON including the version, safe whether the consumer reads stdout-only OR merges 2>&1. Additive to the JSON shape (REQ-CLI-JSON evolution rule). The published doc must state the number-space split with the EXPLICIT NEGATIVE (version is NOT valid --after input) — the original title proves the misuse is the natural reading. Gate: doc — the json-shapes digest section carries version, the stderr-clean --json contract, the complete entry-kind enum with per-kind produced-vs-injected provenance, and the seq/version asymmetry incl the explicit negative; impl — version field on the --json snapshot path + non-json-gated trailer; unit — the --json object carries version and stderr carries no DIGEST: trailer, the non-json path still prints it (predates ordering included), and the behavior-change sweep confirms no existing test asserts the old --json shape or the trailer presence under --json.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5762527Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5762780Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5763037Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5763284Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5763532Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5763775Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5764029Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5764296Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5764549Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5764801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5765135Z               "path": "docs-site/src/reference/json-shapes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5765396Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5765651Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5765899Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5766147Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5766394Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5766661Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5766915Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5767158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5767454Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5767717Z               "line": 2866
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5767963Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5768206Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5768453Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5768699Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5769039Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5769300Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5769547Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5769796Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5770063Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5770420Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5770665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5770968Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5771228Z               "line": 33672
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5771471Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5771714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5772005Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5772263Z               "line": 33695
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5772525Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5772768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5773058Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5773320Z               "line": 33713
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5773565Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5773806Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5774049Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5774293Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5774536Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5774780Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5775065Z       "id": "REQ-DIGEST-PROFILE-ENV",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5778047Z       "title": "Bug #17: spt endpoint digest returns NO_DIGEST for a ccs-profile endpoint (claude-spt:ccs) though [digest] is wired and the transcript exists — under .ccs (CLAUDE_CONFIG_DIR relocation) not .claude. The on-demand digest runs the extractor in the daemon context WITHOUT the endpoint profile transcript-location env, so the env-aware resolver cannot find the relocated transcript. Fix: propagate/persist the endpoint profile transcript-location env (e.g. the ccs CLAUDE_CONFIG_DIR) to the on-demand digest extractor so a profile-relocated transcript resolves; confirm the exact extractor verdict via spt adapter digest-proof. Ownership spt-core (digest env/profile propagation), possibly with a claude-spt extractor-resolver assist. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #17.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5778324Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5778567Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5778818Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5779149Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5779393Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5779650Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5779904Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5780165Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5780538Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5780790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5781071Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5781333Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5781579Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5781826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5782107Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5782364Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5782608Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5782851Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5783100Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5783351Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5783614Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5783871Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5784115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5784434Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5784691Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5784952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5785191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5785515Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5785773Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5786031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5786279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5786592Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5786856Z               "line": 422
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5787100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5787343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5787649Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5787911Z               "line": 449
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5788159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5788402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5788712Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5789041Z               "line": 393
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5789289Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5789535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5789843Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5790201Z               "line": 723
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5790459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5790711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5790992Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5791254Z               "line": 22471
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5791498Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5791742Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5791982Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5792228Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5792487Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5792749Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5792996Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5793244Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5793506Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5793759Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5794050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5794407Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5794666Z               "line": 1161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5794911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5795169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5795483Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5795742Z               "line": 1192
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5796000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5796248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5796558Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5796815Z               "line": 1504
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5797061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5797303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5797604Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5797866Z               "line": 1206
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5798103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5798350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5798647Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5798909Z               "line": 3167
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5799272Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5799515Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5799759Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5800014Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5800255Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5800495Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5800884Z       "id": "REQ-DIGEST-SEAL-ON-IDLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5805106Z       "title": "A digest turn's records gain their stable `seq` at the endpoint's IDLE TRANSITION — the adapter-reported, already-authoritative turn-finished signal — not at next-user-input arrival (which is demoted to a harmless no-op fallback seal). Kills the mint-then-idle deadlock (liam/spt-progress-tool W16: a finished-but-idle turn stayed partial/seq-less, so a seq-keyed scanner could never see the owner's latest turn until the owner was prompted again; interim drive-one-more-command workaround retires at ship). Sealing is IDEMPOTENT and SEQ-STABLE: it assigns seq to what the log holds at idle; a late-flushing straggler record folds into the sealed turn WITHOUT changing the assigned seq. (ADR-0048 decision 4; rejected: extractor-observed completion = banned heuristic inference class; provisional seqs = scanner bug factory.) Gate: int — the liam field shape RED-first: finish a turn, report idle, do NOT prompt again — the turn is sealed with a stable seq and a scanner keyed on seq sees it; fallback leg: next-input on an already-sealed turn re-seals nothing; straggler leg: a post-idle log record folds in, seq unchanged.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5805400Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5805653Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5805916Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5806173Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5806426Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5806726Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5806988Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5807236Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5807509Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5807769Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5808019Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5808353Z               "path": "docs-site/src/reference/json-shapes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5808620Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5808873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5809302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5809642Z               "path": "docs/adr/0048-idle-edge-contract.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5809908Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5810161Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5810404Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5810655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5810911Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5811182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5811439Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5811693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5812012Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5812270Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5812523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5812775Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5813088Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5813344Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5813598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5813846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5814155Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5814436Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5814684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5814955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5815270Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5815536Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5815791Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5816046Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5816293Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5816547Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5816814Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5817072Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5817325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5817664Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5817935Z               "line": 207
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5818181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5818432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5818751Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5819095Z               "line": 3039
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5819353Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5819596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5820024Z               "path": "crates/spt/tests/idle_edge_seal_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5820292Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5820545Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5820798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5821044Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5821300Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5821562Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5821824Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5822071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5822386Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5822662Z               "line": 1067
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5822910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5823155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5823465Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5823729Z               "line": 1114
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5823975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5824223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5824538Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5824805Z               "line": 1142
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5825054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5825301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5825611Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5825868Z               "line": 1159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5826116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5826360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5826669Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5826926Z               "line": 1198
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5827168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5827412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5827717Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5827985Z               "line": 1219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5828234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5828476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5828784Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5829135Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5829478Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5829725Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5829974Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5830223Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5830466Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5830703Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5830980Z       "id": "REQ-DISK-FLOOR-PREFLIGHT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5836748Z       "title": "A RIG OR GATE RUN MUST RECORD FREE SPACE AT RUN START, AND REFUSE TO START UNDER A FLOOR. MEASURED (IR-59): a full volume reds as a LINKER defect that names no disk -- LNK1318 Unexpected PDB error with a varying parenthesised code, beside LNK4209 debugging information corrupt, and once as a traceable-reqs check PANIC carrying os error 112, so even a REGISTRY red can be the disk's. Nothing in any of those failure texts says disk, two agents spent hours on a mechanism for one of them, and neither read free space. THE FALSIFIER IS FREE SPACE AT THE TIME OF THE RUN, not the shape of the leg table, and a reading that appears only on refusal leaves every red already in hand uninterpretable -- which is the state the fleet was in, since local gate legs run as plain per-run scripts with no preflight path to amend. So the reading is printed on EVERY run, passing or not, in the golden runner's own key shape (disk preflight: drive= free_bytes= floor_bytes=, and RESOURCE=disk on refusal) so one grep reads a local rig log and a CI log alike, and an optional label attributes readings on a box carrying several lanes. The default floor is the golden runner's 32 GiB, so a local rig and a golden leg refuse at ONE number rather than two; a floor of ZERO is print-only mode for informational call sites and never refuses, which is why the default arm must still refuse the same reading a zero floor admits. A run that starts under the floor produces reds that belong to nothing: they are re-run, never re-read. AND ONE READING IS AN INSTANT, NOT HEADROOM (IR-46): the danger window is the TAIL of a cold build -- the measured instance died linking the last and largest artifact of a 74 GB pool while that same build drained the volume out from under itself, and the reading taken before it looked fine.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5837128Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5837381Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5837634Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5837877Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5838125Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5838368Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5838611Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5838878Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5839221Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5839468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5839781Z               "path": "docs/instruments/ir59/STATUS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5840043Z               "line": 1
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5840290Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5840539Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5840783Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5841040Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5841307Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5841559Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5841816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5842103Z               "path": ".github/ci/ws272-w0.py",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5842373Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5842624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5842872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5843157Z               "path": ".github/ci/ws272-w1.py",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5843411Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5843664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5843908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5844199Z               "path": ".github/ci/ws272-w2.py",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5844460Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5844711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5844954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5845258Z               "path": "crates/xtask/src/diskfloor.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5845516Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5845777Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5846025Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5846268Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5846517Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5846926Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5847184Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5847428Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5847688Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5847950Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5848213Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5848456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5848761Z               "path": "crates/xtask/src/diskfloor.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5849119Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5849363Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5849610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5849909Z               "path": "crates/xtask/src/diskfloor.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5850169Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5850409Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5850656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5850957Z               "path": "crates/xtask/src/diskfloor.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5851209Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5851456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5851700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5852015Z               "path": "crates/xtask/src/diskfloor.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5852273Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5852531Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5852776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5853079Z               "path": "crates/xtask/src/diskfloor.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5853342Z               "line": 201
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5853580Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5853819Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5854056Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5854300Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5854548Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5854792Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5855074Z       "id": "REQ-DISPATCH-CLAIM-RETRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5858759Z       "title": "REDISPATCH-TRUTH W1 (ADR-0038, hertz fix C): dispatcher claims are RETRYABLE and outcomes are CLASSIFIED — today claimed.insert(stream_id) happens PRE-spawn (dispatch.rs:206/214) and is never cleared or retried on Unknown/Failed, so one transient worker-setup failure permanently abandons the stream. Distinguish active/retryable vs served vs finished: a transient worker-setup failure releases/requeues the claim (bounded/backoff-shaped); terminal classification outcomes stay terminal and do NOT hot-loop (show the distinction in test, not just code). Gate: impl — claim lifecycle; unit — transient failure requeues + terminal outcome does not (no hot-loop under a persistently-failing stream); int — production-path regression D3: inject ONE transient worker-start failure, prove claim retry recovers the stream with NO duplicate controller/output. HEAVY nextest group at birth. Kin REQ-REDISPATCH-FINISHED-RETIRE, REQ-STREAM-OPENER-DURABLE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5859130Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5859388Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5859627Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5859875Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5860122Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5860370Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5860621Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5860891Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5861153Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5861405Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5861654Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5861931Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5862189Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5862432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5862752Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5863013Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5863265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5863507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5863816Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5864079Z               "line": 500
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5864326Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5864574Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5864817Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5865070Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5865333Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5865590Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5865836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5866148Z               "path": "crates/spt-daemon/tests/redispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5866520Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5866764Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5867017Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5867265Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5870692Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5870986Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5871246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5871486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5871810Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5872067Z               "line": 2905
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5872314Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5872558Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5872806Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5873054Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5873293Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5873535Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5873830Z       "id": "REQ-DISPATCH-FALLBACK-CIRCUIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5878358Z       "title": "REDISPATCH-STALL W1 (ADR-0038 Amendment, fixes 1+5): the opener ring-peek fallback fires ONLY on the explicit UnsupportedVerb/old-broker answer — transport timeout/EOF/poison classify Failed and requeue bounded, NEVER a second replay subscriber (today first_line's Err(_) arm at dispatch.rs:414 catches everything; the comment intends old-broker-only). Retries are CLASSIFIED: pre-setup transient may retry; a deadline-poisoned replay is CIRCUIT-BROKEN (global backoff) and a replacement subscriber is never installed until the prior subscriber is fully gone. NOT a revert to the v0.33 burn-the-claim abandonment (rejected): the stream must recover after the breaker window — show it in test. Gate: impl — narrowed fallback arm + breaker; unit — timeout/EOF/poison never reach the peek path while unsupported-verb does + breaker trips and resets + no-reinstall-until-gone; int — T2 (no peek subscriber created on transport errors) + T5 (breaker recovery, the not-abandonment discriminator) + T7 mixed-image N-1 with REAL traffic-carrying streams (handshake-only insufficient); doc — ADR-0038 Amendment. Kin REQ-DISPATCH-CLAIM-RETRY (upgraded, not reverted), REQ-STREAM-OPENER-DURABLE (the N-1 window it narrows).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5878654Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5879128Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5879388Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5879640Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5879888Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5880141Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5880390Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5880636Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5880899Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5881161Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5881400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5881788Z               "path": "docs/adr/0038-broker-stream-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5882060Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5882307Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5882554Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5882793Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5883047Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5883309Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5883567Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5883818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5884143Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5884418Z               "line": 372
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5884660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5884903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5885213Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5885475Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5885722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5885971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5886289Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5886543Z               "line": 400
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5886801Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5887042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5887363Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5887626Z               "line": 501
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5887880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5888123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5888447Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5888818Z               "line": 792
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5889156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5889415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5889735Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5889995Z               "line": 946
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5890238Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5890491Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5890735Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5890988Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5891260Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5891521Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5891769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5892097Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5892366Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5892615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5892863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5893197Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5893463Z               "line": 595
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5893711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5893959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5894350Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5894617Z               "line": 797
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5894865Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5895112Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5895362Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5895619Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5895887Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5896150Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5896397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5896717Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5896979Z               "line": 2949
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5897231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5897479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5897801Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5898063Z               "line": 2985
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5898316Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5898567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5898882Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5899345Z               "line": 3008
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5899604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5899851Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5900161Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5900427Z               "line": 3039
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5900679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5900923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5901238Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5901495Z               "line": 2984
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5901747Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5901995Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5902243Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5902488Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5902733Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5902979Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5903275Z       "id": "REQ-DISPATCH-HYGIENE-TELEMETRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5907081Z       "title": "REDISPATCH-STALL W1 (ADR-0038 Amendment, fixes 7+8+9): dispatcher hygiene + keyed observability — (a) bounded redispatch worker pool with batched cold enumeration, NO claim locks held during I/O (today thread::spawn per stream, unbounded on a cold table); (b) sessions-lock discipline: clone-then-drop before detach_if/info.json I/O (KH 7.12 kin — no fs/conn I/O under global locks); (c) keyed stage telemetry: gen/stream/family/endpoint/attempt/conn on every dispatch record + replay/poison/cancel/worker-outcome events + gauges + PTY high-water/RC cursor — the field-discriminator surface (poison-window census, stream-sub-attach per generation dropping to O(active streams)). Gate: impl — pool + enumeration batching + lock discipline + telemetry keys; unit — pool bound honored under a cold flood + no-lock-across-I/O seam + telemetry key completeness; doc — ADR-0038 Amendment. Kin REQ-HAZARD-REDISPATCH-STALL, KH 7.12 (locks), REQ-CONN-POISON-ATTRIBUTION (extends its attribution).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5907367Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5907611Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5907959Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5908205Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5908446Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5908708Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5909046Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5909310Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5909567Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5909811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5910164Z               "path": "docs/adr/0038-broker-stream-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5910421Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5910673Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5910915Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5911168Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5911416Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5911677Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5911935Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5912183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5912493Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5912752Z               "line": 6295
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5913000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5913245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5913567Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5913820Z               "line": 718
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5914073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5914317Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5914627Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5914888Z               "line": 800
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5915131Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5915379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5915689Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5915948Z               "line": 892
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5916189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5916434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5916744Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5917002Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5917250Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5917494Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5917736Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5917989Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5918256Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5918618Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5918865Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5919198Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5919465Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5919717Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5919959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5920274Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5920528Z               "line": 3175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5920771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5921015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5921325Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5921580Z               "line": 3208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5921823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5922066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5922376Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5922635Z               "line": 3232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5922872Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5923120Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5923363Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5923603Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5923853Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5924099Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5924375Z       "id": "REQ-DOC-DELIVERY-VOCAB",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5925873Z       "title": "W6 (LIFECYCLE-TRUTH, docs — remaining flynn/perri gaps folded): publish the full send-outcome vocabulary (SENT / SENT(WAN) / QUEUED window semantics / DEFERRED / NO_PERCH), digest --json row schema, api poll auth + MAC-stamp prefix, remaining --json shapes checklist (seed #3). Public docs use VERSION numbers, never wave codes; docs-publish drift gate applies.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5926146Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5926393Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5926635Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5926890Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5927133Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5927395Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5927647Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5928020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5928339Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5928601Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5928849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5929182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5929514Z               "path": "docs-site/src/reference/json-shapes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5929768Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5930010Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5930252Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5930500Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5930743Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5931011Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5931269Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5931512Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5931760Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5932017Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5932283Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5932522Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5932769Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5933027Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5933294Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5933534Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5933786Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5934018Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5934261Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5934555Z       "id": "REQ-DOC-ECHO-COMMUNE-CONTRACT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5936433Z       "title": "W6 (LIFECYCLE-TRUTH, docs — this gap cost a full outage night, priority slot): publish the [session.echo_commune] I/O contract on the docs-site: key catalog core fills; core does NOT stdin-feed [history] (field-proven); self-locate guidance incl. CLAUDE_CONFIG_DIR / read_env; drop-file protocol (single-writer, ingest-deletes, resolver semantics from W1); stdout ingestion expectations. Public docs use VERSION numbers, never wave codes; docs-publish drift gate applies.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5936701Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5936953Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5937190Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5937441Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5937684Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5937955Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5938207Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5938551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5938904Z               "path": "docs-site/src/harness-contract/echo-commune.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5939254Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5939500Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5939738Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5939980Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5940227Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5940493Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5940750Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5940990Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5941238Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5941496Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5941752Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5941996Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5942248Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5942507Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5942767Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5943014Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5943263Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5943501Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5943745Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5944055Z       "id": "REQ-DOC-ENDPOINT-DROP-RESOLUTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5945687Z       "title": "D1 (F028, perri F-c; docs/truth): SI-1's resolution rule — a RELATIVE watched drop dir resolves against the ENDPOINT's cwd, never the daemon's (KH 7.28, shipped v0.22.0) — is documented NOWHERE public. Add it to harness-contract/manifest.md + the manifest schema field descriptions so an adapter author knows a relative commune_dir/signoff_dir is endpoint-resolved. docs-drift gate applies. See triage D1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5945954Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5946201Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5946449Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5946711Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5946966Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5947208Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5947455Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5947826Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5948077Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5948320Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5948578Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5948845Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5949184Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5949426Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5949683Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5949945Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5950204Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5950440Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5950690Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5950930Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5951173Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5951426Z       "id": "REQ-DOCS-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5951826Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5952094Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5952336Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5952579Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5952822Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5953072Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5953327Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5953589Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5953851Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5954100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5954390Z               "path": "docs-site/src/index.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5954644Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5954891Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5955133Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5955377Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5955619Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5955884Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5956136Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5956380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5956671Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5956924Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5957167Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5957405Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5957648Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5957896Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5958160Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5958429Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5958670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5959100Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5959371Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5959633Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5959876Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5960120Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5960364Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5960606Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5960863Z       "id": "REQ-DOCS-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5961222Z       "title": "Sub-10-minute runnable killer quickstart per audience",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5961485Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5961734Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5961977Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5962223Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5962467Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5962715Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5962973Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5963226Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5963473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5963858Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5964115Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5964364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5964607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5964922Z               "path": "docs-site/src/quickstart/adapter.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5965180Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5965427Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5965670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5965993Z               "path": "docs-site/src/quickstart/messaging.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5966245Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5966487Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5966730Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5966973Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5967217Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5967488Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5967747Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5967993Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5968246Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5968508Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5968856Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5969182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5969511Z               "path": "crates/spt/tests/quickstart_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5969769Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5970013Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5970256Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5970498Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5970742Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5971009Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5971263Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5971503Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5971740Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5971983Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5972227Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5972483Z       "id": "REQ-DOCS-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5972866Z       "title": "Diátaxis structure; one canonical way to do X",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5973127Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5973375Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5973614Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5973867Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5974111Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5974380Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5974633Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5974891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5975181Z               "path": "docs-site/src/index.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5975430Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5975677Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5975930Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5976173Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5976418Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5976682Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5976942Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5977180Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5977433Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5977701Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5977963Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5978200Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5978444Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5978706Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5979044Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5979290Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5979544Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5979785Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5980024Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5980386Z       "id": "REQ-DOCS-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5980786Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5981058Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5981297Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5981545Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5981789Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5982035Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5982281Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5982525Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5982782Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5983029Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5983272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5983558Z               "path": "docs/DOCS-STRATEGY.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5983816Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5984060Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5984307Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5984550Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5984794Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5985065Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5985317Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5985579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5985898Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5986152Z               "line": 1099
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5986395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5986634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5986920Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5987175Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5987426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5987670Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5987912Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5988159Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5988431Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5988694Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5988933Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5989266Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5989525Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5989778Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5990119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5990436Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5990697Z               "line": 2674
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5990946Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5991190Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5991429Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5991671Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5991904Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5992153Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5992411Z       "id": "REQ-DOCS-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5992813Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5993075Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5993322Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5993569Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5993809Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5994057Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5994348Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5994611Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5994867Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5995115Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5995368Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5995630Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5995877Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5996129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5996439Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5996698Z               "line": 1100
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5996941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5997184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5997475Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5997726Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5997971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5998215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5998497Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5998754Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5999083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5999330Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5999611Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.5999864Z               "line": 1380
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6000109Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6000361Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6000602Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6000843Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6001229Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6001482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6001726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6002022Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6002279Z               "line": 609
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6002522Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6002760Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6003074Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6003331Z               "line": 2709
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6003577Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6003824Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6004073Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6004321Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6004584Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6004841Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6005083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6005375Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6005641Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6005886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6006132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6006417Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6006675Z               "line": 2857
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6006919Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6007162Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6007406Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6007652Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6007890Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6008121Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6008381Z       "id": "REQ-DOCS-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6009032Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6009294Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6009542Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6009805Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6010053Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6010292Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6010534Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6010888Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6011148Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6011413Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6011652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6011976Z               "path": "docs-site/src/quickstart/messaging.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6012229Z               "line": 4
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6012481Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6012724Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6012962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6013207Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6013469Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6013724Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6013965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6014257Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6014519Z               "line": 15781
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6014757Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6015000Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6015248Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6015501Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6015759Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6016026Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6016269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6016587Z               "path": "crates/spt/tests/quickstart_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6016845Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6017088Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6017327Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6017568Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6017822Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6018080Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6018333Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6018575Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6018860Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6019205Z               "line": 38594
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6019449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6019693Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6019932Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6020174Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6020407Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6020650Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6020933Z       "id": "REQ-DOCS-CHANGELOG-PAGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6027151Z       "title": "THE CHANGELOG IS A PAGE OF THE LOCAL DOCS SITE, GENERATED FROM THE REPOSITORY CHANGELOG AND NEVER HAND-EDITED (releases#268, WEBSERVE W3). A user reading the node-local docs must be able to answer what changed in this release without leaving the site for a repository file they may not have. GENERATED, NOT COPIED: a pure changelog_page renderer writes docs-site/src/changelog.md from CHANGELOG.md, xtask gen writes it and xtask check diffs it, exactly as the CLI reference page already works -- so a changelog edit that is not regenerated is a CI red rather than a silently stale page. THE GENERATOR STRIPS EVERY INTERNAL-CODE CLASS THE PUBLISHED-DOCS SCAN FORBIDS, KEYED ON THE CLASSES AND NOT ON TODAY'S POPULATION: the traceability doc-tag comments CHANGELOG.md carries for its own coverage, and the parenthetical private-tracker citations in its prose. MEASURED 2026-09-07 at the W3 lane base: five doc-tag comments AND two prose citations of the tracker, the second class absent from the brief and sufficient on its own to red the scan on run one; no decision-record or milestone-wave token is present today, and the stripper covers those classes anyway because the next entry an author writes is free to add one. THE PAGE JOINS THE PUBLISHED-DOCS SCAN'S PATH LIST rather than growing a second mechanism, and it is LISTED IN THE SUMMARY AND THE CURATED llms index, which is also what puts it in the full export -- the export reads pages off disk in summary order, so the page is a checked-in generated file and never a render-on-request route. Gate: doc -- the changelog page present in the docs site with its summary and llms rows; impl -- the pure renderer, its gen write, its check diff, and its row in the internal-codes scan list; unit -- the renderer strips each forbidden class, leaves ordinary prose byte-identical, and the rendered page carries no token the scan forbids.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6027447Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6027691Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6027944Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6028277Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6028521Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6028777Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6029117Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6029377Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6029638Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6029876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6030205Z               "path": "docs-site/src/self-update/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6030463Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6030705Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6030953Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6031187Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6031446Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6031688Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6031945Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6032188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6032482Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6032734Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6032986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6033224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6033519Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6033773Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6034022Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6034270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6034555Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6034816Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6035062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6035300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6035587Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6035843Z               "line": 456
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6036086Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6036325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6036616Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6036870Z               "line": 482
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6037117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6037365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6037655Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6037913Z               "line": 519
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6038170Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6038417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6038809Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6039162Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6039411Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6039662Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6039913Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6040165Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6040441Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6040708Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6040955Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6041203Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6041471Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6041729Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6041977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6042268Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6042529Z               "line": 2721
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6042781Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6043028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6043318Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6043585Z               "line": 2740
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6043836Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6044094Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6044390Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6044647Z               "line": 2751
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6044897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6045145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6045433Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6045698Z               "line": 2784
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6045942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6046190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6046490Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6046752Z               "line": 2813
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6047004Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6047248Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6047496Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6047735Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6047977Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6048220Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6048511Z       "id": "REQ-DOCS-LOCAL-SERVER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6053777Z       "title": "THE-FORKENING W3 (ADR-0036 §4, operator-ruled crate-over-handroll + port 5474): the daemon (broker side — docs are up whenever the daemon is) serves $SPT_HOME/docs over HTTP on LOOPBACK ONLY, default 127.0.0.1:5474 (+ ::1 where available; 547 rejected — privileged <1024 breaks the Linux user-daemon + IANA dhcpv6-server), config + env override. Implementation = hyper (ALREADY in-tree via iroh/reqwest — zero new supply chain; operator ruled battle-tested crate over hand-rolled HTTP). GET-only; strict path-sanitize under $SPT_HOME/docs (reject .., absolute, encoded traversal); bounded write discipline (conn-hazard class). Published URL surface preserved VERBATIM (llms.txt contract: /llms-full.txt, append-.md raw, /manifest.schema.json — flynn/perri doc habits must not break). Verbs: `spt docs url` prints the resolved URL honoring overrides; bare `spt docs` opens the system browser (cfg(windows) creation_flags no-console). NEVER 0.0.0.0 — a LAN-visible server re-leaks what privating hid. Gate: unit — path-sanitize rejections + content-type map + loopback-only bind config; int — daemon up serves book index + llms-full.txt + a raw .md byte-true from a landed bundle; doc — CONTEXT.md Docs Server entry + docs-site self-reference updated (site-url). Kin REQ-DOCS-RELEASE-ASSET (the producer), ADR-0036, translation-binary console-window gotcha.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6054063Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6054311Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6054559Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6054803Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6055045Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6055288Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6055536Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6055786Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6056041Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6056295Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6056544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6056816Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6057069Z               "line": 685
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6057322Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6057564Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6057808Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6058156Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6058422Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6058681Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6058927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6059324Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6059577Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6059818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6060086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6060391Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6060649Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6060893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6061133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6061441Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6061693Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6061938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6062177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6062496Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6062753Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6063010Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6063258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6063562Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6063826Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6064067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6064313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6064618Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6064875Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6065119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6065363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6065664Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6065920Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6066168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6066411Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6069768Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6070194Z               "line": 414
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6070446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6070688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6070989Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6071251Z               "line": 2508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6071500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6071742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6072040Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6072301Z               "line": 9945
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6072541Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6072788Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6073032Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6073279Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6073541Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6073798Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6074043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6074377Z               "path": "crates/spt-daemon/tests/docs_server_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6074632Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6074873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6075116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6075445Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6075713Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6075952Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6076195Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6076432Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6076680Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6076948Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6077204Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6077449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6077759Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6078017Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6078256Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6078499Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6078742Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6079071Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6079314Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6079552Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6079852Z       "id": "REQ-DOCS-NO-INTERIOR-SPACE-RUNS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6087621Z       "title": "Operator-facing text carries no INTERIOR run of 3+ spaces, judged on RENDERED bytes rather than source text. The defect is a Rust line-continuation backslash that a generator or a careless edit ATE: the literal still compiles, still passes every suite, and only the rendered message is wrong, so no gate we run can see it and only a diff read ever has. The check must RENDER, because a HEALTHY continuation puts a real run of spaces in the file on the next line every time (releases#74 own instance carries thirteen and renders with one) — a source-text scan therefore flags every correctly-continued literal in the crate, and a check with that false-positive rate is one somebody switches off. SCOPE (doyle, re-ruled on the #208 evidence): IN = CLI help and CLI stdout/stderr AND daemon-emitted operator diagnostics, one surface wider than the original brief because the five literals that re-opened the class lived in daemon diagnostics; OUT = test assertion messages, read by someone already reading a trace. A deliberate run stays possible via a per-site greppable `spacerun-ok: <token>` marker carrying a REASON TOKEN, so an exception is a decision written down rather than a hole the gate cannot see; per-site is ruled, because an idiom-aware exemption would have to DETECT alignment, alignment is fuzzy, and any rule recognising `this looks aligned` eventually exempts an eaten continuation that happens to look aligned — a silent false negative in the one direction this check exists to prevent. THIS REQUIREMENT CLAIMS INTERIOR RUNS, NOT THE CLASS (doyle, 2026-08-22). A continuation dies two ways and only one is in reach: if the backslash is deleted AND the lines are joined, the indentation lands mid-sentence and is refused — the JOIN variant, which is measurably what 3416ffd3 repaired (pre-fix run = 18 spaces, those bytes now a cell); if the backslash alone is deleted, the literal keeps its newline and the indentation arrives as LEADING whitespace, which is NOT refused, deliberately, because a help block legitimately indents every line. The limit is named in the module doc as well as here so that greping this id cannot be read as the class being closed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6088009Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6088267Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6088515Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6088763Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6089106Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6089351Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6089617Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6089874Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6090112Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6090366Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6090622Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6090884Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6091127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6091418Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6091681Z               "line": 557
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6091924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6092167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6092467Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6092737Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6092975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6093212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6093522Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6093779Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6094027Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6094304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6094610Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6094872Z               "line": 429
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6095116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6095358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6095662Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6095917Z               "line": 609
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6096161Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6096400Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6096641Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6096889Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6097152Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6097410Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6097658Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6097906Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6098162Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6098517Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6098774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6099156Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6099423Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6099662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6099901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6100201Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6100462Z               "line": 666
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6100710Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6100958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6101254Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6101506Z               "line": 678
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6101753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6101992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6102293Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6102546Z               "line": 690
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6102799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6103046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6103355Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6103610Z               "line": 702
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6103854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6104102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6104393Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6104654Z               "line": 711
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6104897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6105145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6105446Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6105699Z               "line": 714
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6105943Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6106184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6106482Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6106736Z               "line": 721
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6106984Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6107236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6107526Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6107889Z               "line": 730
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6108141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6108384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6108674Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6108936Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6109264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6109512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6109807Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6110068Z               "line": 830
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6110317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6110560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6110861Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6111120Z               "line": 838
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6111367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6111613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6111909Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6112167Z               "line": 841
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6112419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6112662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6112962Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6113225Z               "line": 877
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6113463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6113707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6114001Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6114265Z               "line": 923
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6114517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6114757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6115052Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6115306Z               "line": 1022
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6115553Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6115796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6116092Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6116349Z               "line": 1041
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6116589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6116834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6117122Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6117394Z               "line": 1104
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6117629Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6117972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6118272Z               "path": "crates/xtask/src/spacerun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6118526Z               "line": 1113
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6118769Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6119098Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6119343Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6119580Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6119824Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6120062Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6120343Z       "id": "REQ-DOCS-NO-INTERNAL-CODES",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6122492Z       "title": "Public CLI --help (the clap `///` doc-comments) and the generated `docs-site/src/cli/reference.md` MUST NOT contain internal tracker/decision codes — `REQ-*`, `F-###`, `M#-W#`, `ADR-####`. They are meaningless to an end user reading --help and ship to GH-Pages. A CI-gated scan (the `xtask check` docs gate) fails on any such token in the GENERATED reference.md (which by construction contains only clap help, so rustdoc `///` on fns/structs is OUT of scope and keeps its REQ/ADR cross-refs). Substance is kept; codes are rewritten to plain language. (v0.13.2 W6)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6122760Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6123008Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6123256Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6123507Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6123747Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6123995Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6124239Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6124498Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6124754Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6124992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6125283Z               "path": "docs/DOCS-STRATEGY.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6125541Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6125789Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6126036Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6126280Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6126528Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6126786Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6127144Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6127390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6127692Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6127945Z               "line": 372
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6128189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6128433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6128718Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6129062Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6129305Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6129547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6129832Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6130093Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6130336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6130583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6130865Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6131126Z               "line": 647
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6131370Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6131610Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6131847Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6132099Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6132361Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6132625Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6132867Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6133109Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6133372Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6133620Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6133864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6134160Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6134417Z               "line": 2682
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6134664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6134902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6135187Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6135443Z               "line": 2703
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6135686Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6135929Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6136168Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6136411Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6136649Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6136888Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6137164Z       "id": "REQ-DOCS-RELEASE-ASSET",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6140658Z       "title": "THE-FORKENING W2 (ADR-0036 §4): every release ships a platform-independent docs bundle `spt-docs.tar.gz` (BUILT mdbook output: HTML + llms.txt + llms-full.txt + raw .md + manifest.schema.json) as a release asset WITH an entry in the SIGNED update-set (sha256, same integrity chain as binaries — docs describe the security-relevant contract surface, they do not ride unverified). Apply lands/refreshes $SPT_HOME/docs (single current copy = docs always match the installed binary). FAILURE ISOLATION binding: a docs-asset failure NEVER fails the binary update — UPDATE_DOCS_SKIPPED loud, retried next fetch. Gate: unit — update-set entry + sha256 verify + skip-loud isolation; int — a fetch+apply lands version-matched docs at $SPT_HOME/docs; doc — self-update docs name the bundle. Kin REQ-DOCS-LOCAL-SERVER (the consumer), REQ-RELEASE-CHANNEL-PRIVATE (the assemble leg), ADR-0036.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6140934Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6141187Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6141434Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6141682Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6141940Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6142180Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6142422Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6142669Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6142926Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6143185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6143422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6143693Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6143956Z               "line": 683
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6144195Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6144433Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6144667Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6144914Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6145176Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6145425Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6145667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6145969Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6146226Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6146584Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6146823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6147147Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6147405Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6147648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6147888Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6148197Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6148457Z               "line": 286
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6148703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6149065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6149509Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6149800Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6150047Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6150290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6150600Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6150855Z               "line": 304
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6151095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6151341Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6151656Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6151913Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6152161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6152410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6152720Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6152977Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6153219Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6153467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6153773Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6154030Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6154277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6154516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6154821Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6155074Z               "line": 661
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6155317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6155561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6155866Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6156126Z               "line": 1108
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6156367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6156611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6156997Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6157264Z               "line": 9386
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6157508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6157750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6158041Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6158293Z               "line": 9561
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6158537Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6158782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6159259Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6159639Z               "line": 10930
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6159893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6160131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6160427Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6160685Z               "line": 1447
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6160927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6161174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6161466Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6161722Z               "line": 1709
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6161978Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6162220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6162506Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6162765Z               "line": 1874
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6163008Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6163247Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6163489Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6163732Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6163999Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6164360Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6164685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6165004Z               "path": "crates/spt/tests/docs_bundle_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6165262Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6165506Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6165748Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6165987Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6166235Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6166493Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6166867Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6167109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6167428Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6167685Z               "line": 527
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6167928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6168172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6168477Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6168745Z               "line": 904
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6169079Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6169322Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6169558Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6169804Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6170039Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6170281Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6170571Z       "id": "REQ-DRIVEN-BY-OWN-NODE-NORMALIZE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6182922Z       "title": "RC-RENDER-TRUTH v0.38.1 fast-follow leg 1 — RESHAPED by operator/hertz correction + CONTEXT.md:382-389 grounding (doyle ruling v3, 2026-07-19; the original own-node NORMALIZATION is WITHDRAWN): plain `spt rc` on a CONTROLLED endpoint is refused-with-guidance BY DESIGN (CONTEXT:386 — never silent-displace; --take is the opt-in kick), and `driven_by` = the CONTROLLING NODE including the own node (CONTEXT:386 single-writer datum — the stamp comment's remote-only claim was a legacy-path artifact, NOT the model). v0.38.0 shipped behavior is CORRECT: the own-hex latch + client guidance blocking a second same-node plain rc IS the documented refusal, and the W2 generation ladder stays reachable exactly where it belongs — the recovery seams (rc reconnect re-drive + dispatcher re-serve bypass the client gate; the hertz field FAIL leg is reclassified NOT-A-DEFECT). Remaining work = truth/cosmetics across ALL own-node display surfaces (doyle gate finding 2026-07-19 — the own-hex latch is truthful but only rc.rs first learned to HUMANIZE it; the picker pin + endpoint-info attached_node still read the own-hex stamp as a foreign remote driver and print raw hex): (a) rc.rs guidance copy names the actual state — controlled from another window on this machine — via a pure driver_phrase keyed on the SHARED own-node predicate (roster::is_own_node_hex); (b) picker control_line (view.rs) reads an own-node driver as controlled locally (driven_by_is_self computed at data-build where the raw hex is available, driven_by STAYS populated so View+Kick is still offered); (c) endpoint-info attached_node (reporting.rs derive_attached_node) self-attributes an own-node driver to THIS node, never a foreign null-label hex; (d) stamp_driven_by + set_driven_by/set_controlled comments rewritten to the CONTEXT:386 meaning (controller node, own included) + KH 7.15/secondary remote-only model-claim comments reconciled (selfheal/unlatch semantics unchanged) — STAGE-NOTE CORRECTION (todlando 2026-08-19, doyle-ruled): this item shipped only its FIRST half. The WRITER-side comments were rewritten (broker.rs stamp_driven_by, info.rs set_driven_by, info.rs set_controlled all carry the ruling and are the anchors). The `secondary remote-only model-claim comments reconciled` half was NOT executed: the InfoJson FIELD docs for driven_by/controlled, picker/model.rs's controlled field doc (which contradicted driven_by_is_self twelve lines above it in the same struct), and the REQ/triage records that restate the falsified model all still carried remote-only. Executed by the sweep commit that carries this correction. No prod behavior site ever encoded remote-only — display_status keys on driven_by || controlled, correct under both models — which is why the stale premise never shipped a bug; (e) plain-Control-on-controlled refusal + --view/--take bypass pinned for BOTH remote and own-node drivers. NO broker behavior change; ladder untouched; pure display (no int, same as the ruling-v3 dropped int). Gate: impl — rc/picker/endpoint-info humanization + shared predicate + comment/docs; unit — own-node latch stamps truthfully (broker), guidance fires for own+remote with the right copy (rc), driver_phrase names own-node plainly (rc), control_line reads own-node as controlled locally (view), attached_node self-attributes own-node (reporting), --view/--take bypass; doc — KH 7.15 + ADR-0044 consequence-note alignment.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6183326Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6183575Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6183823Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6184066Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6184304Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6184552Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6184795Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6185059Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6185312Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6185552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6185881Z               "path": "docs/adr/0044-controller-lease-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6186138Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6186382Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6186626Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6186868Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6187116Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6187378Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6187627Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6187878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6188205Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6188457Z               "line": 1261
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6188705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6189034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6189335Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6189592Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6189837Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6190079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6190379Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6190636Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6190873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6191115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6191416Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6191672Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6191911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6192154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6192455Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6192718Z               "line": 607
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6192965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6193307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6193595Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6193852Z               "line": 1273
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6194097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6194387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6194679Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6194936Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6195179Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6195422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6195717Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6195971Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6196217Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6196460Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6196699Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6196952Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6197220Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6197472Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6197719Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6197967Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6198239Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6198496Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6198746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6199137Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6199394Z               "line": 12542
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6199647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6199890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6200195Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6200453Z               "line": 1445
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6200697Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6200939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6201238Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6201489Z               "line": 992
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6201742Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6201990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6202276Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6202643Z               "line": 3805
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6202881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6203124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6203414Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6203669Z               "line": 3858
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6203915Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6204160Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6204403Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6204642Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6204881Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6205123Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6205395Z       "id": "REQ-DSR-SINGLE-CPR",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6207601Z       "title": "TEARDOWN-AUTHORITY W3 rider (hertz RCA 2026-07-19): a Device Status Report query yields EXACTLY ONE Cursor Position Report. Rides W3 because it is the same emulator-conformance surface as the width work and the same field capture surfaced it; kept a separate REQ so its evidence is not buried inside the width tags. Gate: impl — one CPR per DSR on the emulator reply path; unit — a DSR in the input stream produces a single well-formed CPR carrying the DISPLAY-column cursor position (i.e. consistent with REQ-SCREENGRID-WIDTH reckoning, not the raw char count).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6207889Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6208136Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6208380Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6208618Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6208865Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6209196Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6209454Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6209712Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6209954Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6210202Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6210459Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6210707Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6210952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6211257Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6211519Z               "line": 1399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6211761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6212002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6212298Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6212555Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6212903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6213145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6213441Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6213694Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6213937Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6214186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6214484Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6214739Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6214982Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6215227Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6215521Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6215775Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6216017Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6216260Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6216499Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6216744Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6217015Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6217279Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6217523Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6217767Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6218039Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6218291Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6218534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6218834Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6219173Z               "line": 310
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6219416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6219658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6219957Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6220209Z               "line": 341
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6220452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6220690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6220987Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6221239Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6221478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6221725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6222021Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6222401Z               "line": 433
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6222647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6222900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6223191Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6223444Z               "line": 1549
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6223692Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6223930Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6224178Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6224417Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6224655Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6224896Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6225218Z       "id": "REQ-ECHO-BOUNDARY-INPUT-BEFORE-ROTATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6231345Z       "title": "A SESSION BOUNDARY FIRES AN ECHO WHOSE INPUT IS CAPTURED BEFORE THE SESSION ID ROTATES (releases#113 fork 3, ruled 2026-08-30 off the measurement it ordered). MEASURED at 343df76e: spt-core caught NO delta at a boundary, on three independent arms. (1) cmd_boundary fires no echo and arms no gate -- it rotates the sid, carries an engine-room empowerment, re-stamps ready, appends the session ledger, publishes one IO boundary event, nudges the project index and resurfaces notifs; the three production fire_echo triggers are pulse, rest-transition and signoff, and a boundary is none of them, nor does the departing session's soft api session-end fire one. (2) Even a fire placed after a boundary could not SEE the departing work: fire_echo feeds history(session_id) resolved through the CURRENT sid, and [history] resolves a single {session_id} file -- ADR-0019 states that property in as many words -- so the input after a rotation is the new, empty session. Session-spanning exists in this codebase but belongs to the DIGEST (ledger + last-K, REQ-TERM-6); the echo does not read it. (3) No last-echo watermark exists anywhere (zero hits across crates/), so the delta since the last echo is not a quantity spt-core holds. THE CONSTRAINT IS INPUT-BEFORE-ROTATION, and the shape delivering it (fire pre-rotation, or snapshot the input then rotate) is the implementer's. NO WATERMARK THIS PHASE, ruled: the whole current-session input stands -- it is a SUPERSET of the delta and the Psyche ingest consumes communes as content-deltas anyway; delta-since-last-echo semantics would be its own request. The boundary echo must not be able to FAIL the boundary: the harness has already rotated by the time core is told, so an echo problem is loud and best-effort, never a refusal that desyncs spt's record from the reality it describes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6231627Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6231871Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6232119Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6232368Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6232600Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6232852Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6233094Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6233355Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6233612Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6233860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6234175Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6234442Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6234686Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6234925Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6235176Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6235419Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6235684Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6235941Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6236193Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6236498Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6236765Z               "line": 1141
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6237014Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6237252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6237558Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6237811Z               "line": 869
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6238053Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6238295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6238596Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6238844Z               "line": 873
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6239173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6239511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6239817Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6240080Z               "line": 886
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6240322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6240564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6240862Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6241121Z               "line": 897
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6241363Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6241610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6241910Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6242163Z               "line": 904
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6242407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6242651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6242957Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6243209Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6243450Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6243687Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6243925Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6244177Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6244453Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6244711Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6244950Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6245203Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6245456Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6245703Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6245941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6246249Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6246521Z               "line": 1121
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6246763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6247005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6247311Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6247574Z               "line": 1654
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6247817Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6248056Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6248298Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6248536Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6248776Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6249099Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6249386Z       "id": "REQ-ECHO-BRIEF-DIRECT-ROUTE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6256767Z       "title": "THE ECHO-COMMUNE BRIEF ROUTES STRAIGHT FROM THE SUMMARIZER INTO THE TWO-TIER STORE AND NEVER TRANSITS THE AGENT `<id>-commune.md` DROP PATH (operator-ruled 2026-09-06, releases#276). MEASURED BEFORE THE RULING, on doyle own funnel: every `/clear` that hour was followed by an echo frame 25-45s later, landing exactly in the window where an unread Self drop sits, and 2 of 3 Self communes were lost -- the reborn session reported its own wake text as stale. WHY THIS IS A DESIGN GAP AND NOT A RACE TO PATCH: CONTEXT.md:208 names the drop as the AGENT channel and KNOWN-HAZARDS 6.4 names ONE writer on that path plus the daemon as sole deleter; echo.rs read `the mind` as the Psyche and forgot the Self, while docs/CONTEXT-MEMORY.md:25-33 states the Self DOES write that path at a boundary and that the Self signal is the STRONG live-context signal. So the echo -- weak, project-primary, live-conservative -- overwrote the strong Self capture: the exact inversion of the tiering the provenance asymmetry exists to protect. Nothing in the design ever required the brief to transit a file; the file was an implementation convenience that re-used the ingest. THE SHAPE: `run_echo_commune` loses `commune_dir` and returns the provenance-stamped body; the body-to-tiers core of `ingest_drops` is factored into ONE shared `ingest_body` so two callers cannot fork a later tiering change; `fire_echo` calls it, publishes the COMMUNE io-event carrying verbatim what ENTERED the tier (echo header first), consumes the releases#96 intent marker at THAT line rather than at the pulse file sweep, and strikes HARD on a route error through the existing EchoError classification. BEHAVIOUR CHANGE THAT MUST BE STATED IN THE PR: an adapter declaring `[session.echo_commune]` with NO `commune_dir` now echoes, where it used to no-op. Gate: doc -- the harness-contract echo-commune page rewritten to state the direct route, plus the CONTEXT.md:208 and :259 sentences; impl -- echo.rs without the write, ingest.rs `ingest_body`, and the fire_echo route-publish-consume order; unit -- the returned body carries the `Source: echo-commune` header and no drop dir survives in the signature; int -- through a real daemon the COMMUNE io-event appears with that header and NO file appears in `commune_dir`.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6257133Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6257381Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6257623Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6257871Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6258109Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6258358Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6258612Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6258863Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6259202Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6259458Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6259698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6260050Z               "path": "docs-site/src/harness-contract/echo-commune.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6260307Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6260546Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6260793Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6261037Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6261284Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6261543Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6261808Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6262053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6262363Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6262621Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6262864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6263113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6263418Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6263679Z               "line": 1387
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6263923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6264165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6264476Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6264732Z               "line": 1448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6264973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6265216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6265511Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6265775Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6266022Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6266266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6266662Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6266924Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6267165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6267406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6267703Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6267955Z               "line": 374
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6268198Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6268450Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6268689Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6268932Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6269332Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6269586Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6269834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6270181Z               "path": "crates/spt-daemon/tests/echo_direct_route_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6270433Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6270671Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6270916Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6271158Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6271407Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6271678Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6271930Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6272169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6272477Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6272738Z               "line": 3383
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6272981Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6273228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6273538Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6273797Z               "line": 3445
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6274044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6274283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6274574Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6274826Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6275073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6275320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6275615Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6275972Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6276216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6276462Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6276706Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6276949Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6277184Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6277426Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6277701Z       "id": "REQ-ECHO-DROP-DIR-RESOLVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6281380Z       "title": "W1 (LIFECYCLE-TRUTH): fire_echo resolves the manifest commune_dir through the SAME resolver its siblings use before any write. ROOT (pinned): fire_echo (spt-daemon lifecycle.rs:790) passes the RAW manifest commune_dir into run_echo_commune -> echo.rs:115-117 create_dir_all+join; a relative `.claude` under the WMI-launched daemon's System32 cwd = os error 5 deterministic (two live psyches stamped FAILED on it). Siblings already resolve correctly (ingest ~:583, psyche_drop_file :1072 via resolve_endpoint_drop_dir(raw, cwd)). FIX: fire_echo routes through resolve_endpoint_drop_dir; relative-with-no-cwd = SKIP LOUD (stderr), never a raw relative write — kills the latent-worse variant where a writable daemon cwd writes the drop to a WRONG dir silently (echo communes lost, no error). Hardening riders (same touch, no separate REQ): bounded EACCES retry on the drop write; echo claude spawn gets explicit cwd = endpoint cwd (perri ask).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6281661Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6281904Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6282147Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6282391Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6282639Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6282894Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6283155Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6283407Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6283646Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6283899Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6284155Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6284413Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6284656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6287991Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6288280Z               "line": 1386
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6288531Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6288926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6289357Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6289614Z               "line": 753
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6289856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6290105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6290419Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6290678Z               "line": 848
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6290921Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6291166Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6291415Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6291659Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6291926Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6292178Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6292420Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6292659Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6292922Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6293175Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6293421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6293738Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6294005Z               "line": 3380
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6294249Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6294544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6294968Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6295278Z               "line": 1234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6295521Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6295771Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6296014Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6296255Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6296496Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6296739Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6297021Z       "id": "REQ-ECHO-IDLE-AGE-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6304166Z       "title": "THE ECHO GATE SPLITS BY ARM INTO TWO SENTINEL FILES, AND ONLY THE WORK-DRIVEN ONE IS AGE-GATED (releases#113 fork 1, re-ruled 2026-08-30 on a corrected premise). MEASURED FIRST, AND THE MEASUREMENT INVERTED THE TICKET: the W0 report recorded the gate as armed by TRANSITION EDGES ONLY (arm_transition_echo) and concluded that an agent working for hours without a transition edge never echoes. FALSE -- cmd_state's idle arm (api/delivery.rs) writes the same sentinel UNCONDITIONALLY unless --no-gate, and that is published contract (harness-contract api.md: reporting idle also arms the echo gate). `api state idle` IS the turn-end report, so a working agent arms at EVERY turn end and the pulse loop fires within one period. spt-core was never missing the work-driven trigger; it was missing the AGE GATE. THE RULED SHAPE IS TWO FILES, NOT A CARRIER INSIDE ONE: (a) the EDGE sentinel, written by arm_transition_echo, fires UNGATED as today -- detach / attention-shift / suspend are rare and attention-correctness wants timeliness, and gating them would drop exactly the fire that matters at detachment risk; legacy supports the split, its boundary and session-edge fires were not age-gated either. (b) the IDLE sentinel, written by the idle arm, fires only at AGE >= 15 MINUTES, carrying the three legacy mechanics: a fresh sentinel answers SkipSentinelFresh{remaining} and the caller schedules a SHORT NEXT PULSE to wake near the crossing (this file only); age reads BIRTHTIME with an MTIME FALLBACK and the degradation is DECLARED rather than silent (birthtime = oldest un-fired turn end, mtime = most recent); and a metadata failure or clock skew FAILS OPEN -- it FIRES. Two files rather than one carrier is the property: an idle write can never overwrite an armed edge (no last-writer-wins downgrade), each file has one writer class, read-and-clear stays per-file, and the fire-time distinction is STRUCTURAL rather than parsed out of a byte someone has to remember to write. THE ARMING CONTRACT IS UNCHANGED and the docs sentence stays true -- reporting idle still arms; what acquires the age discipline is the FIRE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6304589Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6304852Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6305104Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6305353Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6305609Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6305857Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6306114Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6306492Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6306763Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6307010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6307352Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6307619Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6307867Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6308119Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6308363Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6308615Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6308879Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6309217Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6309481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6309808Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6310075Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6310323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6310576Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6310891Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6311158Z               "line": 578
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6311412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6311663Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6311983Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6312253Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6312498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6312750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6313060Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6313322Z               "line": 1111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6313574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6313823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6314146Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6314409Z               "line": 1280
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6314665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6314911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6315211Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6315478Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6315826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6316079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6316385Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6316646Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6316900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6317144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6317451Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6317716Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6317969Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6318217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6318522Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6318780Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6319114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6319366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6319671Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6319937Z               "line": 782
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6320183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6320431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6320736Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6321003Z               "line": 926
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6321264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6321522Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6321837Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6322099Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6322362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6322626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6322938Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6323195Z               "line": 521
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6323457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6323706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6324010Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6324273Z               "line": 600
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6324517Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6324759Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6325016Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6325263Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6325528Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6325790Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6326043Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6326296Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6326711Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6326968Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6327216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6327512Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6327775Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6328016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6328266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6328557Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6328816Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6329140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6329383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6329679Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6329936Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6330183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6330421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6330729Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6330991Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6331234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6331481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6331787Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6332049Z               "line": 1401
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6332292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6332542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6332837Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6333098Z               "line": 1433
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6333350Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6333594Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6333841Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6334079Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6334322Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6334557Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6334853Z       "id": "REQ-EFFECTIVE-INSTANCE-STATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6340052Z       "title": "A-1 (REMOTE-TRUTH triage §A + ADR-0033 §Decision): the effective instance state of a perch is DERIVED through ONE shared function — liveness discriminates warm/cold, stored rest intent refines within warm, absent intent NEVER defaults active. ROOT (certain): resting::apply_event derived its `from` off the stored rest_state field ALONE (resting.rs:225, `unwrap_or(RestState::Active)`) — a cold perch (offline) with no intent answered `from=Active`, so a Wake event found it 'already in target state' and returned Ok(None) = the field NO_EDGE-on-a-definitely-suspended-endpoint bug (the banked F-028 rest_state-void seed). advertised_status (registryhost.rs:821) ALREADY derived correctly (is_perch_alive→intent-refined / is_perch_unbound→Dormant / cold→Suspended) — the two readers disagreed. FIX (Q1 shared derivation, hazard-class): a pure `effective_rest_state(alive, unbound, intent) -> RestState` mirroring advertised_status, consumed by BOTH advertised_status (mapped RestState→Status, behavior identical) AND apply_event's `from` (real is_perch_alive/is_perch_unbound reads); void + cold ⇒ Suspended. Bonus: kills the spurious active→suspend echo a cold+void perch used to fire (on_rest_edge on a dead driver). Red-first: perch status=offline + no rest_state → daemon_rest_event(Wake) yields from=Suspended→to=Active EdgeReport, not Ok(None).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6340448Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6340695Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6340949Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6341195Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6341435Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6341689Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6341928Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6342194Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6342448Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6342694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6342986Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6343248Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6343496Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6343746Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6343990Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6344234Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6344497Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6344759Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6345007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6345427Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6345694Z               "line": 1000
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6345941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6346188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6346500Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6346758Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6347002Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6347245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6347555Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6347821Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6348069Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6348317Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6348557Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6348804Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6349155Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6349415Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6349654Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6349911Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6350170Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6350431Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6350679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6350988Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6351246Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6351490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6351736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6352044Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6352305Z               "line": 981
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6352554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6352793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6353103Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6353361Z               "line": 1072
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6353598Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6353842Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6354084Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6354325Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6354565Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6354808Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6355175Z       "id": "REQ-ELEVATE-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6359183Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6359470Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6359715Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6359965Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6360209Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6360457Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6360701Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6360948Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6361219Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6361472Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6361721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6361989Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6362248Z               "line": 1082
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6362494Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6362743Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6362981Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6363229Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6363491Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6363744Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6363987Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6364283Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6364551Z               "line": 13417
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6364913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6365163Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6365449Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6365711Z               "line": 13462
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6365956Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6366198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6366485Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6366747Z               "line": 13524
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6366994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6367242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6367540Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6367803Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6368055Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6368302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6368602Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6368856Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6369189Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6369437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6369677Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6369929Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6370194Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6370459Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6370707Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6370951Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6371217Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6371469Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6371718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6372008Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6372272Z               "line": 442
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6372515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6372761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6373059Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6373317Z               "line": 460
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6373570Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6373813Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6374055Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6374394Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6374637Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6374880Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6375167Z       "id": "REQ-EMIT-SINGLE-WRITE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6375810Z       "title": "A machine-parsed diagnostic emission is handed to the OS as exactly ONE write of the complete rendered text including its terminating newline.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6376072Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6376319Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6376567Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6376820Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6377064Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6377317Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6377588Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6377844Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6378096Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6378343Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6378605Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6378867Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6379196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6379516Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6379778Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6380025Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6380280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6380580Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6380835Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6381081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6381325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6381626Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6381878Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6382131Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6382373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6382673Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6382930Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6383175Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6383431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6383724Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6383981Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6384224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6384478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6384768Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6385193Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6385445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6385685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6385986Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6386245Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6386498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6386742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6387042Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6387309Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6387557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6387804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6388110Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6388367Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6388614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6388860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6389247Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6389514Z               "line": 147
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6389766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6390018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6390319Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6390576Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6390825Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6391068Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6391361Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6391617Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6391857Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6392109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6392400Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6392666Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6392914Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6393157Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6393402Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6393649Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6393914Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6394174Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6394555Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6394808Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6395071Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6395338Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6395582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6395902Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6396158Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6396406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6396653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6396964Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6397221Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6397468Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6397721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6398016Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6398279Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6398527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6398776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6399202Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6399483Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6399730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6399977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6400287Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6400545Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6400798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6401037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6401338Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6401595Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6401841Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6402088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6402387Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6402650Z               "line": 385
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6402892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6403140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6403436Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6403698Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6403943Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6404196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6404493Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6404748Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6405101Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6405349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6405645Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6405903Z               "line": 430
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6406157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6406398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6406699Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6406966Z               "line": 441
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6407213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6407456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6407757Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6408019Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6408262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6408505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6408801Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6409158Z               "line": 483
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6409411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6409653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6409961Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6410218Z               "line": 507
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6410466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6410705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6411005Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6411268Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6411510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6411759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6412053Z               "path": "crates/spt-proto/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6412317Z               "line": 532
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6412558Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6412803Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6413047Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6413291Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6413534Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6413772Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6414058Z       "id": "REQ-ENDPOINT-AUTOSTART",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6420583Z       "title": "MSG-IDENTITY W5 / F-038 (flynn operator-directed ask 2026-07-10, SPT-CORE-NEEDS #7 + deployah field-confirm same day: mobile-gw alive=false after the v0.30.6 full daemon restart = this feature's absence, live): an endpoint can be marked a STARTUP DEFAULT so the daemon brings it back up at daemon start — Gateway-class endpoints are infra (the phone treats mobile-gw as always-there; box reboot / daemon cold start currently leaves it down until hands-on). SHAPE RULED (doyle, dispatch): (a) `spt endpoint auto-start <id>` persists the endpoint (id + adapter/profile + args) as a startup default REPLAYED at daemon start, symmetric with the shipped `subnet attach/detach --save` precedent — smallest orthogonal cut, explicit operator intent, no interaction with effective_rest_state/F-035 reader-parity semantics (shape (c) restore-what-was-up REJECTED for now: principled but couples to the rest_state neighborhood that just churned; revisit if --save proves insufficient in the field). A saved endpoint that fails to come up logs loud + does not block daemon start or other replays. flynn docs sweep confirmed missing-feature not docs-gap (rest/wake manual-only; no endpoint analog of subnet --save; no manifest field; no api surface). Gate: int — daemon restart brings a --save'd endpoint back up (fresh daemon, saved default, endpoint reaches its steady state without hands-on); doc — public docs page for the verb (VERSION-scoped); unit — persistence round-trip + replay skip-on-missing-adapter loud. Kin subnet --save (the symmetry precedent), REQ-LIST-JSON-LIVENESS-PARITY + REQ-HAZARD-BIND-REST-STATE-CARRY (the F-035 neighborhood shape (c) would have coupled to), [[spt-core-findings-backlog]] F-038. Interim on flynn's box (logon scheduled task) dissolves when this lands.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6420974Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6421218Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6421465Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6421712Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6421956Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6422205Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6422453Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6422695Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6423051Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6423311Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6423555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6423870Z               "path": "docs-site/src/instances/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6424132Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6424380Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6424623Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6424866Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6425114Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6425382Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6425642Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6425883Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6426197Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6426451Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6426698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6426942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6427252Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6427504Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6427757Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6428014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6428315Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6428572Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6428814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6429149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6429454Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6429711Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6429959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6430198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6430508Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6430763Z               "line": 372
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6431004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6431248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6431553Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6431811Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6432060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6432421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6432708Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6432970Z               "line": 4166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6433217Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6433469Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6433712Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6433958Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6434224Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6434482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6434735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6435063Z               "path": "crates/spt/tests/endpoint_autostart_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6435322Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6435561Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6435807Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6436055Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6436307Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6436567Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6436829Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6437072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6437387Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6437650Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6437902Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6438151Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6438461Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6438728Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6439088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6439345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6439660Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6439918Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6440162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6440406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6440721Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6440977Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6441223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6441465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6441780Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6442042Z               "line": 567
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6442290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6442536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6442944Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6443205Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6443448Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6443696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6444011Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6444267Z               "line": 683
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6444522Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6444765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6445047Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6445305Z               "line": 3381
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6445553Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6445796Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6446043Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6446290Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6446531Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6446777Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6447055Z       "id": "REQ-ENDPOINT-CYCLE-HONEST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6449915Z       "title": "REGISTRY-LIFECYCLE W3 (ADR-0041 decision 6, operator deployah stop/run wedge): cycle verbs share ONE liveness authority — the ALREADY_LIVE dup-guard liveness-probes the claimed session client tree before refusing (dead tree means reap + respawn honestly, never a refusal citing a zombie); the shutdown state machine consults the same source so is-it-live has one answer (no ALREADY_LIVE / list-OFFLINE / shutdown-NO_EDGE three-way contradiction on the same endpoint). Gate: impl — probing dup-guard + unified authority; unit — dead-tree claim probes and reaps, live claim still refuses; int — controlled zombie (killed client tree, surviving hosted record) leads to endpoint run succeeding honestly end-to-end; doc — ADR-0041.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6450197Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6450440Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6450688Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6450937Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6451188Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6451431Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6451684Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6452039Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6452307Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6452578Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6452821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6453160Z               "path": "docs/adr/0041-endpoint-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6453416Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6453660Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6453903Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6454148Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6454409Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6454665Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6454925Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6455174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6455489Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6455741Z               "line": 413
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6455998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6456246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6456561Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6456832Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6457072Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6457318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6457630Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6457897Z               "line": 4117
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6458140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6458388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6458698Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6459050Z               "line": 6141
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6459300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6459543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6459853Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6460109Z               "line": 8094
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6460366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6460610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6460915Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6461182Z               "line": 1524
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6461443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6461696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6462006Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6462367Z               "line": 1530
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6462618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6462867Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6463162Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6463425Z               "line": 1537
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6463671Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6463924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6464229Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6464492Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6464740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6464979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6465291Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6465546Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6465800Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6466049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6466334Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6466601Z               "line": 4611
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6466843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6467091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6467383Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6467641Z               "line": 7622
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6467887Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6468137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6468423Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6468682Z               "line": 1061
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6468930Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6469258Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6469502Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6469749Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6470016Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6470268Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6470518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6470845Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6471102Z               "line": 329
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6471354Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6471602Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6471946Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6472189Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6472457Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6472720Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6472965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6473268Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6473526Z               "line": 10047
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6473770Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6474018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6474323Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6474580Z               "line": 1021
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6474823Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6475061Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6475310Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6475563Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6475799Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6476045Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6476337Z       "id": "REQ-ENDPOINT-DROP-DIR-SURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6484344Z       "title": "THE REGISTERED COMMUNE DROP DIR IS READABLE FOR THIS NODE'S OTHER ENDPOINTS, NOT ONLY FOR SELF (releases#224, scope amended at measure-first): `endpoint list --json` HAS carried `drop_dir` on the SELF pin since 2026-08-01 (REQ-PSYCHE-INGEST-FAILURE-LOUD, `registered_drop_dir` resolving through the SAME `spt_live::resolve_endpoint_drop_dir` the daemon ingest anchors on -- one anchor, so the read surface cannot drift from the watcher), and the ticket's premise that no read verb exposes it is FALSE at head and at the shipped 0.62.0 binary; the residual is that the field appears EXACTLY ONCE in the whole roster JSON. The field census's real question is about ANOTHER agent's endpoint -- an orphaned drop is diagnosed by whoever finds it, not by its owner -- so `LocalPerchJson` rows gain `drop_dir` on the SAME terms as their `activity` and `host_error` siblings: read from that perch's own `info.json`, LOCAL ROWS ONLY, additive and `skip_serializing_if` so an endpoint with no recorded cwd/adapter or a manifest declaring no commune dir OMITS the key rather than guessing (an absent field is honest; a guessed dir is worse than silence). SUBNET-REMOTE ROWS (`EndpointRowJson`) STAY BARE (doyle ruling 1): a remote endpoint's drop dir is another NODE'S filesystem fact, and surfacing it here invites acting on a path this machine cannot read. The HUMAN view gains the same fact for SELF -- one annotation line under the self pin, the `psyche-host:` / `input-translation:` family -- so the answer does not require `--json`. Gate: doc -- the published drop-file-protocol clause telling an agent to READ the resolved dir rather than re-derive it, naming both JSON fields and the human line (the DISCOVERABILITY half of the residual: nothing pointed at the shipped field, which is how a multi-round probe happened over a fact that was already there, and how the ticket came to be filed on a false premise); impl -- the local-row field + the human self-pin line, both sourced through the one resolver, never a second derivation; unit -- a local row with a resolvable dir CARRIES it while a row with no cwd/adapter OMITS the key (the pair asserted together, since either alone passes an implementation that is uniform the wrong way), the remote row shape is UNCHANGED (the ruled boundary, pinned so a later widening is a decision and not a drift), and the human self pin renders the dir when known and renders NOTHING extra when not.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6484659Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6484907Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6485159Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6485407Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6485645Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6485898Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6486143Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6486407Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6486666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6486911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6487254Z               "path": "docs-site/src/harness-contract/echo-commune.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6487516Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6487760Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6488007Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6488346Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6488598Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6488873Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6489219Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6489464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6489749Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6490007Z               "line": 6400
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6490259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6490506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6490802Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6491060Z               "line": 6606
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6495251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6495529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6495843Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6496101Z               "line": 12471
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6496349Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6496597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6496886Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6497146Z               "line": 12541
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6497404Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6497647Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6497889Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6498147Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6498415Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6498677Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6498921Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6499269Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6499533Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6499788Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6500038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6500323Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6500581Z               "line": 27271
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6500829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6501076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6501363Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6501620Z               "line": 27320
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6501869Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6502117Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6502367Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6502611Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6502859Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6503098Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6503560Z       "id": "REQ-ENDPOINT-LIST-JOINED-SUBNETS-LABEL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6509181Z       "title": "THE THIS-NODE SUBNET LINE IN `spt endpoint list` SAYS JOINED, NOT SHARED (releases#72, BUGFIX). The two subnet lines this surface renders are DIFFERENT FACTS wearing one label: the This-node line lists the subnets THIS node is a member of (cmd_endpoint_list names, narrowed by --subnet), while a remote node row lists the subnets that node gossips a visible row through UNIONED ACROSS OUR MEMBERSHIPS -- the subnets we have in common with that machine. Calling the first one Shared invites the reader to look for a second party that is not there. THE REMOTE LINE KEEPS ITS NAME and that is part of the requirement rather than an omission: Shared is precise for a row whose content IS an intersection, and renaming both would trade one imprecision for another. The render docs already carry the corrected vocabulary (render_node_grouped is documented as carrying our joined subnets for this node and a Shared subnets line for the remotes), so this change makes the rendered text agree with the language the code already uses for it. THE UNIT EVIDENCE MUST DISCRIMINATE THE TWO LINES, which the pre-fix assertion could not: its fixture gave the This-node set and the remote set the SAME members, so a substring assertion matched either line and would have passed unchanged while the subject of the assertion silently changed. The repinned row asserts each label once, against fixtures whose two subnet sets DIFFER, so a build that renames the wrong line fails it. Gate: impl -- the This-node line renders Joined subnets while the remote-group line is untouched; unit -- both labels asserted by name with distinct fixtures, so neither line can be renamed, dropped or duplicated unobserved.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6509471Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6509718Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6509966Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6510325Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6510570Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6510817Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6511074Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6511340Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6511594Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6511837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6512161Z               "path": "docs-site/src/lifecycle/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6512425Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6512673Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6512913Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6513157Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6513405Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6513672Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6513924Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6514167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6514454Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6514716Z               "line": 7513
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6514960Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6515205Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6515456Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6515705Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6515981Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6516244Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6516491Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6516734Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6516997Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6517245Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6517489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6517775Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6518030Z               "line": 27661
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6518276Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6518520Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6518762Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6519087Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6519329Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6519573Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6519864Z       "id": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6522307Z       "title": "`spt endpoint list` always merges this node's LOCAL (unadvertised) perches into the view; the `--local` flag is REMOVED (operator decision 2026-06-17). Rationale: `spt whoami` is a thin alias of `endpoint list` — a just-online agent running `whoami` must see its OWN perch, or it gets an omitted-self view ('chaos'). FIX: drop the `--local` flag + its `--detail` conflict test + the v0.10.0 REQ-PICKER-5 hint line (cli.rs:1678) + cmd_list_local; the bare list merges local perches into the subnet view; fix the whoami alias path accordingly. Run `cargo run -p xtask -- gen` (docs-drift, DEFAULT target). (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6522593Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6522845Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6523092Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6523337Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6523583Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6523831Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6524083Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6524347Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6524604Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6524847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6525133Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6525399Z               "line": 1109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6525647Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6525894Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6526135Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6526378Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6526636Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6526899Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6527138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6527453Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6527719Z               "line": 6214
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6527966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6528214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6528505Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6528770Z               "line": 6717
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6529108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6529380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6529680Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6529947Z               "line": 7486
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6530199Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6530639Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6530882Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6531137Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6531440Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6531704Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6531961Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6532209Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6532480Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6532747Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6532995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6533286Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6533549Z               "line": 27698
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6533802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6534052Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6534352Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6534615Z               "line": 29462
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6534868Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6535121Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6535363Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6535611Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6535859Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6536109Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6536407Z       "id": "REQ-ENDPOINT-LIST-NODE-GROUPED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6542850Z       "title": "spt endpoint list is node-grouped over unique INSTANCES, not subnet-grouped over duplicated rows: one row per (id,node) instance — subnet duplication collapsed (ADR-0006 §1: subnet is never an identity axis), freshest-epoch wins a cross-subnet status disagreement (the resolve_among twin rule) — grouped under 'This node: <label>' (cyan; local roster is the status truth, advertised-status vocabulary, corrupt = suspended + corrupt annotation) then remote nodes alphabetical (node name orange 38;5;208, the legacy $LIVE orange), this node carrying a light-gray 'Joined subnets:' line (the subnets this node is a member of -- renamed from 'Shared', releases#72, see REQ-ENDPOINT-LIST-JOINED-SUBNETS-LABEL) and each REMOTE node a light-gray 'Shared subnets:' line (subnets among our memberships where that node gossips any visible row; per-instance subnet detail stays in --json/--detail), instance rows [id, endpoint_type, glyph, status] (endpoint_type threaded from Instance.endpoint_type through ResourceRow — additive, pre-field rows render '-'), per-node 'Total:' lines with NO grand total (the stderr ENDPOINTS:<n> line is REMOVED — it counted subnet rows, so the same instance in N subnets counted N times), SELF pin kept first with a '(self @ <node>)' marker (REQ-WHOAMI-1 alias; self also appears as a This-node row so the node total stays honest), remote nodes with zero visible instances skipped, --subnet narrows the union to that subnet's view, --json DTO structure UNCHANGED (committed surface; gains only an additive endpoint_type field). Grill-with-docs ruling 2026-07-02 (operator + doyle); sibling of REQ-PICKER-NODE-GROUPING (the picker half of the same dedup law).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6543146Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6543408Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6543660Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6543908Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6544179Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6544434Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6544708Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6544989Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6545246Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6545500Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6545776Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6546034Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6546292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6546616Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6546880Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6547132Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6547385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6547704Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6547971Z               "line": 550
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6548224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6548471Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6548786Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6549140Z               "line": 626
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6549488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6549738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6550060Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6550327Z               "line": 628
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6550576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6550824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6551116Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6551382Z               "line": 6342
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6551634Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6551877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6552168Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6552429Z               "line": 6562
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6552685Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6552937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6553223Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6553486Z               "line": 6771
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6553744Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6553992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6554288Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6554554Z               "line": 7098
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6554802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6555054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6555335Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6555597Z               "line": 7113
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6555844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6556088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6556379Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6556632Z               "line": 7202
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6556876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6557123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6557403Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6557658Z               "line": 7240
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6557907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6558159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6558441Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6558702Z               "line": 7311
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6559036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6559293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6559575Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6559937Z               "line": 7485
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6560185Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6560432Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6560678Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6560921Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6561188Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6561446Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6561690Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6561937Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6562199Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6562456Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6562700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6563017Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6563269Z               "line": 2000
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6563516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6563764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6564051Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6564304Z               "line": 27053
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6564561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6564804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6565094Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6565352Z               "line": 27407
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6565596Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6565842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6566119Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6566371Z               "line": 27438
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6566615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6566859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6567140Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6567398Z               "line": 27461
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6567644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6567887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6568172Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6568429Z               "line": 27479
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6568671Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6568914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6569281Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6569640Z               "line": 27850
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6569892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6570140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6570420Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6570684Z               "line": 29083
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6570925Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6571166Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6571405Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6571644Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6571882Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6572125Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6572411Z       "id": "REQ-ENDPOINT-LIST-NODE-IDENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6574234Z       "title": "Bug #5: spt endpoint list local section header is the hardcoded literal LOCAL (this node) (render_local_section cli.rs:4359). Change to 'This node: <node-id>' using the existing node-ident idiom (os_hostname + nodeid public-key prefix, cli.rs:5531 — factor a node_ident_display helper); compute in the impure print_local_section, pass into the pure renderer. Update the two test assertions (cli.rs:10711/10716). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #5.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6574515Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6574764Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6575010Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6575259Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6575507Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6575761Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6576023Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6576283Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6576531Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6576784Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6577042Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6577303Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6577546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6577833Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6578090Z               "line": 6653
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6578335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6578580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6578864Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6579226Z               "line": 7487
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6579469Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6579718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6580122Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6580385Z               "line": 12194
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6580638Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6580883Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6581125Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6581376Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6581645Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6581899Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6582142Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6582393Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6582651Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6582919Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6583157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6583444Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6583701Z               "line": 27698
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6583942Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6584193Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6584442Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6584684Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6584922Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6585166Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6585480Z       "id": "REQ-ENDPOINT-LIST-OWN-NESTED-SECTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6593336Z       "title": "`spt endpoint list` SHOWS THE CALLING ENDPOINT ITS OWN NESTED PERCHES, in a section of their own (releases#98, ADDITION; ruled 2026-08-02). A live agent cannot see its own psyche or its own workers on the surface that exists to answer what is running here: nested perches live at owlery/<parent>/nested/<child>/ and the roster this view is built from enumerates top-level perches only, so the children are invisible by construction rather than by choice. THE NESTING RELATION IS THE STRUCTURAL ONE SPT-CORE ALREADY RECORDS -- the child dir sitting inside the parent perch dir -- AND IT IS THE ONLY SOURCE. NAME-PREFIX MATCHING IS NEVER CONSULTED, and that negative is required text rather than implied by the positive: a perch named <parent>-foo that is not nested does NOT appear, and a genuinely nested perch appears WHATEVER it is called. A build that filtered the flat roster by id prefix would satisfy a naive shows-my-psyche assertion while being wrong in both directions. THE SECTION IS THE CALLERS OWN AND NO ONE ELSES: every other agent entry renders exactly as it does today, so this adds a self-view rather than a new cross-agent disclosure. CALLER IDENTITY RIDES THE EXISTING ENV AND PROCESS-IDENTITY SEAM (roster detect_self_id: session-id match across the nested-inclusive perch enumeration, then the pinned agent and endpoint env vars accepted only when they map to a bound perch, then process ancestry) -- NO NEW IDENTITY CHANNEL IS MINTED, and nothing here confers authority: the seam is label-only by construction (KNOWN-HAZARDS 7.3/7.5) and this consumer only decides whose children to render. A CALLER THE SEAM CANNOT RESOLVE SIMPLY GETS NO SECTION -- silence, never a guessed parent whose children would then be shown to the wrong reader. Path composition for the nested namespace belongs in the single perch-layout source, not in the CLI, per the single-path-source invariant. Gate: impl -- a nested-perch enumerator keyed on the parent in the perch-layout module, the caller resolution at the gather site, and the section rendered inside the This-node group by the existing pure renderer; unit -- a nested child appears under its parent for the calling endpoint, a same-prefix NON-nested perch does NOT appear, a nested child with an unrelated name DOES, another agent nested children are absent from the callers section, and an unresolvable caller renders no section at all.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6593722Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6593976Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6594222Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6594484Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6594777Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6595026Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6595283Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6595540Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6595797Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6596050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6596469Z               "path": "docs-site/src/lifecycle/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6596727Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6596975Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6597219Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6597460Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6597712Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6597971Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6598229Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6598472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6598777Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6599125Z               "line": 1029
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6599373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6599615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6599917Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6600176Z               "line": 1064
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6600424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6600666Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6600952Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6601223Z               "line": 6744
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6601477Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6601725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6602012Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6602269Z               "line": 7540
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6602515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6602761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6603052Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6603309Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6603562Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6603809Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6604053Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6604301Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6604564Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6604817Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6605063Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6605313Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6605576Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6605834Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6606181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6606491Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6606753Z               "line": 1319
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6607001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6607244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6607535Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6607794Z               "line": 27483
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6608034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6608282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6608569Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6608832Z               "line": 27540
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6609160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6609409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6609695Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6609957Z               "line": 362
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6610199Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6610440Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6610688Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6610931Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6611168Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6611417Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6611708Z       "id": "REQ-ENDPOINT-LIST-PALETTE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6614656Z       "title": "Bugs #11 + #15 (display): spt endpoint list renders status as plain text while the picker turns the same ResourceRow into the W5 colored EpDisplay palette. Fix: extract one shared ResourceRow-to-EpDisplay builder + make the picker display enums/helpers public, and have endpoint list render the same colored status squares (via helpfmt stdout_color, not ratatui Span). This also fixes #15 — a lone warm detached instance renders as its online flavor (Dormant maps to online) instead of leaking the bare word Dormant through the text-only list (no resting.rs/CONTEXT model change; operator ruling display-only). Couples REQ-PICKER-NODE-GROUPING (both edit subnet_rows — sequence the shared-builder extraction first). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #11/#15.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6614927Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6615176Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6615425Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6615675Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6615921Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6616269Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6616541Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6616799Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6617047Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6617289Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6617556Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6617809Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6618057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6618349Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6618609Z               "line": 7312
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6618856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6619181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6619490Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6619749Z               "line": 574
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6619992Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6620231Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6620479Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6620735Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6621000Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6621262Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6621509Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6621762Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6622019Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6622273Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6622521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6622812Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6623070Z               "line": 27053
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6623312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6623559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6623858Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6624120Z               "line": 1838
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6624367Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6624615Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6624853Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6625097Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6625346Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6625588Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6625879Z       "id": "REQ-ENDPOINT-LIST-PROJECT-COL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6628464Z       "title": "#8: spt endpoint list gains a second column <project>/ (the endpoint's LATEST project) -> 4 columns total: id / <project>/ / type / status. Local rows: head of REQ-PICKER-PROJECT-HISTORY-TRUTH (sessions.log-derived, owlery-excluded). Remote rows: head of REQ-GOSSIP-ADAPTER-PROJECTS recent_projects. Project IDs only + #4 disambiguation; '-' when unknown (pre-field remote rows). Extends the v0.21.0 node-grouped renderer (format_instance_rows — additive column, alignment char-width-safe). --json: additive project field on the row DTO (skip-if-none, N-1 safe). Depends on #1 + #4. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #8.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6628746Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6629073Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6629317Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6629575Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6629823Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6630075Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6630337Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6630609Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6630853Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6631102Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6631375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6631636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6631879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6632165Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6632428Z               "line": 6348
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6632666Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6632918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6633209Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6633466Z               "line": 6365
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6633716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6633959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6634242Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6634498Z               "line": 6564
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6634742Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6634990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6635271Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6635552Z               "line": 6582
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6635795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6636138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6636424Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6636681Z               "line": 6730
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6636924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6637165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6637451Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6637718Z               "line": 6875
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6637961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6638204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6638491Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6638744Z               "line": 7181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6639073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6639316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6639601Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6639859Z               "line": 7218
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6640107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6640359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6640659Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6640921Z               "line": 462
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6641179Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6641423Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6641671Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6641916Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6642181Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6642439Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6642688Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6642940Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6643206Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6643463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6643712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6643998Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6644271Z               "line": 27121
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6644514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6644751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6645039Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6645293Z               "line": 27158
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6645636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6645865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6646180Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6646456Z               "line": 27180
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6646703Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6646946Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6647185Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6647427Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6647667Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6647911Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6648211Z       "id": "REQ-ENDPOINT-LIST-RENDER-POLISH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6651343Z       "title": "A6 (F028, operator, 4 asks): `spt endpoint list` render polish. (a) the 'Shared subnets' line is NOT dim — LIGHT_GRAY = \"37\" (cli.rs:3019) is standard-palette WHITE, indistinguishable from row text; use SGR 90 (bright-black/gray) for the dim intent. (b) the `Total:` line takes the same dim color. (c) move the status glyph ADJACENT to the endpoint name (operator: 'right behind the endpoint name'), mirroring the picker's glyph-beside-name presentation (today the glyph sits at the end next to the status word). (d) color the status WORD like the picker TUI (green ONLINE / gray OFFLINE / blue when driven, matching picker glyph semantics). All in render_node_grouped/render_instance_row (cli.rs ~3000s); pure render with an injected color decision — unit-testable off a tty. See triage A6.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6651634Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6651883Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6652134Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6652377Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6652638Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6652899Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6653166Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6653428Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6653681Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6653929Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6654192Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6654473Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6654725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6655021Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6655291Z               "line": 7441
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6655543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6655913Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6656210Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6656476Z               "line": 7448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6656725Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6656982Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6657229Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6657482Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6657754Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6658020Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6658275Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6658532Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6658795Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6659143Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6659391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6659687Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6659945Z               "line": 27106
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6660198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6660450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6660744Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6661007Z               "line": 27838
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6661274Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6661522Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6661770Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6662012Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6662261Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6662505Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6662800Z       "id": "REQ-ENDPOINT-LIST-REST-FILTER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6666009Z       "title": "spt endpoint list hides SUSPENDED instances by default; a new --show-all flag reveals them. Status-first row ordering with fixed precedence ONLINE > CONTROLLED > UNBOUND > SUSPENDED (when shown) > corrupt last, alphabetical by id within each band. Two invariants: (1) CORRUPT rows ALWAYS render regardless of filters — corrupt is a record condition demanding operator action (purge/re-mint), not resting clutter; hiding it would re-create counter-39 bug #3 (cross-ref REQ-HAZARD-CORRUPT-PERCH-COHERENCE, CONTEXT.md instance-state _Also avoid_); (2) the per-node Total line DISCLOSES the filter — 'Total: N (+M suspended hidden)' — so nothing silently vanishes. Registry-Offline rows stay excluded by projection law (resource_projection skips unroutable; unchanged). Grill-with-docs ruling 2026-07-02 (operator + doyle).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6666398Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6666651Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6666908Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6667150Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6667404Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6667652Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6667934Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6668187Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6668442Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6668697Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6669054Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6669317Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6669570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6669866Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6670128Z               "line": 7395
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6670394Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6670643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6670947Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6671214Z               "line": 7417
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6671457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6671705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6671990Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6672258Z               "line": 7448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6672501Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6672754Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6673003Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6673264Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6673544Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6673809Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6674058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6674319Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6674586Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6674843Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6675097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6675382Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6675646Z               "line": 27776
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6675894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6676228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6676521Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6676781Z               "line": 27801
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6677029Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6677267Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6677550Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6677812Z               "line": 27829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6678064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6678316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6678597Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6678870Z               "line": 27882
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6679196Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6679443Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6679686Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6679934Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6680173Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6680417Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6680722Z       "id": "REQ-ENDPOINT-MESSAGE-ONLY-DISPLAY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6686595Z       "title": "An online agent-family endpoint with NO session surface reads as message-reachable, not as a harness-hosted live agent and not as a plain ONLINE. (hertz v0.39.0 field report 2026-07-21; doyle PRODUCT RULING — deliberately NEITHER of the two options offered.) OBSERVED: an adapterless `spt ready` perch (type=ready_agent, adapter=null, ready/alive true) displays plain ONLINE with '(unknown adapter)'. SOURCE: picker/model.rs display_status returns Online for every non-live_agent type (~680-681) BEFORE consulting controllable, and amber HarnessOnly is live-agent-only (~683-687). RULING: that type gate is CORRECT and STAYS. 'ONLINE - HARNESS ONLY' means one specific thing — a LIVE AGENT whose session surface is owned by a harness rather than a broker PTY. Broadening it to 'online non-controllable agent-family' would make one label mean two different things, which is how a status label starts lying. An adapterless ready receiver is a THIRD truth: message-reachable, no session surface at all, nothing to attach to ever. So: a DISTINCT display state (working name 'ONLINE - MESSAGE ONLY') keyed on the endpoint TYPE (ready_agent), never on absence-of-adapter, and never an invented adapter name. SECOND RULING (same surface, separate lie): '(unknown adapter)' is itself a small diagnostic untruth — adapter=null is ABSENT, deliberately so, not unknown; the copy must say absent. Gate: impl — the distinct display state + the absent-adapter copy; unit — the display table gains the ready_agent row and the existing live_agent/gateway rows are UNCHANGED (this must not perturb the HarnessOnly gate), plus a label assertion for the new state.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6686981Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6687232Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6687480Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6687742Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6688008Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6688251Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6688519Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6688777Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6689129Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6689383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6689634Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6689898Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6690156Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6690399Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6690648Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6690910Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6691167Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6691410Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6691649Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6691892Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6692149Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6692429Z       "id": "REQ-ENDPOINT-ONLINE-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6696880Z       "title": "REGISTRY-LIFECYCLE W2 (ADR-0041 decisions 1+2, emphasys C1 P0): ONLINE is earned, not declared — cmd_listen stamps status=online only from actual persisted state + hosting authority, never from manifest psyche_init capability alone (no more ready_agent/controllable=false hybrid rows born online-authoritative); livehost reconcile SPLITS control cleanup (clear controlled/driven_by/viewer_count for EVERY endpoint absent from session truth, regardless of state/controllable) from offline classification (live_agent+controllable gate unchanged); legacy hybrid rows self-heal after a SUCCESSFUL broker query only (broker failure is never interpreted as an empty session set); terminal signoff/owner-loss = atomic CAS-guarded offline + ready/address removal WITHOUT overloading soft api session-end (/clear preserves the live listener). Gate: impl — creator gate + reconcile split + self-heal + terminal path; unit — creator refuses capability-only online, cleanup clears stamps on state-quirk rows, broker-failure never mass-offlines; int — dead-PID hybrid row does NOT survive a reconcile cycle (the immortal-row regression); doc — ADR-0041.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6697174Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6697419Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6697674Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6697924Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6698168Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6698422Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6698670Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6698917Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6699374Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6699638Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6699881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6700222Z               "path": "docs/adr/0041-endpoint-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6700481Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6700725Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6700969Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6701213Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6701460Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6701717Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6701975Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6702223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6702547Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6702801Z               "line": 2077
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6703162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6703409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6703724Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6703980Z               "line": 712
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6704224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6704477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6704787Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6705050Z               "line": 815
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6705291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6705532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6705851Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6706105Z               "line": 852
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6706358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6706601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6706905Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6707162Z               "line": 899
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6707410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6707664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6707965Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6708234Z               "line": 1028
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6708499Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6708747Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6709071Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6709325Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6709582Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6709845Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6710087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6710427Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6710696Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6710937Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6711196Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6714703Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6714980Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6715248Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6715504Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6715752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6716064Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6716346Z               "line": 1636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6716603Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6716846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6717294Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6717561Z               "line": 1666
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6717810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6718051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6718361Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6718628Z               "line": 1711
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6718875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6719218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6719527Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6719785Z               "line": 1732
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6720027Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6720270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6720571Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6720832Z               "line": 2060
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6721077Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6721328Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6721569Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6721812Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6722060Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6722309Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6722590Z       "id": "REQ-ENDPOINT-PURGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6728360Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6728765Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6729108Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6729359Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6729605Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6729857Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6730102Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6730350Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6730602Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6730869Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6731122Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6731369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6731637Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6731893Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6732133Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6732377Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6732620Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6732869Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6733140Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6733387Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6733641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6733964Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6734222Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6734471Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6734716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6735003Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6735279Z               "line": 24385
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6735528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6735871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6736157Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6736416Z               "line": 24398
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6736663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6736904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6737193Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6737452Z               "line": 24578
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6737699Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6737942Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6738185Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6738433Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6738691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6739038Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6739283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6739569Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6739824Z               "line": 26911
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6740075Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6740333Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6740576Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6740823Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6741085Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6741343Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6741587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6741878Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6742136Z               "line": 26629
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6742381Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6742622Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6742866Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6743109Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6743347Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6743595Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6743876Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6745649Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6746017Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6746260Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6746516Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6746770Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6747023Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6747262Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6747536Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6747796Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6748054Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6748298Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6748560Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6748831Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6749160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6749465Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6749722Z               "line": 12442
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6749970Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6750219Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6750475Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6750734Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6751011Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6751306Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6751556Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6751818Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6752095Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6752362Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6752613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6752913Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6753168Z               "line": 26581
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6753411Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6753664Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6753912Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6754159Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6754407Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6754652Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6754938Z       "id": "REQ-ENDPOINT-STOP-RESOLVES",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6761638Z       "title": "`spt endpoint stop <id>` REFUSES an id that nothing on the node knows, instead of stamping success on a no-op — an unconditional-success verb is a lying instrument (find: liam via flynn's discriminating repro, mechanism corrected by flynn 2026-07-26 superseding the original shell-half-action framing; shells aren't endpoints and the verb correctly never tried to resolve one — it then answered incorrectly). TODAY (cli.rs `stop_endpoint_core`, read at mint): ready-marker removal is `.is_ok()`-best-effort, `teardown_hosted_session` topology-gates on a `controllable` flag a nonexistent perch cannot have and falls through, `unregister_address` is `let _`, `terminal_normalize` silently skips a recordless perch — so EVERY string returns `Stopped{removed:false}` → `STOPPED:<id> (no ready marker; address unregistered)` exit 0, and the 'address unregistered' clause prints whether or not any address existed to unregister. FIX SHAPE: resolve FIRST — an id with ZERO evidence on this node (no ready marker, no perch record, no registered address, no broker session row) is REFUSED with a non-zero exit and a line naming that nothing by that id exists here; ANY evidence → proceed EXACTLY as today (stop is the last rung of the teardown ladder and its wedge-breaking semantics on partially-dead state are load-bearing — the refusal must never make a wedged-but-evidenced endpoint harder to kill). STOPPED is claimed only when the verb acted on something that existed. Success-line honesty rides the same change: clauses name what actually happened ('address unregistered' only when an address was removed). Kin: KH 7.49 (a verb never stamps a state it did not cause — this is that hazard's resolve-half), REQ-ENDPOINT-TEARDOWN-AUTHORITY (the ladder whose semantics must survive unchanged).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6761948Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6762200Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6762449Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6762697Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6762950Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6763198Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6763468Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6763728Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6764076Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6764334Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6764611Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6764887Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6765139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6765440Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6765697Z               "line": 12242
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6765945Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6766195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6766498Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6766760Z               "line": 12260
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6767012Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6767260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6767546Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6767818Z               "line": 12326
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6768062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6768314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6768599Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6768873Z               "line": 12349
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6769216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6769460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6769761Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6770023Z               "line": 12370
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6770270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6770518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6770805Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6771057Z               "line": 12396
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6771306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6771552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6771840Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6772107Z               "line": 12424
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6772356Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6772604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6772890Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6773152Z               "line": 24469
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6773404Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6773656Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6773911Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6774171Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6774446Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6774818Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6775070Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6775312Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6775571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6775824Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6776067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6776349Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6776605Z               "line": 25587
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6776847Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6777091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6777382Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6777635Z               "line": 25616
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6777877Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6778121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6778402Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6778661Z               "line": 25662
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6778898Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6779230Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6779471Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6779714Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6779958Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6780201Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6780492Z       "id": "REQ-ENDPOINT-TEARDOWN-AUTHORITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6795115Z       "title": "TEARDOWN-AUTHORITY W1 (ADR-0045; two hertz field RCAs 2026-07-19, doyle code-verified + ruled): ONE shared topology-aware broker-teardown primitive behind BOTH `endpoint shutdown` and `endpoint stop`. Today both verbs stamp state they never cause: cmd_shutdown (cli.rs:3979) = remove ready marker + cmd_rest(Suspend) — the Suspend edge (resting.rs daemon_rest_event_with_liveness -> apply_event -> cascade_shells_on_edge -> advertise) fires echo + shell cascade + advertise and NEVER touches a session, even though the verb already probed broker-session truth (cli.rs:3797-3804 has_live_session_honest) to force from=alive; cmd_stop (cli.rs:7071) = marker + unregister_address + terminal_normalize + advertise, whose own comment calls it a DEFINITIVE death observation it fabricates. Field: broker retains the whole subtree (adapter -> node -> harness -> nested resumed harness + MCP children; the surviving `spt api listen` is a DESCENDANT, so a direct-child kill misses it). PRIMITIVE (ordered, ADR-0045 decisions 1/6/7/9): resolve broker SessionInfo -> dedicated sid/endpoint-keyed broker kill claiming NO controller (NOT Brain::attach()+kill_session(), brain.rs:622 require_session() = controller theft under the ADR-0044 lease ladder; idempotent — unknown session is benign success) -> reap the whole DESCENDANT subtree (reuse spt_store::proc.rs kill-root+process_descendants, do not mint a second tree-walk) -> await broker-row removal under a bound -> ONLY THEN stamp + unregister + advertise. Stamp-after-reap is load-bearing: field-observed post-stop info.json read status=offline BUT rest_state=active + controlled=true because the SURVIVING host RE-BOUND after the CAS-less terminal_normalize(path, None) — no hardening of the write fixes this, only the reap makes the stamp true (shutdown passes Some(sid) for the concurrent-newer-bind CAS; stop's unconditional posture stays, it is the operator's own definitive command). TOPOLOGY SPLIT (decision 2): gated controllable==Some(true) (ADR-0041 hosting authority — the SAME predicate cmd_bind's online-earn and the livehost reconcile use); harness-hosted/external keeps marker+address+status-only behavior (CONTEXT.md:39 — core spawned nothing, holds nothing) and the misleading cmd_shutdown doc comment claiming marker-removal stops the listener is corrected to name its topology. VERB DIFFERENCES ARE ONLY ceremony + resulting intent (decision 3): shutdown = echo commune + shell cascade FIRST then teardown, result rest_state=suspended (wrap the EXISTING rest edge — apply_event already echoes before the flip per KH 3.3; do NOT reimplement the ordering); stop = NO ceremony, result terminal_normalize. TIMEOUT (decision 7): do NOT stamp cold over a survivor — exit non-zero, and because stop is the last rung with no in-band escalation behind it its failure line names the surviving ROOT PID + the scoped-kill remedy. reconcile_hosted_liveness stays the partial-failure catch-up net, not duplicated. Precedent: REQ-HAZARD-DAEMON-STOP-REAP already ruled this reap principle at DAEMON scope; this is the ENDPOINT scope it was never extended to. Gate: doc — ADR-0045 + CONTEXT.md amendments (190 record-vs-process axis, 640 verb semantics, 647 stop echo exception) + KNOWN-HAZARDS entry; impl — the shared primitive + both verb call sites + topology gate + corrected comments; unit — topology routing table (controllable=true -> teardown, harness-hosted -> marker/address/status only), verb-difference table (ceremony + resulting intent), timeout posture (no cold stamp on survivor, failure line carries root pid), REWRITE shutdown_soft_stops_and_suspends (it asserts marker+intent only = it asserts the bug); int — real broker-hosted endpoint: after each verb, no broker session row + process subtree gone INCLUDING the descendant `spt api listen` + perch ready=false/alive=false/address unregistered/unbound=false + effective and advertised state correct + (shutdown) echo/cascade ran BEFORE the kill + wake/resume works from the recorded sid under the recorded adapter.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6795527Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6795775Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6796024Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6796267Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6796510Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6796752Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6797001Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6797245Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6797512Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6797764Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6798006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6798301Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6798559Z               "line": 827
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6798803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6799127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6799475Z               "path": "docs/adr/0045-endpoint-teardown-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6799846Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6800096Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6800341Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6800587Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6800835Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6801093Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6801346Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6801592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6801898Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6802150Z               "line": 964
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6802398Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6802639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6802944Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6803203Z               "line": 6043
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6803449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6803693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6803993Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6804251Z               "line": 9713
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6804503Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6804746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6805056Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6805313Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6805557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6805803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6806092Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6806349Z               "line": 7825
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6806589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6806841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6807123Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6807389Z               "line": 7858
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6807641Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6807884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6808171Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6808435Z               "line": 12227
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6808680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6808923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6809285Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6809547Z               "line": 12382
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6809791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6810130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6810420Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6810675Z               "line": 12407
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6810920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6811161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6811447Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6811700Z               "line": 24438
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6811953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6812201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6812486Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6812744Z               "line": 1040
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6812987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6813231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6813528Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6813782Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6814028Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6814276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6814563Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6814820Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6815063Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6815306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6815597Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6815850Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6816103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6816344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6816628Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6816886Z               "line": 201
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6817129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6817373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6817659Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6817911Z               "line": 256
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6818155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6818402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6818694Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6819126Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6819370Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6819613Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6819860Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6820107Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6820366Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6820623Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6820872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6821235Z               "path": "crates/spt/tests/endpoint_teardown_authority_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6821489Z               "line": 533
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6821739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6821978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6822326Z               "path": "crates/spt/tests/endpoint_teardown_authority_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6822585Z               "line": 789
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6822828Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6823071Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6823318Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6823566Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6823829Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6824083Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6824338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6824621Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6824893Z               "line": 26658
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6825137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6825375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6825662Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6825918Z               "line": 32706
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6826166Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6826405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6826687Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6826948Z               "line": 32748
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6827193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6827436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6827714Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6827976Z               "line": 32785
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6828215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6828461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6828756Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6829095Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6829338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6829686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6829981Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6830239Z               "line": 314
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6830483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6830725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6831021Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6831274Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6831517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6831761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6832045Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6832304Z               "line": 402
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6832543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6832796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6833087Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6833350Z               "line": 439
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6833587Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6833835Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6834078Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6834324Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6834571Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6834817Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6835101Z       "id": "REQ-ENDPOINT-UNBOUND-ATTACH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6838507Z       "title": "An spt-hosted endpoint is ATTACHABLE between spawn and bind: gate the attach on the broker SESSION being attachable (session+PTY+OutputLog exist at spawn, before bind), not on perch STATUS_ONLINE (bind). cmd_endpoint_run + `spt rc <id>` attach to a live broker session regardless of perch status (headless bringups too; lets an operator clear a bind-gating prompt) -- replaces await_endpoint_online; preserves REQ-HAZARD-RC-ATTACH-ONLINE-RACE's 'no attach before a session' intent at the earlier session-exists point; source = the broker sessions map (ADR-0025 W3a); local-only. New on-disk status STATUS_UNBOUND (spawn->unbound, bind->online, death->offline); lifecycle reuses the existing exit-waiter/reconcile (session death->offline); unbound is attachable but NOT message-addressable (messaging stays online/bound-gated). EpDisplay gains Unbound = HOLLOW (+ hollow-controlled variant) -- amber=HarnessOnly is taken + means not-controllable (the opposite of attachable). (ADR-0027)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6838883Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6839212Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6839461Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6839709Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6839956Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6840199Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6840451Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6840699Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6840956Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6841209Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6841452Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6841720Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6841982Z               "line": 857
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6842225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6842472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6842878Z               "path": "docs/adr/0027-unbound-endpoint-state-and-attach-on-session.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6843136Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6843390Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6843629Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6843872Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6844123Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6844390Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6844648Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6844898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6845217Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6845491Z               "line": 891
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6845736Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6845985Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6846299Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6846562Z               "line": 970
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6846815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6847058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6847378Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6847644Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6847906Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6848157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6848571Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6848838Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6849172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6849425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6849734Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6849997Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6850249Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6850497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6850791Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6851055Z               "line": 4368
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6851312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6851565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6851860Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6852121Z               "line": 5180
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6852365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6852623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6852905Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6853174Z               "line": 5201
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6853424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6853687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6853973Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6854231Z               "line": 7114
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6854494Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6854746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6855056Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6855313Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6855561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6855801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6856104Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6856363Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6856611Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6856855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6857132Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6857389Z               "line": 997
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6857628Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6857972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6858258Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6858518Z               "line": 1023
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6858759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6859083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6859360Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6859618Z               "line": 1937
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6859860Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6860103Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6860342Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6860586Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6860853Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6861105Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6861342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6861652Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6861905Z               "line": 635
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6862149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6862386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6862720Z               "path": "crates/spt/tests/multi_subnet_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6862982Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6863230Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6863479Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6863721Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6863975Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6864238Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6864510Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6864753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6865087Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6865350Z               "line": 1947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6865601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6865845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6866169Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6866435Z               "line": 351
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6866683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6866933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6867248Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6867509Z               "line": 389
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6867762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6868025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6868316Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6868692Z               "line": 27699
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6869035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6869282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6869572Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6869834Z               "line": 31310
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6870081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6870325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6870635Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6870897Z               "line": 604
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6871141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6871394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6871694Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6871959Z               "line": 2155
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6872203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6872451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6872752Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6873023Z               "line": 1025
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6873275Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6873537Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6873790Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6874030Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6874276Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6874521Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6874840Z       "id": "REQ-ENGINEROOM-ADMIN-BRINGUP-EMPOWERS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6882796Z       "title": "PASSING THE ENGINE-ROOM BRING-UP GATE WITH THE ADMIN TOTP EMPOWERS THE SEAT FOR ITS HOME SUBNET AT ATTACH (ratified 2026-08-01 bag grill, releases#102; CONTEXT.md empower entry amended). NO NEW CAPABILITY -- it collapses a double-entry of ONE credential: the human who just proved the admin key at bring-up had to prove the same key again through `empower` before touching a mode, which is friction that teaches nothing and protects nothing. GATE PARITY: attach OR take is the SAME gate and yields the same grant (a take already re-proves the gate, which is why it is allowed at all). LIFETIME IS IDENTICAL TO AN EXPLICIT EMPOWER -- until session end or controller detach, detach drops it, re-attach re-proves -- so this introduces no lifetime seam of its own and nothing about empowerment revocation changes. THE GRANT IS LOUD ON BOTH SURFACES A READER ACTUALLY READS: the attach output AND the session-start briefing each state that the seat is empowered for its home subnet via admin bring-up. A silent grant is the refused shape -- an empowered seat that never says so is indistinguishable from an unempowered one until a mode change succeeds unexpectedly. TWO NEGATIVES ARE PART OF THE REQUIREMENT AND MUST BE ASSERTED RATHER THAN IMPLIED BY THE POSITIVE, because both are satisfiable by a build that passes the positive row: a MEMBER-TOTP bring-up NEVER auto-empowers (the discriminant is WHICH seed verified, not that the gate passed -- a grant keyed on the gate would empower every member bring-up), and any subnet OTHER than the home subnet still requires an explicit `empower` (a build granting the seat authority everywhere passes an admin-empowers-home assertion unchanged). TERMINOLOGY, ruled with the feature: the engine-room's subnet is its HOME subnet -- 'anchor subnet' is retired and must not appear in code, docs or help in that sense. Gate: doc -- the docs-site engine-room page states the auto-grant, its scope and its lifetime; impl -- the credential-discriminating grant at the bring-up seam (attach and take) plus both loud surfaces; unit -- an admin bring-up empowers the home subnet, a member bring-up empowers nothing, no bring-up empowers a non-home subnet, both loud statements are present in the surfaces they ride, and the grant is recorded through the same seam an explicit empower uses so its lifetime is the same by construction rather than by a parallel implementation.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6883182Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6883426Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6883678Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6883922Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6884165Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6884431Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6884679Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6885053Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6885315Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6885559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6885916Z               "path": "docs-site/src/networking/engine-room-setup.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6886174Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6886426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6886669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6887017Z               "path": "docs-site/src/networking/engine-room-setup.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6887279Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6887523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6887774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6888111Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6888373Z               "line": 339
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6888625Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6888868Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6889202Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6889469Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6889732Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6889986Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6890264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6890577Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6890825Z               "line": 705
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6891074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6891340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6891645Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6891904Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6892155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6892399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6892713Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6892971Z               "line": 1760
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6893233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6893475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6893790Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6894051Z               "line": 1795
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6894405Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6894653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6895015Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6895291Z               "line": 2089
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6895538Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6895785Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6896100Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6896367Z               "line": 2324
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6896614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6896862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6897168Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6897430Z               "line": 2401
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6897684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6897931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6898243Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6898513Z               "line": 2963
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6898761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6899099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6899405Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6899681Z               "line": 4338
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6899935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6900188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6900493Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6900758Z               "line": 4368
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6901004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6901252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6901553Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6901815Z               "line": 670
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6902066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6902315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6902625Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6902887Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6903136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6903384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6903701Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6903963Z               "line": 494
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6904221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6904484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6904898Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6905160Z               "line": 591
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6905404Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6905658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6905956Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6906211Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6906459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6906702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6907003Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6907261Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6907508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6907751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6908066Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6908328Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6908568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6908813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6909197Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6909464Z               "line": 3173
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6909702Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6909951Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6910194Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6910438Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6910699Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6910952Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6911200Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6911452Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6911716Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6911968Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6912212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6912517Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6912775Z               "line": 13055
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6913019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6913256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6913562Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6913823Z               "line": 13094
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6914067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6914410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6914719Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6914982Z               "line": 13176
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6915224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6915472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6915773Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6916035Z               "line": 13222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6916275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6916516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6916818Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6917080Z               "line": 13402
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6917324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6917568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6917878Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6918131Z               "line": 14661
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6918373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6918616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6918916Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6919268Z               "line": 644
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6919520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6919767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6920068Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6920329Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6920577Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6920825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6921125Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6921380Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6921618Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6921864Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6922105Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6922339Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6922582Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6922820Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6923115Z       "id": "REQ-ENSURE-DAEMON-STOP-INHIBIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6929147Z       "title": "An operator stop outranks every implicit daemon ensure. (ADR-0047 decision 2, AMENDING REQ-DAEMON-3's anchor; hertz v0.39.4 field bug 2, RCA accepted 2026-07-22.) TODAY: every `spt api` invocation runs unconditional ensure_daemon() (api/mod.rs run()), so on a box with live adapter sessions a `daemon stop --force` loses the race to hook-driven api calls — respawn convoy (5-10 ephemeral spawner windows), several stops to stay down; the rc-side twins were fixed earlier, the api anchor stayed armed. FIX: `daemon stop` records a durable machine-scoped STOP INHIBIT before teardown begins; ensure_daemon()/ensure_running() consult it and DECLINE with one honest line naming the remedy ('daemon stopped by operator — spt daemon start to resume'); cleared by intent verbs ONLY (explicit `daemon start`; update paths that restart by design) — NO TTL (rejected: a timeout is the surprise respawn again, later); implicit autostart additionally takes a machine-wide lock around probe-and-spawn so N concurrent callers never launch N daemons. Gate: doc — the stop/start contract on the daemon CLI docs (stop now sticks; the refusal line + remedy named); impl — inhibit mint in cmd_stop + consult in both implicit anchors + clear in daemon start/update-finish + the spawn serialization lock; unit — inhibit present -> ensure declines with the message, absent -> spawns, intent verbs clear, non-intent paths never clear; int — the convoy rig: stop under a concurrent api-call storm -> daemon stays down + zero respawns + refusal printed, then explicit start clears and exactly ONE daemon comes up under the same storm (RED-first against today's anchor).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6929453Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6929702Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6929953Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6930198Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6930442Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6930690Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6930938Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6931185Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6931447Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6931705Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6931949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6932372Z               "path": "docs-site/src/concepts/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6932628Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6932884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6936268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6936660Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6936921Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6937164Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6937409Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6937655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6937905Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6938172Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6938426Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6938674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6939088Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6939350Z               "line": 652
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6939599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6939846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6940156Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6940427Z               "line": 683
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6940673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6940911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6941231Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6941488Z               "line": 690
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6941735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6941979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6942279Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6942523Z               "line": 780
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6942786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6943021Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6943348Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6943606Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6943850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6944093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6944408Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6944660Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6944908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6945160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6945475Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6945999Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6946251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6946490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6946800Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6947096Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6947339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6947579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6947893Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6948153Z               "line": 146
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6948389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6948638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6948924Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6949271Z               "line": 8113
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6949534Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6949772Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6950015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6950263Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6950522Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6950774Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6951020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6951346Z               "path": "crates/spt/tests/daemon_stop_convoy_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6951613Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6951858Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6952096Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6952339Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6952581Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6952839Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6953093Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6953336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6953634Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6953894Z               "line": 3047
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6954137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6954377Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6954681Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6954940Z               "line": 3080
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6955283Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6955525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6955835Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6956097Z               "line": 3089
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6956345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6956583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6956898Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6957160Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6957402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6957646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6957956Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6958214Z               "line": 180
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6958468Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6958713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6959111Z               "path": "crates/spt-store/src/daemon_inhibit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6959364Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6959612Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6959850Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6960109Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6960346Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6960589Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6960827Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6961096Z       "id": "REQ-EP-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6961420Z       "title": "Day-one endpoint types; open type system",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6961680Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6961935Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6962183Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6962423Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6962671Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6962918Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6963180Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6963433Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6963676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6963925Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6964185Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6964435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6964683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6964989Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6965241Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6965500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6965742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6966148Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6966410Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6966648Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6966891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6967133Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6967376Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6967643Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6967906Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6968149Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6968393Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6968655Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6968912Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6969240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6969557Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6969810Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6970054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6970301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6970616Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6970868Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6971116Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6971359Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6971604Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6971846Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6972088Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6972330Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6972587Z       "id": "REQ-EP-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6972944Z       "title": "Agent endpoints vs Shells distinction in the type model",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6973212Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6973454Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6973706Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6973945Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6974194Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6974433Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6974692Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6974948Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6975187Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6975430Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6975686Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6976045Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6976283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6976597Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6976855Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6977103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6977348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6977645Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6977902Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6978146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6978390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6978690Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6979029Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6979273Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6979520Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6979761Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6980008Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6980275Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6980527Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6980769Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6981013Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6981276Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6981534Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6981776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6982082Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6982339Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6982582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6982824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6983137Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6983394Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6983637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6983877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6984176Z               "path": "crates/spt-proto/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6984434Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6984673Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6984915Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6985153Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6985391Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6985627Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6985879Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6986132Z       "id": "REQ-EP-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6986624Z       "title": "Messaging payloads carry typed operation commands + file blobs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6986890Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6987138Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6987381Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6987621Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6987869Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6988115Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6988377Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6988630Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6988874Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6989203Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6989460Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6989717Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6989960Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6990265Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6990517Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6990758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6991000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6991306Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6991564Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6991807Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6992051Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6992293Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6992536Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6992794Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6993053Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6993298Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6993543Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6993802Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6994050Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6994293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6994593Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6994903Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6995146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6995389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6995690Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6995941Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6996288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6996526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6996841Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6997097Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6997346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6997589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6997894Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6998153Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6998395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6998642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6999032Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6999295Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6999543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.6999786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7000087Z               "path": "crates/spt-proto/src/payload.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7000349Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7000592Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7000830Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7001077Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7001318Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7001565Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7001800Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7002067Z       "id": "REQ-EP-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7002401Z       "title": "PresenceChannel broker endpoint (seam day-one)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7002663Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7002911Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7003154Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7003401Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7003646Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7003897Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7004156Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7004413Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7004648Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7004896Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7005153Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7005405Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7005648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7005982Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7006241Z               "line": 1327
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7006497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7006747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7007144Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7007405Z               "line": 2274
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7007648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7007887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7008187Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7008441Z               "line": 9659
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7008679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7008926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7009316Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7009568Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7009821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7010060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7010356Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7010629Z               "line": 1657
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7010875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7011123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7011465Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7011730Z               "line": 1859
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7011988Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7012231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7012542Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7012808Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7013056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7013304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7013619Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7013877Z               "line": 1046
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7014125Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7014375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7014683Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7014946Z               "line": 2233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7015193Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7015447Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7015689Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7015941Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7016218Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7016609Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7016857Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7017113Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7017384Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7017641Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7017888Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7018189Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7018452Z               "line": 2027
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7018700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7019047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7019367Z               "path": "crates/spt-daemon/tests/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7019640Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7019915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7020167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7020481Z               "path": "crates/spt-daemon/tests/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7020744Z               "line": 147
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7020997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7021240Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7021503Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7021774Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7022035Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7022310Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7022587Z       "id": "REQ-EP-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7023582Z       "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",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7023859Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7024108Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7024366Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7024656Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7024912Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7025172Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7025429Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7025707Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7025974Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7026230Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7026483Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7026745Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7027009Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7027266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7027701Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7027972Z               "line": 488
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7028225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7028472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7028787Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7029125Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7029383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7029645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7029964Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7030218Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7030475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7030731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7031046Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7031308Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7031552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7031805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7032120Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7032388Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7032638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7032884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7033199Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7033466Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7033752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7034005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7034324Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7034586Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7034839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7035096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7035401Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7035662Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7035908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7036156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7036461Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7036819Z               "line": 280
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7037062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7037300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7037620Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7037874Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7038120Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7038355Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7038660Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7038919Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7039257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7039514Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7039820Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7040078Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7040325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7040568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7040872Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7041140Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7041378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7041635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7041950Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7042212Z               "line": 405
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7042465Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7042704Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7043013Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7043270Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7043524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7043768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7044059Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7044322Z               "line": 22738
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7044570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7044822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7045107Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7045366Z               "line": 22894
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7045608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7045853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7046137Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7046401Z               "line": 23090
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7046649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7046893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7047283Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7047541Z               "line": 23721
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7047790Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7048033Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7048275Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7048518Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7048779Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7049117Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7049360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7049670Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7049921Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7050165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7050403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7050700Z               "path": "crates/spt/tests/shell_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7050948Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7051191Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7051442Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7051681Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7051929Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7052196Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7052448Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7052691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7053011Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7053268Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7053513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7053762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7054065Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7054323Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7054567Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7054815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7055116Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7055377Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7055620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7055873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7056182Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7056535Z               "line": 569
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7056786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7057033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7057339Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7057595Z               "line": 621
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7057839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7058082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7058388Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7058645Z               "line": 1792
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7058884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7059210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7059494Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7059757Z               "line": 32284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7060000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7060249Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7060526Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7060782Z               "line": 32447
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7061049Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7061301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7061579Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7061842Z               "line": 33164
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7062082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7062321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7062603Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7062860Z               "line": 33280
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7063104Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7063342Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7063585Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7063828Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7064063Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7064308Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7064559Z       "id": "REQ-EP-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7066630Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7066920Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7067166Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7067417Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7067661Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7067904Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7068155Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7068403Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7068666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7068914Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7069249Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7069525Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7069790Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7070035Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7070284Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7070532Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7070775Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7071037Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7071289Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7071547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7071848Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7072125Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7072369Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7072614Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7072862Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7073115Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7073383Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7073640Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7073892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7074207Z               "path": "crates/spt/tests/gateway_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7074464Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7074703Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7074945Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7075190Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7075439Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7075701Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7075954Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7076202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7076516Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7076884Z               "line": 1251
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7077137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7077384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7077683Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7077948Z               "line": 2465
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7078192Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7078434Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7078682Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7078921Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7079245Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7079479Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7079738Z       "id": "REQ-EP-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7081926Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7082207Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7082455Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7082699Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7082943Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7083183Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7083432Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7083680Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7083943Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7084200Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7084442Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7084719Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7084976Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7085226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7085472Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7085712Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7085965Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7086219Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7086486Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7086728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7087153Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7087416Z               "line": 556
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7087662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7087910Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7088206Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7088466Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7088709Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7089038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7089357Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7089615Z               "line": 81
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7089858Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7090110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7090425Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7090678Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7090934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7091179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7091465Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7091729Z               "line": 5436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7091986Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7092229Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7092477Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7092725Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7092996Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7093250Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7093494Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7093739Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7093996Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7094250Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7094498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7094803Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7095104Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7095346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7095589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7095884Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7096140Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7096387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7096764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7097064Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7097342Z               "line": 372
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7097583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7097827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7098113Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7098371Z               "line": 28769
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7098620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7098865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7099235Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7099496Z               "line": 28873
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7099736Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7099984Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7100223Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7100465Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7100708Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7100952Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7101191Z       "id": "REQ-EP-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7104767Z       "title": "AlwaysOnEndpoint: a resident, addressable, mindless endpoint whose adapter binary the daemon supervises continuously — register-triggered by an adapter-option's `[always-on]` manifest section, one supervised binary per `<adapter>[:profile]`, running independent of agent liveness. It self-manages its `#`-addressed channel endpoints via the existing `api bind` (one connection fronts many). The SECOND class of spt-core-boot-launched third-party binary (after the shell wake-watcher); supervision reuses the wake-watcher scaffolding (backoff / give-up latch / one-per-instance lock / orphan-kill / brain-side reconcile) MINUS the offline-only flip — always online, never resting (no dormant/suspended states). Two-way: agents message it; it may call `endpoint wake <id>`, target-side authorized (REQ-INST-3/6 wake resolution + access whitelist + shell_wake_spawn_anywhere — no caller-ownership gate). First consumer downstream: spt-discord.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7105054Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7105305Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7105553Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7105825Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7106082Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7106439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7106942Z               "path": "docs/adr/0023-always-on-endpoints-resident-supervised-binary-sigil-addressing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7107204Z               "line": 5
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7107452Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7107706Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7107963Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7108216Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7108492Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7108749Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7109079Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7109340Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7109624Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7109886Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7110139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7110400Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7110677Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7110949Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7111202Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7111446Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7111694Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7111949Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7112209Z       "id": "REQ-EP-9",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7114351Z       "title": "`#` always-on address sigil: a reserved LEADING sigil marking an AlwaysOnEndpoint, extending the REQ-INST-10 grammar to `[subnet:]#id[@node]`. Mandatory + bijective — `#name` ⟺ always-on endpoint, bare `name` ⟺ agent endpoint — so the router resolves endpoint class from the address alone, before any registry lookup. Sits ABOVE REQ-HAZARD-ID-CHARSET: the address parser strips the single leading `#` before id validation, so the bare/stored id stays charset-clean and a mid-id `#` remains rejected (the charset contract is unchanged).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7114623Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7114878Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7115135Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7115399Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7115660Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7116022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7116534Z               "path": "docs/adr/0023-always-on-endpoints-resident-supervised-binary-sigil-addressing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7116791Z               "line": 5
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7117042Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7117293Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7117541Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7117798Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7118064Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7118327Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7118590Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7118842Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7119204Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7123474Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7123752Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7124014Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7124281Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7124549Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7124796Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7125049Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7125310Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7125554Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7125844Z       "id": "REQ-ER-BRIEFING-PRESENTED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7140372Z       "title": "The engine-room session briefing is PRESENTED, not merely spooled: it reaches the session's input before its first actionable turn (releases#164, doyle's five ruled clauses; root restated from measurement and ACCEPTED 2026-08-19). REQ-ER-SESSION-BRIEFING is satisfiable by an INSERT that nobody reads, which is the false confidence #164 names — this requirement is the consuming half, and the two are only meaningful together. THE DEFECT IS TIMING, NOT ELIGIBILITY, and that distinction was measured rather than argued: at the seat the ER perch is already a fully eligible spt-hosted inject target (controllable=Some(true), online, no relay — all three legs of is_spt_hosted_no_relay true), the row is spooled non-deferred and claimable, and the EXISTING idle-inject leg takes and delivers it correctly the moment the session declares idle (audited taken_leg=idle-inject, pending 1->0). Nothing is unreachable and no new taker is needed. What is wrong is WHEN: the row's only taker fires at the session's FIRST IDLE, which by construction is AFTER the first actionable turn, while clause 5's bar is BEFORE it. A window-gated arm cannot meet that bar. TWO EARLIER ROOTS ARE FALSIFIED and must not be rebuilt on: the `.idle` sentinel HAS a production writer (the `spt api state idle` seam), and the engine room is NOT adapter-less (its bring-up refuses outright unless its bound adapter is a registered HARNESS adapter). The remedy rides the NATIVE arm, which this codebase already defines as exactly this case — the window owns WHEN, native owns THROUGH WHAT — and which was proven to carry into a never-yet-idle ACTIVE ER session on the EXISTING surface before a line of the fix was written. Riding native satisfies every ruled clause by REUSE rather than new machinery: the same delivery path and the same single renderer (clause 2 forbids a second renderer), the same BEGIN IMMEDIATE claim kernel and taken_* stamping so a poll race cannot double-present (clause 3 — exactly-one-taker by claim, not by timing), and miss => release => row retained pending plus a loud post-seat notice, with the attach NEVER refused (clause 4, extending the denial-of-governance doctrine already at the spool-failure arm). Clause 1 is untouched: #142 post-seat composition is not relitigated. Gate: impl — the post-seat native drive of the briefing through the existing spt-hosted inject leg, reusing the audited claim and the single renderer, with the loud-notice-and-retain arm on presentation failure and no refusal path added to attach; int — a real mock ER session in which the briefing reaches session input BEFORE the first actionable turn, the spool audit shows exactly one taker, and the never-seated arm shows zero, driven end to end through the real verbs; AND the MISS half of clause 4 witnessed on the same real verbs, because a fence that only ever sees the happy path is not the fence that was ruled — a seat whose harness never binds must make the failure LOUD (and only after the drive's bounded wait is honestly spent, since an early give-up turns a merely slow bind into a lost briefing: the same defect, rarer and harder to see), must leave the row RETAINED and pending with its taker columns UNSTAMPED, and must NOT refuse the attach; and then the next seat-taking attach WITHIN THE SAME SESSION must RE-OFFER that retained row and deliver IT — asserted on the row's own id rather than on the arrival of any briefing. At a SESSION boundary the retained row is instead SUPERSEDED under REQ-ER-BRIEFING-SESSION-SCOPED: swept loudly at the new session's open, with the new session's own briefing delivered at that same attach — the chain proven cross-session is miss => release => retained => superseded-with-delivery, never a silent loss. The eligible-but-inject-FAILS shape is a DECLARED residual (doyle's ruling 2026-08-19): its only unique witness is the second loud branch, the claim-then-release it would exercise is the same shared drain path the arms above already walk, and it earns a cell if that branch ever fires unwitnessed in the field.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7140812Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7141058Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7141308Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7141552Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7141809Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7142056Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7142328Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7142596Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7142834Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7143088Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7143349Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7143605Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7143852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7144167Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7144429Z               "line": 2185
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7144676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7144923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7145229Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7145496Z               "line": 2485
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7145740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7146087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7146402Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7146659Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7146906Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7147154Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7147399Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7147641Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7147908Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7148161Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7148404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7148746Z               "path": "crates/spt/tests/er_briefing_presented_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7149101Z               "line": 394
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7149344Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7149593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7149841Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7150088Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7150364Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7150622Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7150870Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7151115Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7151367Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7151604Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7151911Z       "id": "REQ-ER-BRIEFING-SESSION-SCOPED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7162377Z       "title": "An engine-room briefing is SESSION-SCOPED: it states one session's weather, so a briefing that outlives the session it was minted for is stale by construction and must never be delivered (releases#208, doyle ruling 2026-08-21). The scope is enforced at SESSION OPEN, not at drain — the same predicate brief-once (REQ-ER-SESSION-BRIEFING, releases#177) already computes when it decides 'new session, enqueue a briefing' ALSO drops the undelivered briefing rows earlier sessions left behind, ordered immediately before this session's own spool so it cannot take the row it is about to mint. One site, one predicate; the drain stays dumb and learns nothing about sessions. SCOPE: UNDELIVERED rows of the reserved briefing author only — a DELIVERED row is history, cannot participate in a burst, and deleting it would be a retention change nobody filed; another author's pending mail is never touched. The count is reported, never a silent deletion, and a sweep that fails is LOUD but never blocking (stale rows reachable is a condition to state, not a reason to deny a proven human their controls). TWO MECHANISMS ARE RULED OUT WITH REASONS. (1) The `ephemeral` persistence axis: its deletion set IS the retention set of the releases#164 retained-row rescue — evaporation fires on the rows the drain RELEASED, i.e. the briefing whose presentation MISSED, which is the single case that rescue was built for; the native drive arm never evaporates at all, so the two arms would disagree about whether a briefing survives its own miss (measured at c62904e7: claim, deliver, release, then evaporate, idle arm only). (2) A time TTL: DEFAULT_TTL_SECONDS stays 0 — a time bound would evaporate a live session's own undelivered briefing on a slow attach AND still leak a stale one on a fast restart, wrong in both directions, because the honest scope is a SESSION and not a duration. The releases#164 intra-session rescue is UNCHANGED: the sweep fires only when the session is NEW, never between seats of one session, and presentation stays unconditional — this changes RETENTION, not presentation. Field measurement that opened it: six briefings minted across sixteen days on one node, delivered in a single burst oldest-first, three of them asserting an EMPTY ruleset in vocabulary the tree had already retired. Gate: doc — the CONTEXT.md engine-room briefing-retention sentence; impl — the sweep seam and its call at the session-open predicate; unit — the seam drops one author's undelivered rows and leaves that author's DELIVERED rows and every other author's pending rows intact, and an empty sweep is a zero rather than a failure; int — rows minted under session N then session N+1 opens: exactly ONE briefing delivers and it is the NEW one (the positive control is required — a fix that deletes everything satisfies the negative alone), and a seat that fails to present in ONE session still has its row re-offered to the next seat of that SAME session.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7172602Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7173194Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7173708Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7174228Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7174734Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7175253Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7175751Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7176261Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7176786Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7177354Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7177886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7178425Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7179088Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7179632Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7180136Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7180635Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7181134Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7181677Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7182226Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7182747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7183326Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7183958Z               "line": 2286
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7184493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7184998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7185566Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7186177Z               "line": 2458
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7186712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7187217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7187765Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7188370Z               "line": 978
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7188899Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7189491Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7189986Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7190473Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7190986Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7191538Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7192171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7192782Z               "path": "crates/spt/tests/er_briefing_session_scoped_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7193439Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7193963Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7194456Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7195000Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7195501Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7196020Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7196573Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7197089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7197643Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7198258Z               "line": 13589
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7198794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7199382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7199945Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7200556Z               "line": 13841
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7201085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7201589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7202140Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7202756Z               "line": 1094
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7203290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7203784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7204333Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7204946Z               "line": 1140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7205479Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7205966Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7206453Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7206956Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7207441Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7207921Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7208451Z       "id": "REQ-ER-BRIEFING-SURFACE-VOCAB",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7216059Z       "title": "The engine room is made aware of the surface vocabulary in the same words the CLI teaches it: the surface section is composed FROM THE SAME TABLE AND THE SAME COMPOSER the CLI help uses, WHEREVER THE ENGINE ROOM RECEIVES IT, rather than restating the vocabulary in prose. AMENDED BY REPLACEMENT in the KEYSTONE #182 W3 lane (doyle ruling on releases#179, 2026-08-19): the surface section moved from the bring-up briefing to the engine room's durable in-core role (REQ-ER-ROLE-STATIC-IMMUTABLE), so this requirement names the PROPERTY rather than one carrier — single-source is preserved across the carrier move, and role, briefing and CLI help remain unable to diverge. Before this section existed the engine room saw surfaces only as the SURFACE column of the ruleset table — a rendering of what rules already say, which tells an engine room what is configured but never what the words mean or what granting one costs. The single-source property IS the requirement: an engine room taught at seat time and an operator reading --help must be unable to receive different vocabularies, and a surface added to the table must reach BOTH renderings with no second edit — which is why the composer is table-PARAMETERIZED, and why a hardcoded surface list, in the role or anywhere else, is a defect this requirement refuses (the carrier of the role is a function and not a const for exactly this reason). The engine room must also not be sent to a verb that no longer exists: a section that teaches the vocabulary while prescribing a dead command teaches half a lie. Gate: doc — the CONTEXT.md engine-room entry naming the surface section as table-composed wherever it is served; impl — the role composer and the briefing both calling the shared composer, never a literal surface list; unit — a fixture table carrying an INVENTED row reaches the engine room exactly as it reaches the help, the section text is identical to the CLI's for the same table, and no prescribed subcommand is one the CLI does not parse.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7223040Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7223565Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7224066Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7224562Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7225054Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7225548Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7226056Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7226570Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7227239Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7227767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7228295Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7228861Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7229471Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7229962Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7230445Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7230939Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7231449Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7231992Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7232512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7233066Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7233677Z               "line": 466
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7234210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7234707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7235261Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7235867Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7236386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7236888Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7237450Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7238075Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7238589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7239183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7239731Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7240326Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7240841Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7241329Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7241823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7242315Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7242834Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7243373Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7243891Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7244380Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7244891Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7245434Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7245944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7246489Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7247095Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7247618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7248130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7248659Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7249438Z               "line": 36893
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7249966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7250462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7250997Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7251589Z               "line": 36934
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7252115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7252603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7253141Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7253727Z               "line": 37136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7254256Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7254744Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7255241Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7255737Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7256228Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7256710Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7257266Z       "id": "REQ-ER-BRINGUP-ABSENT-CODE-UNCOUNTED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7266564Z       "title": "An engine-room attach that presents NO bring-up code is refused WITHOUT spending a unit of the human's attempt budget (releases#197; ADR-0052 section 2a, second uncounted class). The ledger bounds GUESSES at a human-held TOTP, and an absent code is not a guess: it carries no candidate, can never admit, and is the truthful answer from every attach path on this box that has no human at a keyboard to read a code off. Counting it handed any local process the exact ratchet REQ-ER-BRINGUP-ATTEMPT-BOUND already forbids for in-backoff attempts — N codeless attaches shut the gate a human needs to take the controls back — which is why this MOVES that requirement's text rather than sharpening it, and why the two name the pair together. It is the same fact-about-this-node's-own-configuration shape that already makes a missing bound adapter uncounted (REQ-ER-BRINGUP-TOTP-GATE), applied one input later, and it costs the brute-force bound NOTHING: the bound is over PRESENTED candidates, every one of which still counts exactly as before. The distinction is presented-versus-absent and NEVER which-key-matched, so ADR-0051's indistinguishability is untouched — an absent code carries zero member-versus-admin bits and refusal uniformity binds codes that are neither key. The ORDER is load-bearing and unchanged: the backoff is evaluated FIRST, so a codeless attempt arriving at a shut gate is answered Throttled exactly as a wrong code is and gate state stays unreadable. The ledger is NOT WRITTEN for this outcome, extending the missing-adapter write-skip rather than writing it back unchanged, because a write that failed would turn a benign codeless attach into a ledger-unwritable refusal — a worse lie than the one being fixed. Gate: doc — the ADR-0052 section 2a bullet naming the absent-code class, its ADR-0051 reading, and the throttle-first order; impl — the presentation-typed gate input (absent versus code-with-one-verified-bit), the uncounted outcome that folds into the ledger as a no-op, its own refusal sentence and label, and the extended ledger write-skip; unit — an absent code is uncounted with the ledger struct byte-unchanged, a wrong code still counts and still shuts the gate on the same schedule, a codeless attempt DURING a backoff is still Throttled (the throttle-first order pinned by test rather than by reading order), and an absent code at a shut gate answers identically to a wrong code at a shut gate.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7274968Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7275495Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7275994Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7276508Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7277009Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7277501Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7277996Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7278510Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7279133Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7279647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7280239Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7280881Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7281404Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7281908Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7282386Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7282876Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7283487Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7284044Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7284555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7285111Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7285727Z               "line": 1935
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7286254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7286753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7287316Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7287927Z               "line": 2027
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7288452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7289032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7289597Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7290211Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7290741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7291243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7291806Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7292416Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7292941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7293456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7294018Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7294628Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7295196Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7295686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7296234Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7296847Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7297357Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7297843Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7298330Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7298811Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7299407Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7299948Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7300471Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7300967Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7301488Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7302030Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7302647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7303210Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7303821Z               "line": 14467
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7304351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7304840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7305393Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7306000Z               "line": 14541
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7306528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7307024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7307578Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7308184Z               "line": 710
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7308708Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7309285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7309839Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7310441Z               "line": 762
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7310965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7311462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7312014Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7312646Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7313183Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7313685Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7314165Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7314649Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7315129Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7315610Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7316134Z       "id": "REQ-ER-BRINGUP-ANCHORS-PERCH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7329599Z       "title": "A BRING-UP THAT KNOWS THE ROOM'S ANCHOR CREATES THE ROOM'S PERCH WITH IT, so the harness bind it is about to launch inherits that anchor instead of re-resolving one it is not allowed to guess. An endpoint's anchor subnet is its DEFAULT-SCOPE subnet, so `stamp_creation_fields` refuses to invent one at creation on a node holding more than one subnet (ANCHOR_REFUSED / MULTI_SUBNET_HOME) — a deliberate explicit-choice seam that this requirement PRESERVES rather than relaxes: a caller with no anchor still cannot create a record, and the bind path still refuses exactly as before. The defect was that the engine-room bring-up HELD the answer and dropped it — `room.home_subnet` is the very value the same handler prints as ENGINE_ROOM_ADMIN_BRINGUP_EMPOWERED — so on every multi-subnet node the room's own perch was uncreatable. Measured end to end on HFENDULEAM at v0.58.0 (releases#204): no `info.json` was ever written for engine-room (the perch dir held only `spool.db` and `.has-messages`), the harness's first act `spt api bind engine-room` met the creation arm with prior=None and was refused naming all three subnets (BIGNET, SPT_MANTLE, SPT_DEV) — loudly, but only into the adapter's `hook-trace.log` — the endpoint therefore never entered any roster, `spt send engine-room` answered NO_PERCH three times across fifteen minutes, and the retained briefing row could never be delivered to a target that does not exist. The skeleton is written beside the in-flight ledger, before the launch thread fires, for the reason that entry is there: both are facts about a bring-up this broker started and both must be true before the harness exists to observe them. It is IDEMPOTENT BY REFUSAL — an existing record is left untouched, so a second bring-up cannot reset a live perch — and LOUD BUT NEVER A REFUSAL, the same denial-of-governance rule `empower_home_for_bringup` follows: a record that could not be written costs the operator the briefing, not the room, and degrades to exactly the known pre-fix path rather than inventing a new failure. SECOND SURFACE, SAME REQUIREMENT: the UNPRESENTED alarm splits, because one text was covering two events and promising what only one of them can keep. Perch-ABSENT (no record — in no roster, no inject can ever target it, the retained row waits forever) must NOT tell the operator the briefing arrives at the session's first idle; perch-SLOW (record exists, not yet a deliverable inject target) keeps today's promise, which it can honor. The absent arm fires only on a POSITIVE measurement of absence — the record file is not there — so an unreadable or unparseable record takes the promising arm (an absent answer is not a zero), and the predicate is record-EXISTENCE rather than liveness so a re-attach to a merely idle room can never false-fire it. Gate: doc — the published harness-contract sentence that the identity brief's perch claim is valid only after successful registration, and that on a refused bind the adapter emits the no-perch shape carrying the refusal (the sentence the adapter and omp-spt build against); impl — the anchored-skeleton writer in spt-store called from the bring-up path with the room's own home_subnet, plus the two-arm alarm; unit — the skeleton writer anchors a fresh record and seeds its scope, refuses to overwrite an existing one, and the alarm predicate distinguishes absent from slow with the unreadable case failing OPEN to slow; int — a REAL bring-up on a multi-subnet node leaves a rostered perch record (the pre-fix red: the record is absent and the bind is refused), which is the witness the pre-existing multi-subnet cell could never be, because its rig pre-creates the anchored skeleton that is exactly the condition the real path failed to establish.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7341828Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7342368Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7342865Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7343365Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7343866Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7344346Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7344831Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7345332Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7345841Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7346376Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7346891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7347461Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7348081Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7348597Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7349169Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7349656Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7350148Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7350667Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7351201Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7351722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7352277Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7353010Z               "line": 2180
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7353539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7354035Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7354594Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7355195Z               "line": 6539
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7355720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7356211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7356758Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7357360Z               "line": 939
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7357893Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7358393Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7358880Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7359453Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7359970Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7360508Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7361013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7361604Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7362253Z               "line": 2014
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7362772Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7363270Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7363751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7364242Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7364752Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7365287Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7365812Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7366360Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7366970Z               "line": 9957
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7367487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7367982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7368529Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7369205Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7369726Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7370227Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7370767Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7371363Z               "line": 1045
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7371997Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7372493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7373036Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7373639Z               "line": 1086
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7374159Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7374649Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7375137Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7375618Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7376098Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7376576Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7377111Z       "id": "REQ-ER-BRINGUP-ATTEMPT-BOUND",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7384966Z       "title": "The engine-room bring-up gate is bounded by ONE shared failure ledger with exponential backoff, not by a per-secret count (doyle ruling 2026-07-29 on ADR-0052 decision 2). Accepting either the member or the admin TOTP would otherwise hand an attacker a doubled online-guess budget (the ADR-0051 section 1a shape); a SINGLE persisted counter covering BOTH secrets removes that arithmetic entirely — the budget is the ledger's, not the keyring's. Backoff starts at one second and doubles to a one-hour cap. TWO classes of attempt are refused WITHOUT counting, named together here so the pair cannot drift apart: attempts arriving DURING a backoff, and attempts presenting NO code at all (whose own properties are owned by REQ-ER-BRINGUP-ABSENT-CODE-UNCOUNTED, minted 2026-08-19 for releases#197). Both classes exist for one reason: in this threat model the adversary is an agent on the same box, and any countable attempt it can produce WITHOUT holding subnet material lets it ratchet the human into permanent lockout — denial of governance is the attack, not merely a nuisance. The ledger resets on success and PERSISTS ACROSS DAEMON RESTARTS: a bounce that cleared it would restore the full budget on demand (the per-process-mint defect class the access-model spec found). Failures past the third raise a notification, so brute force is loud and silence buys the attacker nothing. This local bound is explicitly NOT ADR-0051 section 1a's network rate-limit argument, which does not apply on a local path with no round trip. Gate: doc — the ADR-0052 amendment naming ledger-plus-backoff as the local bound and distinguishing it from the network argument; impl — the persisted shared ledger, the backoff schedule, the refuse-without-counting rule in BOTH its classes, and the loud notification; unit — the schedule (one second doubling to the one-hour cap), one ledger for both secrets, an in-backoff attempt refused and NOT counted, a codeless attempt refused and NOT counted, reset on success, survival across a restart, and the notification threshold.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7392206Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7392736Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7393236Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7393742Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7394238Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7394726Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7399342Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7399989Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7400548Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7401082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7401679Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7402354Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7402890Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7403391Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7403887Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7404378Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7404894Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7405442Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7405963Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7406521Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7407122Z               "line": 1701
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7407649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7408148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7408711Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7409416Z               "line": 1934
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7409951Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7410450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7411008Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7411779Z               "line": 2125
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7412300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7412799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7413364Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7413965Z               "line": 4391
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7414486Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7414985Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7415543Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7416151Z               "line": 497
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7416675Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7417171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7417734Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7418342Z               "line": 582
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7418874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7419461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7420019Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7420630Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7421153Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7421658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7422207Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7422808Z               "line": 378
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7423330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7423825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7424388Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7425003Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7425522Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7426015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7426572Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7427172Z               "line": 721
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7427698Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7428189Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7428670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7429245Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7429763Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7430308Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7430823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7431313Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7431838Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7432376Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7433006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7433577Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7434194Z               "line": 13457
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7434723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7435219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7435772Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7436377Z               "line": 14466
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7436910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7437408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7437972Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7438582Z               "line": 642
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7439202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7439713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7440280Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7440891Z               "line": 656
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7441416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7441917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7442478Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7443094Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7443614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7444099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7444659Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7445264Z               "line": 711
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7445784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7446285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7446852Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7447471Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7447992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7448484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7449142Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7449748Z               "line": 803
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7450263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7450784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7451332Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7452056Z               "line": 824
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7452573Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7453109Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7453591Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7454087Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7454578Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7455073Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7455609Z       "id": "REQ-ER-BRINGUP-INFLIGHT-LEDGER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7465547Z       "title": "THE BROKER RECORDS A BRING-UP WHEN IT STARTS ONE, and the reserved-id bind gate reads that record as well as the sessions table. The gate's premise is that the reserved id passes only as THE COMPLETION OF A BRING-UP THE BROKER STARTED (REQ-ER-RESERVED-ID-SPAWN-REFUSAL), but the only fact it can consult is the sessions table, which records COMPLETED-ness — so between the broker creating the harness child and the session row being inserted there is a window in which the broker's OWN spawned harness asks the gate whether a bring-up it is itself completing exists, and is told no. Measured end to end on releases#199: the child's first act is `spt api bind engine-room`, the arm that answers is `ER_HOSTED_PROBE:no-row sessions=0` (dial OK, query OK, table EMPTY — named 3/3 in a channel proven to speak), the bind is refused RESERVED_ID, the harness exits bind-failed, no session ever registers, the ready-wait burns its full bound and the operator is told the engine room is not up. THE DEFECT IS A MISSING FACT, NOT A TOLERANT READER: the fix writes started-ness where it happens instead of teaching every reader of the sessions table to tolerate a counterfeit of its consequence, so the ledger lives OUTSIDE that table and the wake gate, the zombie verdict, every process-id reader and the rollback path are untouched by construction rather than by discipline. The record is endpoint-keyed with a deadline, written before the launch thread fires, swept on insert like the admit tickets, removed the moment the session row appears, and expiring harmlessly when a spawn fails so no phantom entry can outlive the bring-up that wrote it. Its TTL is the bring-up's own ready-wait, because the window it covers is exactly the window the bring-up is willing to wait through. It reaches the gate as one additive field on the brain's sessions reply — internal IPC, no P2P wire change. THE RESIDUAL IS STATED RATHER THAN ABSORBED: the added arm admits a hand-run bind of the reserved id during a live in-flight window, which satisfies the same not-as-a-first-mover premise (the broker did start a bring-up), is bounded by the TTL, and collides into the existing CONFLICT arm. Gate: impl — the endpoint-keyed in-flight ledger written pre-spawn on the bring-up path and cleared at registration, carried on the sessions reply, and the hosted predicate answering row-OR-in-flight; unit — a bring-up recorded before its session exists answers the predicate true, a registration clears the entry, an expired entry answers false, a sweep on insert drops what is no longer live, and an ordinary spawn writes no entry at all.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7474277Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7474811Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7475313Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7475812Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7476302Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7476805Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7477331Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7477875Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7478398Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7478894Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7479492Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7480036Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7480550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7481099Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7481703Z               "line": 5324
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7482229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7482726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7483285Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7483895Z               "line": 6243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7484422Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7485028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7485577Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7486192Z               "line": 6515
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7486705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7487200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7487758Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7488363Z               "line": 7898
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7488901Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7489487Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7490043Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7490649Z               "line": 7909
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7491172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7491673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7492225Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7492828Z               "line": 7921
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7493348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7493840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7494392Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7494996Z               "line": 7931
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7495579Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7496084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7496637Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7497232Z               "line": 8525
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7497760Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7498249Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7498789Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7499475Z               "line": 1570
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7500005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7500497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7501050Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7501656Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7502177Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7502666Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7503217Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7503818Z               "line": 251
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7504337Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7504837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7505514Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7506134Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7506649Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7507144Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7507632Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7508119Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7508638Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7509277Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7509788Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7510273Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7510788Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7511324Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7511835Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7512398Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7512999Z               "line": 14014
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7513519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7514020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7514568Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7515173Z               "line": 14091
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7515698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7516193Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7516741Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7517347Z               "line": 944
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7517868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7518362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7518917Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7519617Z               "line": 971
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7520134Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7520624Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7521107Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7521579Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7522061Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7522537Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7523081Z       "id": "REQ-ER-BRINGUP-LAUNCH-PHASE-TRACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7532053Z       "title": "A BRING-UP THAT FAILS NAMES THE PHASE IT REACHED, in a record that outlives the operator's terminal. The bring-up handler waits on ONE fact — a row in the broker's own sessions table — and the launch that produces that row runs on a DETACHED THREAD which, pre-fix, said nothing at all unless it returned Err. So the only account of a failure was the refusal sentence `the code was accepted, but the engine room's harness did not come up within 30s`, which reaches the operator's terminal and dies with it, and which is IDENTICALLY produced by four different mechanisms: a launch that returned Err (loud, but only in a channel nobody read against the timeout), a launch still waiting UNBOUNDED on the broker's reply (`Brain::cold_start` carries `io_timeout: None`), a ConPTY create that overran the bound, and a harness that SPAWNED AND DIED so that its row existed and then did not. THE POLL CANNOT TELL THESE APART BY CONSTRUCTION — it reads a row, and every one of them is a missing row. The requirement is that each side stamps its own phases into the persisted daemon stderr sink (REQ-DAEMON-STDERR-PERSIST): the launch thread stamps enter/prepared/connecting/connected/requested/spawned and its three failure arms, the shared spawn choke stamps received/gate_claimed/pty_creating/pty_created and each step between the PTY existing and the row being inserted, the exit waiter stamps the row's REMOVAL, and the poll stamps the instant it starts waiting and the instant it gives up. Every span is read MONOTONICALLY off one `Instant` per side (`elapsed`), never as a difference between two clocks, so a near-boot reading cannot underflow. AN ABSENCE IS NEVER A VERDICT: a missing outcome stamp whose PRECEDING stamps stand is a wait still in flight, while a missing outcome whose predecessors are ALSO missing is an unreadable instrument and must be reported as that — which is why the integration stage asserts every rung renders end to end through the diagnostics panel on a GREEN bring-up, before any silence on a cold run is read as a fact about the launch. Gate: impl — the phase stamps on the brokered launch path, in the shared spawn choke, at the exit waiter's row removal, and either side of the bring-up ready-wait; int — a successful bring-up whose panel carries every rung of both ladders, so the instrument's silence is falsifiable rather than assumed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7540166Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7540700Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7541196Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7541687Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7542179Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7542675Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7543190Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7543734Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7544253Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7544751Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7545275Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7545814Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7546326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7546877Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7547488Z               "line": 6577
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7548012Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7548512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7549156Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7549771Z               "line": 7955
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7550018Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7550269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7550575Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7550832Z               "line": 8369
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7551079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7551331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7551645Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7551909Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7552152Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7552396Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7552634Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7552885Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7553150Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7553408Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7553651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7553985Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7554347Z               "line": 737
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7554590Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7554847Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7555090Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7555344Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7555609Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7555859Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7556107Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7556351Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7556603Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7556842Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7557123Z       "id": "REQ-ER-BRINGUP-PROMPT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7561392Z       "title": "Bare `spt rc engine-room` prompts interactively for the bring-up TOTP instead of attaching straight into the gate's refusal (ADR-0052 §2 entry UX, fast-follow grill 2026-07-30). The prompt is the preferred entry because argv is readable by other processes on the box while a code is still valid; `--code <CODE>` stays for scripted/non-interactive use with that caveat documented in its help. Prompt rules: Esc-cancel (the ceremony-overlay pattern) and ctrl-c both cancel with NO attach attempt even when the buffer holds digits; Enter submits a non-empty buffer and is inert on an empty one; only ASCII digits accumulate, length-bounded, so pasted garbage never rides into the gate and spends ledger budget; every other endpoint never sees a prompt; and a non-terminal stdin refuses with guidance naming --code rather than blocking on a pipe. Gate: doc — the ADR-0052 §2 entry-UX note; impl — the prompt behind the bare invocation, the pure key-fold kernel, and the non-terminal refusal; unit — the key-fold rules (digits-only accumulation, bound, backspace, inert-empty-Enter, submit, and both cancel paths beating a full buffer).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7561673Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7561920Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7562168Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7562411Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7562655Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7562903Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7563150Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7563417Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7563668Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7564016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7564368Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7564639Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7564888Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7565130Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7565369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7565617Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7565876Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7566135Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7566376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7566662Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7566920Z               "line": 4231
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7567168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7567412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7567697Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7567959Z               "line": 1560
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7568202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7568460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7568743Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7569089Z               "line": 1859
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7569337Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7569574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7569856Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7570114Z               "line": 1891
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7570362Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7570601Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7570853Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7571096Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7571356Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7571612Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7571851Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7572103Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7572361Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7572614Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7572858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7573143Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7573507Z               "line": 5196
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7573744Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7573986Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7574233Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7574475Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7574713Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7574952Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7575253Z       "id": "REQ-ER-BRINGUP-PROMPT-NAMES-SEAT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7582105Z       "title": "THE BRING-UP PROMPT NAMES WHAT IT IS ASKING FOR: which node's engine room is being brought up, which subnet's code will be accepted, and that a MEMBER OR ADMIN code answers it. The shipped prompt asks for a 'bring-up code for engine-room (member or admin)' and names neither the node nor the subnet (releases#71, operator-reported), which leaves the human holding an authenticator app with no way to tell WHICH of the subnets they belong to this prompt means — and on a multi-subnet node that is not a cosmetic gap, it is a guess that spends a unit of a deliberately small attempt budget. The facts are always available where the prompt runs: bare `spt rc engine-room` is LOCAL-ONLY by ratification, so the node is this node and the home subnet is on the local engine-room record. The prompt reads them THERE rather than asking the daemon, because the record is the ceremony's own output and a prompt that cannot render without a round trip is a prompt that hangs when the daemon is down. THE WORDING KEEPS BOTH KEYS: an admin seed IS a membership key (ADR-0051), so 'member or admin' is the truth and narrowing it to 'member' would make the prompt lie about a code that works. This REFINES the interaction contract in REQ-ER-BRINGUP-PROMPT rather than replacing it — Esc/ctrl-c cancel, digits-only accumulation, the bound, the inert empty Enter and the non-terminal refusal all stand unchanged and are not re-litigated here. Gate: doc — the engine-room setup guide's bring-up walkthrough showing the prompt as it renders; impl — the prompt composing node and home subnet from the local engine-room record with the member-or-admin wording; unit — the composed prompt names the node and the home subnet read from the record, an unprovisioned node's prompt still refuses honestly rather than rendering an empty subnet, and the member-or-admin wording is asserted so a later narrowing fails here.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7582411Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7582659Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7582902Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7583141Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7583388Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7583641Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7583908Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7584166Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7584405Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7584650Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7584920Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7585173Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7585417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7585703Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7585960Z               "line": 1842
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7586203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7586450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7586737Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7587000Z               "line": 1860
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7587251Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7587492Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7587740Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7587988Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7588246Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7588508Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7588750Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7589084Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7589347Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7589608Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7589863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7590142Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7590404Z               "line": 5236
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7590647Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7590891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7591130Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7591377Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7591731Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7591973Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7592262Z       "id": "REQ-ER-BRINGUP-SPAWNS-SESSION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7621837Z       "title": "Passing the engine room's bring-up gate BRINGS THE ENGINE ROOM UP: the node spawns its session through the adapter bound at the ceremony, and the operator's attach then lands on it. Today it does not, and the endpoint is entirely inaccessible (releases#71, operator-reported): the ceremony provisions a record, the gate is complete and correct, and NOTHING ANYWHERE SPAWNS THE SESSION — `BringUp::Admitted` briefs and returns proceed, and the attach falls through to the ordinary no-live-session refusal. THE SPAWN LIVES DAEMON-SIDE (ruled): the broker owns hosting, so a client-side spawn would replicate hosting logic in the CLI and race the attach that follows it; the daemon already launches harnesses on its own behalf at autostart, which is the shipped precedent for the mechanism and for its threading. The attach that follows the spawn WAITS FOR READY UNDER A BOUND — a wait with no bound turns a broken adapter into a hung terminal, and no wait at all reintroduces the same no-live-session refusal one race later. THE ENTRY POINT IS PART OF THIS REQUIREMENT AND IS STATED HERE BECAUSE IT IS WHERE THE DEFECT ACTUALLY BITES: with no session hosted, `spt rc engine-room` never subscribes at all — it resolves no local session, resolves no owning node for an endpoint that is deliberately never advertised, and returns the reported 'No live session' before any code reaches the daemon, so the typed code is verified NOWHERE and the Admitted arm is unreachable in exactly the flow the operator ran. A fix that adds a spawn leg to that arm without giving a session-less bring-up a way to reach the gate closes nothing. VERIFICATION STAYS DAEMON-SIDE WHEREVER THE ENTRY LANDS: the adversary in this threat model is an agent on the box, which can speak the broker's IPC and never run a line of the CLI, so a client-side check is a courtesy and the rule must be evaluated where the session is hosted. THE ENTRY IS AN ADDITIVE BROKER REQUEST carrying the code (ruled): the daemon runs the same classifier it already owns, spawns on admit, and replies the session the operator then attaches to. Additive is the ADR-0001-safe shape, and an N-1 broker that does not know the verb answers unknown — WHICH THE CLIENT REPORTS HONESTLY IN THE OPERATOR'S OWN WORDS, naming the version skew, and NEVER falls through silently to the resolve path that produces the very no-live-session refusal this requirement exists to kill. The spawn RUNS OFF THE REQUEST HANDLER on its own thread, following the autostart replay's shipped shape, because the launch dials the broker as a client and must not run inline inside the handler serving that request. THE GATE IS SPENT ONCE PER BRING-UP, and the deciding argument is NOT budget arithmetic but the TOTP WINDOW RACE: the bounded spawn wait can outlive the ±1 ceremony window, so a code re-presented at the following subscribe can be REFUSED by the same gate that just admitted it — charging the human a ledger failure and rebuilding gate-admits-then-attach-refuses one seam later, which is the exact shape #71 exists to kill. The admitted bring-up therefore mints a SINGLE-USE ADMIT TICKET for the subscribe that seats the controller: a random secret of at least 128 bits, returned in the reply, SCOPED TO THE SESSION ID the bring-up spawned, and EXPIRING 30 SECONDS AFTER THE REPLY. A CONNECTION-KEYED exemption was ruled first and is STRUCTURALLY UNREDEEMABLE at this topology, which is why the key is a ticket and why that is stated here rather than left as an implementation choice: an rc attach opens a net stream, and the subscribe that seats the controller is sent by the DISPATCHER'S OWN broker connection, never by the connection that asked for the bring-up, so the two connection ids can never match and a conn-keyed exemption could never fire at all. The key must be the thing that actually crosses the seam, and the attach's code field is already the end-to-end pipe for exactly this class of secret, so the ticket rides that field behind a reserved `admit:` prefix and no new wire field appears. THE PREFIX IS RESERVED OUT OF THE TOTP PATH STRUCTURALLY: a prefixed string is never evaluated as a code guess, because an expired ticket is not a wrong guess and must not spend a unit of the human's attempt budget — which also stops anyone on the box from ratcheting the human toward a backoff by replaying a dead ticket. The ticket is consumed BY PRESENTATION rather than by success, so a second presentation is refused even inside its window and a ticket presented for another session is spent as it is refused; expired, already-spent, wrong-session and never-minted all answer ONE uniform sentence, so a caller learns only that this string does not seat it and never whether an admit is outstanding. The TTL starts at the REPLY — after the spawn, after the bounded wait — so it covers only the client's attach turnaround and never a harness start. Entropy, TTL and single use are the ticket's whole defense, because the field it rides spends no ledger. EXEMPTION PRECEDENCE, ADDED FOR releases#203 (doyle ruling 2026-08-20): the seated-connection re-serve exemption is evaluated BEFORE the presented ticket, and that ORDER is part of the requirement rather than an implementation detail — because the ticket this requirement mints is SINGLE-USE and the connection it seats re-presents it on every re-subscribe. With the ticket matched first, a gap resume or dispatcher reconstruction of a ticket-seated controller answered `Unredeemed` and the refusal UNSEATED the human mid-session; the seat this requirement exists to establish was then lost to the very credential that established it, and the exemption was structurally unreachable for any re-serve carrying its spent ticket. Measured on golden 32341702157 (Linux leg): seat on a redeemed ticket, the SAME conn re-serving ~700ms later with `req_gen` unchanged, `engine-room-admit-unredeemed`, `session-detach was_controller=true`. Latent since the ticket shipped and first witnessed by a new e2e, not by a report — the availability half of this requirement had no same-connection witness at all. THE ORDER IS NOT A WIDENING, and the reason belongs in the requirement because it is what makes the precedence safe to state: the exemption's discriminant is the seated CONNECTION id, which belongs to another process's socket and cannot be claimed by asking, so the only attach it admits on a spent ticket is one arriving on the connection ALREADY SEATED — granted nothing it does not already hold, and dying with that connection. A ticket presented by any other connection still meets the match and is refused on its own merits, ledger untouched. Gate: doc — the engine-room setup guide's bring-up section, stating that the first bring-up spawns the session and what a bounded wait failing looks like; impl — the daemon-side spawn on admit through the ceremony-bound adapter, the bounded wait-for-ready, and the session-less entry path that carries the code to the gate; unit — an admitted bring-up spawns exactly once through the BOUND adapter, a refused one spawns nothing, a bring-up over an already-live session spawns no second session, the wait's bound is proven to be a bound (an adapter that never reports ready ends in a typed failure rather than a hang), one bring-up spends exactly one ledger attempt, the admit ticket is proven to seat the controller ACROSS THE REAL TWO-CONNECTION TOPOLOGY (the row that would have caught a conn-keyed exemption before it shipped), a SECOND presentation of the same ticket is refused, an EXPIRED ticket is refused WITH THE ATTEMPT LEDGER UNTOUCHED, a ticket presented for a DIFFERENT session is refused, and every non-redeeming presentation answers the SAME sentence so the refusal discloses nothing, a SPENT ticket re-presented by the connection that is ALREADY SEATED keeps that seat (the same-connection gap-resume row, pinned by an explicit conn-id assertion and a FIXED attach generation so a fresh-connection re-serve cannot masquerade as it), and that same spent ticket presented by a DIFFERENT connection is still refused with the ledger untouched (the non-widening control, without which deleting the refusal arm outright would satisfy the row above); int — a provisioned engine room with a registered adapter comes up end to end from the invocation the operator runs and the controller is seated on the session that was spawned.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7622365Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7622614Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7622862Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7623106Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7623352Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7623600Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7623843Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7624105Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7624365Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7624612Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7624861Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7625128Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7625386Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7625629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7625948Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7626219Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7626467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7626716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7627019Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7627270Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7627518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7627761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7628062Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7628319Z               "line": 1135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7628563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7628806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7629198Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7629452Z               "line": 1734
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7629698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7629948Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7630247Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7630510Z               "line": 1759
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7630753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7631000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7631407Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7631668Z               "line": 1777
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7631921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7632164Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7632469Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7632721Z               "line": 1813
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7632968Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7633211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7633517Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7633774Z               "line": 1936
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7634019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7634266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7634569Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7634829Z               "line": 2915
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7635077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7635321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7635631Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7635899Z               "line": 5295
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7636140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7636384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7636689Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7636947Z               "line": 5432
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7637191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7637436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7637739Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7638007Z               "line": 5990
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7638260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7638508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7638808Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7639156Z               "line": 6378
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7639400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7639642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7639946Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7640320Z               "line": 6391
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7640563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7640807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7641117Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7641370Z               "line": 7820
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7641622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7641860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7642166Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7642428Z               "line": 7831
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7642673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7642918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7643218Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7643481Z               "line": 7861
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7643724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7643982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7644273Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7644536Z               "line": 7868
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7644783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7645039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7645342Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7645605Z               "line": 8588
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7645848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7646090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7646390Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7646644Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7646887Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7647140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7647437Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7647747Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7648144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7652250Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7652594Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7652856Z               "line": 1316
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7653098Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7653354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7653641Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7653917Z               "line": 2392
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7654161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7654413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7654838Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7655105Z               "line": 2422
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7655352Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7655599Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7655846Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7656088Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7656350Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7656603Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7656851Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7657194Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7657452Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7657696Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7657939Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7658186Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7658433Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7658699Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7659051Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7659304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7659623Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7659890Z               "line": 13901
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7660137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7660380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7660690Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7660944Z               "line": 14118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7661190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7661431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7661741Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7661998Z               "line": 14223
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7662242Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7662486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7662786Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7663052Z               "line": 14347
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7663291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7663538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7663849Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7664210Z               "line": 14457
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7664463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7664707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7665007Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7665273Z               "line": 14800
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7665516Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7665755Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7666004Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7666244Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7666486Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7666725Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7667011Z       "id": "REQ-ER-BRINGUP-TOTP-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7671731Z       "title": "Bringing the engine room online — and attaching a controller to it — requires a same-node CLI call PLUS a member-or-admin TOTP for its home subnet, and never OS elevation (ADR-0052 decision 2). The gate proves 'a human holding this subnet's material is at the controls', which is the question that matters for a surface that sets access posture; elevation proves only 'a process on this machine ran elevated', which every agent-spawned installer path can arrange and which says nothing about subnet authority. Either seed passes because an admin key IS a membership key (ADR-0051), and the two-acceptable-secrets budget is answered by REQ-ER-BRINGUP-ATTEMPT-BOUND rather than by refusing the admin key. Bring-up FAILS CLOSED when the bound harness adapter is missing — an engine room that cannot host its own mind must not come online half-formed (ADR-0053 spirit). Gate: doc — ADR-0052 decision 2 and the CONTEXT.md engine-room bring-up sentence; impl — the same-node CLI bring-up path, local verification of the member and admin TOTP against the replicated seeds, and the missing-adapter refusal; unit — a member code brings it up, an admin code brings it up, a wrong code refuses, elevation alone never substitutes, and a missing bound adapter refuses.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7672024Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7672272Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7672521Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7672779Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7673022Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7673269Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7673622Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7673889Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7674141Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7674386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7674733Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7674995Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7675238Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7675480Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7675724Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7675972Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7676240Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7676491Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7676734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7677041Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7677304Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7677557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7677799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7678119Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7678385Z               "line": 924
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7678629Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7678872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7679263Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7679516Z               "line": 1424
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7679758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7680003Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7680308Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7680571Z               "line": 1700
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7680810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7681063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7681368Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7681625Z               "line": 1735
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7681868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7682111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7682423Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7682776Z               "line": 1933
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7683019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7683262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7683573Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7683824Z               "line": 4367
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7684073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7684311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7684612Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7684874Z               "line": 8598
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7685120Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7685368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7685659Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7685917Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7686156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7686398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7686703Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7686956Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7687204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7687456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7687783Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7688049Z               "line": 182
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7688292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7688535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7688850Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7689193Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7689441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7689686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7689992Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7690251Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7690497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7690745Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7691027Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7691280Z               "line": 4250
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7691532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7691770Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7692051Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7692323Z               "line": 1533
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7692567Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7692808Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7693149Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7693401Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7693665Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7693922Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7694161Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7694404Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7694661Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7694913Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7695214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7695529Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7695786Z               "line": 13447
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7696033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7696276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7696581Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7696839Z               "line": 14813
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7697083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7697326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7697636Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7697887Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7698142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7698381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7698691Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7699044Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7699292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7699544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7699849Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7700102Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7700354Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7700599Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7700844Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7701080Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7701324Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7701568Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7701844Z       "id": "REQ-ER-CEREMONY-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7707442Z       "title": "The engine-room ceremony is invocable: `spt endpoint engine-room <subnet> --adapter <id>` runs the one create/reset code path (`provision_at`), reporting Created against an absent record and Reset against a present one (ADR-0052 §4a, fast-follow grill 2026-07-30). Before this verb the ceremony had ZERO production call sites — a user could not set an engine room up at all. Its gates, in refusal order: BOTH arms refuse invocation by an SPT agent, detected on env markers AND on process ancestry against the broker-hosted sessions' recorded pids (defense-in-depth in front of both arms, never a substitute for the reset elevation gate; ancestry powers only this REFUSAL, never a grant — the direction that keeps the F-024 ancestry-for-auth parking intact); an unjoined subnet refuses (no seeds to verify a bring-up code against later); an unregistered adapter refuses (bring-up fails closed on it anyway — fail at bind time instead); then creation (absent record) proceeds UNELEVATED — bootstrap friction ruled to outweigh pre-emption, the window closes permanently at the first run, docs say run the ceremony early — while reset (present record) requires confirmed OS elevation, with Unknown refusing like the purge gate. Gate: doc — ADR-0052 §4a; impl — the verb, the pure ceremony decision, the two-layer agent detection, and the provision_at call; unit — the decision table pinning agent-deny-beats-elevation on both arms, bind-time refusals before the arm split, create-unelevated across every elevation, and reset refusing on NotElevated and Unknown alike.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7707842Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7708090Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7708333Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7708585Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7708821Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7709155Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7709398Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7709656Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7709909Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7710148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7710496Z               "path": "docs-site/src/networking/engine-room-setup.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7710758Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7711005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7711361Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7711712Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7711969Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7712213Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7712456Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7712700Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7712952Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7713209Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7713462Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7713706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7713991Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7714245Z               "line": 24155
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7714498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7714742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7715023Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7715281Z               "line": 24243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7715524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7715776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7716057Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7716325Z               "line": 24257
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7716564Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7716809Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7717052Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7717297Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7717564Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7717821Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7718059Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7718303Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7718565Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7718819Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7719145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7719434Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7719691Z               "line": 26759
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7719934Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7720173Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7720417Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7720654Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7720893Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7721236Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7721541Z       "id": "REQ-ER-CONTROLLER-BOUND-POSTURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7726251Z       "title": "The engine room is empowered ONLY while a controller is attached, and losing that controller drops its POSTURE — not its process (ADR-0052 decision 3, as amended 2026-07-29 on todlando's finding). Read literally, 'detach drops it offline' would kill a harness on detach and re-break the attach-lifecycle invariant (KNOWN-HAZARDS: an rc detach ends only the viewport, the harness keeps running and stays re-attachable — an invariant the broker's PTY ownership satisfies by construction). The buildable and equally strong reading is a posture: on detach the engine room refuses all inbound, drops every empowerment (REQ-SUBNET-EMPOWER-VERB), and stops being advertised, while the process lives and can be re-attached through the same TOTP gate. Empowerment is therefore session state with TWO named drop edges — detach and local take — each of which needs its own test; 'revoked by a restart' is not an available argument, because no restart happens (REQ-ER-RC-INTENT-LOCKS). Gate: doc — the ADR-0052 section 3a amendment; impl — the posture transition on detach and on take, covering inbound refusal, empowerment drop and de-advertisement, with no process teardown; unit — both drop edges revoke empowerments, a detached engine room refuses inbound, and neither edge terminates the hosted session.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7726537Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7726781Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7727033Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7727279Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7727529Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7727771Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7728013Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7728275Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7728524Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7728773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7729206Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7729467Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7729710Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7729956Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7730299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7730551Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7730813Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7731067Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7731311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7731621Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7731878Z               "line": 1201
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7732116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7732363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7732670Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7732928Z               "line": 2535
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7733171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7733414Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7733729Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7733982Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7734230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7734479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7734798Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7735062Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7735313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7735566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7735881Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7736139Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7736382Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7736629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7736939Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7737197Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7737440Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7737679Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7737925Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7738168Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7738432Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7738684Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7738927Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7739256Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7739629Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7739881Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7740123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7740440Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7740688Z               "line": 15040
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7740931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7741174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7741484Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7741741Z               "line": 1033
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7741984Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7742232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7742538Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7742796Z               "line": 1052
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7743041Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7743278Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7743583Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7743841Z               "line": 1082
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7744085Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7744332Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7744575Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7744813Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7745058Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7745305Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7745613Z       "id": "REQ-ER-GRANT-ANNOUNCE-AFTER-ATTACH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7753626Z       "title": "A GRANT LINE DESCRIBING A CONTROLLER THAT NEVER ATTACHED MUST BE IMPOSSIBLE (ratified 2026-08-04 bag grill, releases#142): the engine room's bring-up announces empowerment — and spools the briefing that states it — only AFTER the controller's attach is established, never at the moment the session merely exists. Field-reported: the operator read 'the engine room is up; taking its controls. <grant line>' and then, seconds later, 'no live session for engine-room' — nothing lied about the session, the sentence claimed a CONTROLLER. The seam is precise and is what this requirement is about: the bring-up waits for the broker's own session table (the fact the attach needs), which is necessary and NOT SUFFICIENT — the controller is seated later, by a subscribe carrying the single-use admit ticket, arriving on the dispatcher's connection. releases#102's below-the-grant move was the right direction with the wrong stop: it moved the briefing below the GRANT, not below the SEAT. THE BRIEFING IS NAMED EXPLICITLY AND NOT ONLY THE PRINTED LINE, because they fail together and a fix that defers only the visible sentence leaves the seat holding a briefing that describes an empowerment for a controller that never arrived — the worse half, since the session reads it as fact about itself. The post-seat settlement already exists for the OTHER entry (an attach or take against an already-hosted engine room settles after the seat ladder resolves, grants only for a taken seat, and returns its sentence as the seat note the human reads before any session output); this requirement makes the bring-up complete through THAT path rather than through a second one. Gate: doc — the CONTEXT.md engine-room lifecycle sentence, ratified 2026-08-04; impl — the bring-up's announce and briefing composed on the post-seat side of the attach seam; unit — bring-up admitted but the admit ticket never redeemed (subscribe never arrives, or its TTL expires) leaves NO empowerment written, NO briefing spooled and NO grant sentence anywhere, while a confirmed seat produces all three exactly once, and a MEMBER-credential bring-up seats its controller while granting nothing (the discrimination that must survive wherever the settlement moves).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7753933Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7754181Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7754425Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7754668Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7754911Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7755154Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7755402Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7755660Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7755914Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7756154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7756424Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7756771Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7757034Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7757273Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7757526Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7757773Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7758035Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7758288Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7758532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7758847Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7759194Z               "line": 1761
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7759441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7759689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7759994Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7760252Z               "line": 1844
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7760495Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7760739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7761044Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7761304Z               "line": 1891
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7761550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7761794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7762104Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7762371Z               "line": 2403
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7762614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7762856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7763157Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7763414Z               "line": 6496
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7763667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7763912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7764214Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7764469Z               "line": 6651
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7764713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7764961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7765261Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7765520Z               "line": 6678
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7765761Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7766009Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7766248Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7766493Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7766771Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7767026Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7767375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7767699Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7767961Z               "line": 1507
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7768199Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7768434Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7768702Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7769035Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7769297Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7769548Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7769797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7770097Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7770360Z               "line": 13223
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7770607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7770854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7771174Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7771446Z               "line": 13313
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7771741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7771988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7772287Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7772563Z               "line": 14662
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7772810Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7773058Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7773302Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7773551Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7773794Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7774046Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7774322Z       "id": "REQ-ER-INBOUND-LOCK",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7778559Z       "title": "The engine room refuses ALL inbound except replies to its own outbound, with a dormant knock exemption landed in the same seam (ADR-0052 decision 3; doyle ruling (f) 2026-07-29). The lock is what keeps a minded governance surface from being reachable — and therefore promptable — by the very agents whose access it governs; the reply exemption is the stateful-firewall correlation that already precedes the resolution chain, which the engine room itself depends on to hold a conversation it started. The knock hook lands NOW rather than in the knocking wave because accepting knocks is part of the lock's shape as specced, and a security-critical seam reworked twice is a seam whose second version is reviewed against the first instead of against the requirement; W3's hook default-refuses, W4 fills it with knock semantics. Gate: doc — ADR-0052 decision 3 and the CONTEXT.md engine-room entry; impl — the inbound lock riding the reply-exemption seam plus the dormant knock hook; unit — a reply to its own outbound passes, an unsolicited inbound of every other shape is refused, and the dormant hook refuses today without a knock surface.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7779055Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7779304Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7779557Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7779804Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7780046Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7780304Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7780557Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7780838Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7781094Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7781344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7781705Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7781972Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7782226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7782472Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7782722Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7782970Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7783243Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7783500Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7783753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7784054Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7784320Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7784568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7784815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7785116Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7785378Z               "line": 441
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7785623Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7785880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7786128Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7786372Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7786748Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7787006Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7787250Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7787502Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7787758Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7788014Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7788257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7788567Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7788819Z               "line": 864
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7789153Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7789401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7789701Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7789954Z               "line": 911
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7790198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7790441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7790744Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7791006Z               "line": 943
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7791255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7791498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7791813Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7792071Z               "line": 2358
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7792308Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7792546Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7792786Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7793023Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7793263Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7793502Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7793793Z       "id": "REQ-ER-INBOUND-LOCK-ALL-PATHS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7815204Z       "title": "THE ENGINE ROOM'S INBOUND LOCK REACHES EVERY SPT-AUTHORED DELIVERY PATH, NOT ONLY THE WIRE. The lock itself (REQ-ER-INBOUND-LOCK) was never wrong: it sits at step 0 of the access chain, ahead of the same-node allow, and its own comment names an agent on this very node as the adversary it exists for. The defect was that no locally-authored delivery ever ASKED it. A census of every path terminating in a local delivery (releases#209, measured at c62904e7) found 17 paths and exactly 2 consulting the chain — `wan::receive_wan` and `dispatch::answer_presence_probe`, both wire-inbound — while `crates/spt/src` and `crates/spt-msg/src` between them contained ZERO occurrences of `access_check`, `InboundClass` or `classify_inbound`. The bypass was therefore WIDER than the filing's 'a same-node agent send': `spt ring`, the subnet notify, the API-side drain and the relay listener are each an independent arm to the same three termini (the shared PTY-inject leg, `deliver_tcp`, and the spool). THE FIX IS ONE GATE SITE, and it is a site rather than a restated rule because a rule with N call sites is a rule that will disagree with itself at the seam nobody re-read — this codebase already says so at `engineroom.rs`'s reserved-id predicate, for the same reason. `spt_store::gate::admit_local_delivery` is that site, and it LIVES IN `spt-store` FOR A STRUCTURAL REASON THAT IS PART OF THE REQUIREMENT: `spt-msg` authors local delivery and cannot see `spt-daemon`, so a function beside `wan::deliver_admitted` would have been unreachable from half the paths it exists to gate. THE GATE IS AT ADMISSION, NEVER AT DRAIN, and the engine room's own session briefing is what decides it: that briefing is daemon-authored and self-addressed, spooled straight onto the ER perch under a reserved author, so a drain-time gate would refuse the engine room its own briefing. Admission-time exempts it for free because that writer never crosses the function — AND THAT EXEMPTION IS THE CALL PATH, NEVER A ROW FIELD, so a send merely CLAIMING briefing authorship is gated on its merits like any other. Two further facts settle admission-vs-drain: a spooled row carries no admission stamp and a locally-spooled one has nothing to re-derive an origin from, and a WAN row is already claimed exactly-once by `op_id`, so re-checking at drain would re-open a settled decision and evaporate a row admitted while the posture was Online if the controller detached before the tick. THE GATE ASKS WHETHER THE TARGET RESOLVES TO THE ENGINE-ROOM PERCH, NOT WHETHER IT IS SPELLED LIKE IT. `is_engine_room` is an exact compare, correct for every caller asking about the NAME; it is the wrong question for a gate, because delivery routes by resolving an id to a perch. MEASURED on NTFS 2026-08-22: create `engine-room`, and `Engine-Room` names the same directory — that spelling misses the broker's session table (which does compare exactly), falls to the spool keyed by resolved perch path, and the drain delivers it, so the bypass would have survived its own fix. The predicate compares canonicalized paths and mints NO canonicalizer of its own: imitating the filesystem's case rule would be a second reading of one truth and would be WRONG on Linux, where the other spelling is a genuinely different perch with no engine room at it. The unresolvable arms are declared rather than left to fall out: the exact spelling is checked first and needs no filesystem, so the reserved id is caught with no perch on disk at all; a target that does not canonicalize is not the ER, because nothing is there for a delivery to land on; and an ER perch that does not canonicalize means no engine room is provisioned, for which the posture read behind the predicate is independently fail-closed. THE REPLY EXEMPTION MUST SURVIVE ON THE LOCAL PATH, and pre-fix it could not have: `classify_inbound` correlates against `RecentOutbound`, whose only production writer was `note_outbound` at ONE call site on the WAN outbound leg, so a locally-authored send recorded nothing and every local reply to the engine room would have classified Unsolicited and been refused — the engine room able to ask a local agent a question and structurally unable to hear the answer. The admission site records the local outbound half, on an ADMITTED send only: a refusal is not contact and must not earn a reply window. A LOCAL REFUSAL NAMES ITS ORIGIN IN WORDS rather than printing this node's own key hex, which on the local path reads as a wire arrival and sends the reader hunting a peer that does not exist. SCOPE, STATED RATHER THAN IMPLIED, and the published claim is amended to match: admission runs in the AUTHORING process, so an old or modified binary, a direct write into the spool database, or a raw TCP connect to a relay listener never meets it. Same-user local code is outside what any spt gate holds; the claim is scoped to spt-authored delivery paths, and the TOCTOU between the gate's path resolution and the delivery's own falls under the same boundary. UPGRADE BOUNDARY: rows spooled before the flip carry no admission stamp and drain ungated exactly once. Gate: impl — the admission function, the resolve-based ER predicate, the local `note_outbound` half, the local-origin refusal text, and the scope amendment on the published claim; unit — the resolution fact (both spellings reach one perch, asserted as RESOLUTION rather than as platform behaviour so the cell stays portable), the briefing-authorship forgery negative (a local send wearing the reserved author is still refused), and the unresolvable arms; int — an unsolicited local send to the engine room refused with the lock's own diagnostic where pre-fix it delivered, the engine room's question to a local agent answered (reply exemption alive on the local path, loud arm silent on it), and the hole-punch negatives: ordinary endpoint-to-endpoint local sends still deliver, and still deliver with a subnet-scoped DENY rule and a closed node mode in the store. Kin REQ-ER-INBOUND-LOCK (the lock this reaches), REQ-SEC-1 (the reply exemption it must not break), REQ-ACL-LOCAL-ORIGIN-TIERS (the axis it runs on).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7815699Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7815957Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7816204Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7816459Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7816707Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7816957Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7817203Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7817475Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7817747Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7817995Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7818252Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7818605Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7818872Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7819201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7819514Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7819775Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7820023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7820271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7820567Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7820829Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7821076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7821320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7821620Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7821878Z               "line": 442
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7822126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7822376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7822681Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7822944Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7823198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7823446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7823751Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7824013Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7824265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7824513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7824807Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7825063Z               "line": 604
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7825310Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7825553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7825849Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7826117Z               "line": 11460
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7826365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7826618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7826904Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7827165Z               "line": 11800
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7827408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7827651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7828040Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7828297Z               "line": 12108
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7828541Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7828788Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7829117Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7829374Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7829636Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7829886Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7830127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7830487Z               "path": "crates/spt-daemon/tests/er_inbound_local_notify.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7830740Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7830987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7831231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7831560Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7831822Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7832062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7832308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7832618Z               "path": "crates/spt/tests/er_inbound_local.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7832885Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7833124Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7833367Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7833619Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7833867Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7834129Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7834382Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7834626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7834921Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7835177Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7835418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7835661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7835962Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7836220Z               "line": 669
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7836466Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7836710Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7836953Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7837197Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7837440Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7837678Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7837963Z       "id": "REQ-ER-NOT-ADVERTISED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7842326Z       "title": "The engine room is NOT registry-advertised by default, and is advertised only to endpoints it has whitelisted (ADR-0052 decision 3). An advertised governance surface is a discoverable one, and discoverability is the first half of every reach attempt the inbound lock then has to refuse; keeping it out of the feed means the agents on a node cannot even name the thing that governs them unless it has chosen to be nameable to them. This rides W1's DISCOVER gate rather than minting a parallel visibility notion — one advertisement filter, one place to reason about who sees what. De-advertisement is part of the posture drop (REQ-ER-CONTROLLER-BOUND-POSTURE): an engine room without an attached controller is not merely unreachable but unlisted. Gate: doc — ADR-0052 decision 3; impl — the advertisement filter excluding the engine room by default and honoring its whitelist, reached through the existing DISCOVER gate; unit — a default engine room is absent from the local advertisement, a whitelisted viewer sees it, a non-whitelisted viewer does not, and a posture-dropped engine room is absent regardless of whitelist.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7842622Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7842873Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7843116Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7843360Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7843607Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7843854Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7844102Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7844370Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7844623Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7844867Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7845219Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7845476Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7845723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7845969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7846312Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7846569Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7846922Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7847170Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7847419Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7847675Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7847938Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7848185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7848440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7848747Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7849089Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7849332Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7849574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7849879Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7850138Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7850381Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7850624Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7850939Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7851194Z               "line": 508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7851445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7851689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7852008Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7852280Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7852518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7852761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7853080Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7853338Z               "line": 530
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7853581Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7853826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7854138Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7854395Z               "line": 149
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7854638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7854882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7855192Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7855445Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7855693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7855936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7856244Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7856515Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7856758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7857005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7857411Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7857673Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7857911Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7858154Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7858393Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7858642Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7858904Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7859245Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7859490Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7859734Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7860001Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7860259Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7860511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7860816Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7861073Z               "line": 1176
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7861321Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7861561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7861893Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7862153Z               "line": 431
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7862395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7862639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7862954Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7863211Z               "line": 1786
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7863451Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7863693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7863998Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7864256Z               "line": 899
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7864498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7864741Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7865047Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7865309Z               "line": 1005
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7865556Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7865795Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7866038Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7866277Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7866631Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7866871Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7867174Z       "id": "REQ-ER-OFFLINE-BRINGUP-REACHABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7878048Z       "title": "A CLEANLY-OFFLINE ENGINE ROOM IS STILL BRINGABLE THROUGH ITS OWN CEREMONY: for the engine-room endpoint class with a bring-up code in hand, the rc offline fast-fail must not preempt the bring-up dispatch, because cleanly-offline is precisely the state whose ratified entry path IS a bring-up. Field-reported (releases#142, operator): after a harness exit the operator's third `spt rc engine-room` answered 'offline — nothing to attach to' for the same verb that had brought the room up on the first attempt, leaving the seat unrevivable through the only door it has. THE EXIT PATH IS CORRECT AND IS NOT WHAT CHANGES — a harness exit leaves the endpoint cleanly offline exactly as the ratified lifecycle entry requires (`mark_offline` → `terminal_normalize`); what is wrong is the reader's precedence, and the fix is a NARROWING of one gate rather than a change to any writer. REQ-HAZARD-RC-ATTACH-FAILFAST SURVIVES VERBATIM FOR THE GENERAL POPULATION and that survival is part of this requirement rather than a side note: the guard stops a real historical infinite-blank hang for every endpoint whose broker dance would end on a dead resolve, and the engine room is the one class whose dance does NOT end there — it would bring the seat up — so the guard's population was simply never narrowed to exclude the endpoint that has a revival path. Deleting the guard, or widening the exemption past (engine-room class AND a code presented), rebuilds that hang. THE ROW VALUE IS THE DISCRIMINATOR EVERY TEST MUST CARRY EXPLICITLY (hertz's one-field falsifier, ruled binding): a fixture whose `status` row happens to be ABSENT passes against this defect and proves nothing, so both arms — row PRESENT and offline, and the same fixture with the row cleared and nothing else changed — must be asserted, and they must reach the same outcome. RIDER, SAME LANE: every refusal arm reachable by the engine-room class names the ceremony surface (`spt rc <id>`, which prompts for a member-or-admin code) as its remediation, never `spt endpoint run` — that verb is not the engine room's entry surface and the reserved-id refusal already turns it away, so the printed line sends the operator (or a reasoning agent, which will invent a route from a bare no) at the wrong door. The zombie arm carries the same class-correctness bug and is swept with it. Gate: doc — the CONTEXT.md engine-room lifecycle sentence (a harness exit leaves the endpoint cleanly offline and re-bringable through the same TOTP gate), ratified 2026-08-04 and tagged rather than re-authored; impl — the narrowed gate and the two class-correct refusal remediations; unit — the gate table carrying the row value EXPLICITLY in both arms (engine room + code reaches the bring-up dispatch with the offline row present, and again with it cleared), the general population still fast-failing on an offline row (a non-engine-room endpoint, and the engine room WITHOUT a code — the code-less reconnect re-drive must not ratchet the attempt ledger), and each swept refusal naming the ceremony surface rather than `endpoint run`.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7878368Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7878616Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7878865Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7879189Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7879433Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7879680Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7879928Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7880185Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7880441Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7880687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7880959Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7881211Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7881455Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7881704Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7881946Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7882198Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7882455Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7882808Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7883050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7883345Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7883603Z               "line": 1156
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7883844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7884088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7884375Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7884627Z               "line": 1175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7884876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7885118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7885404Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7885666Z               "line": 1199
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7885910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7886152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7886482Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7886772Z               "line": 2393
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7890651Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7890916Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7891161Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7891410Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7891691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7891954Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7892201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7892550Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7892811Z               "line": 1698
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7893054Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7893302Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7893549Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7893795Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7894057Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7894314Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7894558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7894844Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7895097Z               "line": 3659
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7895403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7895655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7895931Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7896192Z               "line": 3705
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7896436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7896683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7896969Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7897380Z               "line": 3730
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7897633Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7897880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7898123Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7898362Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7898604Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7898844Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7899217Z       "id": "REQ-ER-PURGE-RESETS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7903251Z       "title": "`endpoint purge` against the engine room RESETS it rather than deleting it, and requires OS elevation to do so (ADR-0052 decision 4). Reset-not-delete is what keeps 'one engine room per node' structural: a node from which the engine room can be deleted is a node that can be left with no governance surface at all, and the recovery path would then be a create verb — the very thing REQ-ER-RESERVED-ENDPOINT removes. Elevation is the right gate HERE (unlike bring-up, REQ-ER-BRINGUP-TOTP-GATE) because the ceremony sets node-scope facts — the home subnet and the bound harness adapter — and because it must work at bootstrap, when the node holds no subnet material to prove a TOTP against. The reset is the ONLY way to change either fact. Gate: doc — ADR-0052 decision 4; impl — the engine-room arm of the purge path, its elevation requirement, and the reset outcome distinct from the delete outcome; unit — the purge decision table (engine room plus elevation yields reset, engine room unelevated refuses, an ordinary endpoint is unaffected) and a reset record retaining its reserved identity.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7903533Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7903778Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7904023Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7904273Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7904522Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7904770Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7905018Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7905280Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7905537Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7905890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7906238Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7906500Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7906752Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7906996Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7907243Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7907496Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7907758Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7908016Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7908260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7908575Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7908837Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7909168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7909418Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7909733Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7909987Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7910240Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7910483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7910793Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7911060Z               "line": 226
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7911312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7911550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7911842Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7912097Z               "line": 24337
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7912338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7912581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7912863Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7913121Z               "line": 24346
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7913364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7913607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7913888Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7914150Z               "line": 24399
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7914395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7914640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7914943Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7915200Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7915448Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7915697Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7915936Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7916183Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7916547Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7916808Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7917051Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7917294Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7917561Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7917818Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7918061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7918347Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7918605Z               "line": 26820
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7918848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7919177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7919464Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7919724Z               "line": 26852
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7919969Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7920208Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7920452Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7920695Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7920941Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7921181Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7921462Z       "id": "REQ-ER-RC-INTENT-LOCKS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7926172Z       "title": "The engine room's attach surface is locked by INTENT: rc --view is denied even same-node, remote attach of any intent is denied, and local --take is allowed (ADR-0052 decision 3). Viewing is denied because a read-only spectator on the surface that renders access rulesets is an information leak with no operator benefit — and because the same-node loopback allow precedes the resolution chain, this must be an explicit engine-room carve-out rather than a rule row that the loopback shortcut would skip past. Local take is allowed on two grounds, neither of them the original 'it forces a harness restart' (it does not — a take is a broker lease displacement and restarts nothing): the displacing controller must pass the same bring-up gate the incumbent passed, so a take is a gate attempt and is bounded by the same ledger (REQ-ER-BRINGUP-ATTEMPT-BOUND); and the displacement is LOUD, so an incumbent human cannot be silently unseated. Gate: doc — ADR-0052 decision 3 and the section 3a amendment; impl — the intent-keyed engine-room carve-out ahead of the chain, the remote-attach refusal, and the take path's gate pass plus empowerment revocation; unit — same-node view denied, remote attach denied for every intent, local take admitted only after a gate pass, and a take revoking empowerments.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7926557Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7926802Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7927048Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7927296Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7927539Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7927789Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7928030Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7928292Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7928544Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7928788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7929216Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7929489Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7929737Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7929986Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7930236Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7930482Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7930750Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7931002Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7931245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7931550Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7931807Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7932051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7932294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7932595Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7932848Z               "line": 1630
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7933103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7933340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7933654Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7933912Z               "line": 3050
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7934155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7934412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7934722Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7935086Z               "line": 422
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7935328Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7935580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7935860Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7936122Z               "line": 1239
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7936364Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7936607Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7936851Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7937099Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7937366Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7937618Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7937861Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7938113Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7938373Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7938623Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7938866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7939258Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7939519Z               "line": 1051
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7939772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7940015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7940335Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7940589Z               "line": 14975
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7940834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7941080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7941390Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7941647Z               "line": 1052
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7941891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7942140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7942415Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7942678Z               "line": 3829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7942920Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7943169Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7943408Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7943653Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7943900Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7944139Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7944425Z       "id": "REQ-ER-RESERVED-ENDPOINT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7948627Z       "title": "A node has exactly ONE engine-room endpoint, and 'exactly one' is STRUCTURAL rather than policed: the engine room lives at a reserved per-node endpoint id, so a second one cannot be created any more than a directory can hold two entries of the same name (ADR-0052 decision 1). It is an ordinary agent endpoint in substrate — harness-adapter-backed, spt-hosted, minded, so it can be briefed on and reason about the node's access posture — and an extraordinary one in lifecycle: its home subnet and its bound harness adapter are settable ONLY through the create/reset ceremony (REQ-ER-PURGE-RESETS), never by an ordinary endpoint edit. Creation IS that ceremony run against an empty record — one code path, so a creation that skipped a lock a reset applies cannot exist. Gate: doc — ADR-0052 decision 1 and the CONTEXT.md engine-room entry; impl — the reserved id, the engine-room record with its home subnet and bound adapter, and the single create/reset code path; unit — the reserved id resolves to at most one record, creation and reset run the same path, and an ordinary endpoint mutation cannot change the bound adapter or home subnet.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7948919Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7949246Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7949493Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7949736Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7949975Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7950223Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7950471Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7950728Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7950980Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7951223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7951573Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7951827Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7952070Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7952312Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7952555Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7952809Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7953066Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7953319Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7953571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7953983Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7954237Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7954479Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7954722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7955032Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7955285Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7955528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7955776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7956081Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7956338Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7956583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7956828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7957126Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7957378Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7957623Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7957862Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7958104Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7958356Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7958619Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7958881Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7959201Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7959450Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7959705Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7959962Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7960201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7960512Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7960769Z               "line": 843
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7961012Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7961259Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7961502Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7961751Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7961993Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7962238Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7962538Z       "id": "REQ-ER-RESERVED-ID-SPAWN-REFUSAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7972980Z       "title": "THE ENGINE ROOM'S ID IS RESERVED AT EVERY VERB THAT MINTS AN IDENTITY, and this is a BYPASS rather than a naming nit (ruled): `spt endpoint run engine-room` mints the engine-room identity and hosts a session under it WITHOUT EVER PASSING THE TOTP GATE, because the gate guards the ATTACH and not the NAME. An agent on the box that can spawn the reserved id owns the surface that sets the node's access posture, which is precisely the authority the bring-up ceremony exists to price. Every spawn-family verb therefore refuses the reserved id outright and NAMES `spt rc engine-room` AS THE ONLY ENTRY, so the refusal teaches the correct path instead of inviting a workaround — a reasoning agent told only 'no' invents a route, which is the prescribe-then-mislead lesson turned around. THE REFUSAL GETS A CANARY UNIT PER SITE, and that is required evidence rather than diligence: a capability limit that lives only in prose or only in a prompt is not a limit, and the canary is what makes the prohibition tool-layer-enforced (the standing lesson from the strike-and-amend class). THE FAMILY IS WIDER THAN THE VERB THE REPORT NAMED, and enumerating it is part of the requirement because a refusal at one door with the rest left open reads as closed while remaining open: the direct `endpoint run` path; the interactive picker's create-new entry, which never passes through that path's arguments; the `--save` startup default, which PERSISTS a bypass that then replays with no gate at every daemon start, so it is refused at save AND skipped loudly at replay; and the identity-minting listener verb, which binds the reserved id to a perch with no harness and no gate at all — IN because the stated harm is minting the identity without the gate, and the engine room has exactly ONE entry, its bring-up. THE FAMILY CLOSES BY ENUMERATION RATHER THAN BY THE SITES ANYONE HAPPENED TO NAME: the whole id-minting and spawn-dispatch surface is swept before the refusals are written and the site COUNT is reported with the refusal list, so a site that exists but was not thought of fails the sweep rather than shipping open. A site that cannot refuse is named in the evidence rather than left silent. THE PERSISTED-DEFAULT ARM CARRIES ITS OWN ROW, because a record written BEFORE this fix already exists on real nodes: refusing at save alone leaves those replaying ungated at every daemon start, so the replay arm must skip a pre-existing reserved-id default loudly and be tested against one. Gate: doc — the reference help for the refusing verbs and the engine-room guide's entry sentence; impl — the reserved-id refusal at every enumerated site, each naming `spt rc engine-room`; unit — a canary per site asserting the reserved id is refused and NOTHING is minted, spawned, persisted or replayed, that the refusal names the bring-up entry, that a PRE-EXISTING persisted reserved-id default is skipped loudly at replay, and that an ordinary id is unaffected at the same site.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7973380Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7973629Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7973872Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7974115Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7974358Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7974610Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7974873Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7975141Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7975382Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7975632Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7975890Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7976143Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7976387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7976706Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7976962Z               "line": 99
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7977206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7977454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7977759Z               "path": "crates/spt-daemon/src/forkop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7978015Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7978256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7978499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7978800Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7979133Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7979381Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7979725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7980043Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7980302Z               "line": 728
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7980551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7980796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7981111Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7981368Z               "line": 781
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7981612Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7981856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7982166Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7982428Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7982670Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7982913Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7983221Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7983473Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7983716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7983959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7984259Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7984522Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7984765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7985009Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7985309Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7985566Z               "line": 923
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7985804Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7986046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7986345Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7986602Z               "line": 1113
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7986840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7987084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7987370Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7987628Z               "line": 4017
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7987876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7988114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7988394Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7988650Z               "line": 4173
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7988897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7989227Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7989513Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7989871Z               "line": 4526
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7990118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7990360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7990643Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7990900Z               "line": 23995
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7991139Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7991380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7991676Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7991938Z               "line": 1028
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7992177Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7992416Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7992658Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7992901Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7993168Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7993422Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7993663Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7994024Z               "path": "crates/spt/tests/bind_adapter_profile_persist_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7994290Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7994533Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7994781Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7995025Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7995264Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7995579Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7995840Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7996083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7996392Z               "path": "crates/spt-daemon/src/autostart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7996648Z               "line": 333
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7996896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7997138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7997443Z               "path": "crates/spt-daemon/src/forkop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7997706Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7997944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7998188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7998480Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7998732Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7999164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7999410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7999729Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.7999986Z               "line": 2367
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8000239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8000483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8000793Z               "path": "crates/spt-store/src/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8001051Z               "line": 875
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8001298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8001541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8001850Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8002108Z               "line": 886
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8002356Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8002599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8002899Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8003160Z               "line": 912
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8003399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8003644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8003945Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8004213Z               "line": 2332
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8004459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8004707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8005003Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8005256Z               "line": 2386
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8005505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8005747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8006028Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8006285Z               "line": 3098
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8006529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8006773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8007052Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8007312Z               "line": 3216
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8007556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8007804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8008104Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8008361Z               "line": 1752
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8008604Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8008852Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8009181Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8009416Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8009761Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8010003Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8010294Z       "id": "REQ-ER-ROLE-STATIC-IMMUTABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8019585Z       "title": "The engine room's role is a STATIC, IMMUTABLE value served from core — its seat line, its rule-tier semantics, its control-surface vocabulary and its discipline — and it has NO WRITER AT ALL (releases#179, greenlit; doyle rulings 2026-08-19 in the KEYSTONE #182 W3 lane; the ratified first-output skeleton is releases#165). Every other endpoint’s role is durable identity authored by its owner and carried by tracked/agents/<id>/live-role.md; the engine room is the degenerate case, because its seat is minted by the node rather than chosen by a person, so there is nothing for an owner to author and a per-session writer would race the role editor and push session weather into the mind's durable substrate. Serving it from core is what makes IMMUTABLE a property of the system rather than a promise: BOTH readers of role text — the resume path’s <live-role> emission and the bare-read CLI arm — serve the core value for engine-room, so an on-disk live-role.md planted for that id is ignored dead weight and is never consulted, and the sole writer (the --overwrite arm) REFUSES engine-room loudly, naming the in-core role as the reason. The carrier is a FUNCTION and not a const, and that is load-bearing rather than stylistic: a const cannot call the shared surface composer, so a const role would have to hardcode the surface list — the exact defect REQ-ER-BRIEFING-SURFACE-VOCAB refuses — while a function is still a static value in the sense #179 asks for (no store read, no writer, no per-session input, deterministic output). The role is also PROGRAM TEXT: it prescribes verbs, so every verb it prescribes is walked against the clap grammar over its WHOLE span, re-derived rather than sampled. Gate: doc — the ratified ER skeleton artifact landed under docs/ and the CONTEXT.md engine-room entry stating the role is served from core and has no writer; impl — the in-core role composer building its control-surface section from the shared table composer, both readers serving it for engine-room, the --overwrite refusal, and the briefing composer reduced to per-session facts; unit — the grammar walk over the whole role text, both readers serving the core value while IGNORING a planted on-disk live-role.md for engine-room, --overwrite refusing engine-room with a non-ER-succeeds discriminator, and both skeleton-amendment controls (a panic arm for the kept-ellipsis fault and a PRESENCE arm for the silently unwalked continuation cell, because a silent hole walks clean past a panic expectation and the two faults cannot share one control); int — an engine-room bring-up serving the in-core role, declared first-execution.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8019981Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8020232Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8020481Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8020725Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8020964Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8021222Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8021464Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8021716Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8021975Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8022227Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8022481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8022753Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8023008Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8023256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8023509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8023791Z               "path": "docs/ER-SKELETON.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8024038Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8024285Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8024524Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8024768Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8025016Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8025281Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8025532Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8025781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8026085Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8026443Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8026691Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8026929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8027235Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8027491Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8027739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8027978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8028272Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8028523Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8028766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8029099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8029395Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8029648Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8029892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8030136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8030426Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8030686Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8030928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8031172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8031462Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8031719Z               "line": 5452
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8031962Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8032200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8032482Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8032735Z               "line": 5474
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8032978Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8033221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8033502Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8033760Z               "line": 5523
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8033997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8034240Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8034474Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8034722Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8034976Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8035228Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8035475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8035922Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8036197Z               "line": 1807
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8036440Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8036679Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8036917Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8037165Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8037422Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8037675Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8037918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8038214Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8038468Z               "line": 329
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8038713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8039039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8039335Z               "path": "crates/spt-store/src/erole.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8039593Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8039837Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8040076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8040361Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8040623Z               "line": 28795
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8040875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8041124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8041422Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8041674Z               "line": 28824
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8041916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8042160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8042446Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8042704Z               "line": 37272
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8042948Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8043190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8043466Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8043724Z               "line": 37314
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8043963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8044204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8044486Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8044743Z               "line": 37357
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8044982Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8045226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8045511Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8045768Z               "line": 37370
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8046112Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8046359Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8046600Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8046838Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8047071Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8047314Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8047591Z       "id": "REQ-ER-RULESET-NODE-NAMES",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8054341Z       "title": "A node subject in a ruleset row renders the node's NAME (`node:ENLYZEAM`), not its pubkey hex — the second half of releases#210's unreadability (the first is the table shape, REQ-ER-RULESET-TABLE). Resolution goes through an INJECTED resolver `Fn(&str) -> Option<String>` on the ruleset-rows seam (the `derive_attached_node` precedent): the store crate holds no registry edge, and a render provable with no filesystem, no node and no gossip is worth more than one that reaches for a name itself. Consumers supply the real lookup — this node's own subnet rosters and hostname, layered under the gossiped registry labels the picker and `endpoint list` already render from, so every view on a box names a node the same way. DEGRADE (ruled, doyle 2026-08-21): an unresolvable node renders the FULL 64-hex — never an error, never blank, and never a truncation, because a truncated hash is the filed defect itself. A whitespace-only label has not answered and degrades identically. The JSON keeps the IDENTITY: `subject` stays the full hex and the resolved name rides beside it as an ADDITIVE field, omitted rather than null when unresolved — a machine keys on the pubkey and a label is not a key (the human/JSON asymmetry rule releases#206 paid for). Row ORDER follows the identity, never the name: the table is diffed across postures, and a label arriving or going away must not reorder the grid. Gate: doc — the CONTEXT.md engine-room ruleset sentence and the access-viewing drill-down section; impl — the resolver seam on the rows builder, the subject render, and the two consumers' real resolvers; unit — a resolved subject renders the name with the hex absent from the cell, an unresolvable one keeps the full untruncated hex, a blank label degrades, only node subjects resolve, the JSON keeps the hex and carries the name additively (omitted when absent), and naming does not reorder rows.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8054774Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8055021Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8055265Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8055509Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8055747Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8055999Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8056243Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8056505Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8056763Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8057005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8057278Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8057531Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8057775Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8058024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8058362Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8058624Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8058885Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8059215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8059559Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8059819Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8060060Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8060304Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8060547Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8060793Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8061051Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8061309Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8061548Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8061854Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8062121Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8062362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8062603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8062899Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8063161Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8063409Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8063651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8064058Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8064314Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8064558Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8064801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8065111Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8065367Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8065610Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8065854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8066159Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8066421Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8066661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8066903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8067227Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8067512Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8067753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8068007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8068316Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8068579Z               "line": 20411
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8068841Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8069174Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8069431Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8069675Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8069941Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8070196Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8070450Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8070696Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8070958Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8071212Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8071456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8071765Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8072022Z               "line": 1035
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8072274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8072522Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8072837Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8073093Z               "line": 1053
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8073478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8073726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8074050Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8074313Z               "line": 1074
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8074565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8074817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8075128Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8075384Z               "line": 1091
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8075634Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8075879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8076189Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8076451Z               "line": 1136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8076700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8076953Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8077259Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8077521Z               "line": 1160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8077773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8078015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8078332Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8078591Z               "line": 1199
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8078852Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8079176Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8079425Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8079667Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8079915Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8080163Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8080446Z       "id": "REQ-ER-RULESET-TABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8086978Z       "title": "The engine room presents access rulesets as TABLES (ADR-0052 decision 3). The rendering is a requirement rather than a nicety because the operator decision this surface exists to support — is this node's posture what I think it is — is a comparison across subjects, surfaces and tiers, and prose forces a human to hold that grid in their head while an agent narrates it to them. A table also makes an omission visible: a row that should be there and is not is legible in a grid and invisible in a paragraph. It rides the same briefing message the session opens with (REQ-ER-SESSION-BRIEFING) and the same renderer serves an on-demand ruleset request. Gate: doc — ADR-0052 decision 3's table clause; impl — the ruleset table renderer used by the briefing and by an on-demand request; unit — the renderer emits one row per rule with subject, surface, tier and decision, renders an empty ruleset as an explicit empty table rather than silence, and is stable enough to diff across two postures. AMENDED releases#210 (doyle ruling 2026-08-21): the rendering is a MARKDOWN pipe table with space-padded cells — valid markdown in the chat surface an agent relays it through AND still column-aligned in a terminal, so the one renderer serves both consumers (the briefing and the drill-down view) and the grid cannot fork into two spellings. A space-aligned grid is reflowed into a run-on by the surface a human actually reads it on, which is the defect: the table stopped being a table in transit. Cell content is escaped at the row edge so a value containing a pipe cannot silently stop the grid from being a grid. Unit additionally: the header, the separator row that makes it a markdown table, one pipe-delimited row per rule with a fixed cell count, the empty case still explicit, and the pipe-bearing cell.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8087270Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8087523Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8087771Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8088018Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8088294Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8088546Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8088798Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8089146Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8089412Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8089660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8089936Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8090203Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8090447Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8090695Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8091033Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8091395Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8091647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8091893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8092261Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8092518Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8092770Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8093013Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8093261Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8093510Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8093767Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8094032Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8094292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8094603Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8094861Z               "line": 2323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8095114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8095404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8095718Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8095980Z               "line": 2361
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8096233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8096495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8096805Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8097072Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8097329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8097581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8097900Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8098173Z               "line": 381
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8098421Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8098674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8099064Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8099321Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8099576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8099824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8100133Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8100396Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8100644Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8100898Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8101145Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8101392Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8101669Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8101927Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8102281Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8102534Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8102797Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8103053Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8103325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8103640Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8103921Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8104164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8104423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8104750Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8105039Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8105291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8105558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8105877Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8106159Z               "line": 1013
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8106416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8106670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8106985Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8107252Z               "line": 1176
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8112078Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8112359Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8112619Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8112865Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8113113Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8113367Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8113662Z       "id": "REQ-ER-SEQUESTERED-CWD",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8130283Z       "title": "THE ENGINE ROOM LAUNCHES FROM A SEQUESTERED DIRECTORY OF ITS OWN, NEVER FROM WHEREVER A CALLER HAPPENED TO STAND (releases#178, operator-requested; doyle's four rulings 2026-08-19). The engine room governs the NODE and is not a participant in any user project, so inheriting a caller's cwd gave it an identity it should never have had: the recorded `info.cwd` is not an inert stamp but the anchor the context store routes its project tier from, the registry gossips project ids from, and the picker offers resume rows from — so an ordinary bring-up from a developer's checkout silently enrolled the node's governance surface as a member of that project. Its cwd is `$SPT_HOME/engineroom/cwd`, provisioned empty. IT IS DELIBERATELY NOT INSIDE THE OWLERY: a foreign directory sitting in the perch store risks reading as a ghost perch to any enumerator, which is a worse defect than the one being fixed. THE CWD IS FORCED, AND FORCED AT THE RESOLUTION SEAM RATHER THAN ONLY AT THE CALL: passing the directory at the spawn site is a declare-site fix, and a declare-site fix is not an enforce-site fix (the manifest `role.cwd` arm wins over a caller default by design), so for the reserved engine-room id the sequestered directory beats BOTH the caller's `spawn_cwd` and a manifest-declared `role.cwd`. A manifest that declares one is IGNORED LOUDLY — one log line naming the rule — and NEVER refused a bring-up: the operator must not be locked out of the room over a cwd, and an unstated deliberate override is indistinguishable from a bug to the next reader. THE ROUTING PREDICATE IS WIDENED FROM ITS SPELLING TO ITS MEANING: `is_owlery_internal` says owlery but asks 'is this a real user project?', and a cwd under `$SPT_HOME` but outside the owlery minting a synced `p-<dir>` project was junk-in-waiting independent of this change. Every consumer was walked before the widening (the condition on it): the context-store project routing, the psyche-notification routing, the registry's GOSSIPED project list, the shared `projderive` history kernel behind both the picker and the daemon's materialized index, and the picker's resume-row drop — ALL FIVE ask the same question and every one of them would be wrong to route, advertise or offer a sequestered engine-room cwd, so the predicate is widened in place rather than split in two, and the two duplicate copies of the normalize-and-prefix test are collapsed onto the one kernel in the same touch so they cannot drift apart afterwards. THE WIDENING IS MONOTONE — the owlery is a subdirectory of `$SPT_HOME`, so the new base is a strict superset and nothing previously excluded becomes included — which is what keeps ADR-0037 section 4's rendered-parity promise true for every real user project. DECLARED CHANGE, NOT A SIDE EFFECT: a project kept UNDER `$SPT_HOME` stops being routed into the synced backup/migrate set, stops being gossiped, and stops being offered as a resume row. READ-ONLY IS POLICY, HONESTLY LABELLED AS SUCH: the directory is provisioned empty and never written, and that is asserted by test — a same-user Windows ACL cannot enforce write-denial against a child running as the same user, and pretending otherwise would ship a guarantee the platform does not make; hard enforcement by integrity level or a separate token is its own future item and is deliberately NOT folded in. DECLARED RESIDUAL: the engine room is drop-less, so no relative drop-dir or commune-dir resolution work rides here; if a future feature gives the engine room file drops, THAT feature owns pinning them absolute, because a relative drop resolving against a never-written directory is the same failure class REQ-ECHO-DROP-DIR-RESOLVE already closed once. Gate: impl — the single-source path for the sequestered directory, its provisioning, the spawn site passing it, the reserved-id guard at the resolution seam with its loud ignore line, and the widened predicate repointed at every one of the five call sites; unit — the routing decision table written out in BOTH directions (an owlery-internal cwd routes no project, a `$SPT_HOME`-internal cwd OUTSIDE the owlery routes no project — the new row — and a genuine external directory still mints its `p-<dir>`), plus the resolution table proving the guard is engine-room-shaped rather than global (a declared `role.cwd` LOSES for the reserved id and still WINS for every other endpoint); int — a real bring-up launching in the sequestered directory, with NOTHING written into it across a full bring-up and briefing cycle, which is one assertion serving as both the drop-less witness and the read-only-policy witness.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8130777Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8131038Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8131304Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8131561Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8131804Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8132062Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8132311Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8132582Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8132850Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8133096Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8133349Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8133612Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8133878Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8134124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8134467Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8134728Z               "line": 6621
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8134986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8135229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8135558Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8135821Z               "line": 386
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8136084Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8136329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8136656Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8136923Z               "line": 1762
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8137172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8137424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8137753Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8138017Z               "line": 1048
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8138269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8138521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8138836Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8139230Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8139506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8139750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8140070Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8140328Z               "line": 827
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8140585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8140848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8141148Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8141523Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8141778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8142025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8142326Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8142594Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8142842Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8143095Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8143346Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8143595Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8143866Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8144130Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8144381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8144712Z               "path": "crates/spt/tests/er_sequestered_cwd_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8144983Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8145226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8145481Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8145733Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8145986Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8146257Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8146514Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8146771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8147088Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8147356Z               "line": 3250
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8147604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8147855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8148185Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8148447Z               "line": 1341
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8148704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8149057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8149396Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8149671Z               "line": 1284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8149930Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8150177Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8150420Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8150672Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8150916Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8151169Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8151564Z       "id": "REQ-ER-SESSION-BRIEFING",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8165039Z       "title": "Every engine-room session opens with a system-authored briefing message stating the node's exact current access posture, any pending advisory-gossip deltas, the current ruleset, the session's empowerment with its spendable verbs (empower, access-refresh), and the seat-authority statements (one-seat lifetime, no cross-node reach, no unchosen advertisement) (ADR-0052 decision 3 and decision 6; doyle ruling (e) 2026-07-29). AMENDED BY REPLACEMENT in the KEYSTONE #182 W3 lane (doyle ruling on releases#179, 2026-08-19): capabilities and responsibilities LEFT this requirement and became the engine room's durable in-core role (REQ-ER-ROLE-STATIC-IMMUTABLE), because they are static facts about the seat rather than per-session weather. The replacement is recorded here rather than annotated because a partition ruling falsifies the requirement's own ratified sentence, not just the code beneath it — a refactor UNDER a requirement is a different act from one that makes its sentence false. What stays is the per-session half: a minded governance surface is only as good as what it knows at the moment it acts, and posture is per-session state — which is why the briefing is a message spooled at bring-up under a reserved system author, NOT the endpoint's durable role text. THE BRIEFING WRITES NO ROLE TEXT: that pin is unchanged and is more load-bearing after the partition, not less, since the engine room's role now has no writer at all. The message spool is already core-side, harness-independent data that any adapter renders as ordinary inbound, so the briefing needs no harness-specific cooperation — the boundary rule holds by construction. EXTENDED for releases#177 (doyle dispatch 2026-08-19): the cadence this sentence always named is now enforced at the ENQUEUE seam — a session opens with a briefing ONCE, not once per seat-taking attach. The endpoint keeps running between attachments, so the pre-#177 product re-briefed a human who detached and came back to the SAME live session with a posture statement they had already read; \"every session opens with a briefing\" was true of the first attach and false as a cadence. A FRESH session — a new bring-up, or a daemon restart that re-hosts one — briefs exactly as before, which is why the bound lives on the broker's per-session log rather than in an on-disk last-briefed record: such a record would keep suppressing across a daemon restart whenever the harness outlived the broker and kept its session id, silencing the one case that must still brief. CONDITION IS NOT CADENCE: nothing here changes what a briefing says or when one is composed. The bound is on the ENQUEUE ALONE and never on delivery — REQ-ER-BRIEFING-PRESENTED clause 4 rules that a briefing whose presentation missed is retained and re-offered at the next seat-taking attach, so gating the presentation call on \"did this seat enqueue\" would fix #177 by re-breaking #164. Gate: doc — ADR-0052 decision 3's briefing clause and the CONTEXT.md engine-room entry; impl — the briefing composer reduced to per-session facts, spooling at bring-up under a reserved system author; unit — bring-up spools exactly one briefing carrying current posture, pending gossip deltas, the ruleset, the session's empowerment with its spendable verbs and the seat-authority statements, and no role text is written, AND a second seat-taking attach on the same session spools no second briefing while the first one still lands in that same run (the positive control that keeps the green from being a green nothing could red); int — a real second seat on a running engine-room session, pinned to be the same session by its session id, adds no briefing row.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8165386Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8165646Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8165899Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8166152Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8166399Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8166647Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8166895Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8167257Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8167529Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8167788Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8168048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8168321Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8168589Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8168833Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8169204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8169609Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8169881Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8170129Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8170373Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8170627Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8170886Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8171158Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8171421Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8171674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8171998Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8172265Z               "line": 1055
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8172528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8172779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8173098Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8173363Z               "line": 2322
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8173621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8173869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8174184Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8174456Z               "line": 2360
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8174702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8174951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8175265Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8175528Z               "line": 2402
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8175777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8176027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8176334Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8176606Z               "line": 2448
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8176864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8177117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8177436Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8177704Z               "line": 2486
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8178076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8178329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8178651Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8178916Z               "line": 483
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8179264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8179530Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8179845Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8180112Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8180361Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8180614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8180929Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8181206Z               "line": 630
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8181451Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8181704Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8181962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8182215Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8182487Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8182754Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8183015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8183378Z               "path": "crates/spt/tests/er_brief_once_per_session_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8183644Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8183899Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8184152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8184495Z               "path": "crates/spt/tests/er_briefing_presented_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8184758Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8185011Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8185267Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8185515Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8185763Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8186031Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8186299Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8186544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8186861Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8187124Z               "line": 13473
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8187377Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8187735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8188054Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8188325Z               "line": 13755
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8188574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8188827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8189225Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8189543Z               "line": 739
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8189810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8190062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8190367Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8190634Z               "line": 744
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8190878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8191127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8191451Z               "path": "crates/spt-store/src/briefing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8191704Z               "line": 828
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8191959Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8192202Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8192451Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8192694Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8192955Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8193194Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8193490Z       "id": "REQ-EVENT-ATTR-PASSTHROUGH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8200884Z       "title": "THE EVENT ENVELOPE'S SENDER-AUTHORED ATTRIBUTE SET IS OPEN, AND THE PUBLISHED CONTRACT STATES THE CLASS RULE, NOT ONLY PER-ATTR OBLIGATIONS: any consumer that re-renders deliveries (adapter pipeline, digest, relay surface) MUST pass through every envelope attribute it does not itself consume — re-emitting from a fixed allowlist of known names silently deletes every attribute added after the list was written (measured 3x in the field; 3rd recurrence was an adapter render keeping only from+body, deleting the seal citation), and the deletion is invisible at the dropping site because nothing there names what it dropped. The ONLY closed list is the receiver-composed STRIP class (trust-warning, mnemonics-json) — a strip list, never a render list. MIRROR SAFETY CLAUSE: a passed-through value stays IN ATTRIBUTE POSITION with its wire escaping intact — unescaping an attribute value into body/frame context hands a hostile sender a forgery seam (a crafted value closes the re-rendered tag and lands text at the consumer's frame level); decode only where the final consumer parses attributes. CONSUME IS DEFINED, NOT LEFT TO THE READER (perri's discriminating question, 2026-08-25): a pipeline consumes an attribute when its handling RE-EXPRESSES the value's distinction to the agent (content re-rendered into its own surface, or a dispatch whose agent-visible outcome differs per value); reading-then-emitting-shared-output is peeking, and the DROP TEST decides — if omitting the attr makes two sender-distinct deliveries indistinguishable at the agent surface, it rides. NAMES ARE TOKENS: grammar [a-z0-9_-]+, hostile-reachable (envelopes arrive from peer NODES), pass through only a grammar-matching name, refuse/drop loudly anything else in tag position. Gate: doc — the overview.md wire-contract clause stating the pass-through obligation, the consume definition + drop test, the name-token grammar rule, and the escaping-position rule.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8201194Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8201452Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8201701Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8201954Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8202201Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8202471Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8202725Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8202973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8203297Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8203564Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8203811Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8204059Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8204308Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8204566Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8204835Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8205095Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8205348Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8205597Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8205864Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8206231Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8206470Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8206726Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8207003Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8207264Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8207509Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8207760Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8208005Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8208258Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8208549Z       "id": "REQ-FIXTURE-BIN-BUILD-EDGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8227732Z       "title": "IR-21 remedy (c), ENFORCED FORM: every test consumer of a fixture `[[bin]]` is CLASSIFIED by whether that bin's build is guaranteed, by a check anyone gating can run, rather than by whoever remembers the rule. THE MECHANISM, measured 2026-08-03 and NOT the one the class was originally filed on: cargo builds EVERY bin target of a package whenever it builds ANY integration test of that package, so a SAME-PACKAGE INTEGRATION consumer is already guaranteed and `env!(\"CARGO_BIN_EXE_*\")` adds NO edge there -- the first remedy claim to the contrary was measured FALSE and the register entry was corrected. The real exposure is CROSS-PACKAGE consumers and SAME-PACKAGE UNIT tests, which get no `CARGO_BIN_EXE_*` at all; that unit member (`crates/spt/src/cli.rs`, resolving `format!(\"translate_proof_fixture{EXE_SUFFIX}\")` relative to `current_exe()`) is exactly why `.github/workflows/ci.yml:105-106` hand-prebuilds that fixture. THE CHECK READS THE DEPENDENCY SITUATION, NOT THE EXPRESSION -- owning package, consuming package, target kind -- so it classifies an UNCONVERTED tree correctly and stays true after any consumer is rewritten; that property is what makes it adoptable independently of the sibling_bin->CARGO_BIN_EXE_ conversion lane. FOUR SYNTAXES NAME A FIXTURE BIN and all four are detected: `sibling_bin(\"n\")`, `CARGO_BIN_EXE_n`, the shared resolver `fixture_bin(\"n\", \"cargo build ...\")` (crates/spt-term/tests/support/fixture_bin.rs), and the `current_exe()`-relative `format!(\"n{...}\")`. A TWO-SYNTAX DETECTOR IS THE FAILURE MODE THIS REQUIREMENT EXISTS OVER: the first prototype knew two, missed seven sites including that unit member, and therefore returned a GREEN over the single gap the class was filed for -- a zero from a tool that could not see the known-real case. Population at 6d291e0: 185 consumer sites, 146 guaranteed, 39 needing an explicit build, 11 with no prebuild anywhere. THE 11 ARE NOT CI DEFECTS: a per-job mapping showed every narrow cargo invocation in CI is covered by its own job (prebuild or an earlier workspace-shaped build), so the exposure is narrow invocations OUTSIDE CI -- gate rigs and local `-p`/`--test`/`--bins` against a cold pool -- which is why the check ships as a runnable command and is deliberately NOT wired into `xtask check`: it exits 1 on today's tree and wiring it would red the docs gate over a hazard that is not a CI defect -- a gate that reds on a population of known non-defects gets ignored or gets its teeth pulled, and either way the next REAL member arrives into a check nobody reads (doyle ruling, 2026-08-03). THE WIRING CONDITION IS THEREFORE A COMMITTED BURN-DOWN BASELINE, NOT FIXING ALL 39 FIRST, and it ships here so the choice to wire is a one-line decision later rather than a second design problem: `--baseline` reds ONLY on a site absent from `crates/xtask/binedge-baseline.tsv`, exits 0 against today's recorded 11, and REPORTS recorded entries that are gone so the list shrinks instead of ossifying into a permitted-forever set nobody prunes. Baseline keys are `(file, bin)` and deliberately NOT line numbers, which churn on every edit above them and would make the file merge noise; the trade is named -- a SECOND red site for the same bin in an already-listed file is absorbed. TWO CONTROLS SHIP WITH IT RATHER THAN LIVING IN A RUNBOOK. `--no-prebuilds` empties the CI allowlist and must take the reds 11 -> 39 while the 146 cargo-guaranteed sites stay green; a green without that arm carries no information. The false-positive arm asserts the same-package fixture sites are classified guaranteed -- and REFUSES (exit 2) when it recognizes NONE of them, because an arm whose fixtures were renamed away reports `0 wrongly flagged`, which reads exactly like a pass. That arm also filters on target kind, not name alone: it was briefly wrong when a same-package UNIT consumer entered the population and CORRECTLY landed in the flagged set, so a control is a claim about a population and ages with one. Gate: impl -- `crates/xtask/src/binedge.rs` and its `binedge-check` subcommand: the four-syntax scanner over comment-blanked whole text (line comments only; block comments are a NAMED unfixed limit), the guarantee predicate, the nearest-manifest owner resolution, the prebuild-allowlist reader over every tracked file under `.github/` (a prebuild inside a PowerShell CI script guarantees a bin exactly as well as one in a `run:` block), the repo root taken from git IN THE INVOKED TREE rather than from the compile-time `CARGO_MANIFEST_DIR` (a prebuilt xtask would otherwise measure the tree it was BUILT in, and a verdict about the wrong tree is worse than none), the burn-down baseline with its write/compare/prune arms, and the two control arms; unit -- the guarantee predicate on all three of its wrong directions, the baseline delta reddening only on an unrecorded site while reporting a burned-down one (both asserted together, since a delta of nothing passes either alone), the path-kind reader, nearest-manifest ownership including the not-a-whole-component near miss, all four syntaxes with the line numbers the register already cites as evidence, comment blanking that does not shift the lines below it, the near misses that would each be a phantom site, prebuild detection refusing `--bins` (reading it as `--bin s` would fabricate a guarantee for a bin named `s`), and the false-positive arm's blind case with its refusal condition. PORT FIDELITY IS PART OF THE EVIDENCE: this replaces a python prototype whose numbers the register cites, and it was verified against that prototype site-by-site -- 185 tuples identical, not four summary integers, which can agree by coincidence -- with both run on ONE tree after proving the two candidate trees carried an identical `.rs` population. Kin REQ-XTASK-SPT-BIN-TARGET-DIR (the other xtask tooling defect about looking in the wrong place).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8228156Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8228404Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8228657Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8228899Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8229250Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8229531Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8229818Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8230084Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8230332Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8230584Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8230848Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8231115Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8231365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8231678Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8231935Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8232194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8232446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8232756Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8233028Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8233275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8233528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8233828Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8234095Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8234348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8234600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8234905Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8235167Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8235425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8235673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8235978Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8236237Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8236491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8236738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8237043Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8237423Z               "line": 374
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8237686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8237939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8238239Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8238502Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8238750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8239079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8239387Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8239651Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8239905Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8240153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8240458Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8240716Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8240963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8241211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8241511Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8241774Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8242030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8242291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8242590Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8242857Z               "line": 460
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8243106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8243359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8243664Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8243932Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8244184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8244436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8244740Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8244993Z               "line": 551
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8245246Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8245489Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8245741Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8245994Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8246271Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8246533Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8246777Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8247032Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8247302Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8247569Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8247931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8248241Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8248504Z               "line": 732
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8248762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8249086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8249391Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8249659Z               "line": 759
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8249909Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8250160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8250455Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8250718Z               "line": 799
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8250971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8251223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8251523Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8251786Z               "line": 836
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8252043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8252302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8252605Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8252874Z               "line": 858
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8253127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8253374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8253680Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8253937Z               "line": 881
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8254201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8254449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8254749Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8255010Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8255262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8255511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8255816Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8256083Z               "line": 934
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8256330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8256582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8256878Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8257245Z               "line": 945
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8257498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8257749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8258068Z               "path": "crates/xtask/src/binedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8258325Z               "line": 965
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8258577Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8258825Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8259135Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8259402Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8259651Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8259895Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8260194Z       "id": "REQ-FIXTURE-BIN-PERJOB-DRIFT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8277121Z       "title": "The per-job companion to REQ-FIXTURE-BIN-BUILD-EDGE, and it is a DRIFT GUARD, NOT A FINDER. `xtask perjob-map` walks every CI job step by step and asks, for each narrow cargo invocation, whether the cross-package fixture bins its tests consume were built EARLIER IN THAT JOB -- by an explicit `cargo build -p X --bin B` or by an earlier workspace-shaped build. On this tree the answer is 7 narrow invocations, 0 unguaranteed, which is what establishes that the 11 repo-wide reds are NOT CI defects. THAT ZERO IS A FACT ABOUT TODAY'S WORKFLOWS AND NOTHING MORE, and the requirement says so because the tool's value is entirely in the FUTURE case: the day somebody adds a narrow invocation to a job that does not build what it consumes. A requirement that framed this as proof the class is closed would license deleting it the moment the register entry is written. THE ONE MODELLING TRAP, already paid for once: a workspace-shaped run emits the plain binaries only if it actually builds integration-test targets -- `--workspace` filtered to `-E 'kind(lib) + kind(bin)'` compiles lib/bin harnesses and emits NO plain fixture exe on a clean pool, which is exactly what `ci.yml:102-106` documents and hand-prebuilds around. The first prototype credited it as a builder and returned a GREEN over the one known-real gap; the kind-filter test is therefore a required unit row, not an optional one. THE SCRIPT-BLIND HOLE IS PRINTED IN THE COMMAND'S OWN OUTPUT RATHER THAN FOOTNOTED IN A DOC. The model reads `run:` blocks in workflow YAML; narrow cargo invocations ALSO live inside `.github/ci/*.ps1` and `*.sh`, which those blocks merely invoke, and no `run:` parser can see inside them. Rather than leave that as a limitation somebody has to remember, the scripts are scanned with the SAME detector and every narrow invocation they contain is listed as UNMODELLED with the cross-package bins it consumes: today 2 instances (`g6-curve.ps1`, `g6-postbounce.ps1`, both `-p spt-daemon --test inject_control_wedge`), both consuming NONE, so the hole is real and its instance count is measured at zero instead of asserted. An UNMODELLED invocation that DOES consume a cross-package bin counts as a gap and reds the command, because a verdict nobody can compute must not read green. THAT SCAN NEEDED ITS OWN CORRECTION, AND THE DIRECTION MATTERS: scanning the scripts raw read `reap-census.ps1`'s comment-based-help block -- which DESCRIBES a `cargo test -p spt --test ...` failure in prose -- as a real invocation consuming three cross-package bins, i.e. a fabricated gap inside the section whose entire job is honesty about what cannot be seen. PowerShell `<# #>` blocks and whole-line `#` comments are stripped; a TRAILING `#` deliberately is not, because in sh that would eat `${var#foo}` and losing a real invocation is the worse direction here. THE YAML IS PARSED BY A DELIBERATELY SMALL SUBSET READER, AND ITS FAILURE MODE IS ACCOUNTED RATHER THAN TRUSTED: xtask carries no parser dependency, and a silent mis-parse would DROP steps, after which every job those steps belonged to would read guaranteed -- a green manufactured by not looking. So the reader counts the `run:` command keys present in the file and refuses (exit 2) unless it attributed every one of them to a job. A `run:` that opens a mapping rather than a command (`defaults.run.shell`) is not a command key on either side of that count. LIMITS THAT REMAIN OPEN AND ARE NAMED IN THE COMMAND'S OWN DOC: `uses:` steps are not followed, and guarantee is tracked per job in step order without modelling artifact reuse across jobs on a persistent self-hosted workdir -- and our golden boxes ARE persistent, so a WORKSPACE verdict is sound only within its job and a clean runner could still expose what reuse masks. Gate: impl -- `crates/xtask/src/perjob.rs` and its `perjob-map` subcommand: the consumed-bin index over integration-test targets and over the unit population (unit tests get no `CARGO_BIN_EXE_*` at all, which is why `-E 'kind(lib)+kind(bin)'` is a CONSUMER step), the step walker with its prebuild and workspace-build guarantees, the accounted YAML subset reader, the script scan with its comment stripping, and the reuse of REQ-FIXTURE-BIN-BUILD-EDGE's detector rather than a second one (mapping through a different detector would produce a per-job verdict over a different population); unit -- the parser refusing an unattributable `run:`, block and inline bodies both surviving while `uses:` and `#` lines do not, cargo invocations stopping at a shell separator and `nextest run` not being read as the shorter `test` verb, the kind-filtered workspace run classified as consumer rather than builder, flag values requiring the whole flag (`--bins` is not `--bin s`), script prose not being read as an invocation, and a job guaranteeing by prebuild, by workspace build, and failing when neither ran. THE GUARD WAS OBSERVED FIRING ON A REAL FALSE STATE, not only in tests: while this lane was in progress the checker's own test fixture named `CARGO_BIN_EXE_git_fixture` unescaped in a tracked `src/` file, which entered the unit-consumer population and made this map report a gap in `ci.yml`'s unit lane and exit 1. Kin REQ-FIXTURE-BIN-BUILD-EDGE (the repo-wide half, whose detector and helpers this reuses).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8277542Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8277799Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8278046Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8278303Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8278557Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8278818Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8279164Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8279440Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8279779Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8280041Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8280312Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8280570Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8280823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8281123Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8281387Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8281637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8281891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8282183Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8282455Z               "line": 256
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8282703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8282952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8283252Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8283513Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8283771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8284019Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8284322Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8284583Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8284845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8285102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8285393Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8285666Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8285914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8286172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8286463Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8286729Z               "line": 551
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8286985Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8287239Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8287486Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8287739Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8288010Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8288267Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8288520Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8288769Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8289112Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8289494Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8289743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8290053Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8290306Z               "line": 601
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8290553Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8290806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8291111Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8291363Z               "line": 616
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8291618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8291870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8292154Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8292414Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8292658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8292906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8293197Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8293454Z               "line": 651
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8293702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8293954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8294250Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8294522Z               "line": 662
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8294768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8295023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8295319Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8295620Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8295873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8296116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8296417Z               "path": "crates/xtask/src/perjob.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8296684Z               "line": 696
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8296931Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8297178Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8297423Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8297674Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8297917Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8298155Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8298447Z       "id": "REQ-FLAKE-LEDGER-KEYED-ROWS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8306556Z       "title": "releases#95: `docs/FLAKE-LEDGER.md` rows are keyed by the TEST (or CI-step) NAME, never by a hand-numbered position column. The number column made an append-at-end table into a merge hazard — two lanes each appending \"row N+1\" conflict textually AND mint the same N — but the harder half is that a POSITIONAL key can be squatted: commit 5199464 (2026-07-15) minted the citation `FLAKE-LEDGER #15` for the HEAVY-AT-BIRTH classification ruling WITHOUT adding a ledger row (the table was 14 rows before and after), the label then propagated to 20 further sites across `.config/nextest.toml`, six test-file headers, two triage docs and this registry, and commit e1a3338 (2026-08-01) appended a genuinely unrelated row 15 (the servicehost pid-identity defect) — so every in-tree `#15` citation silently resolved to the wrong entry until this change. The fix is therefore BOTH halves in one commit: drop the column AND re-key every citation, in-table and out. In-table backrefs (rows citing #7/#8/#10/#12/#13 in their own prose) become test names; external citations become `FLAKE-LEDGER: <test name>`; the phantom `#15` class is re-pointed at what it actually names — the HEAVY-AT-BIRTH ruling, whose canonical text is the `.config/nextest.toml` <HEAVY> stanza, cited by ruling name and not by any number. Gate: doc — the ledger states the keying discipline, carries no number column, and BACKFILLS the row the phantom number concealed. That backfill was deferred to doyle at first report and handed back (2026-08-02): the primary RCA log predates doyle's last context reset and is not retained, so the 20 citation sites plus `5199464`'s own commit message — which ends \"Ledger entry appended.\" over a diff that touches only `ci.yml` and `.config/nextest.toml` — ARE the surviving record. The row is therefore written in date order rather than appended, and states in its own status column that it is reconstructed and which evidence (run ids, per-sighting timestamps, raw gate logs) did not survive; a backfill indistinguishable from a contemporaneous row would be cited as if it carried primary evidence. The ledger intro carries that backfill discipline as a standing rule. Kin REQ-HEAVY-UNIT-CLASSIFICATION, REQ-CI-WINDOWS-PHASE-A-BOUND (both cite the ledger).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8306963Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8307224Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8307476Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8307734Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8307974Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8308239Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8308510Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8308763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8309179Z               "path": "docs/FLAKE-LEDGER.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8309459Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8309721Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8309969Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8310218Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8310474Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8310738Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8311010Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8311263Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8311521Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8311798Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8312065Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8312317Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8312570Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8312855Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8313113Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8313370Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8313625Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8313868Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8314116Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8314402Z       "id": "REQ-FORK-ACCESS-GATED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8323269Z       "title": "A wire-borne fork is refused unless the access chain admits it, gated on the SAME (target endpoint x surface x subject) shape as every other control surface and on the HANDSHAKE-PROVEN origin node — never on any field the request carries. The target endpoint is the SOURCE being forked, because that is the endpoint whose mind is about to be copied and therefore the endpoint whose owner's grant is the one that matters. THE SURFACE IS `attributable: false` FOR THIS WAVE, and it is a deliberate restriction rather than an oversight: only families carrying a daemon-stamped, session-proven sender endpoint may be attributable, and making fork the second such family would change WHICH SUBJECT TIER can express a fork grant — sender-endpoint rules would become real for it, not just node-tier ones — which is a second decision riding a wave that was scoped to one. So node-tier subjects govern fork, a sender-endpoint rule naming it is dead on arrival exactly as the table's restrictive default says, and the flip later is a ONE-ROW EDIT with no re-ruling, through the same door XFER already stands in front of. Because the surface table is the single source for that property (and reads case-insensitively since releases#66), a future flip cannot leave one reader disagreeing with another. A REFUSAL FORKS NOTHING AND SAYS NOTHING BACK beyond the family's existing refusal posture — the attach/rest precedent, where existence is not advertised to an unadmitted caller. THE SYNERGY WITH releases#66 IS STATED SO IT IS NOT MISTAKEN FOR LUCK: because `knock list` now composes its prescription from the same predicate the approve path decides on, a knock requesting FORK prescribes the whole-machine acknowledgment correctly from the day the surface exists, with no per-surface work — a non-attributable surface binds a node subject, which is the widening form, and the listing says so because it asks rather than because someone remembered to teach it. Gate: unit — a node the chain admits for FORK is served while one it does not is refused with nothing created, a grant on a DIFFERENT surface does not admit the same node to fork (the per-surface isolation property the vocabulary exists for), the gate reads the proven origin rather than any claimed field, and a fork grant expressed as a sender-endpoint rule does not admit (the attributable:false consequence, asserted so the restriction is evidenced rather than assumed).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8323584Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8323843Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8324099Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8324447Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8324700Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8324953Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8325220Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8325482Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8325748Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8325996Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8326330Z               "path": "docs-site/src/instances/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8326595Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8326843Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8327095Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8327342Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8327600Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8327863Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8328125Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8328374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8328698Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8329060Z               "line": 1730
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8329320Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8329568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8329892Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8330160Z               "line": 1868
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8330417Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8330666Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8330976Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8331243Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8331494Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8331749Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8332008Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8332260Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8332527Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8332788Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8333036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8333356Z               "path": "crates/spt/tests/fork_surface_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8333618Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8333872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8334115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8334442Z               "path": "crates/spt/tests/fork_surface_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8334706Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8334964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8335208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8335641Z               "path": "crates/spt/tests/fork_surface_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8335913Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8336166Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8336415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8336730Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8336994Z               "line": 882
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8337239Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8337493Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8337742Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8337990Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8338256Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8338508Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8338756Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8339152Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8339419Z               "line": 441
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8339658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8339909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8340215Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8340481Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8340729Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8340968Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8341222Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8341459Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8341707Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8341945Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8342235Z       "id": "REQ-FORK-CONTROL-SURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8359519Z       "title": "Forking an endpoint is reachable from another node, as a CONTROL SURFACE in the ratified sense — 'a named remote-reachable operation class on an endpoint' (CONTEXT.md, access-control grill 2026-07-28). Today `spt fork` is local-only and says so: a source that is not on this node is refused outright. THE SURFACE ID IS MINTED, NOT INVENTED, and the distinction is the whole of the design fork raised before building: the control-surface vocabulary is RATIFIED OPEN — 'new surfaces mint ids without a schema change', and 'later waves mint their ids when the capability itself is built' — so a one-row addition to the surface table is the extension MECHANISM the model was given, not a new grant vocabulary. Nothing else in the access model moves: no new tier, no new subject kind, no new authority, no new decision; the grant is expressed entirely in the existing (target endpoint x surface x subject) shape, and the chain, the modes, the fail-closed degrade and the mutation seam are untouched. GATING IT UNDER AN EXISTING SURFACE IS REFUSED ON THE RECORD rather than left unconsidered — it is the only way to add the capability without minting an id, and it is the W3 dishonesty class exactly: a fork copies an endpoint's ENTIRE MIND (live context, role, every project tier, every monic), so folding it under SUSPEND or XFER would mean an operator who granted 'you may suspend my agent' or 'you may transfer files' had silently also granted 'you may clone my agent's whole mind'. A grant that confers an authority its name does not describe is worse than a refusal, and REQ-ACL-SURFACE-VOCAB exists precisely because ADR-0009's all-or-nothing whitelist did this. THE WIRE RECORD IS `kind`-TAGGED, on the knock precedent and for the same N-1 reason rather than for symmetry: the untagged `WanMessage` classification sniffs `target`+`op_id` on a stream's first line, so an untagged fork request would be claimed by that arm and DELIVERED INTO SOMEBODY'S SPOOL AS A CHAT MESSAGE by a receiver too old to know the verb. Tagged, it lands in the dispatcher's tagged arm, which an N-1 daemon resolves to the unknown family and DROPS CLEANLY — a fork request that never arrives at an old node is the correct degrade; one misread as a message is not. That degrade is PINNED BY TEST, not assumed. The new stream family must also be learned by the family census (`StreamFamily::ALL`) and every exhaustive walk over it — named here because a family added to the enum but not to the census is precisely the assembly gap that had to be repaired once already. THE REMOTE ARM NEVER DELETES THE SOURCE. `--delete-source` stays a local-only flag: deleting an endpoint is not forking, so carrying it would put two authorities under one grant (the same fault the surface split exists to prevent, re-committed inside a single verb), the destructive half is unrecoverable where the additive half is not, and the local path's 'the fork is complete; re-run to delete' degrade assumes an operator standing there, which a wire caller is not. AND THE CLI REFUSES `--delete-source` AGAINST A REMOTE TARGET LOUDLY RATHER THAN TRIMMING IT (ruled): silently forking-without-deleting honours half an invocation, which is prescribe-then-mislead in miniature — the operator asked for one thing, got another, and was not told. Refuse, do not trim. Gate: impl — the surface id, the tagged wire record with its decoder and one-shot reply, the new stream family classified and routed, the census learning it, the target-side serve that performs the fork where the source lives, the client arm that dials the resolved node, and the loud remote-plus-delete-source refusal; unit — the record round-trips and carries its tag, an N-1 receiver classifies it unknown and drops it (the anti-spool row), the family census contains it, the remote-plus-delete-source invocation is refused with nothing forked, and a local fork is unchanged; int — the receiving side end to end over REAL stores: an admitted request produces a whole new endpoint on the node that holds the source (perch record, home subnet, adapter carried, and the source's monics riding the mind), the source is left intact, and a request from a node admitted only for a NEIGHBOURING surface produces nothing and answers nothing. THE INT ROW IS STATED BY REPLACEMENT AND ITS LIMIT IS NAMED RATHER THAN GLOSSED: it was minted as 'driven across a real node boundary', and what is proven is everything on the receiving side EXCEPT the QUIC hop itself. The hop is unit-covered where its risk actually lives — the tagged record round-trips, is never classified as the message family, and an N-1 daemon drops it — and a genuine two-node rung belongs on the env-gated two-host rig, which does not run in ordinary sweeps. Claiming the boundary here on the strength of a same-process test would be the promise this project asks for evidence instead of.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8360005Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8360253Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8360505Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8360755Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8360996Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8361234Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8361488Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8361745Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8362007Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8362264Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8362507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8362841Z               "path": "docs-site/src/instances/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8363093Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8363336Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8363586Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8363839Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8364096Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8364360Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8364626Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8364875Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8365204Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8365466Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8365718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8365970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8366287Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8366545Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8366793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8367039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8367359Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8367622Z               "line": 1147
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8367874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8368118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8368433Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8368698Z               "line": 1729
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8369030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8369282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8369698Z               "path": "crates/spt-daemon/src/forkop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8369970Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8370217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8370465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8370779Z               "path": "crates/spt-daemon/src/forkop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8371037Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8371291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8371541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8371842Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8372113Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8372367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8372620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8372925Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8373183Z               "line": 401
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8373435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8373681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8373998Z               "path": "crates/spt-net/src/net/forkmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8374272Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8374529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8374776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8375082Z               "path": "crates/spt-net/src/net/forkmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8375343Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8375592Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8375844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8376150Z               "path": "crates/spt-net/src/net/forkmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8376413Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8376668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8376913Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8377223Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8377481Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8377734Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8377982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8378268Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8378636Z               "line": 5238
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8378883Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8379215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8379513Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8379776Z               "line": 658
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8380024Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8380267Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8380554Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8380820Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8381063Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8381311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8381607Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8381860Z               "line": 728
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8382116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8382358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8382645Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8382903Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8383151Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8383399Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8383660Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8383913Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8384176Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8384437Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8384683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8385002Z               "path": "crates/spt/tests/fork_surface_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8385264Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8385512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8385751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8386057Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8386310Z               "line": 881
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8386552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8386805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8387104Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8387365Z               "line": 1257
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8387607Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8387854Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8388098Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8388342Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8388609Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8388867Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8389201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8389614Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8389876Z               "line": 2413
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8390121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8390369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8390674Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8390932Z               "line": 2538
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8391185Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8391429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8391739Z               "path": "crates/spt-net/src/net/forkmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8392000Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8392253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8392496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8392801Z               "path": "crates/spt-net/src/net/forkmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8393058Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8397393Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8397669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8397972Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8398244Z               "line": 33859
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8398492Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8398744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8399146Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8399407Z               "line": 1906
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8399650Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8399902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8400146Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8400398Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8400647Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8400891Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8401173Z       "id": "REQ-FORK-MIND-COMPLETE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8408154Z       "title": "Forking an endpoint copies its tracked MIND TIER AS A WHOLE DIRECTORY AT TIP — every tracked file in the source's agent branch, enumerated from the tree itself — never a list of filenames the copy function happens to know. The enumerating shape is not a style preference: a fork that reads named files drops every mind file nobody remembered to add to the list, silently, one omission per file, and the loss is discoverable only by someone later noticing an absence. It had already happened in the field before this requirement existed: the live ROLE file (the endpoint's durable statement of purpose) was tracked on the same branch and was simply not copied, so every fork produced an endpoint whose role had vanished, and the next mind file to be added would have been lost exactly the same way. Copying the directory closes the past gap and the future ones in one structural move. EXACTLY ONE EXCLUSION, and it is a decision rather than an omission: surfaced-but-unresolved conflict artifacts stay with the mind that surfaced them, because a fork starts clean — a fork inheriting the source's unresolved pairs would make 'the fork starts clean' quietly false. Bytes are copied as bytes, not through a lossy UTF-8 round trip: the tier's file shapes are not the fork path's business. Sibling seams are unaffected by construction — a rename MOVES the whole worktree and so has never had this defect, and removal is explicit — so this requirement binds the fork path and is proved by a test whose load-bearing row is a file NO CONSTANT IN THE CRATE NAMES. Gate: impl — the tree-enumerated whole-directory copy with the conflict exclusion named as such; unit — a fork carries (a) a file no code path names, (b) a file nested a directory deep, so 'whole directory' means the tree rather than its top level, and (c) the live role file, the real gap this closes; while carrying NO conflict artifact, with the source keeping all of it, and the pre-existing copy-then-diverge behavior unchanged.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8408593Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8408837Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8409176Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8409423Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8409667Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8409914Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8410167Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8410433Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8410697Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8410943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8411362Z               "path": "docs-site/src/instances/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8411623Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8411871Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8412123Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8412362Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8412615Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8412888Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8413140Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8413382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8413701Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8413959Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8414207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8414455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8414779Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8415031Z               "line": 470
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8415289Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8415541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8415860Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8416122Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8416368Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8416610Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8416854Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8417103Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8417360Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8417621Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8417864Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8418112Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8418367Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8418624Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8418860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8419268Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8419539Z               "line": 764
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8419782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8420032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8420345Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8420703Z               "line": 829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8420947Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8421191Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8421441Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8421692Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8421940Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8422179Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8422445Z       "id": "REQ-FRONT-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8422823Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8423094Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8423341Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8423589Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8423851Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8424115Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8424370Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8424618Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8424885Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8425138Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8425382Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8425629Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8425896Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8426153Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8426411Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8426663Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8426923Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8427180Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8427419Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8427663Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8427901Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8428143Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8428420Z       "id": "REQ-GOLDEN-CI-LANE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8431718Z       "title": "Builder PRs run only the thin lint/unit/traceability lane; the full cross-platform suite runs once on the gater-assembled golden branch, never cancels in progress, and main advances only to that exact tested SHA. Both coordinated two-host jobs run by default on every golden branch and workflow_dispatch; manual dispatch exposes an explicit twohost opt-out for intentional evidence isolation, never an opt-in whose omission can silently skip the seam. Their dependency on the suite is a rendezvous barrier only: !cancelled() runs both roles after either suite result so an unrelated red cannot silently erase independent seam evidence. A checked-in flake registry may authorize exactly one same-SHA rerun for an exact test id with recorded evidence and a retirement condition; a rerun red blocks the batch. workflow_dispatch remains available for an explicit candidate SHA. (ADR-0050; ACCESS-CONTROL W0.)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8432001Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8432257Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8432505Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8432753Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8432996Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8433248Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8433511Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8433763Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8434013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8434294Z               "path": "docs/GOLDEN-CI.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8434545Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8434792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8435041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8435322Z               "path": "docs/GOLDEN-CI.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8435585Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8435817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8436061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8436342Z               "path": "docs/GOLDEN-CI.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8436600Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8436838Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8437085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8437378Z               "path": "docs/RELEASE-RUNBOOK.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8437632Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8437880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8438117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8438461Z               "path": "docs/adr/0050-golden-ci-merge-integration.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8438723Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8439081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8439328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8439667Z               "path": "docs/adr/0050-golden-ci-merge-integration.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8440028Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8440273Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8440522Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8440766Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8441013Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8441275Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8441532Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8441780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8442072Z               "path": ".github/workflows/ci.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8442330Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8442575Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8442821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8443117Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8443370Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8443614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8443861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8444156Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8444414Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8444657Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8444897Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8445154Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8445404Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8445681Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8445934Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8446182Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8446425Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8446687Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8446950Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8447193Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8447437Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8447678Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8447919Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8448200Z       "id": "REQ-GOLDEN-RESPIN-TEST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8454378Z       "title": "BAROMETER (releases#105; operator-ruled 2026-08-02): a defect found on an ASSEMBLED golden head is triaged by two questions answered separately, in order, Q2 never feeding Q1. Q1 RESPIN classifies by WHERE THE DEFECT LIVES, never by which files the fix touches: a defect inside what golden validated (code, build config, tests, CI config, gated docs) invalidates the head's evidence and buys a respin — the refusal is the DEFAULT; a defect outside golden's evidence ships, and the fix re-homes to buy its evidence on the head it lands with, which is never merge-untested since everything still lands ff-only via a future golden head. The shortcut is earned only against the PROVABILITY BAR: a name-only diff confined to non-code PLUS the compiled-in exceptions (version material) checked by MEASUREMENT — provable by diff, not plausible by argument; a delta needing an argument buys the full window. Q2 SEVERITY decides urgency and sizing, never which sha carries the fix. Carries two riders of the same root: the PUSH run IS the golden run (golden.yml two-host condition at 598/677 — a push satisfies `event != workflow_dispatch` and runs both legs unconditionally, so a reflexive dispatch is a duplicate serial window), and a superseding ruling must land where the reader looks before any actor carries the stale sentence into a plan (releases#71 5153399070 -> 5155301974). Amends ADR-0050 and RELEASE-RUNBOOK step 1: tested-SHA-equals-shipped-SHA becomes tested-SHA-equals-shipped-SHA-OR-provable-code-free-delta-from-a-tested-SHA. Worked example v0.51.0 counter 86 @6312b01: five files, zero .rs, 92 version-sensitive tests green on the bumped tree.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8454678Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8454931Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8455175Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8455423Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8455670Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8455927Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8456185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8456423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8456728Z               "path": "docs/RELEASE-RUNBOOK.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8456986Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8457233Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8457476Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8457725Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8457978Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8458243Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8458598Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8458841Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8459174Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8459442Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8459700Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8459943Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8460191Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8460452Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8460710Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8460959Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8461196Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8461446Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8461684Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8461981Z       "id": "REQ-GOSSIP-ADAPTER-PROJECTS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8465053Z       "title": "#4: remote endpoint details (harness + project history) are gossiped, not faked. Today from_resource_row (crates/spt/src/picker/model.rs:340) hardcodes project_history=Vec::new() for every remote row and passes adapter_profile=row.resources (the blurb masquerading as the harness), and Instance/ResourceRow (crates/spt-net/src/net/registry.rs:457) carry no adapter field and no project list. Fix: additive gossip fields N-1-safe exactly like endpoint_type — Instance.adapter (composite <adapter>[:profile]) + Instance.recent_projects (bounded, newest-first, project IDs only) -> thread to ResourceRow -> from_resource_row stops faking. Pre-field remote rows render '-'. Project IDs only + REQ-PICKER-PROJECT-HISTORY-TRUTH's disambiguation. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #4.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8465344Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8465596Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8465844Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8466082Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8466322Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8466572Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8466820Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8467083Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8467345Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8467594Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8467840Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8468103Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8468370Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8468614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8469124Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8469396Z               "line": 615
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8469645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8469889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8470222Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8470480Z               "line": 650
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8470732Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8470980Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8471318Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8471571Z               "line": 1048
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8471831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8472068Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8472383Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8472640Z               "line": 201
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8472884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8473136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8473442Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8473705Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8473948Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8474194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8474515Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8474778Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8475036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8475280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8475594Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8475855Z               "line": 555
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8476108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8476356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8476665Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8476929Z               "line": 560
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8477185Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8477437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8477751Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8478134Z               "line": 565
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8478386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8478644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8479054Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8479320Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8479571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8479819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8480134Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8480392Z               "line": 606
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8480643Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8480896Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8481201Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8481459Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8481717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8481975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8482282Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8482542Z               "line": 623
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8482795Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8483063Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8483311Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8483568Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8483844Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8484106Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8484358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8484664Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8484930Z               "line": 838
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8485181Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8485433Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8485676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8485934Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8486202Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8486464Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8486711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8487036Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8487298Z               "line": 1279
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8487550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8487798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8488108Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8488370Z               "line": 1301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8488617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8489048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8489372Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8489629Z               "line": 2036
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8489880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8490121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8490427Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8490680Z               "line": 2010
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8490932Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8491174Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8491423Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8491671Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8491910Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8492157Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8492434Z       "id": "REQ-GOSSIP-CONTROLLED-ANY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8496438Z       "title": "Bug #3: a locally-controlled endpoint gossips controller_node = None so remote viewers show it free to control. Root AS IT STOOD WHEN THIS WAS WRITTEN: driven_by was stamped Some(node) only for a REMOTE WAN attach (attach.rs:337), because the legacy LOCAL attach path passed by=None (broker.rs:1750) — so the datum a remote viewer needed was absent at source. NOTE (doyle ruling v3, 2026-07-19): the accompanying model claim — that a local controller must NOT latch driven_by — was FALSIFIED. driven_by names the CONTROLLING node, own node INCLUDED (CONTEXT.md:386), and the own-hex latch is truthful; the by=None behavior was a legacy-path artifact, not the design. KH 7.15 is about CLEARING the stamp when the session is gone, which is a different rule and still stands. The fix as landed is unaffected and stays correct: broker stamps a SEPARATE any-controller datum (true/Some(host) for a local OR remote controller) alongside stamp_driven_by, and advertise_local gossips Instance controller_node from it. node-refresh is NOT the fix (data is absent at source). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8496724Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8497077Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8497329Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8497581Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8497829Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8498087Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8498353Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8498605Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8498853Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8499191Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8499458Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8499716Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8499969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8500275Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8500540Z               "line": 3543
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8500785Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8501029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8501344Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8501607Z               "line": 592
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8501854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8502112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8502422Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8502684Z               "line": 1019
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8502936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8503180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8503479Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8503734Z               "line": 713
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8503972Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8504221Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8504464Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8504717Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8504983Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8505236Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8505483Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8505728Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8505988Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8506243Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8506482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8506796Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8507064Z               "line": 1419
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8507313Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8507555Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8507899Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8508146Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8508394Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8508633Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8508932Z       "id": "REQ-GOSSIP-CONTROLLED-CROSS-NODE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8511970Z       "title": "B7 (F028, operator, cross-node): a remote endpoint's CONTROLLED state is not rendered. Evidence: ball-b ONLINE + CONTROLLED on ENLYZEAM (local view), but HFENDULEAM renders remote ball-b as plain ONLINE (both 0.22.0). The F-026 #4 gossiped any-controller datum (REQ-GOSSIP-ADAPTER-PROJECTS controlled bool) either isn't SENT for the locally-controlled case, isn't APPLIED on the receiving row, or DECAYS. Local leg confirmed fine (sibling hall-b renders blue-glyph correctly); the gap is the REMOTE leg. perri's validation had this ENV-BLOCKED — two live nodes now available to RCA. FIX: RCA sender-side (is controlled gossiped when locally-controlled?) / receiver-render (does from_resource_row surface it?) / decay, then lock with a cross-node int. See triage B7.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8512252Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8512500Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8512753Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8513016Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8513272Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8513515Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8513773Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8514034Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8514294Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8514537Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8514790Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8515062Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8515315Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8515563Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8515810Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8516072Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8516331Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8516676Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8516919Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8517161Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8517404Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8517714Z       "id": "REQ-GOSSIP-PROJECT-DERIVE-ONCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8522459Z       "title": "REGISTRY-LIFECYCLE W4 fast-follow (hertz v0.37.0 field-verify CPU-gate FAIL RCA 2026-07-17, doyle seam-verified same day; timing-pinned ~16s burst clusters per 30s Registry pump round): recent-project gossip derives a project id AT MOST ONCE PER DISTINCT CWD per advertisement round — recent_projects_for dedups the RAW cwd string BEFORE project_id_for_dir (today seen.insert(pid) dedups AFTER derivation at registryhost.rs:1001, so every duplicate-cwd sessions.log row pays a git remote/rev-parse spawn: ~200 derivations/round on a 12-perch box, the post-self-hash-fix CPU floor). The pid-level dedup stays as the output-uniqueness second layer (distinct cwd spellings may collapse to one project); ordering semantics unchanged (first-occurrence newest-first); bounded ledger read unchanged. Gate: impl — cwd-dedup before derivation; unit — derivation-count observable == distinct cwds not ledger rows (duplicate-cwd ledger derives once), output/order parity vs the pre-fix shape on a mixed ledger. SEEDED SEPARATELY (not this REQ): gossip leg consults the ADR-0037 materialized index (kills git entirely + cross-round rederivation; staleness-semantics design change) + epoch-mint batching (26 atomic writes/round; durable-monotonic contract change).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8522745Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8522989Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8523241Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8523484Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8523732Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8523981Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8524244Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8524513Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8524749Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8524998Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8525260Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8525517Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8525760Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8526209Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8526476Z               "line": 1065
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8526719Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8526960Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8527198Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8527449Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8527711Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8527973Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8528213Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8528475Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8528743Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8529081Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8529329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8529658Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8529918Z               "line": 1357
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8530171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8530420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8530739Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8531011Z               "line": 1393
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8531264Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8531511Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8531759Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8531998Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8532244Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8532489Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8532809Z       "id": "REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8538838Z       "title": "A DELEGATED live adapter apply MUST NEVER report success without performing the swap, and the live-update seam MUST use ONE parent-aware adapter matcher across all its comparators. TWO defects made the field repro (BUILD-F015B-APPLYMATCH: `--adapter cc:ccs` live update silently no-ops): (D1, matcher skew) the broker's dispatch_adapter_apply filtered sessions by EXACT `s.adapter == req.adapter`, but a `--adapter <adapter>:<profile>` endpoint stores the COMPOSITE `cc:ccs` while the apply carries the PARENT record name `cc` — so every :profile endpoint fell out to affected=[]; select_endpoints_running_adapter had the same `adp == adapter` skew, while the CLI live-gate (adapter_has_live_endpoint) already parent-matched — divergent rules on ONE seam. (D2, silent success) the affected.is_empty() branch replied KIND_APPLIED and RETURNED WITHOUT SWAPPING; once the CLI delegates the apply there is no CLI-side fallback swap, so success-without-swap = the update never lands (re-register re-reads the OLD manifest, version-of-truth honestly says old). FIX: (1) ONE shared spt_runtime::profile::adapter_parent_matches(session_adapter, parent) used by the live-gate + broker apply-filter + select_endpoints_running_adapter (no exact `==` against a record name at any live-update seam); (2) the daemon owns the whole apply once delegated — the CRC swap runs UNCONDITIONALLY (terminate/restart loops no-op when nothing is resident), KIND_APPLIED reported ONLY after a real swap. (F015B, ADR-0025 amendment)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8539359Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8539622Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8539880Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8540126Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8540378Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8540632Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8540889Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8541141Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8541413Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8541675Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8541928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8542219Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8542487Z               "line": 627
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8542732Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8542983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8543274Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8543541Z               "line": 1077
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8543789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8544042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8544433Z               "path": "docs/adr/0025-live-daemon-coordinated-adapter-update.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8544691Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8544952Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8545200Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8545547Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8545803Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8546080Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8546337Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8546589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8546904Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8547170Z               "line": 9793
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8547418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8547668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8547983Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8548243Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8548488Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8548731Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8549055Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8549299Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8549562Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8549815Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8550057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8550425Z               "path": "crates/spt/tests/live_adapt_translation_swap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8550686Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8550934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8551187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8551535Z               "path": "crates/spt/tests/live_adapt_translation_swap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8551802Z               "line": 557
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8552045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8552297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8552650Z               "path": "crates/spt/tests/live_adapt_translation_swap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8552912Z               "line": 824
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8553169Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8553411Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8553657Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8553905Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8554167Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8554421Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8554669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8554970Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8555336Z               "line": 12850
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8555590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8555827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8556140Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8556396Z               "line": 473
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8556640Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8556878Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8557125Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8557364Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8557607Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8557851Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8558180Z       "id": "REQ-HAZARD-ADAPTER-PROFILE-STAMP-CLOBBER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8561656Z       "title": "A-4 (F029, operator regression): the picker/confirm views drop an endpoint's adapter `:profile` (showed `claude-spt` where `claude-spt:ccs` was created). ROOT: stamp_creation_fields (spt-store/home.rs) gave the incoming BIND-TIME adapter value UNCONDITIONAL precedence (`rec.adapter = adapter.map(...).or_else(prior)`), but a hook bind resolves the adapter ADAPTER-AGNOSTICALLY (ADR-0021: a binary basename → the BARE parent, profile unknowable), so the first hook bind rewrote the richer `claude-spt:ccs` → `claude-spt`. (F-028's establish_perch self-heal widened how often this re-stamps; the precedence is the root.) FIX: profile-preserving precedence — when the incoming adapter is exactly the PARENT of the prior's `parent:profile` composite, KEEP the prior; replace only on a genuinely different adapter (or a different explicit profile). Paid-for field bug → hazard. See triage A-4.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8561951Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8562199Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8562452Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8562696Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8562944Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8563191Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8563444Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8563715Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8563976Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8564232Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8564474Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8564742Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8565109Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8565357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8565662Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8565920Z               "line": 149
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8566165Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8566412Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8566653Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8566899Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8567167Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8567424Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8567670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8568029Z               "path": "crates/spt/tests/bind_adapter_profile_persist_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8568286Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8568534Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8568778Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8569117Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8569358Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8569622Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8569875Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8570120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8570434Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8570691Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8570940Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8571177Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8571415Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8571655Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8571894Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8572134Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8572435Z       "id": "REQ-HAZARD-ATOMIC-TMP-COLLISION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8573146Z       "title": "Concurrent atomic writers to the same target must not share a tmp name (5.15): a fixed tmp sibling makes one writer's rename consume the other's staged file (os-error-2 loser)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8573412Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8573661Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8573904Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8574148Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8574398Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8574754Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8575016Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8575278Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8575522Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8575812Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8576076Z               "line": 310
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8576327Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8576571Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8576813Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8577063Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8577322Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8577582Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8577826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8578136Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8578394Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8578638Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8578880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8579204Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8579457Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8579719Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8579989Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8580226Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8580483Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8580745Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8581003Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8581247Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8581543Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8581805Z               "line": 290
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8582042Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8582290Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8582530Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8582781Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8583023Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8583262Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8583549Z       "id": "REQ-HAZARD-ATTACH-WEDGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8590147Z       "title": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the broker for all other clients. ROOT (v0.12.0 real-harness defect): loopback attach output is a blocking write_all into a bounded 64KB tokio duplex (nethost.rs:1040,1090); when the operator's rc pump stops draining (tab closed) the buffer fills and write_all blocks forever (the 'loopback never hangs' assumption at nethost.rs:1103 is false), parking a worker in the 2-worker net runtime (nethost.rs:640); a couple of these saturate BOTH workers → every new attach / `endpoint run` stalls right after 'PUMP_IPC_READER: spawned' → 30s FIRST_EVENT_GRACE → 'no output / dead or wedged'; `daemon stop` cannot join the stuck workers. DISTINCT from the removed B1 path-(c) mutex deadlock. DISPOSITION = PROVE-DON'T-CHANGE (doyle GATE-PASS @e883f45, 2026-06-18): this ROOT is the SUPERSEDED v0.12.0 hypothesis — the post-L0 code ALREADY prevents the wedge, so NO fail-fast / worker-count code was added. serve_attach forwards fire-and-forget (net_stream_send op_id=None) and the broker-side send_stream is already BROKER-QUIC-DEADLINE-bounded (bounded_block_on, 10s); the loopback duplex is drained broker-INTERNALLY by the operator row's own read pump (RecvHalf::Loopback, retentive_cap==0 → evict-not-park) so a dead rc (a dropped IPC subscriber) never backs peer_w up; bounded_block_on parks the BROKER DISPATCH thread, not a net worker → no worker-pool exhaustion (full mechanism in the required_stages comment). Folds the status=online sub-check: a dead spt-hosted endpoint is marked OFFLINE within one reconcile tick on abrupt child death (broker exit-waiter reaps the session → B2 sees it absent) — PROVEN, no change. (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8590449Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8590699Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8590948Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8591196Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8591440Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8591711Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8591973Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8592221Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8592469Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8592737Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8592995Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8593350Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8593621Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8593884Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8594156Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8594404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8594733Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8594992Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8595234Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8595499Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8595816Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8596064Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8596332Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8596590Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8596833Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8597075Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8597319Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8597553Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8597859Z       "id": "REQ-HAZARD-BIND-CONFLICT-PID-ABA",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8613627Z       "title": "THE BIND CONFLICT CHECK MUST ASK CUSTODY, NOT A BARE PID (KNOWN-HAZARDS 5.1/7.51 -- \"custody is an identity, never a bare PID\"; releases#134, FOUND AND ROOT-CAUSED BY hertz including the measured chain and the discriminating negative control). `establish_perch`'s under-lock conflict check read the recorded owner pid and asked `is_process_alive` with NO birth pairing, while `pid_started_at` sat unread in the SAME record and the shipped paired resolver (`liveness::relay_liveness`) was already in use 260 lines earlier in the same file (`prior_relay_died`). DECLARE SITE != ENFORCE SITE: the ABA fix landed on the relay-death and resume-custody paths and was never aimed here. CONSEQUENCE, MEASURED IN THE FIELD on the `hertz` endpoint (specimen preserved, sha256 1d8805ef841a1c1fe930b23eb8ce1683115e33735e190e426dd3ab3416ae3b1e): recorded pid 30576 with birth 2026-08-01T08:11:26.027Z, the pid recycled onto an unrelated process at 12:34:04.317Z, so every subsequent bind was refused CONFLICT and the row sat `unbound` FOREVER -- ready=false, alive=false, not addressable inbound, with `resume_unbound_stamp` re-arming a bind that could never succeed. It fails SILENTLY rather than loud, and Windows recycles pids aggressively, so it is latent fleet-wide rather than endpoint-specific. THE FIX PAIRS THE RECORDED BIRTH INTO THE CHECK, and both facts come from ONE read -- the under-lock `prior` snapshot -- replacing a second file read that could pair a freshly-read pid against `prior`'s session_id. UNPROVEN FAILS TOWARD ALLOW HERE, INVERTING `relay_liveness`'S OWN DEFAULT, and the inversion is the requirement rather than an implementation choice: that default exists so a HEAL is never mis-fired, but at this site \"alive\" means REFUSE THE BIND, so carrying it over converts an unknown into the same permanent lockout through a different input. MEASURED CORRECTION TO THE RULING'S OWN JUSTIFICATION (todlando recon, 2026-08-03): this does NOT confine the behaviour change to `Gone`. `process_identity` also answers `Unproven` for a LIVE pid whose birth cannot be read (a denied query, an exit race, or a platform with no birth oracle -- `process_started_at` is documented `None` on non-Linux unix), and that arm refuses today and allows after. The case given up is bounded by the owner's own exit race; the case fixed is permanent. THE FIX RESTS ON THE BIRTH PAIRING, NOT ON `pid_role`, AND THAT MUST BE PROVED RATHER THAN ASSERTED: the field record carries `pid_role: \"binder\"`, so a `pid_role == Relay` gate copied from `prior_relay_died` would ALSO have unblocked the reported case -- two mechanisms, one symptom. The pairing is load-bearing because a `pid_role = Relay` record whose pid is recycled is bricked identically and a role gate cannot fix it, so the requirement carries a Relay+recycled row specifically to prove the role gate is not carrying the fix. NO ROLE GATE IS ADDED HERE: it would change behaviour on `Held` binder records too, far wider than the defect. SQUAT PROTECTION IS NOT WEAKENED AND NEEDS ITS OWN ROW: a live owner whose recorded birth MATCHES still refuses the bind. NO INT STAGE, AND THAT IS A DECISION RATHER THAN A GAP (doyle, 2026-08-03): the field shape is covered at UNIT level because every fact this requirement rests on is reachable there -- the custody tri-state exhaustively, the remedy RUN from the refusal state, and both unknown-arm defaults -- while the arm that cannot be produced portably (a live pid whose birth is unreadable) is not reachable through an int seam either, since no single platform manufactures it. The int seams that would carry a field shape already run green beside these rows (`dummy_harness_e2e`'s bind/attach pair, `resume_custody_aba`), so an int stage here would re-run a topology that is exercised rather than test anything the unit rows do not. THE FIELD SPECIMEN IS REPRODUCED, NOT LOADED: the fixtures rebuild the specimen's construction (a live pid whose recorded birth is provably not its own, `pid_role` binder) and deliberately do not read ~/spt-specimens -- a test depending on a path outside the repo that no runner has would pass on one box and be silently skipped or red everywhere else. The specimen proves the hazard was field-real; the fixture is reproducible anywhere; coupling them costs the second job. Gate: impl -- the paired custody check at the bind conflict site, one snapshot, Unproven-allows; unit -- a recycled owner pid (live impostor pid whose recorded birth is provably not its own) no longer refuses the bind (RED on shipped code), a same-birth live owner still refuses (the control that keeps squat protection honest), and a `pid_role = Relay` recycled record is fixed too (the row that proves the role gate is not what carries this).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8614066Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8614322Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8614576Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8614819Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8615076Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8615323Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8615600Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8615872Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8616116Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8616369Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8616638Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8616899Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8617218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8617523Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8617786Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8618039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8618287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8618582Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8618844Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8619168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8619416Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8619718Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8619981Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8620224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8620480Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8620790Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8621053Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8621306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8621559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8621865Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8622125Z               "line": 607
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8622375Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8622619Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8622872Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8623124Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8623396Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8623657Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8623901Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8624149Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8624422Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8624689Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8624934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8625230Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8625489Z               "line": 401
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8625737Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8625989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8626280Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8626546Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8626895Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8627146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8627459Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8627721Z               "line": 2655
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8627969Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8628217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8628513Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8628779Z               "line": 2677
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8629084Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8629332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8629627Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8629891Z               "line": 2720
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8630132Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8630378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8630674Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8634471Z               "line": 2752
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8634743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8634992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8635321Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8635581Z               "line": 2796
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8635838Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8636077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8636387Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8636653Z               "line": 2824
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8636903Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8637145Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8637392Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8637631Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8637883Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8638124Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8638404Z       "id": "REQ-HAZARD-BIND-CWD-UNSET",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8641910Z       "title": "A bound endpoint's `info.cwd` is SET at bind so a freshly-created perch appears under its own project tab. ROOT (found, v0.13.0): `info.cwd` is NEVER set on bind — `cmd_bind` (spt-hosted) and `bind_from_seed` (harness-hosted) never thread cwd into `establish_perch`/`rec.cwd`. FIX: `cmd_bind` reads its own `current_dir` (the broker spawned it in `project_cwd`); `bind_from_seed` passes `seed.cwd` (already captured at seed time, currently DISCARDED). DISTINCT from REQ-PICKER-HISTORY-FRESH (v0.12.1) — that unioned cwd-origin into picker MEMBERSHIP but tested merge_origin_project with a PROVIDED origin; it never asserted `info.cwd` is actually set on bind, so a real `endpoint run` perch still had an empty cwd and the union had nothing to union. This is the v0.12.1 P1 'appears under its own project right away' claim that was REFUTED in the changelog — delivered for real here. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8642216Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8642468Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8642722Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8642976Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8643240Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8643490Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8643743Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8644015Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8644278Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8644541Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8644792Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8645059Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8645326Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8645589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8645899Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8646160Z               "line": 707
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8646417Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8646665Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8646914Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8647162Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8647424Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8647686Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8647934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8648266Z               "path": "crates/spt/tests/bind_cwd_project_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8648531Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8648784Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8649104Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8649352Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8649604Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8649976Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8650238Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8650491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8650815Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8651076Z               "line": 2083
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8651338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8651584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8651894Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8652156Z               "line": 2105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8652408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8652657Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8652967Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8653230Z               "line": 2264
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8653473Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8653728Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8653970Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8654218Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8654461Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8654708Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8655009Z       "id": "REQ-HAZARD-BIND-REST-STATE-CARRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8658732Z       "title": "GATEWAY-LIVENESS DEFECT A (flynn field bug 2026-07-09, confirmed independent): a re-bind MUST preserve the daemon-owned resting intent (rest_state, D9-2/REQ-INST-3) — the same carry-forward discipline establish_perch already applies to cwd/controllable/adapter/read_env. ROOT: establish_perch's record build (crates/spt/src/api/startup.rs, the build closure) constructs a fresh InfoJson via InfoJson::new (defaults rest_state None) and carries cwd/controllable/read_env forward from prior but NOT rest_state -> a re-bind WIPES the wake intent (flynn tick11 rest_state:active vanish). FIX: carry prior.rest_state (and its paired dormant_since_ms anchor, present iff dormant) forward on re-bind, like the sibling fields. Gate: a re-bind over a prior record with rest_state set preserves it (unit — the build closure carries rest_state + dormant_since_ms). KNOWN-HAZARDS entry on landing. Kin REQ-HAZARD-BIND-CWD-UNSET / REQ-PICKER-1 + REQ-INST-3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8659087Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8659339Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8659582Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8659941Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8660193Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8660445Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8660708Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8660965Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8661214Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8661462Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8661718Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8661972Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8662211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8662517Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8662774Z               "line": 741
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8663026Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8663265Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8663503Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8663747Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8664009Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8664270Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8664525Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8664774Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8665050Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8665307Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8665550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8665850Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8666108Z               "line": 2136
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8666352Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8666595Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8666838Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8667080Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8667324Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8667566Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8667861Z       "id": "REQ-HAZARD-BOUNDARY-READY-STRAND",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8672420Z       "title": "C-2 (F029, SEAM-2 pinned — B6's SECOND HALF, the live-wake blocker; perri wakep9 vs wakep4 gate-state dump + doyle code trace): at a /clear, CC fires SessionEnd(reason=clear) for the DEPARTING session BEFORE SessionStart; the departing sid STILL matches the perch pin at that instant, so the adapter's [hooks.SessionEnd] → `api session-end` AUTHENTICATES and the soft handler REMOVES the ready marker (+ unregister_address, reporting.rs cmd_session_end:206-207). The subsequent `api boundary` rotates the sid but NOTHING re-writes ready → is_online false → try_spt_hosted_inject Nones on the CLI gate BEFORE any broker RPC → every post-clear force-native (incl. the checkpoint FIRE) reports the generic UNDELIVERED, persistent by construction (no path re-stamps ready outside a real bind). The single differing gate field at every UNDELIVERED instant is ready-absent (info online/controllable/rotated-sid all healthy, translate alive). Paid-for hazard. FIX: cmd_boundary re-stamps the ready marker (+ status online, idempotent) ATOMICALLY with the sid rotation — a boundary PROVES a live successor session on the same harness process; a REAL end has no subsequent boundary so genuine teardown is untouched. See triage addendum C-2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8672815Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8673072Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8673320Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8673567Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8673920Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8674168Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8674430Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8674688Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8674925Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8675179Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8675438Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8675700Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8675944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8676259Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8676520Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8676768Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8677016Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8677255Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8677509Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8677768Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8678026Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8678265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8678618Z               "path": "crates/spt/tests/boundary_ready_strand_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8678880Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8679213Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8679457Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8679695Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8679942Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8680202Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8680464Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8680707Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8680950Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8681193Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8681432Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8681728Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8684915Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8685300Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8685552Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8685802Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8686050Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8686308Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8686556Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8686814Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8687061Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8687328Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8687585Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8687834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8688163Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8688429Z               "line": 443
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8688691Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8689035Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8689287Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8689544Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8689806Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8690065Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8690313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8690635Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8690899Z               "line": 724
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8691147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8691392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8691711Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8691969Z               "line": 729
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8692226Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8692473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8692793Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8693064Z               "line": 1171
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8693321Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8693574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8693991Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8694259Z               "line": 1212
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8694512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8694764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8695079Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8695341Z               "line": 1223
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8695617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8695926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8696248Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8696511Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8696763Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8697006Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8697254Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8697502Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8697774Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8698032Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8698295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8698619Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8698883Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8699227Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8699465Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8699709Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8699952Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8700215Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8700476Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8700719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8701029Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8701285Z               "line": 1922
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8701531Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8701774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8702089Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8702342Z               "line": 1947
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8702585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8702829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8703135Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8703497Z               "line": 1964
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8703736Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8703986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8704293Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8704551Z               "line": 2007
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8704799Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8705043Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8705285Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8705524Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8705762Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8706002Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8706341Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8709743Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8710021Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8710274Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8710512Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8710780Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8711051Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8711299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8711546Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8711812Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8712063Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8712310Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8712564Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8712821Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8713184Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8713436Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8713685Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8713947Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8714204Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8714446Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8714684Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8714930Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8715168Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8715478Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8720195Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8720486Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8720734Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8721091Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8721354Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8721621Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8721863Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8722111Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8722372Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8722623Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8722866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8723166Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8723424Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8723668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8723916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8724207Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8724463Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8724711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8724955Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8725201Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8725446Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8725714Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8725968Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8726225Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8726468Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8726744Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8726996Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8727239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8727535Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8727783Z               "line": 606
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8728028Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8728266Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8728510Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8728749Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8729073Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8729316Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8729621Z       "id": "REQ-HAZARD-BROKER-FLOOR-LOCK-POISON",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8738841Z       "title": "B-1 (REMOTE-TRUTH triage §B-1, PIVOTED @e5eb99a): NO bare `.lock().unwrap()` on a broker-resident lock reachable from serve/dispatch — a brain-only self-update keeps the broker + all its Mutexes ALIVE (REQ-UPD-3), so a single panic under one poisons it PERMANENTLY: the next `.lock().unwrap()` panics, kills its per-conn reply thread, and EVERY subsequent attach silently deadlines ('brain IPC read deadline elapsed') while non-locked ops keep working. TRIAGE-DRIFT (sweep-dispatch-site-counts discipline): the triage named 3 sites (broker.rs:1163 flush_inject_floor / :1297 inject-worker-open / :2142 buffer_if_held) as the surviving class, but ALL 3 are the INJECT FLOOR and were ALREADY poison-proofed by REQ-HAZARD-INJECT-WORKER-POISON (lock_floor, shipped post-triage — the FLOOR HALF is SUBSUMED, this seed redirects). The SURVIVING class (matching the triage's own symptom description) is the ATTACH-PATH lock set: self.sessions Mutex<HashMap> ×18 + its sessions_exit alias ×1, the per-session OutputLog RING ×11 (log/h.log/log_drain/log_exit), pair_holds ×4 — 34 production bare .lock().unwrap() (cfg(test) excluded). FIX (doyle B-1 ruling): recover ALL THREE via ONE shared `recover<T>(&Mutex<T>) -> MutexGuard<T>` helper (into_inner idiom, same as lock_floor / the effect journal bug #16 — safe for the short coherent-on-recovery map ops of sessions/pair_holds), plus `recover_log(&Mutex<OutputLog>)` for the ring which adds a COHERENCE CLAMP on the poison-recovery path: a panic mid-append can leave the ring torn (over-cap, a last seq not below next_seq, non-monotonic front/back) and serving those bytes risks garbage, so OutputLog::clamp_or_reset cheap-checks the invariants and RESETS the ring empty (next_seq preserved — cursors never rewind) + loud-logs on violation. Rationale: fail-fast on the log reintroduces the very wedge B-1 kills (poisoned log = every subscriber attach panics forever); blind recover serves torn bytes; clamp-or-reset costs only scrollback that self-heals on the next PTY output + repaint (lost scrollback << permanent wedge, torn-serve eliminated not tolerated). Sessions/pair_holds recover bare (short map ops, coherent-on-recovery). CLASS invariant (KNOWN-HAZARDS 7.33): any new broker-resident lock uses recover/recover_log or a documented fail-fast justification. Red-first: a scripted panic-under-sessions-lock → recover hands back a usable guard, the next attach still opens; a TORN-RING variant → recover_log clamps/resets so the subscriber gets sane bytes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8739323Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8739571Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8739818Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8740066Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8740309Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8740564Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8740806Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8741071Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8741320Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8741563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8741854Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8742111Z               "line": 704
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8742359Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8742597Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8742841Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8743089Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8743350Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8743614Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8743854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8744172Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8744426Z               "line": 1441
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8744673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8744920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8745226Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8745488Z               "line": 4273
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8745732Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8745981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8746283Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8746543Z               "line": 4288
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8746782Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8747025Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8747264Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8747511Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8747769Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8748026Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8748275Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8748528Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8748783Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8749235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8749482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8749792Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8750049Z               "line": 10930
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8750298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8750541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8750842Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8751099Z               "line": 11602
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8751347Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8751584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8751889Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8752142Z               "line": 11636
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8752391Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8752632Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8752871Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8753115Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8753354Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8753601Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8753910Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8757175Z       "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).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8757442Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8757785Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8758028Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8758286Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8758535Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8758773Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8759107Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8759352Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8759613Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8759866Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8760110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8760401Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8760652Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8760895Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8761138Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8761383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8761631Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8761892Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8762149Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8762393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8762702Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8762965Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8763212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8763450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8763756Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8764013Z               "line": 1564
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8764257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8764498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8764796Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8765059Z               "line": 2180
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8765307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8765550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8765860Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8766112Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8766355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8766599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8766904Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8767158Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8767403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8767644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8767963Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8768226Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8768565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8768808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8769199Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8769456Z               "line": 333
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8769706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8769946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8770258Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8770525Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8770765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8771008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8771314Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8771575Z               "line": 417
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8771818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8772071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8772385Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8772657Z               "line": 431
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8772904Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8773142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8773462Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8773719Z               "line": 476
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8773963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8774201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8774507Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8774769Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8775010Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8775261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8775566Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8775834Z               "line": 559
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8776077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8776324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8776634Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8776892Z               "line": 573
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8777140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8777478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8777783Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8778044Z               "line": 600
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8778286Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8778523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8778828Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8779167Z               "line": 934
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8779406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8779650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8779951Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8780213Z               "line": 1296
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8780454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8780695Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8780996Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8781253Z               "line": 1076
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8781496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8781739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8782039Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8782302Z               "line": 5568
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8782550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8782799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8783104Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8783358Z               "line": 5896
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8783602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8783841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8784146Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8784409Z               "line": 5908
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8784646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8784890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8785190Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8785452Z               "line": 9122
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8785695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8785935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8786240Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8786493Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8786741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8786990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8787304Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8787657Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8787911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8788158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8788456Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8788717Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8789050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8789294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8789595Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8789847Z               "line": 504
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8790090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8790333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8790638Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8790896Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8791138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8791378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8791683Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8791946Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8792190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8792443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8792749Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8793006Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8793253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8793500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8793809Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8794073Z               "line": 1196
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8794315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8794567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8794858Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8795116Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8795364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8795604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8795965Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8796221Z               "line": 7970
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8796461Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8796805Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8797053Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8797297Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8797569Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8797827Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8798068Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8798388Z               "path": "crates/spt/tests/brain_survive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8798641Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8798885Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8799230Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8799530Z               "path": "crates/spt/tests/n1_pairing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8799788Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8800030Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8800273Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8800521Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8800765Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8801028Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8801285Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8801526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8801838Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8802098Z               "line": 799
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8802345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8802592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8802897Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8803149Z               "line": 1145
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8803388Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8803633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8803938Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8804191Z               "line": 1378
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8804437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8804680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8804985Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8805238Z               "line": 1412
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8805490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8805728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8806038Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8806296Z               "line": 1454
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8806554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8806796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8807209Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8807476Z               "line": 1526
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8807718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8807966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8808271Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8808534Z               "line": 1539
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8808777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8809106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8809421Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8809677Z               "line": 1562
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8809922Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8810166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8810476Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8810729Z               "line": 1588
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8810982Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8811224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8811535Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8811792Z               "line": 1602
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8812039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8812282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8812585Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8812847Z               "line": 1626
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8813090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8813334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8813643Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8813901Z               "line": 1784
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8814145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8814382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8814687Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8814944Z               "line": 2052
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8815188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8815430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8815736Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8816089Z               "line": 2107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8816331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8816579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8816899Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8817165Z               "line": 2153
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8817408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8817654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8817959Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8818220Z               "line": 2198
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8818464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8818708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8819099Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8819356Z               "line": 2242
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8819601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8819843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8820151Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8820402Z               "line": 2284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8820645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8820898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8821199Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8821465Z               "line": 10196
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8821708Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8821956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8822261Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8822515Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8822761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8823001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8823311Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8823570Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8823813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8824056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8824366Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8824618Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8824861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8825105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8825406Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8825666Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8825909Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8826247Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8826557Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8826819Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8827058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8827303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8827608Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8827863Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8828104Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8828343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8828648Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8828901Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8829230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8829473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8829778Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8830035Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8830278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8830532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8830844Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8831100Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8831338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8831577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8831883Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8832135Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8832379Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8832621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8832931Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8833183Z               "line": 342
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8833430Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8833667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8833967Z               "path": "crates/spt-daemon/src/deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8834224Z               "line": 358
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8834464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8834707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8835012Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8835374Z               "line": 4087
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8835618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8835861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8836178Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8836431Z               "line": 4123
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8836680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8836923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8837224Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8837481Z               "line": 1450
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8837728Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8837971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8838276Z               "path": "crates/spt-daemon/tests/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8838532Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8838774Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8839103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8839408Z               "path": "crates/spt-daemon/tests/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8839669Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8839918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8840166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8840471Z               "path": "crates/spt-daemon/tests/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8840730Z               "line": 291
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8840973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8841209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8841512Z               "path": "crates/spt/tests/brain_split.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8845219Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8845486Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8845733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8846048Z               "path": "crates/spt/tests/brain_split.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8846310Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8846559Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8846801Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8847043Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8847286Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8847530Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8847769Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8848074Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8852162Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8852467Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8852716Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8852974Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8853227Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8853474Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8853717Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8853965Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8854209Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8854474Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8854729Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8854968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8855269Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8855521Z               "line": 513
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8855765Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8856012Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8856260Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8856508Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8856771Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8857024Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8857265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8857580Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8857932Z               "line": 1445
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8858185Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8858424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8858729Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8859072Z               "line": 1468
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8859317Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8859553Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8859794Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8860037Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8860295Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8860548Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8860790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8861105Z               "path": "crates/spt-daemon/tests/netbroker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8861357Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8861605Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8861846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8862151Z               "path": "crates/spt-daemon/tests/pump.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8862405Z               "line": 501
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8862652Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8862890Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8863129Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8863381Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8863633Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8863886Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8864125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8864431Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8864684Z               "line": 2666
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8864925Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8865166Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8865410Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8865647Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8865880Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8866120Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8866415Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8871093Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8871389Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8871636Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8871889Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8872137Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8872372Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8872624Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8872871Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8873131Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8873393Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8873636Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8873921Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8874179Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8874423Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8874666Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8874905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8875152Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8875409Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8875661Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8875902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8876212Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8876575Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8876822Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8877075Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8877313Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8877567Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8877825Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8878082Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8878318Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8878563Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8878820Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8879163Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8879401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8879696Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8879954Z               "line": 1871
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8880192Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8880437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8880678Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8880923Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8881162Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8881405Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8881720Z       "id": "REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8886782Z       "title": "W2 (LIFECYCLE-TRUTH, KNOWN-HAZARDS, flagship — the update wedge): PTY viewer fan-out and control mutations must not depend synchronously on a live draining brain. ROOT rig-CONFIRMED (NtSuspendProcess on the brain, no update involved): brain-subscriber session-output writes ride UNDER the per-session log lock (broker.rs:19-20); failed writes are handled (cursor freeze + detach :3486) but BLOCKED writes are not. Suspended brain => within seconds attached rc output freezes; detach does NOT release the control stamp (release routes through the brain); reattach REFUSED (controlled-by); rc --take hangs; daemon status stays healthy. Field: every brain cycle (incl. every update apply) has a freeze window; a stalled/slow-draining new brain = permanent wedge until bounce; brain.ready != subscribers drained. FIX SHAPE (todlando proposes, doyle RULES BEFORE IMPL): subscriber writes move OFF the log lock (bounded/nonblocking, stall => detach-subscriber like viewer eviction — broker already buffers + replays on re-attach, so a detached-stalled brain self-heals by rewind); control stamp release/take completes against the BROKER without brain round-trip (or bounded with loud timeout). doc = KNOWN-HAZARDS entry. Int (tonight's rig, encoded): suspend brain child mid-session -> attached viewer ticks CONTINUE + rc --take completes; resume -> no output lost (cursor replay).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8887072Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8887320Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8887568Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8887817Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8888061Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8888302Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8888550Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8888799Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8889147Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8889399Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8889647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8889932Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8890194Z               "line": 724
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8890437Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8890682Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8890930Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8891171Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8891431Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8891680Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8891927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8892238Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8892509Z               "line": 1761
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8892751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8892995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8893300Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8893554Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8893802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8894038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8894341Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8894594Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8894837Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8895176Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8895481Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8895744Z               "line": 496
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8896034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8896282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8896585Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8896841Z               "line": 508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8897085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8897332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8897637Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8897894Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8898138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8898372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8898673Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8898926Z               "line": 529
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8899250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8899486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8899796Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8900064Z               "line": 2756
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8900307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8900555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8900860Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8901122Z               "line": 2792
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8901365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8901608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8901907Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8902168Z               "line": 3740
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8902410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8902653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8902963Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8903221Z               "line": 9105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8903465Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8903703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8903989Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8904246Z               "line": 8388
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8904489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8904741Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8905020Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8905374Z               "line": 8821
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8905621Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8905864Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8906107Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8906351Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8906609Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8906861Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8907104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8907430Z               "path": "crates/spt-daemon/tests/brain_decouple.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8907688Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8907936Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8908173Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8908416Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8908660Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8908918Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8909256Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8909500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8909801Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8910060Z               "line": 12667
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8910309Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8910566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8910872Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8911129Z               "line": 12795
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8911376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8911615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8911910Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8912168Z               "line": 12824
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8912410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8912645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8912932Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8913180Z               "line": 35361
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8913419Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8913663Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8913900Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8914139Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8914378Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8914617Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8914908Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8915390Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8915652Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8915895Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8916147Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8916391Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8916639Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8916888Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8917150Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8917407Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8917649Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8917901Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8918166Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8918423Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8918667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8919058Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8919310Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8919554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8919798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8920103Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8920356Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8920611Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8920855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8921146Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8921399Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8921641Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8921883Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8922122Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8922371Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8922629Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8922888Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8923125Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8923370Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8923632Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8923879Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8924126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8924431Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8924690Z               "line": 1925
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8924938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8925177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8925577Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8925837Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8926082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8926326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8926622Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8926875Z               "line": 339
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8927128Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8927365Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8927609Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8927852Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8928092Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8928332Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8928625Z       "id": "REQ-HAZARD-CEREMONY-CLOCK-STEP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8932124Z       "title": "W1/D3 (JOIN-TRUTH, KNOWN-HAZARDS): the cached ceremony offset goes stale-WRONG when the OS clock STEPS under a live daemon — an offset measured against the OLD clock keeps applying for up to the 15-min TTL. Field-proven timeline (enlyzeam): refresh cadence 15:08/15:23/15:38/15:53; operator `w32tm /resync` stepped the clock −210s at 15:45:46; every `subnet join` returned NO_SEED_HOLDER until a daemon bounce forced a fresh query. Fix: the cache snapshot stores an (Instant, SystemTime) PAIR; on read, if |wall-elapsed − mono-elapsed| > ~2s the clock stepped ⇒ force an immediate refresh (offset recomputed against the new clock). PLUS: `meet_seed_holder` (pairhost.rs), on search-deadline exhaustion, forces ONE fresh NTP refresh + one final sweep before returning NO_SEED_HOLDER — so a stepped-clock join self-heals without a bounce. Clock reads must be seam-injectable for the hazard unit (inject the (mono,wall) pair — do NOT sleep 15 min).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8932406Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8932649Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8932898Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8933136Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8933387Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8933634Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8933896Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8934258Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8934507Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8934764Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8935025Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8935283Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8935526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8935845Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8936109Z               "line": 510
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8936355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8936600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8936924Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8937186Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8937435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8937684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8938003Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8938265Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8938508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8938755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8939171Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8939429Z               "line": 174
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8939682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8939935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8940255Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8940516Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8940769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8941016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8941341Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8941604Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8941850Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8942098Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8942337Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8942585Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8942852Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8943105Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8943357Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8943605Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8943862Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8944129Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8944374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8944785Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8945057Z               "line": 1140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8945299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8945546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8945866Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8946133Z               "line": 1173
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8946378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8946626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8946938Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8947197Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8947446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8947695Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8948009Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8948272Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8948520Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8948767Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8949106Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8949344Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8949585Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8949832Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8950127Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8950819Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8951081Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8951329Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8951577Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8951816Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8952060Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8952305Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8952568Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8952821Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8953064Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8953355Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8953617Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8953860Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8954222Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8954465Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8954717Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8954987Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8955244Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8955492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8955806Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8956069Z               "line": 637
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8956317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8956561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8956876Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8957138Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8957384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8957635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8957950Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8958212Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8958460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8958707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8959109Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8959370Z               "line": 883
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8959623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8959880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8960187Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8960450Z               "line": 1105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8960702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8960944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8961245Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8961508Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8961751Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8962005Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8962252Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8962495Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8962761Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8963024Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8963271Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8963518Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8963781Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8964043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8964306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8964725Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8964992Z               "line": 402
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8965244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8965485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8965799Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8966066Z               "line": 1705
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8966319Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8966567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8966882Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8967150Z               "line": 1743
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8967398Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8967649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8967954Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8968213Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8968462Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8968710Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8969030Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8969281Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8969534Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8969772Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8970073Z       "id": "REQ-HAZARD-CODE-SEAL-SEED-ORACLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8974795Z       "title": "THE CODE SEAL MUST NEVER BECOME AN ORACLE AGAINST THE SUBNET SEED. The seed is live credential material with an existing TOTP use, and the sealed code is a string DESIGNED TO BE HANDED AROUND OUT OF BAND -- so the envelope reaches populations the seed never should. The invariant: the seal touches the seed ONLY through HKDF-derived keys under domain-separated, VERSIONED labels distinct from every other derivation the seed already feeds, so possession of any number of envelopes yields nothing about the seed and nothing about any other key derived from it. THE RAW SEED NEVER ENTERS THE ENVELOPE, the cipher key and the authentication key are SEPARATE derivations rather than one key used twice, and derived key material is wiped after use in the shape the membership-key primitive already established. This is the KDF no-reveal invariant ADR-0054 records, stated as a hazard because it is the kind of property that survives review and dies to a later refactor that 'simplifies' two derivations into one. Gate: impl -- the domain-separated derivations and the wipe; unit -- the encryption and authentication keys derived from one seed are DIFFERENT (the assertion a collapsed refactor fails), the derivation label is versioned and distinct from the membership-key and seed-proof domains, and no envelope byte equals any seed byte run for a real seed -- with a contrasting fixture proving the scan can see a match it is looking for.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8975157Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8975400Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8975647Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8975888Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8976136Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8976374Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8976636Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8976888Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8977146Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8977390Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8977648Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8977904Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8978147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8978457Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8978709Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8979046Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8979285Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8979526Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8979769Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8980032Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8980295Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8980534Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8980781Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8981038Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8981284Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8981527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8981842Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8982093Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8982351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8982594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8982995Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8983257Z               "line": 718
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8983496Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8983740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8983980Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8984219Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8984459Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8984697Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8985001Z       "id": "REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8992726Z       "title": "F-032 (perri field finding 2026-07-08, LEGACY-SPT-PARITY-GAP, data-loss): commune/signoff ingest MUST NOT delete a drop until its content is DURABLY COMMITTED to every APPLICABLE tier — a slice that cannot be committed this ingest must leave the drop in place for a later ingest (retry when the precondition resolves) OR durably preserve the un-committed slice, NEVER delete-then-lose. ROOT (doyle triage, code-grounded): ingest_drops (spt-live/src/ingest.rs:200) unconditionally `remove_file(&drop_path)?` AFTER route_slices (ingest.rs:121), but route_slices GATES the project tier on `!project_id.is_empty()` (ingest.rs:156) — when the endpoint's cwd is unresolved/owlery-internal at ingest time the project_id is empty, so the `<project-context>` slice is PARSED but never write_context'd/commit_project'd, yet the source drop is still deleted → the project-context content is permanently lost (black-hole). perri's repro: a two-sliced echo-commune (<live-context> role+release recipe + <project-context> v0.17.4 status + Items 3-5 map) INGESTED (file deleted) yet never surfaced at her next SessionStart resume-pull; adapter exonerated (file-write + slicing tags correct); fixture at (system temp)/F-032-commune-2026-07-08T222721Z.md (5595B, sha256 9bc27e18cf385958; perri wrote it verbatim from session log 0841835d.jsonl). Legacy spt held commit-first-then-delete parity; the modern two-slice ingest broke it. FIX distinguishes: a write SUPPRESSED-by-precedence (incoming older than durable → already-superseded → safe to delete) from a slice NOT-committed-because-un-committable-now (empty project_id / write error → must NOT delete; retry or preserve). Gate: an ingest with a non-empty <project-context> slice but an EMPTY project_id must NOT delete the drop (or must durably preserve the project slice) — the content survives to the next resolvable ingest / SessionStart; the live-tier commit path stays unchanged; a genuinely superseded (precedence-suppressed) drop still deletes. KNOWN-HAZARDS entry on landing (REQ-HAZARD-* = conformance-checklist, needs a test).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8993126Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8993370Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8993617Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8993869Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8994112Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8994357Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8994602Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8994864Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8995127Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8995371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8995667Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8995972Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8996216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8996457Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8996696Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8996943Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8997203Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8997455Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8997708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8998009Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8998276Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8998520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8998763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8999140Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8999402Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8999648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.8999889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9000195Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9000461Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9000804Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9001044Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9001276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9001524Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9001786Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9002045Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9002281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9002584Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9002837Z               "line": 373
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9003081Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9003319Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9003562Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9003805Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9004067Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9004324Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9004569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9004875Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9005134Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9005392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9005636Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9005955Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9006212Z               "line": 829
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9006461Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9006707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9007008Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9007270Z               "line": 889
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9007517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9007763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9008064Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9008325Z               "line": 925
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9008573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9008817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9009213Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9009470Z               "line": 952
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9009724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9009967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9010375Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9010630Z               "line": 1028
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9010882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9011135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9011436Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9011698Z               "line": 1076
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9011943Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9012190Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9012432Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9012675Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9012918Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9013168Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9013473Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9014336Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9014613Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9014866Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9015125Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9015367Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9015618Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9015876Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9016143Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9016406Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9016658Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9016910Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9017172Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9017435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9017689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9018006Z               "path": "crates/spt-daemon/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9018270Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9018513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9018757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9019134Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9019386Z               "line": 538
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9019625Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9019868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9020173Z               "path": "crates/spt-live/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9020435Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9020678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9021023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9021329Z               "path": "crates/spt-live/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9021605Z               "line": 147
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9021849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9022101Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9022415Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9022673Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9022911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9023156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9023468Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9023728Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9023971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9024210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9024529Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9024792Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9025055Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9025297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9025622Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9025879Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9026130Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9026374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9026689Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9026942Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9027193Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9027446Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9027690Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9027938Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9028205Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9028461Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9028707Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9029050Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9029308Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9029566Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9029809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9030123Z               "path": "crates/spt-daemon/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9030486Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9030734Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9030991Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9031299Z               "path": "crates/spt-daemon/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9031560Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9031803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9032056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9032366Z               "path": "crates/spt-daemon/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9032622Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9032876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9033119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9033429Z               "path": "crates/spt-daemon/tests/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9033683Z               "line": 344
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9033927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9034174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9034488Z               "path": "crates/spt-live/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9034747Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9034995Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9035242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9035557Z               "path": "crates/spt-live/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9035819Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9036062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9036310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9036620Z               "path": "crates/spt-live/src/reconcile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9036882Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9037134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9037382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9037701Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9037954Z               "line": 949
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9038202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9038446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9038765Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9039112Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9039352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9039596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9039901Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9040164Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9040502Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9040745Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9040979Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9041217Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9041460Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9041700Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9041988Z       "id": "REQ-HAZARD-CONPTY-DSR",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9042406Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9042669Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9042911Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9043153Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9043397Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9043651Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9043894Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9044151Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9044407Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9044649Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9044901Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9045173Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9045430Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9045678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9045997Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9046259Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9046504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9046752Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9050609Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9050895Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9051171Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9051424Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9051672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9051987Z               "path": "crates/spt-term/tests/dsr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9052250Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9052500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9052750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9053056Z               "path": "crates/spt-term/tests/dsr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9053315Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9053572Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9053815Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9054216Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9054468Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9054740Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9054996Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9055246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9055557Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9055819Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9056067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9056314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9056629Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9056886Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9057134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9057384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9057684Z               "path": "crates/spt-term/src/reader.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9057944Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9058192Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9058436Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9058684Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9058931Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9059275Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9059512Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9059818Z       "id": "REQ-HAZARD-CONTROL-STAMP-CONVERGENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9065247Z       "title": "Control/viewer stamps must CONVERGE to broker session-table truth for every session-backed endpoint, not merely edge-trigger — the UPWARD companion to the DOWNWARD edge-clear REQ-HAZARD-CONTROL-STAMP-LIFETIME (7.27); same 'stamps == broker truth' family. ROOT (F-026 stamp-gap, hall-b/ball-b): a picker-created endpoint's broker spawn become_controller->stamp_driven_by->set_controlled(true) fires BEFORE the adapter binds its perch (a fresh endpoint has no perch until claude boots + binds), so mutate_info returns NotFound and the edge stamp is SWALLOWED (let _); the adapter's bind then writes InfoJson::new with controlled:false DEFAULT and no later edge re-stamps -> the endpoint reads uncontrolled FOREVER while driven (the #3 display fix is correct but datum-starved on this creation path). FIX: the broker (SINGLE WRITER) re-asserts each live session's control/viewer stamps to session-table truth, DIVERGENCE-GATED (read info; compare driven_by/controlled/viewer_count; write ONLY on diff — no per-poll fsync storm), on the KIND_SESSIONS handler (piggyback: the daemon reconcile + picker poll it, so a fresh perch converges within one reconcile-poll window after bind = the BOUNDED window, no new timer). Event-on-input rejected (an idle controlled session like hall-b never converges). Writes run OFF the log lock (snapshot truth under the lock, converge off it) per the lock-across-effect discipline (KH 7.12/5.16).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9065551Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9065793Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9066045Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9066288Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9066531Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9066770Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9067018Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9067266Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9067527Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9067789Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9068032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9068328Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9068595Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9068833Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9069162Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9069405Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9069648Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9069906Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9070160Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9070402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9070706Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9070966Z               "line": 1090
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9071205Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9071448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9071744Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9072000Z               "line": 1151
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9072244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9072482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9072783Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9073135Z               "line": 6213
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9073384Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9073620Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9073861Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9074106Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9074368Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9074621Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9074857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9075202Z               "path": "crates/spt-daemon/tests/control_stamp_lifetime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9075459Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9075702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9075942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9076278Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9076538Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9076781Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9077020Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9077263Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9077507Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9077777Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9078025Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9078268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9078574Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9078828Z               "line": 9987
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9079165Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9079407Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9079650Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9079889Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9080128Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9080366Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9080662Z       "id": "REQ-HAZARD-CONTROL-STAMP-LIFETIME",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9083935Z       "title": "#2: a control/viewer stamp never outlives its session — every teardown path clears what attach stamped. The broker exit-waiter (broker.rs ~:1844) sends the exit frame + sessions.remove(&id) but does NOT clear the perch's controller/viewer stamps; clear_controller()->stamp_driven_by() (clears driven_by+controlled) runs ONLY on controller-detach/evict/displace. /exit kills the CHILD not the controller conn, so the OutputLog drops with controlled:true, viewer_count, (and driven_by for a remote controller) latched in info.json forever — and hfenduleam keeps gossiping controller_node=self cross-node. Fix: on session reap, clear the perch's controller/viewer stamps (set_driven_by(None)+set_controlled(false)+set_viewer_count(0) via the known endpoint id) — broker stays the single writer. KNOWN-HAZARDS invariant. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9084224Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9084469Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9084713Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9084951Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9085190Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9085432Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9085676Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9085933Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9086187Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9086430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9086718Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9086979Z               "line": 655
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9087219Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9087461Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9087718Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9087960Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9088224Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9088471Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9088715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9089106Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9089359Z               "line": 3598
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9089604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9089848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9090148Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9090402Z               "line": 8472
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9090650Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9090892Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9091135Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9091379Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9091642Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9091892Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9092234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9092577Z               "path": "crates/spt-daemon/tests/control_stamp_lifetime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9092839Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9093082Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9093326Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9093569Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9093813Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9094074Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9094332Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9094575Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9094817Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9095053Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9095296Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9095592Z       "id": "REQ-HAZARD-CONTROLLER-GAP-RESUME",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9103753Z       "title": "A serving CONTROLLER whose serve-brain hits a b4 drop-don't-block FORWARD output gap must RESUME-FROM-FLOOR (re-subscribe from delivered_through and re-fetch the dropped frames from the ring), NOT snap-above and NOT fatal. ROOT (v0.13.0 forkpty re-run, post-keystone): b4 made the controller a non-blocking try_send that DROPS frames when its bounded channel fills (a controller that falls behind its OWN echo under a hard flood), so the next read is a forward gap the strict reject-gap (brain.rs:624/628, B2 exactly-once) FATALS — wedged_viewer_does_not_stall_controller (attach.rs:1048) drove ctrl.read_event() raw and fataled on `output gap got 6134 want 4643`. Pre-b4 the inline sleep-poll BLOCKED the drain to the controller's rate (no drops, no gaps); this is a b4 SIDE-EFFECT, not a new class. A controller CANNOT snap (it is authoritative — advances delivered_through; skipping rolled frames = not-exactly-once = B2 violation), so REQ-HAZARD-VIEWER-RING-ROLL-SNAP does NOT apply. B2 INVARIANT (doyle, broker.rs:327-330): the ring trim is delivered_through-BLIND (`while ring.len() > cap_chunks { pop_front() }`), so re-fetch is exactly-once IFF tail - delivered_through <= cap_chunks (4096) — NOT guaranteed in general, but the common case (burst < ring; wedged_viewer ~1492 < 4096) holds. FIX: serve_attach catches the output-gap on the controller path (does not ?-propagate) and re-subscribes from Brain::controller_resume_floor (= delivered_through = the gap's `want`; NO mid-stream KIND_SESSIONS round-trip — sessions() loops on read_event and would re-fatal on the same gap + discard Output); the broker replays the dropped frames. The IRRECOVERABLE edge (floor unchanged across two resumes = ring rolled past delivered_through = frames gone) surfaces a MARKED truncation to the operator (never silent-skip = B2 lie, never spin) and ends cleanly — full graceful handling deferred to REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND. Do NOT make the ring trim delivered_through-aware (that risks an unbounded ring under a stuck controller; the 5s eviction + 4096 ring is the practical bound). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9104078Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9104324Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9104573Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9104815Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9105064Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9105310Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9105555Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9105828Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9106081Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9106324Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9106572Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9106829Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9107077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9107321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9107631Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9107882Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9108127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9108371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9108672Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9108929Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9109253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9109497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9109807Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9110165Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9110407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9110649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9110949Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9111217Z               "line": 1635
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9111465Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9111712Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9111960Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9112203Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9112461Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9112710Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9112951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9113253Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9113506Z               "line": 1357
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9113746Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9113989Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9114230Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9114479Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9114737Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9114985Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9115238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9115534Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9115794Z               "line": 2711
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9116031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9116274Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9116579Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9116831Z               "line": 12160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9117069Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9117313Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9117552Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9117790Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9118033Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9118271Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9118602Z       "id": "REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9122354Z       "title": "DEFERRED EDGE of REQ-HAZARD-CONTROLLER-GAP-RESUME: when a serving controller falls behind the live ring FURTHER than the ring holds (tail - delivered_through > cap_chunks, the ring trim being delivered_through-blind, broker.rs:327-330), the dropped frames have rolled OUT of the ring and an exactly-once re-fetch is IMPOSSIBLE. v0.13.0 DETECTS this (resume floor unchanged across two consecutive resumes) and surfaces a MARKED truncation notice to the operator then ends the attach cleanly — it never silent-skips (a B2 lie) and never spins. FULL graceful handling (a clearly-marked snap-with-data-loss that keeps the operator on the live tail, or a structured truncation record the rc renders distinctly, plus the controller-too-slow + ring-too-small backpressure/sizing policy) is DEFERRED — staging it needs a netsplit / deep-behind harness (the in-process loopback rig keeps up; wedged_viewer's gap is recoverable at ~1492 < 4096). (v0.13.0+)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9122645Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9122892Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9123140Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9123411Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9123667Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9123909Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9124156Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9124424Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9124691Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9124944Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9125188Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9125444Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9125693Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9125935Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9126180Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9126444Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9126694Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9126934Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9127173Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9127416Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9127653Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9127940Z       "id": "REQ-HAZARD-CONTROLLER-LEASE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9131623Z       "title": "RC-RENDER-TRUTH W2 (KNOWN-HAZARDS 7.48 — umbrella conformance seam for ADR-0044): at most one input-capable controller lease per PTY session; takeover revokes atomically and loudly; input is fenced to the active lease; node identity is never a lease. The full hertz 8-step deterministic two-loopback-client broker regression rides verbatim: A subscribes Control from node N and controls; B subscribes Take from the SAME node with a different lease; A receives Displaced{by:N} then terminal stream completion (rc exits via existing PumpEnd::Displaced); output post-takeover reaches B not A; A's Input+Resize post-takeover mutate nothing; B's both apply; controlled/driven_by metadata identifies B with exactly one controller slot; a separate equal-lease/equal-generation replay test proves genuine dispatcher recovery remains silent and never self-displaces. Gate: int — the matrix; doc — KNOWN-HAZARDS 7.48.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9132013Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9132256Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9132503Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9132741Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9132989Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9133234Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9133491Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9133753Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9133990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9134288Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9134541Z               "line": 819
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9134789Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9135031Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9135265Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9135514Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9135772Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9136029Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9136267Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9136509Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9136764Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9137014Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9137259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9137593Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9137846Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9138090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9138333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9138663Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9138930Z               "line": 370
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9139254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9139600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9139936Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9140193Z               "line": 452
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9140436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9140681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9141014Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9141267Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9141520Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9141758Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9142001Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9142249Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9142506Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9142768Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9143010Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9143250Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9143488Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9143722Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9144027Z       "id": "REQ-HAZARD-CONTROLLER-RETAKE-FLOOR",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9149345Z       "title": "`become_controller` should STRUCTURALLY refuse a controller re-take whose `from_seq` falls below the connection's already-delivered contiguous floor — making the P1c reorder invariant un-reintroducible by a future caller, not just removed at the one caller. ROOT/SCOPE (doyle proposed, P1c gate dialogue): P1c fixes REQ-HAZARD-CONTROLLER-WRITER-REORDER three ways (handoff single-take + epoch-gate-under-lock + session_cursors seed), removing the one decreasing-floor double-take and bounding any other to already-committed-only. A self-enforcing broker guard would refuse the bad SHAPE outright. BLOCKER: the obvious predicate (`from_seq >= delivered_through`) is UNSAFE because `delivered_through` is SESSION-WIDE (the `Arc<AtomicU64>` on `OutputLog`, shared by all controllers/viewers, advanced monotonic-MAX; `resume_seq` reads it) — a normal fresh-operator `from_seq=0` attach to a producing session legitimately sits below it (full ring replay + consumer dedup-below/snap-above), and monotonic-MAX can't distinguish the hazard (a `seq1`-without-`seq0` write reads as `2`). The structurally-correct guard needs a NEW per-connection contiguous-sent cursor (the true highest-contiguous seq this socket has received) that does not exist today; the guard then refuses a re-take below THAT. Bigger than P1c; no live gap (P1c fully fixes the actual bug). Mint/refine stages when the per-connection cursor is built. (v0.13.0 follow-up, post-ship)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9149741Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9149993Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9150236Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9150501Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9150753Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9150992Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9151236Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9151493Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9151751Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9151989Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9152242Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9152499Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9152767Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9153018Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9153280Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9153537Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9153796Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9154044Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9154292Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9154534Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9154772Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9155091Z       "id": "REQ-HAZARD-CONTROLLER-WRITER-REORDER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9172318Z       "title": "Two `controller_writer` threads must never race ONE brain↔broker connection's socket. ROOT (doyle, instrumented RACEDIAG repro on kitsubito): on a brain-restart re-serve the handoff brain registers as controller on the SAME session TWICE over the SAME `Brain::conn` socket — (1) `Brain::handoff` eagerly `subscribe(prior.session_id, prior.next_seq=1)` → `become_controller(from_seq=1)`, initial=[1], spawns writer-A (writes seq 1); (2) `serve_attach` re-handles the replayed `Request{from_seq:0}` → `attach_as(sid,0)` → `become_controller(from_seq=0)`, initial=[0,1], spawns writer-B (writes 0 then 1). `become_controller` (broker.rs) drops the prior `ControllerSink` (its `tx`) but does NOT stop the prior writer thread — writer-A keeps flushing its owned `initial` batch, and both writers hold clones of the same `SharedSend` (`Arc<Mutex<socket>>`) with NO inter-thread ordering. When writer-A's seq 1 wins the socket before writer-B's seq 0, the strict legacy consumer (brain.rs read_event reject-gap path) sees `output gap: got seq 1 want 0` → the test `attach_survives_target_brain_restart_exactly_once` panics at `.expect(\"re-serve\")` OR HANGS in `render_until` (serve thread died on the gap → MARKER_TWO never reaches the wire). `prior.next_seq` is life1's CONSUMPTION cursor, NOT life2's connection state — life2's socket has been sent NOTHING, so a `from_seq=0` full replay on a connection that already streamed seq 1 is contradictory. Snap-above tolerance ALONE can't fix it (it would dedup-drop the late seq 0 → byte loss → the exactly-once byte-identity assert fails). PRE-EXISTING, surfaced by the v0.13.0 green-both-runners release gate; P1b is INNOCENT (its diff touches only input-ack machinery, proven mechanically + the test passes post-P1b in isolation). Sibling flaky cluster: `inject_control_wedge::g2`, `broker::spawn_env_reaches_child`. INVARIANT: on a single brain↔broker connection the controller output-frame stream is monotonic non-decreasing in seq (modulo dedup re-sends); exactly ONE `controller_writer` is ever live per connection; a SUPERSEDED writer writes NO further frames; a re-serve never replays a seq below what the connection already received. FIX (doyle design, corrected at the gate 2026-06-20): fix #1 as designed ('drop handoff's eager subscribe so serve_attach's attach_as is the sole registration') was REVERTED — handoff's `subscribe(prior.next_seq)` IS the standalone-resume mechanism (the brain-only update engine `apply_brain_only` + the `handoff`/`idempotent`/`daemon_e2e` int tests replay output through it with NO `serve_attach`; dropping it hung every resume-via-handoff test). The shipped fix is three parts: (1) CORRECTNESS — `Brain::handoff` seeds `session_cursors` at `prior.next_seq` so the consumer runs the production dedup-below+snap-above path, never the strict reject-gap legacy trap; this is COMPLETE (not merely tolerant) because every `controller_writer` emits an ASCENDING seq stream and the surviving writer (serve_attach's attach_as(sid,0)) offers the complete `[0,end]` range, so a snap-above merge of ascending writers delivers `[K,end]` with no skip/dup (first sighting of any seq>M is preceded by M on that writer). (2) INVARIANT — `controller_writer`'s INITIAL-BATCH replay is epoch-gated: `controller_epoch` is a shared `Arc<AtomicU64>`, the writer re-reads it UNDER `send.lock()` (atomically with `write_frame`) and returns the instant it is superseded — no check-then-block-then-write window, no superseded replay (W1-safe: never blocks the drain under `Mutex<OutputLog>`). The LIVE loop is NOT gated (new output only flows to the current controller; a superseded writer must still deliver its terminal `Displaced` kick — gating it suppressed the loud-take notice; it ends on `tx`-drop). (3) EXPLICIT-RESUME / OPERATOR-STREAM BOUNDARY (the LOAD-BEARING fix — kitsubito RACEDIAG ~33% repro the keystones missed) — `Brain::subscribe_with` (shared by attach/attach_as) resets the resume-mode dedup cursor to `from_seq`. The handoff eager subscribe makes serve_attach's brain receive the replay's seq K BEFORE the operator Request is processed (`attached`=false); that frame is dropped by the if-attached forward gate but the snap-above cursor already advanced past K, and `attach_as(sid,0)`'s re-subscribe used to leave the cursor advanced → the broker's re-send of seq K arrives below it, deduped, never forwarded → operator viewport forward-gap (silent content loss in the real rc consumer). Resetting to from_seq on the attach_as re-subscribe re-delivers from 0 (operator dedups the overlap) so seq K reaches the viewport. The epoch gate (2) is sound (RACEDIAG: zero socket interleaving above K); cold-start brains (empty map — production dispatch serve) keep the legacy next_seq path, so production is unaffected. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9172784Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9173033Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9173285Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9173544Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9173787Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9174042Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9174291Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9174543Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9174816Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9175077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9175324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9175620Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9175882Z               "line": 595
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9176132Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9176387Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9176632Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9176881Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9177153Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9177411Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9177659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9177964Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9178235Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9178483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9178740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9179121Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9179386Z               "line": 2404
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9179634Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9179881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9180196Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9180453Z               "line": 3868
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9180711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9180955Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9181204Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9181451Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9181821Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9182076Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9182329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9182639Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9182896Z               "line": 1594
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9183145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9183387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9183698Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9183959Z               "line": 1701
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9184212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9184461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9184770Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9185032Z               "line": 1214
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9185279Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9185532Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9185780Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9186029Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9186291Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9186553Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9186804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9187117Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9187380Z               "line": 12013
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9187618Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9187865Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9188108Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9188362Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9188605Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9188853Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9189253Z       "id": "REQ-HAZARD-CORRUPT-PERCH-COHERENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9189951Z       "title": "Corrupt (present-but-unparseable) info.json is NOT absent: liveness/status readers agree a destroyed record is neither alive nor Active (counter-39 #2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9190218Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9190471Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9190717Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9190956Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9191209Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9191449Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9191715Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9191977Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9192220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9192607Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9192865Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9193109Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9193352Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9193599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9193848Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9194114Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9194368Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9194626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9194960Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9195219Z               "line": 999
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9195467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9195717Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9196078Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9196345Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9196599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9196852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9197146Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9197421Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9197667Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9197921Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9198163Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9198410Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9198682Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9199021Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9199274Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9199526Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9199790Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9200052Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9200302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9200629Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9200896Z               "line": 2283
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9201145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9201393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9201703Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9201965Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9202329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9202571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9202874Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9203134Z               "line": 431
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9203388Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9203636Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9203883Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9204126Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9204369Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9204618Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9204919Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9205609Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9205876Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9206133Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9206375Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9206629Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9206872Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9207121Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9207382Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9207648Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9207915Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9208162Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9208418Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9208685Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9209029Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9209285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9209605Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9209862Z               "line": 954
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9210106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9210350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9210656Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9210906Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9211147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9211390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9211681Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9211939Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9212191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9212444Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9212739Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9213097Z               "line": 515
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9213345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9213596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9213900Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9214162Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9214405Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9214653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9214963Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9215230Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9215474Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9215727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9216042Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9216301Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9216555Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9216798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9217113Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9217380Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9217632Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9217884Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9218127Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9218391Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9218651Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9218906Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9219240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9219560Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9219817Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9220065Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9220318Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9220605Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9220877Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9221144Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9221409Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9221654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9221955Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9222218Z               "line": 1260
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9222570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9222819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9223138Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9223410Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9223657Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9223905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9224212Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9224470Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9224718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9224969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9225274Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9225542Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9225795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9226043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9226354Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9226611Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9226866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9227119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9227439Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9227701Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9227954Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9228207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9228512Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9228778Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9229106Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9229352Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9229586Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9229829Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9230067Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9230306Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9230621Z       "id": "REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9237779Z       "title": "MSG-IDENTITY W1 / F-036 leg a (perri field RCA 2026-07-09/10, psyche seat-theft — doyle ACCEPTED primary fix): the daemon MUST sanitize inherited per-session identity env (SPT_ENDPOINT_ID / OWL_SESSION_ID / SPT_AGENT_ID) at startup AND before EVERY role spawn — these are per-session identity and are NEVER correct inherited state for a daemon or its role children. ROOT: a daemon restarted from inside an agent session (routine during core dev / `spt update apply`) carries the session's SPT_ENDPOINT_ID and passes it verbatim to every [session.psyche_resume] spawn; core only strips each role's DECLARED env_remove list (runtime.rs:728), so ONE adapter env_remove miss infects the whole node — every psyche claude turn fires SessionStart, the adapter hook sees the endpoint id, takes the bind path, and ROTATES the victim's perch to the psyche's own sid with a valid prior-sid proof, every pulse (field: lia/deployah/doyle psyches ALL briefed as <sptc-active-perch id=doyle>; 37 peer msgs drained into lia's psyche transcript; victim deliveries eaten, communes dark, sends downgraded from:cli@node). Adapter half FIXED v0.18.8 (env_remove += SPT_ENDPOINT_ID + shim scrub + SPT_PSYCHE_TURN hook-bail) — this REQ is the CORE-LAYER defense so no adapter miss can ever leak identity again. FOLD (F-036 leg b docs-fix, doyle-owned): broaden the recursion_guard_env schema description (manifest.rs:314 + crates/spt-runtime/manifest.schema.json:306) — core honors it on ANY role declaring the field (runtime.rs:740, keyed on the FIELD not the role name); drop the 'summarizer children' wording (perri adopted on both psyche roles v0.18.8, proven live). Gate: a daemon started with SPT_ENDPOINT_ID/OWL_SESSION_ID/SPT_AGENT_ID in its env spawns role children WITHOUT those vars (unit: role-spawn env assembly scrubs the identity set regardless of the role's declared env_remove); KNOWN-HAZARDS entry on landing. Kin psyche-custody/session-pin cluster, [[spt-core-findings-backlog]] F-036.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9238113Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9238365Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9238619Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9238872Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9239196Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9239449Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9239699Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9239969Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9240433Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9240690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9240995Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9241261Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9241510Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9241758Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9242007Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9242259Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9242529Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9242784Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9243042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9243352Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9243615Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9243862Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9244114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9244429Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9244691Z               "line": 510
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9244949Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9245201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9245537Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9245799Z               "line": 456
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9246056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9246300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9246624Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9246886Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9247130Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9247378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9247688Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9247953Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9248197Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9248455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9248760Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9249112Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9249375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9249617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9249928Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9250179Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9250435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9250673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9251083Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9251340Z               "line": 873
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9251593Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9251836Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9252079Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9252332Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9252595Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9252853Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9253094Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9253339Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9253607Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9253869Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9254117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9254436Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9254708Z               "line": 2393
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9254955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9255204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9255523Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9255798Z               "line": 2415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9256054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9256310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9256625Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9256888Z               "line": 1435
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9257136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9257380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9257695Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9257957Z               "line": 1457
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9258214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9258461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9258771Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9259119Z               "line": 1480
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9259367Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9259615Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9259863Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9260106Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9260354Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9260706Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9261014Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9261995Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9262267Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9262521Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9262774Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9263020Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9263273Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9263522Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9263792Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9264052Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9264300Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9264548Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9264815Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9265073Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9265321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9265660Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9265926Z               "line": 5607
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9266173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9266428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9266734Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9267005Z               "line": 6343
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9267248Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9267500Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9267744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9267992Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9268260Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9268527Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9268779Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9269125Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9269392Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9269641Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9269889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9270208Z               "path": "crates/spt-daemon/tests/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9270457Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9270708Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9270951Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9271201Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9271555Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9271803Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9272045Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9272340Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9274670Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9274985Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9275251Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9275498Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9275747Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9276013Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9276263Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9276534Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9276794Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9277040Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9277289Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9277561Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9277813Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9278070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9278380Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9282983Z               "line": 5635
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9283264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9283521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9283850Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9284116Z               "line": 5658
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9284364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9284619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9285153Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9285424Z               "line": 282
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9285682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9285925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9286259Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9286518Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9286770Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9287017Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9287335Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9287600Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9287845Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9288097Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9288344Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9288592Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9288864Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9289221Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9289488Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9289737Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9290024Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9290279Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9290522Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9290837Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9291095Z               "line": 494
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9291343Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9291592Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9291833Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9292076Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9292325Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9292562Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9292851Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9295381Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9295684Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9295941Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9296246Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9296500Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9296758Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9297011Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9297282Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9297549Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9297796Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9298043Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9298318Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9298575Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9298832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9299238Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9299538Z               "line": 1329
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9299791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9300043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9300382Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9300654Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9300906Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9301149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9301464Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9301721Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9301974Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9302227Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9302537Z               "path": "crates/spt-daemon/src/reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9302800Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9303050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9303296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9303601Z               "path": "crates/spt-daemon/src/reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9303864Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9304112Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9304365Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9304611Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9304870Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9305137Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9305518Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9305771Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9306032Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9306297Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9306554Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9306802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9307108Z               "path": "crates/spt-daemon/src/reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9307374Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9307624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9307871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9308181Z               "path": "crates/spt-daemon/src/reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9308441Z               "line": 371
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9308687Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9308931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9309340Z               "path": "crates/spt-daemon/src/reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9309598Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9309852Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9310093Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9310351Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9310594Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9310834Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9311077Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9311370Z       "id": "REQ-HAZARD-DEAD-REC-PID",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9315898Z       "title": "E-1 rider (F-026 #11 dead-pid class, doyle-ruled SCOPED 2026-07-05 — KNOWN-HAZARDS 7.34): a dead `rec.pid` on an spt-hosted perch is EXPECTED, not staleness — the recorded pid is the ephemeral bind-CLI pid, which dies immediately after bind (the broker holds the PTY; no resident harness process at that pid). NO reader may alive-gate on `rec.pid` alone: spt-hosted LIVENESS comes from the daemon-managed status field (KH 2.5 — status present ⇒ authoritative, never a per-pid probe); IDENTITY comes from session/ancestry resolution where `rec.parent_pid` (the harness pid, the stable session-binding anchor) is the ancestry candidate (REQ-SELF-DETECT-PARENT-PID). Re-stamping rec.pid with the harness pid (shape (a)) is OVERRULED: ADR-0021 demoted pid to a bind-time seed hint (re-anchoring truth there reverses the design); every pre-existing record keeps the old CLI pid so readers need the scoped discipline anyway (migration hole); blast radius (every rec.pid consumer + KH 2.5 external-perch probe semantics) buys nothing the reader-side fix doesn't. CLASS rule: any newly sighted rec.pid-alive-gating reader gets the same scoped fix and EXTENDS this requirement's evidence — no new REQ per reader.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9316218Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9316473Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9316718Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9316967Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9317220Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9317472Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9317738Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9318001Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9318249Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9318545Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9318808Z               "line": 711
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9319130Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9319409Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9319652Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9319910Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9320192Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9320458Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9320707Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9320963Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9321230Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9321497Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9321751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9322051Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9322317Z               "line": 647
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9322564Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9322817Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9323066Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9323319Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9323596Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9323852Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9324104Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9324350Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9324598Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9324946Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9325242Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9325647Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9325918Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9326172Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9326429Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9326681Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9326933Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9327185Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9327455Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9327722Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9327965Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9328232Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9328504Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9328762Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9329087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9329406Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9329685Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9329925Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9330179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9330479Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9330747Z               "line": 472
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9331004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9331243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9331543Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9331795Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9332038Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9332283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9332586Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9332839Z               "line": 930
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9333086Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9333330Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9333573Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9333827Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9334093Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9334365Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9334612Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9334873Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9335138Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9335410Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9335662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9336083Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9336359Z               "line": 1208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9336606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9336854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9337155Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9337419Z               "line": 1280
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9337665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9337924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9338224Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9338487Z               "line": 1343
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9338735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9339059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9339365Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9339628Z               "line": 1364
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9339881Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9340126Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9340386Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9340635Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9340878Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9341129Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9341430Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9344443Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9344838Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9345092Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9345353Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9345598Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9345856Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9346104Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9346376Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9346639Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9346886Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9347143Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9347410Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9347668Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9347917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9348239Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9348508Z               "line": 480
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9348756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9349109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9349423Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9349700Z               "line": 524
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9349957Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9350202Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9350441Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9350705Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9350975Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9351229Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9351472Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9351719Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9351981Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9352234Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9352477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9352792Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9353060Z               "line": 1205
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9353303Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9353549Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9353797Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9354040Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9354293Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9354540Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9354845Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9355179Z       "title": "Deferred rows survive poll drain (4.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9355456Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9355708Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9356058Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9356312Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9356569Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9356821Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9357092Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9357355Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9357598Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9357857Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9358119Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9358380Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9358632Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9358935Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9359297Z               "line": 501
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9359541Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9359794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9360094Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9360361Z               "line": 591
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9360618Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9360870Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9361124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9361380Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9361654Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9361916Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9362168Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9362417Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9362685Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9362952Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9363199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9363504Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9363766Z               "line": 1235
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9364023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9364271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9364586Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9364848Z               "line": 1316
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9365100Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9365353Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9365597Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9365949Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9366198Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9366444Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9366751Z       "id": "REQ-HAZARD-DELIVERY-STARVATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9370839Z       "title": "A NON-DEFERRED message that has REACHED a node's spool (WAN-arrived or locally spooled-while-active) is NEVER dependent on an adapter HOOK-POLL cadence for its eventual delivery to an spt-hosted (relay-less) endpoint — the daemon itself drives delivery on the events it owns (WAN ingress + the ACTIVE→IDLE edge). Hazard class: delivery starvation. Without this, cross-node and post-active messages to an spt-hosted perch strand indefinitely whenever the adapter's hooks are quiet (idle session, no user turns), presenting as 'sent but never lands' with a healthy binary and an idle perch (F-023). SCOPE NARROWED 2026-07-26 (FIELD-TRUTH W1 roll-in, operator ruling): the deferred (active_only) class is EXPLICITLY OUTSIDE this guarantee — per ADR-0028 it is hook-carried background context that never wakes an idle agent; with no hook cadence it waits by design. The no-starvation guarantee binds the default and idle_only classes only. Guarded by REQ-WAN-SPT-HOSTED-DELIVERY (WAN ingress leg) + REQ-MSG-IDLE-EDGE-DRAIN (idle-edge drain, as amended). (F-023)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9371131Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9371378Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9371623Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9371868Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9372114Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9372367Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9372629Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9372883Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9373125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9373411Z               "path": "docs/F-035-CONFLICT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9373664Z               "line": 5
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9373907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9374156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9374447Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9374711Z               "line": 618
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9374964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9375213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9375603Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9375875Z               "line": 1075
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9376124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9376372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9376796Z               "path": "docs/adr/0028-activity-gated-delivery-and-send-modifier-axes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9377061Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9377316Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9377564Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9377812Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9378066Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9378337Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9378594Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9378838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9379239Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9379520Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9379766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9380013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9380317Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9380585Z               "line": 1171
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9380832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9381084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9381390Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9381651Z               "line": 800
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9381901Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9382154Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9382409Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9382660Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9382923Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9383180Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9383428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9383781Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9384043Z               "line": 3003
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9384290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9384543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9384872Z               "path": "crates/spt/tests/idle_edge_drain_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9385239Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9385486Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9385749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9386040Z               "path": "docs/F-035-CONFLICT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9386302Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9386549Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9386798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9387046Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9387295Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9387559Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9387823Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9388067Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9388321Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9388564Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9388801Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9389194Z       "id": "REQ-HAZARD-DETACHED-DAEMON-STDIO",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9395699Z       "title": "A daemon DETACHED-IN-FACT (no interactive console, or an inherited stderr PIPE nobody drains) that never nulled its std handles will BLOCK on stdio writes when the pipe fills, and/or pop a visible conhost window (REQ-HAZARD-WMI-DAEMON-WINDOW is a covered surface of this hazard). detach_console nulls the 3 handles only under the --detached flag; a rung that omits it (the bare line-82 elevated->deelevated respawn; a STALE installer at-logon task registered as bare `daemon run`, confirmed live field-drift on ENLYZEAM) is exposed. FIX: (load-bearing) inside `daemon run`, null the 3 std handles when stderr GetFileType==FILE_TYPE_PIPE — a pipe is the ONLY std sink that BLOCKS the daemon when it fills; catches every rung whose inherited stderr is an undrained pipe, independent of whether each caller passed --detached, while a FILE (2>run.log AND every int-test Stdio::from(file) brain-log capture), a CONSOLE (scrolls), and a NULL/absent handle (DETACHED_PROCESS rungs, already discard) all SURVIVE. DELIBERATELY NOT gated on GetConsoleWindow==NULL: a CREATE_NO_WINDOW daemon has no console window yet a drained FILE stderr — nulling it would blank the capture for ZERO safety gain (a file never blocks) and mass-red the int-test brain-log assertions. (belt) pass --detached on the bare line-82 respawn; (drift nag) parse the schtasks /Query action argv and LOUDLY nag when the at-logon task is the stale bare `daemon run` form (manual/installer re-registers; the daemon must NOT self-elevate to rewrite it). Defense-in-depth — no current spt Windows spawn path was proven to yield a BLOCKING inherited pipe (all rungs null-discard or scrolling-conhost), so this is hardening, not a confirmed incident root.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9396014Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9396304Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9396548Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9396790Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9397038Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9397281Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9397545Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9397802Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9398043Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9398294Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9398552Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9398814Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9399148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9399472Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9399729Z               "line": 2103
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9399972Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9400220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9400520Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9400774Z               "line": 2121
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9401020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9401260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9401565Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9401824Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9402067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9402306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9402616Z               "path": "crates/spt-daemon/src/stderrlog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9402868Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9403110Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9403360Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9403705Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9403952Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9404219Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9404471Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9404715Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9404967Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9405226Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9405478Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9405730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9406040Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9406296Z               "line": 3115
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9406540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9406783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9407088Z               "path": "crates/spt-daemon/src/service.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9407355Z               "line": 342
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9407593Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9407841Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9408086Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9408332Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9408575Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9408826Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9409216Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9411052Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9411334Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9411580Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9411825Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9412064Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9412313Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9412556Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9412822Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9413084Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9413322Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9413619Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9413901Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9414142Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9414387Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9414754Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9415007Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9415265Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9415527Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9415767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9416076Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9416333Z               "line": 986
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9416581Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9416829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9417134Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9417387Z               "line": 1105
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9417624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9417867Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9418177Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9418430Z               "line": 1415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9418679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9418927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9419320Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9419590Z               "line": 1732
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9419837Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9420086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9420395Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9420659Z               "line": 2312
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9420907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9421150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9421450Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9421712Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9421955Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9422202Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9422443Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9422690Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9422958Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9423211Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9423454Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9423697Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9423959Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9424322Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9424573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9424890Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9425144Z               "line": 2434
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9425397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9425639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9425944Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9426196Z               "line": 3153
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9426445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9426684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9427013Z               "path": "crates/spt/tests/bounded_output_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9427266Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9427511Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9427755Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9427994Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9428238Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9428475Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9428713Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9429119Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9429554Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9429823Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9430073Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9430317Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9430561Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9430814Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9431056Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9431323Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9431576Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9431824Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9432073Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9432345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9432604Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9432846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9433151Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9433404Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9433647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9433894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9434195Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9434461Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9434711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9435063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9435380Z               "path": "crates/spt-store/src/contextmark.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9435637Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9435879Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9436127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9436446Z               "path": "crates/spt-store/src/contextmark.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9436710Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9436958Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9437201Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9437449Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9437692Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9437963Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9438211Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9438458Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9438706Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9439073Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9439340Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9439588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9439902Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9440161Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9440407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9440647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9440943Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9441201Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9441445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9441694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9441989Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9442245Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9442489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9442732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9443028Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9443294Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9443534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9443782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9444078Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9444435Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9444683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9444927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9445228Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9445486Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9445731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9445973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9446274Z               "path": "crates/spt-live/src/context.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9446531Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9446779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9447030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9447331Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9447589Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9447832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9448081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9448386Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9448646Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9448894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9449232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9449547Z               "path": "crates/spt-store/src/contextmark.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9449805Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9450054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9450292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9450612Z               "path": "crates/spt-store/src/contextmark.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9450872Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9451113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9451357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9451667Z               "path": "crates/spt-store/src/contextmark.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9451929Z               "line": 317
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9452171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9452419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9452729Z               "path": "crates/spt-store/src/contextmark.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9452987Z               "line": 327
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9453236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9453479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9453787Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9454051Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9454299Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9454647Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9454896Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9455139Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9455387Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9455635Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9455945Z       "id": "REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9461955Z       "title": "An spt-hosted endpoint driven by a REMOTE controller whose remote is gone but whose broker connection stays OPEN (a wedged/lost pump that never delivers the detach) AND whose session is IDLE (no output) stays latched ONLINE+CONTROLLED forever: the W1 drain-evict only fires on OUTPUT (CONTROLLER_WRITE_DEADLINE on a backed-up write), a clean disconnect self-heals via detach_if→clear_controller, but an idle session with a half-open/wedged controller connection produces neither signal. PROVED repro-first on a real broker (v0.13.0 W5, inject_control_wedge.rs w5_a2): controller_by STAYS Some(origin) and driven_by STAYS Some after the remote is abandoned without a clean EOF on an idle session — so the brain reconcile CANNOT detect it from KIND_SESSIONS controller_by (the broker still reports it controlled). FIX DIRECTION (doyle ruling 2026-06-19, broker-side single-writer — the broker owns driven_by/clear_controller): wire the EXISTING D4c NetPresence connection-disconnect event → clear_controller for any session whose controller identity == the dead origin (become_controller already stores Some(origin); presence events already exist — modest wiring, NOT a new probe). The liveness ORACLE is QUIC's own keepalive/idle-timeout: a presence-disconnect IS a real QUIC conn close, already tolerant of transient blips within the keepalive window, so NO heavy partition ADR is needed UNLESS the QUIC timeout proves too slow for the UX (then mint an ADR for a faster controller-heartbeat + its false-evict bound). Composes with W1 (output path) + W5 Gap B (no-session) — this is the third, idle-remote, leg. (v0.13.0 follow-up)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9462388Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9462635Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9462889Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9463138Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9463385Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9463652Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9463904Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9464153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9464559Z               "path": "docs/adr/0040-bounded-stream-seat-lifecycle-one-way-terminal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9464822Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9465070Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9465313Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9465560Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9465803Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9466071Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9466325Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9466567Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9466813Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9467079Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9467350Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9467589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9467942Z               "path": "crates/spt-daemon/tests/transport_death_eof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9468199Z               "line": 655
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9468446Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9468690Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9468934Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9469263Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9469530Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9469790Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9470033Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9470278Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9470516Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9470763Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9471049Z       "id": "REQ-HAZARD-DRIVEN-BY-SELFHEAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9473177Z       "title": "An spt-hosted endpoint's ONLINE+CONTROLLED state (`driven_by`) must CLEAR even when the detach IPC is lost — do NOT rely on the detach signal (same lesson as REQ-HAZARD-HOSTED-LIVENESS-RECONCILE B2): the reconcile loop clears `driven_by` when the endpoint has no live controller/session. Today a wedged or lost pump never delivers the detach, so the endpoint stays latched CONTROLLED forever. Composes with W1 (the wedge no longer blocks the detach) and rides the same pull-primary reconcile substrate as B2. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9473468Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9473712Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9473964Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9474207Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9474450Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9474694Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9474940Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9475204Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9475462Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9475711Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9475954Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9476216Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9476468Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9476721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9477035Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9477303Z               "line": 986
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9477554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9477805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9478105Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9478358Z               "line": 1517
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9478606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9478854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9479279Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9479541Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9479780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9480023Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9480264Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9480513Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9480771Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9481038Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9481280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9481623Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9481885Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9482234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9482481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9482822Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9483089Z               "line": 400
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9483327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9483570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9483910Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9484171Z               "line": 2325
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9484423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9484667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9485005Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9485259Z               "line": 2513
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9485505Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9485750Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9485989Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9486237Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9486500Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9490583Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9490877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9491206Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9491477Z               "line": 1614
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9491722Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9491974Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9492218Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9492464Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9492707Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9492947Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9493255Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9493602Z       "title": "Drop files are daemon-owned single-writer (6.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9493864Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9494111Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9494354Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9494593Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9494851Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9495094Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9495356Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9495613Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9495856Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9496159Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9496430Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9496822Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9497069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9497375Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9497632Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9497879Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9498127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9498423Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9498689Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9498930Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9499274Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9499516Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9499760Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9500027Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9500280Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9500518Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9500761Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9501022Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9501272Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9501527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9501819Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9502090Z               "line": 426
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9502338Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9502576Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9502821Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9503058Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9503306Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9503549Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9503834Z       "id": "REQ-HAZARD-EBUSY-RENAME",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9504200Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9504462Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9504705Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9504943Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9505191Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9505434Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9505688Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9505950Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9506207Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9506449Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9506809Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9507076Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9507343Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9507597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9507901Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9508158Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9508401Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9508654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9509044Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9509305Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9509552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9509799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9510095Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9510353Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9510601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9510840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9511136Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9511398Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9511650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9511897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9512207Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9512483Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9512732Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9512984Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9513227Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9513470Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9513743Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9514006Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9514250Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9514492Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9514760Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9515008Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9515260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9515566Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9515827Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9516061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9516300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9516615Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9516882Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9517127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9517474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9517778Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9518031Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9518271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9518518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9518819Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9519162Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9519415Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9519661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9519959Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9520222Z               "line": 365
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9520461Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9520704Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9520955Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9521199Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9521447Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9521691Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9522001Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9522401Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9522805Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9523167Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9523430Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9523697Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9523941Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9524188Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9524449Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9524711Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9524954Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9525205Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9525467Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9525729Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9525973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9526320Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9526597Z               "line": 2026
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9526855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9527108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9527555Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9527877Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9528187Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9528473Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9528745Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9529102Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9529380Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9529656Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9529903Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9530160Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9530425Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9530687Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9530929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9531249Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9531530Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9531783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9532040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9532355Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9532646Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9532909Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9533164Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9533412Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9533684Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9533952Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9534205Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9534524Z       "id": "REQ-HAZARD-ECHO-NEVER-WRITES-AGENT-DROP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9537887Z       "title": "KNOWN-HAZARDS 6.12 -- THE ECHO BRIEF NEVER TRANSITS THE AGENT DROP PATH. FAILURE (field, 2026-09-06, releases#276): spt-core wrote its echo-commune brief to `<id>-commune.md`, the SAME path an agent writes its own boundary commune to, with no arbitration between the two writers -- so a Self commune authored at a `/clear` and not yet ingested was overwritten UNREAD by the boundary echo firing 25-45s later. Two of three Self communes lost inside one hour on one endpoint. INVARIANT: exactly one writer on the Self drop path -- the agent -- and the echo brief routes direct into the tiers. SPT-CORE MAPPING: `fire_echo` calls `ingest_body`; nothing writes a drop, on any arm. THE TEST IS A BYTE-IDENTITY PIN, NOT AN EXISTENCE CHECK: a pre-placed authored drop carrying Self bytes must be byte-identical after the fire, which goes RED when the write is restored -- an existence assertion would stay GREEN against an overwrite, which is the very failure this hazard names.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9538172Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9538423Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9538680Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9538923Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9539272Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9539518Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9539786Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9540043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9540297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9540611Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9540872Z               "line": 451
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9541141Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9541394Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9541643Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9541890Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9542163Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9542419Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9542686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9543001Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9543268Z               "line": 1388
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9543526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9543772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9544078Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9544335Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9544588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9544840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9545141Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9545404Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9545647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9545898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9546201Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9546468Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9546711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9547102Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9547350Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9547603Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9547895Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9548151Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9548404Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9548656Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9548923Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9549264Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9549517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9549837Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9550108Z               "line": 3384
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9550350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9550594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9550908Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9551167Z               "line": 3508
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9551412Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9551658Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9551902Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9552141Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9552399Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9552635Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9552941Z       "id": "REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9564184Z       "title": "The effect journal serializes EVERY PTY effect under one mutex held ACROSS two fsyncs AND the blocking PTY write — so interactive input stutters and ultimately wedges the daemon hard. ROOT (doyle /diagnose, code-grounded + MEASURED on the operator's real Windows box, 2026-06-19): EffectJournal::apply_once (effect.rs:168-188) takes `inner.lock()` and holds it across `write_line(PENDING)` → `effect()` → `write_line(DONE)`, where write_line (effect.rs:235-239) does flush()+sync_all() (a full FlushFileBuffers) — so each effect pays TWO fsyncs under a GLOBAL lock, and the closure `effect()` (the actual PTY write, broker.rs:1257 EffectKind::PtyWrite via attach.rs:197 send_effect) runs while the lock is held. Two operator-visible facets, ONE root: (A) STUTTER/LAG — every keystroke is a PtyWrite effect = 2× sync_all serialized; measured fsync on %LOCALAPPDATA%\\spt-core = median 6.5ms, spikes to 198ms (C: was recently at 100%), so ~13ms+ per keystroke best case, hundreds under contention → 'many but not all keypresses take 100s of ms, choppy, worsens with volume'. (B) HARD PERMANENT WEDGE — when a PtyWrite `effect()` blocks (ConPTY input buffer full / harness not draining stdin), the journal lock is held INDEFINITELY → the single-threaded inbound-stream dispatch (dispatch.rs serve_attach, which both applies input effects AND opens attaches) can never progress → EVERY subsequent attach (`spt rc --view`/`--take`) fails with 'attach request: brain IPC read deadline elapsed' (confirmed: two retries deadline identically; broker control-plane KIND queries still answer — different thread). This REFUTES the W2-deferred ruling that park-(b)/(c) is 'Windows-benign because ConPTY absorbs 4MiB' — on the real box the input path wedges regardless. DISTINCT from W1 (REQ-HAZARD-INJECT-CONTROL-COEXIST = the OUTPUT drain, correctly fixed @8b5583e; output uses broker.rs:1106 append, NOT the fsync journal). This is the INPUT/effect-journal path W1 never touched, and it is THE wedge the operator hits with --take/--view. FIX DIRECTION (candidates, repro-first — extend inject_control_wedge.rs to a REAL backed-up-PTY-consumer + a real rc-client attach assertion, the gap W1's gate missed): (1) do NOT hold the journal lock across effect() — reserve the key + fsync PENDING under lock, RELEASE, run effect(), re-acquire to fsync DONE + mark applied (preserve crash-idempotency via the per-key reservation, not a global hold); (2) bound/fail-fast the PtyWrite itself (the W2-deferred park bound — write_input must never block indefinitely, DSR-answer must not hold the writer mutex across a blocking write); (3) drop per-keystroke fsync on the interactive path — PtyWrite effects are EPHEMERAL (a keystroke lost on a broker crash is retyped; PTY state is not reconstructed from keystroke replay), so in-memory applied-set dedup suffices (the broker survives the brain — that IS the dedup anchor), with async/batched fsync or no-fsync for EffectKind::PtyWrite while durable kinds (NetSend/NetDial/Registry/Spool) keep their fsync. Combine (1)+(3) at minimum. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9564655Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9564902Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9565159Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9565407Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9565661Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9565918Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9566176Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9566453Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9566714Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9566961Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9567227Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9567493Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9567755Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9568002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9568322Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9568589Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9568857Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9569185Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9569543Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9569809Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9570066Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9570312Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9570564Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9570817Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9571085Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9571342Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9571596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9571958Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9572220Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9572475Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9572721Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9572970Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9573227Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9573484Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9573737Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9573990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9574309Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9574807Z               "line": 822
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9575064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9575309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9575624Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9575887Z               "line": 837
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9576140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9576378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9576688Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9576954Z               "line": 896
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9577202Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9577450Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9577692Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9577938Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9578185Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9578439Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9578744Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9580645Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9580930Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9581182Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9581434Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9581682Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9581935Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9582189Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9582442Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9582703Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9582964Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9583215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9583516Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9583773Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9584020Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9584393Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9584635Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9584893Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9585184Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9585446Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9585691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9586008Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9586265Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9586513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9586762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9587071Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9587339Z               "line": 872
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9587592Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9587839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9588153Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9588412Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9588662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9588904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9589299Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9589581Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9589839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9590105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9590415Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9590672Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9590915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9591163Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9591471Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9591733Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9591975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9592224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9592529Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9592787Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9593030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9593273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9593581Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9593837Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9594100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9594343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9594823Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9595100Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9595348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9595597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9595907Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9596217Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9596472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9596744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9597059Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9597322Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9597574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9597818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9598113Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9598370Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9598618Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9598865Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9599202Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9599493Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9599765Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9600041Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9600283Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9600542Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9600808Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9601067Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9601315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9601632Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9601887Z               "line": 813
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9602140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9602388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9602703Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9602966Z               "line": 854
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9603217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9603470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9603785Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9604051Z               "line": 928
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9604411Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9604655Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9604908Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9605155Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9605407Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9605651Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9605966Z       "id": "REQ-HAZARD-EMPOWER-SESSION-RESURRECT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9619423Z       "title": "AUTHORITY MUST NOT SURVIVE AT REST ACROSS A SESSION-ID ROTATION. An engine-room empowerment is session-state (ADR-0052: empowerment is session-state, not stored grants; nothing to revoke at rest), keyed on the session id the engine room's perch is bound to and filed under that session's scratch directory. 'spt api boundary' rotates exactly that bound session id, and it is NEITHER of the two revocation edges ADR-0052 names (controller detach, local take), so before this requirement a rotation left the empowerment record filed under the OLD session id, unreachable by the seat and unswept by anything. MEASURED, not inferred (todlando red probe, 2026-08-03): rotate to a session, empower, rotate away, DROP the authority at the new session, then rotate BACK onto the old id — the seat holds the subnet again with no admin code proved since the drop. THE SCOPE IS AUTHORITY OUTLIVING ITS SESSION, NOT A STRANGER GAINING AUTHORITY: 'api boundary' is auth-gated to the perch's own harness, so the actor re-acquiring is the actor that held the grant, and this must not be re-told as privilege escalation. The empower module's own comment asserted the opposite — that a stale file is 'unreachable by construction' and that 'if this sweep never ran, no caller would gain a single grant' — which is a claim about the resolver's INPUTS and is false while an arbitrary '--to-session-id' is accepted past a guard that only refuses psyche-custody squats. THE FIX IS A MOVE, NEVER A COPY (doyle ruling): a boundary CARRIES the empowerment to the new session id, and when the boundary returns the old session's record is GONE — two records for one grant is the same leak wearing a different hat. IT FAILS CLOSED: if the move cannot be completed the boundary DROPS the empowerment with a loud diagnostic and never leaves the old record standing as a fallback. THIS REQUIREMENT CLOSES THE BOUNDARY EDGE ONLY AND MUST NOT BE READ AS CLOSING THE RESURRECTION CLASS: two further mechanisms rotate a bound session id and leave the prior session's record standing -- the dead-owner re-pin (api/auth.rs) and an establish_perch re-bind -- and their polarity is the OPPOSITE, because a boundary is ONE session lineage continuing while those are a NEW session taking over a perch whose prior owner is gone, so the authority does not follow, it DROPS. They are filed as releases#138 and are not evidence for or against this requirement. Gate additions ruled with the fix: the carry is GATED on the endpoint that can hold an empowerment, because the record is keyed by SESSION ID ALONE and an ungated carry would let an unrelated endpoint's boundary move the seat's live grant out from under it -- so one row proves the gate is not too tight and a SECOND proves it is not too loose; and the fail-closed arm is proved by INJECTING a removal failure and asserting the old record still grants nothing, since an arm no mutation can fail is untested. THE HYGIENE SWEEP IS NOT THE MECHANISM AND MUST NOT BE WIDENED INTO ONE — it is documented hygiene-only, it runs at grant time, and a re-acquire happening long afterwards is past it either way; the boundary's own move is the only thing that closes this. Gate: impl — the carry-as-move at the boundary rotation with its fail-closed drop and diagnostic; unit — the probe above, whose DISCRIMINATING construction is dropping the authority at the new session BEFORE rotating back (without that, a plain rotate-away/rotate-back cannot separate resurrection from the ruled carry, under which the grant legitimately follows the rotation), plus the assertion that the old session's record is absent the moment the rotation returns, so the two versions are distinguishable at the mechanism and not merely at the outcome.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9619875Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9620126Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9620384Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9620646Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9620899Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9621151Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9621399Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9621666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9621919Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9622168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9622464Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9622728Z               "line": 984
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9622974Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9623223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9623522Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9623785Z               "line": 1091
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9624042Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9624285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9624638Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9624895Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9625157Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9625405Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9625650Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9625912Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9626174Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9626438Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9626686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9627000Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9627258Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9627510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9627758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9628067Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9628330Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9628573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9628825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9629212Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9629483Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9629731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9629983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9630298Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9630559Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9630916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9631168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9631488Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9631746Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9631997Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9632240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9632550Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9632817Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9633062Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9633307Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9633552Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9633811Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9634082Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9634345Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9634597Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9634850Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9635117Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9635384Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9635638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9635955Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9636215Z               "line": 463
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9636463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9636715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9637021Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9637283Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9637537Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9637784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9638099Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9638356Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9638608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9638852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9639266Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9639524Z               "line": 2362
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9639772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9640024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9640439Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9640702Z               "line": 2413
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9640948Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9641194Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9641433Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9641680Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9641922Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9642166Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9642457Z       "id": "REQ-HAZARD-ENDPOINT-LIFECYCLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9645167Z       "title": "REGISTRY-LIFECYCLE W2 (KNOWN-HAZARDS 7.45 — the umbrella conformance seam for ADR-0041): endpoint lifecycle state converges to truth from EVERY death path. Regression matrix from the three hertz reports + operator field: dead-PID hybrid row does not survive reconcile; raw viewport close frees the controller (full chain, broker restart included — shared with REQ-STREAM-LEASE-CLASSES int); definitive death means offline+suspended atomically and the next reconcile emits no WAKE_RESUME; explicit Wake still launches exactly once; poll-vs-reap interleave converges to cleared stamps. HEAVY nextest group at birth for any leg spawning a daemon tree. Gate: int — the matrix; doc — KNOWN-HAZARDS 7.45.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9645467Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9645719Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9645967Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9646222Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9646472Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9646727Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9646989Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9647252Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9647500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9647801Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9648063Z               "line": 798
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9648315Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9648568Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9648815Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9649154Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9649436Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9649717Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9649964Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9650226Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9650498Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9650860Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9651117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9651469Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9651735Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9651988Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9652245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9652584Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9652846Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9653112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9653356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9653704Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9653970Z               "line": 556
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9654215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9654466Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9654806Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9655078Z               "line": 709
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9655330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9655589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9655932Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9656194Z               "line": 827
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9656443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9656692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9657013Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9657273Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9657530Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9657779Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9658028Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9658285Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9658556Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9658813Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9659137Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9659380Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9659630Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9659871Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9660190Z       "id": "REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9666478Z       "title": "A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY output. KEYSTONE — the operator's central 'attach shows no output' symptom, reproduced on the real dummy-harness fixture (v0.12.1 Wave 1) with NO death and NO wedge: bringup succeeds (online, harness pid alive + heartbeating, psyche hosted), the attach CONNECTS (PUMP_IPC_READER spawned, no RC_FAIL, holds the full window) — but receives EXACTLY 0 bytes over 10s of the harness's flushed [session.self] stdout. DISTINCT from REQ-HAZARD-VIEWER-CLOSE-DETACH (death) and REQ-HAZARD-ATTACH-WEDGE (dead-child backpressure): here the harness is ALIVE and the attach is a clean first subscribe. This BLOCKS the 'view is independent' invariant — re-attach is meaningless if a live endpoint-run harness shows nothing. KNOWN-GOOD (rules out 'no drain'): attach.rs `local_attach_via_loopback_conn_rides_the_same_pump` + `broker_spawns_the_pty_child_in_the_requested_cwd` prove the broker DOES drain+fan a `spawn_session` PTY child to a loopback attach over the SAME transport rc uses. Both spawn_session and endpoint-run's spawn_session_pid send KIND_SPAWN → the same dispatch_spawn (broker.rs:706/835) which starts the per-session drain+OutputLog — so the gap is NARROWER than 'no drain', endpoint-run-specific. Root candidates: (a) spawn_session_pid's SpawnReq stdio/env/cwd differs so the dummy's stdout isn't the captured ConPTY; (b) the harness stdout WRITE BLOCKS because the ConPTY buffer fills (drain not reading THIS pty) — explains alive-but-0-bytes; (c) ConPTY reader-park (KH 7.6) on this path; (d) `spt rc` resolve_session/subscribe for an endpoint-run session subscribes to the wrong/empty log. (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9666802Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9667059Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9667309Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9667564Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9667809Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9668067Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9668344Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9668616Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9669077Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9669359Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9669616Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9669880Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9670142Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9670397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9670707Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9670960Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9671208Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9671452Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9671694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9671942Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9672199Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9672453Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9672694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9673012Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9673264Z               "line": 313
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9673517Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9673756Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9674009Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9674271Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9674528Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9674785Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9675029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9675335Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9675591Z               "line": 503
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9675840Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9676084Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9676327Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9676837Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9677328Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9677812Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9678326Z       "id": "REQ-HAZARD-ENV-SUBST",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9682995Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9687522Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9688147Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9688664Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9689296Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9689859Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9690361Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9690880Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9691413Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9691966Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9692500Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9693015Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9693536Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9694079Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9694618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9695196Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9695834Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9696450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9696975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9697556Z               "path": "crates/spt-term/src/pty.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9698167Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9698712Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9699325Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9699842Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9700333Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9701144Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9701711Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9702231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9702808Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9703442Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9703980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9704483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9705055Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9709950Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9710532Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9711041Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9711542Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9712049Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9712585Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9713149Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9713683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9714264Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9714916Z               "line": 588
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9715448Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9715953Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9716453Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9716954Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9717451Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9717953Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9718506Z       "id": "REQ-HAZARD-ENVELOPE-ATTR-LINESAFE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9723216Z       "title": "Envelope ATTR-linesafety (4.1): attribute values are line-safe because the escaper MAKES them so, not \"by construction\" — `event_attr_escape` folds CRLF/lone-CR to `\n` and then encodes `\n` as the `&#10;` entity, so no attribute value can split the line-framed EVENT. The falsifier is the composed trust-warning (releases#170), a multi-line block that rides as a `trust-warning` ATTRIBUTE: under the old escaper one delivery rendered as SEVEN lines under the default advisory (measured at the red, 2026-08-21), six of which are not envelopes. The count varies with the operator override, which is why the invariant is stated as \"no attribute value can split the frame\" and not as a number. Decode is amp-last-preserving: `&#10;` decodes BEFORE `&amp;`, exactly as `<br>` does on the body side, so an attribute carrying the literal text `&#10;` (arriving as `&amp;#10;`) decodes to the literal and never to a linebreak. Corollary held by the same commit: the codec has ONE escaper and therefore ONE decoder — `parse_event_from_attr` calls `event_attr_unescape` rather than hand-inlining a second rule that would make `from=` decode differently from every other attribute.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9727725Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9728271Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9728785Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9729390Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9729890Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9730387Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9730904Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9731427Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9731995Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9732553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9733139Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9733796Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9734339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9734846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9735408Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9736021Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9736548Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9737055Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9737549Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9738051Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9738590Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9739225Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9739749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9740322Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9740938Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9741464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9741969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9742522Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9743142Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9743665Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9744270Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9744762Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9745252Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9745772Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9746312Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9746823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9747314Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9747828Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9748372Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9748879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9749511Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9750109Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9750634Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9751130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9751683Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9752294Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9752814Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9753315Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9753801Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9754284Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9754764Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9755255Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9755788Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9758384Z       "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`).",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9760713Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9761246Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9761743Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9762396Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9762887Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9763374Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9763914Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9764433Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9764986Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9765524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9766091Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9766701Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9767235Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9767740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9768233Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9768730Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9769340Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9769902Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9770426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9771001Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9771621Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9772149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9772646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9773221Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9773844Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9774377Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9774879Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9775379Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9775889Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9776413Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9776970Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9777515Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9778016Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9778550Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9779194Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9779719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9780287Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9780903Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9781421Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9781914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9782482Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9783087Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9783619Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9784113Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9784594Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9785186Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9785678Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9786153Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9786697Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9787393Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9788050Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9788586Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9789177Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9789677Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9790165Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9790660Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9791162Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9791683Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9792225Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9792736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9793284Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9793885Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9794412Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9794902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9795383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9795899Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9796485Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9797037Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9797553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9798110Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9798715Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9799320Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9799819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9800376Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9800976Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9801496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9801994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9802546Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9803157Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9803682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9804173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9804849Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9805452Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9805977Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9806469Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9806954Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9807437Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9807959Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9808498Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9809100Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9809590Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9810103Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9810650Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9811164Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9811713Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9812319Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9812838Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9813326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9813885Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9814491Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9815015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9815508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9816070Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9816680Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9817190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9817692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9818242Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9818848Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9819454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9819946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9820511Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9821114Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9821630Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9822116Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9822597Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9823080Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9823558Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9824044Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9824587Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9825293Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9825988Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9826625Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9827135Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9827627Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9828117Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9828628Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9829233Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9829785Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9830310Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9830797Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9831312Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9831846Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9832357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9832919Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9833530Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9834048Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9834546Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9835028Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9835514Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9836038Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9836582Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9837089Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9837586Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9838095Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9838634Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9839230Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9839788Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9840394Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9840908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9841400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9841958Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9842559Z               "line": 310
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9843069Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9843571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9844128Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9844730Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9845255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9845750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9846433Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9847041Z               "line": 328
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9847573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9848075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9848626Z               "path": "crates/spt-proto/src/envelope.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9849319Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9849842Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9850333Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9850819Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9851297Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9851783Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9852272Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9852794Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9853492Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9854155Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9854683Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9855192Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9855680Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9856172Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9856683Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9857202Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9857744Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9858281Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9858777Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9859378Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9859913Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9860421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9860965Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9861561Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9862075Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9862567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9863102Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9863698Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9864214Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9864715Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9865195Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9865695Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9866212Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9866757Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9867286Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9867781Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9868304Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9869055Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9869585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9870124Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9870730Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9871253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9871750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9872287Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9872883Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9873416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9873905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9874440Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9875031Z               "line": 529
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9875551Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9876046Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9876534Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9877016Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9877498Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9877983Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9878500Z       "id": "REQ-HAZARD-EPOCH-RESET",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9880689Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9882546Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9883081Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9883583Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9884098Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9884637Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9885152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9885686Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9886282Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9886796Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9887423Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9887905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9888392Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9888939Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9889565Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9890085Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9890581Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9891101Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9891640Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9892162Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9892650Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9893164Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9893718Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9894238Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9894725Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9895207Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9895688Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9896265Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9897082Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9897807Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9898346Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9898846Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9899447Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9899951Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9900435Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9900936Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9901446Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9902110Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9906797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9907425Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9908052Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9908577Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9909178Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9909701Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9910194Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9910709Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9911248Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9911774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9912325Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9912931Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9913470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9913965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9914681Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9915306Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9915830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9916327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9916876Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9917471Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9917995Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9918500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9919142Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9919738Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9920261Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9920759Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9921245Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9921737Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9922261Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9922809Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9923330Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9923833Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9924349Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9924902Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9925412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9925960Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9926554Z               "line": 321
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9927077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9927574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9928127Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9928723Z               "line": 329
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9929334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9929826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9930365Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9930975Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9931502Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9931992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9932540Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9933135Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9933780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9934270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9934823Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9935429Z               "line": 406
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9935962Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9936454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9937003Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9937599Z               "line": 418
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9938119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9938611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9939245Z               "path": "crates/spt-proto/src/chunk.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9939837Z               "line": 442
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9940353Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9940848Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9941333Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9941812Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9942294Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9942771Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9943319Z       "id": "REQ-HAZARD-FAILED-ADDR-REINSTALL-LOOP",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9947844Z       "title": "HAZARD: a peer is never stranded by an address that has ALREADY failed — no path may re-serve or reinstall a just-failed address such that the node retries it forever and never reaches the discovery leg. This is the second clause of KNOWN-HAZARDS 7.42, added rather than carved out: 7.42's first clause (a valid roster address must never be deleted by a failed dial) remains true and is what REQ-HAZARD-MESH-BOOTSTRAP-TRAP pins; the cross-site incident falsified the unstated assumption BEHIND it, that a retained roster address is fresher than the failed one. Forbidden state: fail -> demote to suspect -> reinstall the identical address -> fail, cycling on every roster exchange while the id-only discovery leg stays unreachable and every status surface reads healthy. Kin REQ-DIAL-FAILED-ADDR-MEMORY (the mechanism that forbids it), REQ-HAZARD-MESH-BOOTSTRAP-TRAP (the first clause, distinct anchor). Gate: doc — the KNOWN-HAZARDS 7.42 second-clause entry; int — the livelock is set up on the real pump seam (dead roster address, discovery live) and the node is proved to reach discovery and connect; a pre-fix build never converges.",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9952386Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9952925Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9953422Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9953922Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9954413Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9954910Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9955423Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9955972Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9956491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9957025Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9957621Z               "line": 932
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9958138Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9958634Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9959220Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9959716Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9960230Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9960768Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9961286Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9961782Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9962303Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9962835Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9963368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9963935Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9964559Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9965083Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9965566Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9966045Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9966542Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9967056Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9967595Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9968111Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9968602Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9969165Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9969652Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9970171Z       "id": "REQ-HAZARD-GEN-START-NOW",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9970825Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9971460Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9971994Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9972600Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9973090Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9973583Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9974083Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9974600Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9975153Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9975667Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9976154Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9976672Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9977205Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9977726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9978275Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9978869Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9979472Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9979964Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9980450Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9980937Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9981457Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9981996Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9982507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9983064Z               "path": "crates/spt-daemon/tests/handoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9983684Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9984213Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9984706Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9985183Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9985665Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9986179Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9986718Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9986962Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9987202Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9987446Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9987700Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9988000Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9988391Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9988648Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9988902Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9989231Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9989477Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9989727Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9989970Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9990247Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9990500Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9990743Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9991091Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9991362Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9991611Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9991858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9992178Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9992429Z               "line": 2025
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9992680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9992918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9993219Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9993472Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9993715Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9993958Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9994205Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9994458Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9994717Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9994972Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9995213Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9995475Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9995734Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9996000Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9996244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9996611Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9996869Z               "line": 4327
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9997111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9997359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9997654Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9997917Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9998159Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9998406Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9998645Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9998894Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9999213Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9999462Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:34.9999753Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0000108Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0000378Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0000731Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0000978Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0001217Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0001475Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0001718Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0001986Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0002242Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0002490Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0002743Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0003008Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0003264Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0003506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0003821Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0004079Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0004332Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0004576Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0004886Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0005143Z               "line": 1278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0005385Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0005645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0005942Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0006194Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0006436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0006688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0006984Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0007242Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0007491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0007734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0008035Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0008295Z               "line": 1495
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0008538Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0008782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0009177Z               "path": "crates/spt-daemon/src/transport.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0009439Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0009688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0009935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0010236Z               "path": "crates/spt-daemon/src/transport.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0010506Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0010752Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0010995Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0011339Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0011592Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0011853Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0012106Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0012349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0012649Z               "path": "crates/spt/tests/n1_pairing.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0012903Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0013147Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0013392Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0013629Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0013877Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0014139Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0014391Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0014639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0014940Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0015198Z               "line": 1492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0015441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0015699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0016007Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0016271Z               "line": 1508
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0016520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0016768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0017069Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0017331Z               "line": 10474
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0017573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0017822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0018121Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0018375Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0018623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0018864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0019246Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0019508Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0019751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0020004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0020300Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0020676Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0020916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0021166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0021469Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0021722Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0021970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0022209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0022505Z               "path": "crates/spt-daemon/src/frame.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0022762Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0023005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0023243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0023557Z               "path": "crates/spt-daemon/src/transport.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0023816Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0024062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0024307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0024589Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0024847Z               "line": 31210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0025090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0025348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0025643Z               "path": "crates/spt/tests/n1_compat.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0025900Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0026148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0026388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0026681Z               "path": "crates/spt/tests/n1_compat.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0026932Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0027174Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0027419Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0027657Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0027905Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0028138Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0028377Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0028681Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0033831Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0034160Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0034441Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0034684Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0034930Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0035172Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0035426Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0035674Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0035932Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0036194Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0036432Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0036679Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0036938Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0037194Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0037434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0037749Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0038007Z               "line": 703
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0038250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0038494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0038794Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0039265Z               "line": 1372
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0039514Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0039772Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0040012Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0040260Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0040529Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0040777Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0041020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0041325Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0041586Z               "line": 2102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0041834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0042083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0042400Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0042656Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0042899Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0043142Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0043386Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0043634Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0043896Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0044153Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0044401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0044720Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0044978Z               "line": 1458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0045225Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0045471Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0045714Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0045953Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0046196Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0046434Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0046715Z       "id": "REQ-HAZARD-ID-CHARSET",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0047183Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0047451Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0047701Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0047946Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0048191Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0048444Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0048691Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0049035Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0049292Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0049549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0049835Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0050188Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0050440Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0050684Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0050926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0051173Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0051427Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0051689Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0051933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0052229Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0052485Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0052732Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0052979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0053264Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0053521Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0053764Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0054007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0054312Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0054575Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0054824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0055072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0055372Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0055628Z               "line": 913
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0055878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0056122Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0056422Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0056684Z               "line": 1104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0056927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0057170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0057456Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0057710Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0057958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0058204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0058493Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0058751Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0059099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0059460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0059752Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0060019Z               "line": 4010
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0060267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0060510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0060796Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0061057Z               "line": 4510
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0061306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0061549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0061830Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0062087Z               "line": 22853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0062330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0062573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0062860Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0063123Z               "line": 23184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0063372Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0063619Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0063858Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0064101Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0064377Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0064634Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0064877Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0065135Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0065398Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0065656Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0065898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0066188Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0066448Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0066696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0066939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0067225Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0067482Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0067730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0067974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0068256Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0068513Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0068754Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0069085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0069386Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0069640Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0069983Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0070236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0070527Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0070780Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0071026Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0071269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0071560Z               "path": "crates/spt-proto/src/id.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0071813Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0072056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0072298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0072622Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0072876Z               "line": 1007
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0073119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0073363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0073668Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0073928Z               "line": 592
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0074184Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0074428Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0074666Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0074913Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0075156Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0075390Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0075685Z       "id": "REQ-HAZARD-IDLE-SILENT-NONDELIVERY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0087720Z       "title": "An idle delivery to a session whose translation binary is in a FAILED STATE — absent (none declared), spawn-failed, FAULTED, or its inject-worker channel gone — must SPOOL (delivered=false), never raw-inject a pseudo-delivery reported as delivered. The GUARANTEE is the STEADY STATE (the failed-binary state), not every in-flight message (see the fault-transient carve-out below). ROOT (F-019 post-mortem, ADR-0022 amendment): the v0.11.0 path raw-injected `payload+\\r` into the PTY whenever no working translation binary handled an inbound message (none declared, spawn-failed, FAULTED, or its inject-worker channel gone) AND acked `delivered=true` — but a bare `payload+\\r` does NOT submit on a modern TUI (Claude Code), so the message was TYPED but never sent: a silent pseudo-delivery reported as success. That silent degrade-to-raw-inject is exactly what MASKED F-019 through a multi-hour black-box hunt. FIX (operator-ruled, doyle-scoped): idle delivery is translation-binary-ONLY — `dispatch_endpoint_input` with no working binary replies `endpoint_injected_envelope(ep, delivered=false)` (the caller `try_broker_inject`→`cmd_send` then falls through to `deliver::send` = SPOOL, poll-fed, never lost) and writes NOTHING to the PTY, LOUDLY (eprintln names the absent/faulted/worker-gone cause). A failed binary becomes a VISIBLE no-delivery (spooled + honest QUEUED report), never a confident-but-false 'Sent'. The raw-inject fallback (`input.enqueue`) is REMOVED from the no-binary, worker-dropped, AND post-fault paths. OUT OF SCOPE (doyle ruling, follow-up note only): broker-side auto-redrive of already-spooled inbound the instant a live-update binary spawns (ordering/exactly-once hazards; the poll substrate + subsequent sends cover re-delivery). NOT COVERED — the FAULT-TRANSIENT (the STATE-vs-transient precision): a delivery landing in the worker's commit window — BEFORE `event_rx` is dropped / `faulted` is set — can be optimistically enqueue-acked (`delivered=true` the instant `event_tx.send` succeeds) then DROPPED when the worker faults+returns. That is a SEPARATE, PRE-EXISTING hazard: raw-inject removal did not touch it (the old code dropped that queued event too) — v0.14.3 is a strict improvement that makes nothing worse. It is tracked for v0.15.0 under REQ-MSG-DELIVERY-AXES (the spool-centric delivery redesign: ack-on-SPOOL replaces ack-on-enqueue, which closes the optimistic-ack drop naturally). v0.14.3 guarantees only the steady FAILED state → spool (faulted is MONOTONIC — set once, never respawns — so it converges deterministically; the g2 gate asserts the steady state via bounded-retry-until-spool, not a single-shot ack). EPHEMERAL CARVE-OUT (v0.15.0 W3, ADR-0028): `--ephemeral` is the SOLE sender-opted-in exception — an ephemeral message MAY drop silently if it cannot deliver in its accepted window (at window-open with no live carrier, or at TTL). Every NON-ephemeral path still spools + reports `delivered=false` (the guarantee is unchanged for the default durable path). v0.15.0 realizes the ephemeral drop for the spt-hosted-binary no-carrier-at-window leg + TTL; the harness-relay no-live-listener leg is a documented partial (CONTEXT.md §persistence). KNOWN-HAZARDS class (rule 4). (v0.14.3; ephemeral carve-out v0.15.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0088202Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0088455Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0088703Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0089033Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0089284Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0089537Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0089785Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0090027Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0090287Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0090539Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0090816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0091103Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0091384Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0091623Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0091866Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0092109Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0092351Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0092615Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0092866Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0093113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0093418Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0093681Z               "line": 8918
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0093920Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0094168Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0094415Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0094668Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0094930Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0095182Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0095423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0095733Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0096115Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0096372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0096672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0096982Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0097239Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0097487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0097732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0098077Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0098328Z               "line": 497
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0098580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0098828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0099258Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0099529Z               "line": 1563
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0099773Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0100021Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0100261Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0100506Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0100770Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0101038Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0101277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0101582Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0101840Z               "line": 2166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0102082Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0102335Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0102583Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0102827Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0103065Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0103306Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0103588Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0103908Z       "title": "No double-delivery via legacy inbox (4.5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0104165Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0104413Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0104665Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0104904Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0105156Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0105457Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0105765Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0109975Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0110256Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0110510Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0110919Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0111185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0111431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0111746Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0112003Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0112251Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0112494Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0112734Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0112986Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0113248Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0113505Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0113744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0113991Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0114248Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0114510Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0114759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0115059Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0115312Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0115570Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0115816Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0116054Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0116311Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0116557Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0116795Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0117091Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0117434Z       "title": "State-file reads tolerate concurrent writes (1.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0117701Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0117949Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0118194Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0118437Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0118684Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0118931Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0119291Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0119554Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0119792Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0120040Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0120297Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0120550Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0120907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0121207Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0121479Z               "line": 912
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0121721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0121967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0122263Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0122520Z               "line": 1002
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0122759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0123002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0123294Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0123555Z               "line": 1020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0123793Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0124036Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0124281Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0124526Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0124793Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0125046Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0125295Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0125538Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0125800Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0126066Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0126309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0126610Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0126867Z               "line": 1122
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0127108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0127351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0127646Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0127904Z               "line": 1143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0128143Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0128391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0128682Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0129035Z               "line": 1922
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0129282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0129524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0129817Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0130076Z               "line": 1933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0130324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0130565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0130866Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0131119Z               "line": 1946
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0131462Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0131705Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0131959Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0132200Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0132441Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0132685Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0132981Z       "id": "REQ-HAZARD-INFO-RMW-LOST-UPDATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0133652Z       "title": "Concurrent info.json writers must serialize under the per-perch lock (5.16): an unlocked whole-record write racing a locked RMW is a silent lost update",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0133910Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0134159Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0134401Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0134649Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0134892Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0135144Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0135406Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0135658Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0135917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0136207Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0136475Z               "line": 317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0136714Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0136961Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0137203Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0137455Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0137721Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0137973Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0138220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0138516Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0138775Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0139104Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0139352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0139648Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0139900Z               "line": 499
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0140146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0140387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0140683Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0141040Z               "line": 914
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0141288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0141547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0141838Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0142099Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0142342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0142585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0142888Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0143149Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0143397Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0143640Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0143879Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0144127Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0144395Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0144651Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0144890Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0145133Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0145401Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0145651Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0145894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0146199Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0146467Z               "line": 1983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0146711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0146950Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0147191Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0147429Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0147669Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0147911Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0148214Z       "id": "REQ-HAZARD-INJECT-CONTROL-COEXIST",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0157475Z       "title": "SPINE INVARIANT (v0.13.0 keystone): the broker must accept INJECTED keystrokes into an spt-hosted PTY (the v0.11.0 raw direct-inject today; the ADR-0022 translation-binary choreography tomorrow) WHILE a live `spt rc` controller is attached to the SAME PTY, without (a) the operator losing control, (b) the endpoint latching ONLINE+CONTROLLED, or (c) the broker wedging. The injection inlet is PERMANENT — spt-claude-code requires keystroke injection — so this is root-caused + fixed at the PTY-injection layer, IN STEP with the ADR-0022 delivery redesign that formalizes the inlet. REOPENS the wedge facet of REQ-HAZARD-ATTACH-WEDGE: the v0.12.1 prove-don't-change covered only DEAD-CHILD backpressure, NOT the injection trigger (operator's signal — one injected keystroke succeeds, the next wedges → the single-threaded broker parks on a blocking PTY/loopback write after injection-induced harness output). REPRO-FIRST on the real dummy-harness fixture (NO theory): instrument to nail the exact blocking call before any fix. Fix candidates: non-blocking/fail-fast PTY write, split input/output, bounded-evicting. Mechanism shared with W2 — spt-core owns EVERY PTY write and applies an injected sequence ATOMICALLY (controller input buffered during the sequence, flushed after) so a stash/restore can't be clobbered. CONFIRMED ROOT (doyle /diagnose 2026-06-19, code-grounded): Broker::append (broker.rs:205-227) fans each live output chunk to the CONTROLLER on a SYNCHRONOUS BLOCKING write_frame held inline in the session's drain thread (the 'authoritative, advances delivered_through' path, D4-1), while VIEWERS use a dedicated writer thread + bounded evicting sync_channel (add_viewer:273 / viewer_writer) that can never stall the drain. So a slow/backed-up controller socket — or the full 64KB loopback duplex (the ATTACH-WEDGE buffer) — BLOCKS the drain thread → output stalls → keystroke echoes stall (PERCEIVED input lag) → unrecoverable wedge when the consumer never drains. TRIGGERS ON NORMAL INTERACTIVE rc USE under heavy harness output (TUI redraw), NOT only message injection — same root, wider repro. FIX DIRECTION: move controller delivery off the drain thread onto a dedicated writer (the viewer_writer pattern) BUT preserve the authoritative cursor — block the WRITER thread (not the drain), bound the wedge (deadline → detach/mark-gone, never park forever), never silently evict the operator's authoritative view. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0157820Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0158066Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0158427Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0158668Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0158913Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0159279Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0159532Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0159795Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0160047Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0160289Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0160532Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0160796Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0161054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0161304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0161616Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0161879Z               "line": 1428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0162128Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0162366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0162672Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0162924Z               "line": 3867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0163171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0163409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0163733Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0163989Z               "line": 4839
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0164241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0164488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0164788Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0165046Z               "line": 4903
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0165285Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0165534Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0165776Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0166019Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0166281Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0166530Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0166776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0167120Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0167377Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0167620Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0167864Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0168103Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0168350Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0168621Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0168874Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0169200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0169615Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0169876Z               "line": 10746
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0170116Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0170360Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0170597Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0170845Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0171087Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0171337Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0171633Z       "id": "REQ-HAZARD-INJECT-SETTLE-REARM",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0176608Z       "title": "post-0.29.0 (KNOWN-HAZARDS 7.37): the Layer-1 settle-gate must RE-ARM before every delivery on an OBSERVABLE (echoing/interactive) PTY — a mid-session reader reattach re-creates the head-swallow window. ROOT (field-confirmed on 0.29.0, doyle diagnosis + perri screenshot): the shipped W5-A settle-gate (REQ-INJECT-MULTILINE-INTEGRITY) gated Layer 1 behind a worker-local ONE-SHOT (`settled_once`) on the false premise that the head-swallow race is STARTUP-only (reader not attached after spawn). A mid-session `/clear` re-enters the harness's raw-mode input reader, re-creating the pre-settle window — but the one-shot already fired at spawn, so `settle_before_inject` is SKIPPED and the head is eaten again (a checkpoint-wake payload injected right after `/clear` lost its head, mid-path `spt/Cargo.toml)`); echo-verify (Layer 2) is default-OFF for that session, so it is silent + unrecoverable. FIX (doyle ruling): re-settle before EVERY delivery on an observable PTY; latch-skip the steady-state settle ONLY where the probe is UNOBSERVABLE (non-echoing ConPTY — no reader-reattach race to guard, and each settle burns the full deadline). The settle's own bool return (observed vs timed-out) discriminates the class; a re-drive (attempt>1) ALWAYS settles. `settled_once: bool` one-shot → `probe_unobservable: bool` latch driven by the first-attempt settle outcome.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0176904Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0177269Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0177518Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0177766Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0178038Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0178285Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0178537Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0178796Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0179144Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0179382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0179685Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0179946Z               "line": 731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0180184Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0180432Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0180676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0180924Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0181182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0181443Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0181687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0181996Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0182259Z               "line": 4749
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0182505Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0182751Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0182994Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0183243Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0183509Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0183768Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0184005Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0184253Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0184515Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0184765Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0185015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0185318Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0185580Z               "line": 11729
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0185819Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0186062Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0186301Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0186548Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0186796Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0187039Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0187340Z       "id": "REQ-HAZARD-INJECT-WORKER-POISON",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0191103Z       "title": "The per-session inject-worker floor Mutex is SHARED by the inject worker (open/flush) and the controller-input path (dispatch_input Layer C buffer_if_held); a panic under the lock on EITHER poisons it, and a bare .lock().unwrap() at the next site then panics too — a panic in the inject WORKER kills its thread WITHOUT reaping the translation child, orphaning a live binary while event_tx.send fails, so force-native reports 'worker-gone' delivered=false FOREVER (the F-e generic-miss shape). HARDENING, NOT the F-e incident root (perri's matrix exonerated poison under thrash/dormancy/churn): (i) poison-tolerant floor lock (unwrap_or_else into_inner) at all 3 sites so one panic can't cascade the session's delivery dead; (ii) a panic-resilient inject worker (catch_unwind -> fault+terminate the child on a worker panic) so a dead worker never orphans a live binary + strands delivery. Poison-tolerance class of REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE / bug #16.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0191388Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0191664Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0191908Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0192152Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0192438Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0192686Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0192951Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0193216Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0193460Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0193703Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0193965Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0194217Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0194466Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0194774Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0195033Z               "line": 4254
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0195277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0195512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0195820Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0196078Z               "line": 4682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0196326Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0196622Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0196974Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0197219Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0197481Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0197747Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0197985Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0198234Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0198490Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0198742Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0199072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0199387Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0199644Z               "line": 10903
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0199892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0200140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0200436Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0200696Z               "line": 11805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0200937Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0201181Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0201420Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0201672Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0201909Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0202153Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0202468Z       "id": "REQ-HAZARD-INPUT-ACK-BACKPRESSURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0211436Z       "title": "A FLOOD of operator input on one brain↔broker connection deadlocks the broker PERMANENTLY (entire broker — no new/existing attach; the controller stays latched because the per-conn handler can't process the detach). ROOT (doyle /diagnose, code-grounded + HITL capture, the v0.13.0 P1 ctrl+V re-open): `serve_attach` processes a whole `NetStreamData` batch of N operator `Input` records in its inner `for rec in decoder.push()` loop, calling `brain.send_effect(op_id, &bytes)` N times WITHOUT returning to `read_event()` — so the brain writes N `KIND_INPUT` frames back-to-back and drains nothing. The broker's single-threaded per-conn handler answers EACH with `send_frame(applied_envelope)` on the SAME conn (B5 exactly-once ack, KNOWN-HAZARDS 7.2). With the brain not reading, the broker→brain return direction fills (~10 frames = the IPC pipe buffer) → `send_frame` BLOCKS → the handler stops reading → the brain's writes block too → mutual full-duplex DEADLOCK. Capture pinned it: 11 input frames, write_input 11/11 (P0 holds — the PTY write is fine), ack send START=11 / END=10 (frame #11's applied-ack never returns). Same class as the v0.12.1 L0 two-conn split. Windows Terminal's ctrl+V paste accelerator was the trigger (injects the clipboard as a char-by-char key flood) but the deadlock is generic to ANY input flood, NOT ctrl+V-specific and NOT a P0 (PTY-write) or W1 (output-drain) regression. The applied-ack is load-bearing ONLY for `shellchan` (one-at-a-time spool delivery WAITS on `BrokerEvent::Applied`); `serve_attach` DISCARDS it (the operator/rc path is fire-and-forward, op_id for dedup only, never gates on the ack). FIX (doyle-approved): CONDITIONAL ACK — `InputReq` gains `ack: bool` (serde default = true, N-1-safe: an older brain's input still acks = today's behavior). `serve_attach`'s operator path calls `send_effect_no_ack` (ack=false) → `dispatch_input` writes NO applied frame → the per-conn handler never writes back while servicing the flood → it always drains → no deadlock (cures ANY input flood). `shellchan` keeps `send_effect` (ack=true) and its `Applied`-wait. Exactly-once PRESERVED: the broker still dedups by (session, op_id) at the applied-set regardless of the ack. N-1 caveat: an OLD resident broker (self-update window) ignores `ack=false` → still acks → the deadlock persists until a broker restart (inherent KNOWN-HAZARDS 7.9 broker-resident-wire-change class). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0211793Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0212041Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0212290Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0212533Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0212779Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0213019Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0213267Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0213516Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0213777Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0214028Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0214265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0214688Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0214947Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0215213Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0215452Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0215699Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0215942Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0216204Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0216459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0216700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0217008Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0217265Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0217508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0217751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0218048Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0218305Z               "line": 904
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0218548Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0218791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0219182Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0219434Z               "line": 8735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0219692Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0219935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0220231Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0220487Z               "line": 749
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0220730Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0220974Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0221213Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0221465Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0221721Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0221972Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0222211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0222521Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0222773Z               "line": 776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0223015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0223259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0223564Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0223822Z               "line": 893
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0224066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0224308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0224655Z               "path": "crates/spt-daemon/tests/input_ack_deadlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0225011Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0225263Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0225507Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0225750Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0225993Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0226250Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0226512Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0226755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0227061Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0227312Z               "line": 2206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0227563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0227806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0228106Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0228369Z               "line": 2240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0228612Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0228860Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0229185Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0229427Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0229665Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0229909Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0230194Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0231067Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0231333Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0231572Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0231815Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0232049Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0232295Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0232537Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0232804Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0233061Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0233309Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0233557Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0233815Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0234072Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0234312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0234725Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0234984Z               "line": 1607
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0235234Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0235479Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0235719Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0235967Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0236229Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0236491Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0236729Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0236977Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0237236Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0237493Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0237734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0238046Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0238304Z               "line": 1721
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0238548Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0238791Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0239125Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0239367Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0239606Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0239858Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0240154Z       "id": "REQ-HAZARD-IOLOG-SEQ-MONOTONIC",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0241384Z       "title": "IO event log appends mint strictly above the global sequence maximum; a tail window beginning inside a UTF-8 codepoint never produces a false zero. Reset-damaged history is renumbered above its prior maximum in file order under the exclusive lock, and retention keeps the newest rows by position (releases#277).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0241660Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0241903Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0242146Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0242390Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0242639Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0242884Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0243149Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0243411Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0243655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0243946Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0244198Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0244455Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0244694Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0244938Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0245285Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0245548Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0245808Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0246049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0246349Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0246603Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0246851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0247089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0247389Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0247641Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0247889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0248125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0248423Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0248683Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0248921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0249245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0249536Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0249803Z               "line": 404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0250048Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0250291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0250586Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0250838Z               "line": 414
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0251085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0251319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0251620Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0251877Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0252119Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0252368Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0252606Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0252855Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0253116Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0253373Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0253610Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0253857Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0254114Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0254367Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0254724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0255015Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0255278Z               "line": 561
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0255521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0255765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0256056Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0256316Z               "line": 599
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0256557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0256800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0257101Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0257363Z               "line": 620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0257616Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0257859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0258149Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0258408Z               "line": 643
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0258651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0258892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0259276Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0259543Z               "line": 657
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0259786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0260045Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0260339Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0260594Z               "line": 671
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0260836Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0261088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0261379Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0261645Z               "line": 700
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0261894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0262136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0262437Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0262689Z               "line": 726
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0262933Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0263171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0263468Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0263720Z               "line": 745
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0263961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0264217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0264508Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0264875Z               "line": 770
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0265118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0265362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0265662Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0265918Z               "line": 788
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0266162Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0266401Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0266645Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0266885Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0267127Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0267365Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0267647Z       "id": "REQ-HAZARD-LISTEN-ORPHAN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0270256Z       "title": "W4 (LIFECYCLE-TRUTH, KNOWN-HAZARDS): `api listen --parent-pid N` watches parent liveness and exits loud on parent death. ROOT (mobile-gw RCA): --parent-pid is auth-anchor ONLY — no liveness watch; host death orphans the listener forever -> perch held alive (false ONLINE), EVENTs stream to a dead stdout, dead-owner rebind BLOCKED (recorded pid = the live orphan). FIX: listener watches --parent-pid liveness (Windows: job object or poll; Unix: PDEATHSIG or poll) and exits loud on parent death. flynn's job-object guard (spt-mobile side) stays regardless; filed SPT-CORE-NEEDS §5. Unit: parent-death -> listener exits within one poll window.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0270533Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0270781Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0271019Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0271258Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0271501Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0271744Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0272006Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0272262Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0272506Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0272749Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0273007Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0273259Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0273502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0273802Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0274179Z               "line": 856
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0274446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0274683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0274982Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0275239Z               "line": 863
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0275487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0275726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0276026Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0276284Z               "line": 880
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0276537Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0276788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0277080Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0277346Z               "line": 1077
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0277588Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0277830Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0278072Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0278321Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0278726Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0279194Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0279447Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0279729Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0279998Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0280248Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0280498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0280802Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0281065Z               "line": 1742
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0281312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0281554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0281851Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0282108Z               "line": 1786
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0282353Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0282591Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0282832Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0283076Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0283323Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0283562Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0283876Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0286982Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0287330Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0287573Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0287817Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0288058Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0288303Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0288571Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0288824Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0289196Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0289467Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0289711Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0289954Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0290216Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0290472Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0290720Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0291028Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0291286Z               "line": 1373
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0291528Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0291767Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0292015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0292259Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0292516Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0292768Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0293011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0293335Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0293716Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0293955Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0294199Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0294446Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0294688Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0294947Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0295199Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0295444Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0295746Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0296006Z               "line": 1810
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0296245Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0296493Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0296789Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0297028Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0297274Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0297513Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0297808Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0302388Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0302694Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0302989Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0303506Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0303749Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0304004Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0304247Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0304520Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0304777Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0305016Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0305263Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0305525Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0305778Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0306018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0306321Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0306570Z               "line": 795
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0306824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0307063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0307353Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0307607Z               "line": 6678
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0307868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0308111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0308392Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0308659Z               "line": 12503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0308899Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0309226Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0309467Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0309719Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0309977Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0310235Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0310474Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0310721Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0310978Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0311231Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0311475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0311773Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0312033Z               "line": 1690
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0312281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0312535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0312859Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0313216Z               "line": 29109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0313493Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0313732Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0313980Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0314227Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0314469Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0314708Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0315008Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0319215Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0319506Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0319753Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0319998Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0320260Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0320519Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0320757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0320999Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0321266Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0321519Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0321763Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0322045Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0322305Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0322660Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0322985Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0327085Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0327378Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0327648Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0327896Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0328150Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0328393Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0328644Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0328935Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0329479Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0329751Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0330005Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0330260Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0330506Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0330759Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0331012Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0331284Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0331560Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0331812Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0332069Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0332332Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0332595Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0332841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0333144Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0333434Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0333683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0333950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0334260Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0334532Z               "line": 1023
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0334776Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0335023Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0335265Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0335519Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0335785Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0336047Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0336294Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0336548Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0336967Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0337224Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0337486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0337782Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0338044Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0338285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0338532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0338828Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0339181Z               "line": 339
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0339433Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0339677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0339973Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0340231Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0340478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0340725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0341023Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0341286Z               "line": 355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0341538Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0341800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0342086Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0342349Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0342587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0342831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0343122Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0343386Z               "line": 371
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0343627Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0343872Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0344115Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0344352Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0344595Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0344834Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0345130Z       "id": "REQ-HAZARD-MESH-BOOTSTRAP-TRAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0349651Z       "title": "MESH-RECOVERY W1 (KNOWN-HAZARDS 7.42, hertz field RCA 2026-07-10 — HFENDULEAM+ENLYZEAM symmetric green-status sequester): a node holding a valid RosterEntry.address for a peer is NEVER route-less — a failed dial must not delete the only bootstrap route, and recovery must never require an already-successful connection or operator state surgery. Today: resolve_submit_addr = exact cache else id-only (never roster), PRESENCE_DIAL_FAILED unconditionally drop_seed's the cache row, and the cache refills only after a successful seed-proof exchange — one transient + stalled discovery = self-sustaining isolation, invisible (net_up true, heartbeat fresh, durable counts normal). Gate: int — production-path regression at the REAL pump resolver/failure-lifecycle seam: valid roster + matching cache, ONE transient dial failure, id-only discovery DISABLED, prove the next attempt still holds the roster-derived route AND all-peer-fail-then-restore converges with zero state surgery; doc — KNOWN-HAZARDS 7.42. HEAVY nextest group at birth if it spawns a daemon tree. Kin REQ-PEER-ROUTE-CHAIN (the mechanism), REQ-CONV-1 (the falsified drop-on-fail predecessor), ADR-0039.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0349951Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0350200Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0350443Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0350704Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0350952Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0351196Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0351480Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0351735Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0351978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0352269Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0352523Z               "line": 774
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0352771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0353014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0353319Z               "path": "docs/MESH-RECOVERY-TRIAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0353571Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0353819Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0354061Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0354307Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0354554Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0354822Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0355075Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0355314Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0355561Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0355948Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0356201Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0356443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0356780Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0357034Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0357277Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0357521Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0357763Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0358011Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0358273Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0358536Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0358784Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0359111Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0359356Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0359595Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0359924Z       "id": "REQ-HAZARD-MONITOR-GREEN-SELF-PRODUCIBLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0367936Z       "title": "HAZARD: a monitor green state must never be REACHABLE BY the fault that monitor exists to report. A surface that can certify a broken system as healthy is worse than no surface, because it ends the operator investigation rather than merely failing to start it. Paid for twice on one surface in one batch: the 2026-07-10 sequester (net_up meant a local host object exists, the heartbeat meant the loop is alive, durable counts meant membership -- none was a function of reaching a peer, so all three stayed green while every dial failed), and then AGAIN in the fix for it (issue #41: the reachability verdict returned Healthy on any live peer BEFORE consulting the failing set, and its only incident window required every target to be failing, so 2 of 7 live with 5 failing for days read healthy and one dial success closed the window). The second instance is the binding lesson: at-least-one-thing-works is the intuitive spelling of green and it is precisely the spelling the fault can satisfy. Forbidden state: any state reachable by the fault that the surface reports as green. Invariant: green asserts the ABSENCE of the fault, never the PRESENCE of some success -- nothing failing rather than something working; a partial fault renders its own verdict instead of collapsing into a neighbour; an incident window closes only when the fault clears, never on one participant recovery, elapsed time, or a heartbeat. Corollary: dropping the failing subject from the monitored set produces green just as silently, so every membership-change path is a re-entry path and must be examined as one (the known open door is documented in KNOWN-HAZARDS 7.61 rather than closed here). Twin: REQ-PEER-HEALTH-PARTIAL-DEGRADE, the positive requirement repairing instance 2. Kin REQ-PUMP-STAGE-TRUTH (the total-failure fingerprint and stage attribution, produced by instance 1 and unchanged here). Distinct from the instrument-soundness rule about TEST gates, which governs a rig verdict rather than a production monitor and is never requirement evidence. Gate: doc -- the KNOWN-HAZARDS 7.61 entry naming the class, both instances, and the open eviction door; unit -- the fault at full strength (five of seven peers failing behind two live ones) is asserted NOT green in its own terms; int -- on the real pump seam, the dial path does not emit the reading it would produce in the benign case (plain discovery) while sitting in the fault (a held roster address that was refused).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0368247Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0368495Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0368744Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0369073Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0369310Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0369557Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0369803Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0370065Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0370318Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0370560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0370846Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0371104Z               "line": 952
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0371352Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0371592Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0371834Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0372082Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0372448Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0372708Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0372952Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0373210Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0373471Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0373728Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0373967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0374295Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0374554Z               "line": 625
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0374798Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0375038Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0375284Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0375528Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0375790Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0376047Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0376285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0376609Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0376872Z               "line": 660
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0377125Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0377374Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0377621Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0377867Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0378116Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0378374Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0378674Z       "id": "REQ-HAZARD-MUTUAL-PREAUTH-SIBLING",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0385343Z       "title": "A DEDUPE KEY NARROWER THAN THE RECORD'S IDENTITY SILENTLY DESTROYS A SIBLING. Re-arming a mutual pre-authorization REPLACES rather than stacks, so a re-knock cannot accumulate duplicate reverse grants -- but the identity that replacement tests is `(kind, key_id, OWNER)`, never `(kind, key_id)`. A single code id is legitimately shared by TWO pre-authorizations with different owners: the MINTER's, armed at mint, whose subject is empty because no redeemer exists yet, and the REDEEMER's own, armed at redemption, whose subject is known. Keyed without the owner, arming the second would find the first and overwrite it in place, and one side of an agreed two-way would simply VANISH -- no error, no refusal, no second grant to notice missing; the surviving side would look entirely correct on its own. The dedupe is not wrong to exist, it is wrong when its key is narrower than the thing it is deduplicating, and the narrower key is the one a reader reaches for first because `(kind, key_id)` is how every OTHER seam here addresses a pre-authorization. The asymmetry with the consuming seam is deliberate and must not be 'fixed' into agreement: `consume_redeemed` filters on `(kind, key_id)` WITHOUT the owner precisely because a redemption must make BOTH siblings due at once, while `armed_mutual`/`consume_mutual` serve the knock keyspace, where only the knocker's single record exists. INVARIANT: any replace-in-place keyed lookup states the FULL identity of the record it replaces; where a key is deliberately narrower than a record's identity, the seam says why and a test pins that two records sharing the narrow key both survive. Gate: doc -- the KNOWN-HAZARDS entry stating the sibling mechanism and the deliberate arm/consume asymmetry; impl -- the owner-inclusive match in the arming seam; unit -- two pre-authorizations sharing one code id under different owners both survive arming and are BOTH made due by one redemption, with a bystander code untouched and a replay finding nothing left.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0385636Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0385882Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0386131Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0386374Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0386612Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0386864Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0387118Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0387375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0387638Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0387876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0388172Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0388427Z               "line": 973
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0388672Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0388920Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0389244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0389486Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0389854Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0390106Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0390354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0390658Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0390914Z               "line": 1381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0391162Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0391404Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0391652Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0391896Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0392162Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0392416Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0392663Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0392915Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0393182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0393441Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0393682Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0393985Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0394242Z               "line": 2908
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0394490Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0394734Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0394987Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0395225Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0395468Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0395716Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0395998Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0397248Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0397521Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0397773Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0398016Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0398264Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0398513Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0398761Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0399107Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0399364Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0399607Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0399865Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0400147Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0400400Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0400772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0401115Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0401375Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0401620Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0401859Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0402113Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0402370Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0402633Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0402894Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0403137Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0403380Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0403644Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0403896Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0404142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0404478Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0404731Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0404980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0405233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0405566Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0405834Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0406076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0406323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0406652Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0406912Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0407160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0407403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0407737Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0407993Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0408242Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0408490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0408814Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0409172Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0409425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0409820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0410325Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0410654Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0410911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0411159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0411492Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0411754Z               "line": 316
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0411997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0412238Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0412490Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0412743Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0412992Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0413250Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0413560Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0414370Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0414636Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0414883Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0415139Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0415381Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0415634Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0415888Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0416159Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0416418Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0416680Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0416937Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0417207Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0417463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0417710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0418030Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0418287Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0418539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0418788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0419188Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0419465Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0419712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0419957Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0420265Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0420537Z               "line": 337
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0420784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0421161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0421471Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0421738Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0421985Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0422235Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0422486Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0422731Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0423008Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0423266Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0423518Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0423767Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0424033Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0424290Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0424538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0424843Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0425102Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0425358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0425637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0425946Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0426223Z               "line": 696
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0426471Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0426724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0427053Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0427316Z               "line": 925
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0427559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0427810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0428108Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0428375Z               "line": 960
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0428629Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0428877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0429281Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0429558Z               "line": 1019
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0429806Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0430049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0430349Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0430758Z               "line": 1033
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0431010Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0431273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0431579Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0431841Z               "line": 1044
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0432089Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0432337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0432632Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0432893Z               "line": 1127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0433140Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0433392Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0433639Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0433882Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0434136Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0434379Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0434685Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0435667Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0435946Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0436207Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0436464Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0436712Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0436960Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0437213Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0437485Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0437747Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0437994Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0438252Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0438518Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0438778Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0439136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0439470Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0439732Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0439979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0440227Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0440547Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0440832Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0441087Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0441327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0441762Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0442020Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0442276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0442515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0442835Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0443087Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0443336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0443582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0443918Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0444171Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0444414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0444662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0444991Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0445245Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0445502Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0445749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0446088Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0446344Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0446591Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0446834Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0447086Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0447329Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0447591Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0447848Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0448098Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0448345Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0448607Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0448864Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0449195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0449524Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0449782Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0450030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0450273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0450587Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0450951Z               "line": 394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0451202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0451450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0451764Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0452022Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0452260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0452508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0452823Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0453080Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0453323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0453572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0453891Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0454142Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0454387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0454627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0454941Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0455199Z               "line": 563
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0455452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0455690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0456028Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0456280Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0456519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0456764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0457095Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0457345Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0457593Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0457832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0458161Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0458418Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0458663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0458900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0459316Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0459576Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0459812Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0460069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0460493Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0460756Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0461004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0461243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0461577Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0461830Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0462082Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0462319Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0462563Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0462806Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0463043Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0463278Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0463568Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0463964Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0464226Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0464475Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0464721Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0464990Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0465243Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0465496Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0465736Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0465997Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0466250Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0466493Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0466745Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0466999Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0467257Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0467498Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0467743Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0468001Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0468255Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0468491Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0468739Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0469069Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0469302Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0469617Z       "id": "REQ-HAZARD-PERCH-GC-LIVENESS-INVERSION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0473762Z       "title": "A perch GC must NEVER key on `is_perch_alive` — on the residue population that predicate is INVERTED (3.5; measured HFENDULEAM 2026-08-04). `spt_store::liveness::is_perch_alive` returns TRUE for a directory with no `info.json` (`RawRead::Absent ⇒ true`, interim parity: an absent record means a listener between polls), and FALSE for a daemon-hosted endpoint whose status is `offline`. So on a real box every one of the 24 recordless residue directories read ALIVE and all 6 offline REAL endpoints read DEAD: a sweep keyed on `!is_perch_alive` does not merely under-perform, it authorizes EXACTLY THE INVERSE SET — it would have spared every stray probe dir and deleted six resting agents' records. The predicate is correct for its own job (fail toward alive is the safe direction for DELIVERY) and wrong for this one, which is why the inversion is a hazard rather than a bug. INVARIANT: the GC classifies on record PRESENCE only and never calls a liveness resolver; the unit pinning this asserts BOTH arms with the shipped resolver as the witness (residue reads alive and is still reaped; an offline endpoint reads dead and is still kept).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0474181Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0474457Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0474701Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0474945Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0475186Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0475432Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0475685Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0475942Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0476194Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0476437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0476729Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0476981Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0477221Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0477463Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0477706Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0477954Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0478210Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0478475Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0478718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0479129Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0479386Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0479725Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0479982Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0480220Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0480469Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0480729Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0480989Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0481232Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0481481Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0481743Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0481996Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0482243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0482548Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0482801Z               "line": 655
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0483044Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0483284Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0483529Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0483773Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0484017Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0484265Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0484575Z       "id": "REQ-HAZARD-PERCH-RECORD-POWER-LOSS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0485360Z       "title": "Authoritative/identity records fsync data before the rename (5.13): a hard reset must not resurrect a full-length NUL-filled record — SCOPED, not a blanket fsync",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0485627Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0485874Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0486115Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0486363Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0486612Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0486860Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0487113Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0487370Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0487608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0487893Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0488152Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0488396Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0488641Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0488878Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0489211Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0489593Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0489859Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0490098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0490441Z               "path": "crates/spt-daemon/src/machineid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0490705Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0490948Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0491193Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0491497Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0491759Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0492003Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0492251Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0492547Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0492803Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0493056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0493294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0493595Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0493849Z               "line": 913
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0494094Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0494347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0494647Z               "path": "crates/spt-store/src/nodeid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0494906Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0495158Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0495401Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0495644Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0495892Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0496155Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0496416Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0496700Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0496947Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0497205Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0497467Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0497711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0498007Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0498264Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0498502Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0498750Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0499074Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0499326Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0499552Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0499814Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0500114Z       "id": "REQ-HAZARD-PROBE-CONTEXT-ISOLATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0503363Z       "title": "A PRESENCE PROBE MUST NEVER REACH THE RECIPIENT AS CONTENT. It is never spooled, never lands in an inbox, and never enters the recipient's agent context -- the whole point of a machine-plane question is that the machine answers it and the human or agent behind it is not interrupted to do so. The hazard is the one KNOWN-HAZARDS already records for untagged wire records, in a new dress: a probe that presented the untagged message signature would be classified a message feed by an older receiver and DELIVERED INTO THE TARGET'S SPOOL, turning a liveness question into a chat line nobody sent. The kind tag is what keeps it out of that arm, and an N-1 daemon drops it clean. Gate: impl -- the tag and the serve arm that answers without any delivery side effect; unit -- the probe record can never be read as a message feed (the classifier's own inputs, asserted), and a served probe leaves the target's spool and inbox byte-identical to before it arrived.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0503727Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0503988Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0504236Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0504489Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0504741Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0504988Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0505250Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0505513Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0505761Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0506015Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0506276Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0506529Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0506786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0507102Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0507365Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0507613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0507870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0508189Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0508553Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0508799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0509143Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0509458Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0509714Z               "line": 1963
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0509965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0510213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0510523Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0510790Z               "line": 2086
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0511037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0511285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0511595Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0511857Z               "line": 2153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0512107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0512357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0512689Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0512946Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0513203Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0513456Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0513705Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0513957Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0514243Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0514510Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0514757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0515007Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0515272Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0515529Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0515777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0516096Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0516364Z               "line": 3375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0516617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0516861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0517175Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0517440Z               "line": 3526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0517686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0517935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0518263Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0518531Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0518774Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0519255Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0519517Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0519766Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0520023Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0520264Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0520591Z       "id": "REQ-HAZARD-PROCESS-GLOBAL-ONE-RESOLUTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0523787Z       "title": "Seed: resolve a process-global exactly ONCE per public operation and thread that value inward; a public function that resolves the global and calls a callee which resolves it again contains a latent disagreement. Field-near discovery: `daemon_inhibit::set_stop_inhibit -> inhibit_path` and `servicehost::service_env -> env assembly` both carried this production shape, invisible until a test became the victim. The eventual regression must pin SINGLE RESOLUTION PER OPERATION, not merely the presence of an `_at(home)` seam: count `spt_home()` occurrences in each file and require exactly one inside each thin public boundary (current repaired shape: servicehost one occurrence in its wrapper; daemon_inhibit five, one per public function), so no inner callee can silently re-read the process-global. Invariant repair: resolve once at the public boundary, thread the value inward. Design source: KNOWN-HAZARDS 7.57.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0524059Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0524312Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0524556Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0524812Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0525070Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0525312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0525604Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0525861Z               "line": 894
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0526103Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0526347Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0526595Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0526843Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0527101Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0527357Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0527701Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0527957Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0528222Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0528480Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0528723Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0529062Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0533605Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0533885Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0534133Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0534376Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0534620Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0534858Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0535178Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0536377Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0536644Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0536897Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0537165Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0537408Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0537656Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0537922Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0538189Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0538442Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0538689Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0539040Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0539307Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0539555Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0539798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0540117Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0540375Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0540619Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0540858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0541172Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0541427Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0541674Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0541917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0542222Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0542489Z               "line": 172
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0542880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0543133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0543443Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0543700Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0543942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0544189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0544494Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0544751Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0544993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0545236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0545532Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0545789Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0546039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0546287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0546582Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0546838Z               "line": 129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0547090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0547339Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0547644Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0547901Z               "line": 146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0548149Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0548387Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0548631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0548875Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0549230Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0549490Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0549733Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0549976Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0550239Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0550488Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0550730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0551044Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0551307Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0551550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0551794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0552106Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0552468Z               "line": 320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0552715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0552962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0553267Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0553521Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0553769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0554008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0554318Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0554577Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0554824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0555068Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0555372Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0555626Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0555868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0556115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0556411Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0556678Z               "line": 466
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0556937Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0557180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0557498Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0557750Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0557998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0558237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0558542Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0558801Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0559125Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0559372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0559671Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0559926Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0560165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0560403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0560704Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0560965Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0561214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0561452Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0561762Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0562025Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0562273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0562624Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0562946Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0563198Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0563446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0563695Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0563995Z               "path": "crates/spt-live/src/outbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0564258Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0564505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0564748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0565043Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0565304Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0565546Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0565784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0566080Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0566337Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0566590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0566830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0567144Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0567402Z               "line": 743
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0567644Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0567886Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0568139Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0568382Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0568615Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0568864Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0569264Z       "id": "REQ-HAZARD-PSYCHE-RESIDENCY-EXPECTATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0572919Z       "title": "W3 (F030 hazard; paid-for: hall-bf churn ordinal 6491+ + adapter v0.13.2 bad-ship brick 2026-07-04): a psyche failure of ANY shape must NOT remove or alter the parent endpoint's ready/hosted state, and hosting must NOT churn-respawn. The v0.13.2 shim-exit tripped the residency machinery (confirm_residency_or_unhost) which tore down the endpoint's hosted state — ready marker removed, never re-stamped, every force-native gated leg=cli-gate-not-hosted PERMANENTLY (field brick). FIX: residency machinery retires with the resident child; the teardown that touches parent hosted state is DELETED — psyche trouble stamps psyche fields only. REQ-HAZARD-LIVEHOST-NONRESIDENT's spirit transfers to the W1 failure budget (its entry gets a SUPERSEDED pointer here, LIVENESS-DECAY→SUPERSEDED pattern from C-1). Conformance int = the hall-bf shape: multi-subnet home, live endpoint, failing psyche → parent stays deliverable, no rehost churn, error stamped (the wave's heart).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0573325Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0573564Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0573811Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0574053Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0574298Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0574546Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0574790Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0575056Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0575308Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0575556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0575841Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0576131Z               "line": 683
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0576373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0576640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0576925Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0577184Z               "line": 1085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0577432Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0577676Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0577918Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0578161Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0578432Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0578680Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0578928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0579329Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0579577Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0579824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0580063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0580377Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0580630Z               "line": 1935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0580891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0581141Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0581547Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0581809Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0582057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0582296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0582601Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0582854Z               "line": 649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0583098Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0583344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0583592Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0583838Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0584099Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0584352Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0584595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0584977Z               "path": "crates/spt-daemon/tests/psyche_residency_expectation_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0585234Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0585473Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0585717Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0586102Z               "path": "crates/spt-daemon/tests/psyche_residency_expectation_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0586363Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0586609Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0586851Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0587096Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0587339Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0587601Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0587858Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0588101Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0588407Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0588664Z               "line": 3116
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0588908Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0589236Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0589478Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0589716Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0589956Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0590199Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0590495Z       "id": "REQ-HAZARD-PTY-INPUT-WRITER-WEDGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0598055Z       "title": "Pasting into an `spt rc` session WEDGES the broker — after a paste the operator can no longer type AND can no longer attach to NEW or EXISTING sessions (`brain IPC read deadline`). ROOT (doyle /diagnose, code-grounded): the operator-keystroke path rc -> net-stream Input -> serve_attach (attach.rs:197 brain.send_effect) -> KIND_INPUT -> broker dispatch loop (broker.rs:1091) -> dispatch_input (broker.rs:1459) -> session.write_input(&bytes) runs SYNCHRONOUSLY on the broker request-handling thread. W1b (REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE) released the journal lock across the effect (fix 1) + made PtyWrite ephemeral/no-fsync (fix 3) but EXPLICITLY DEFERRED fix (2) — bound/fail-fast the PtyWrite itself. A single keystroke never fills the ConPTY input buffer; a PASTE BURST does -> write_input blocks -> the dispatch thread cannot service the next frame (a re-attach subscribe, a become_controller restore-write, an inject-floor flush) -> wedge. Not a bug-2 regression (the byte path funnels to the same write_input; paste just reliably fills the buffer). FIX (doyle design, V0.13.0-P0-PTY-INPUT-WRITER-DESIGN.md, CONTEXT L33 broker-owns-PTY/minimal + L435 SessionSurface + single-writer pattern): one dedicated per-session INPUT-WRITER THREAD = the SOLE caller of the blocking write_input, fed by a BOUNDED FIFO channel; every caller (dispatch_input, serve_attach->send_effect, inject-floor flush) ENQUEUES + returns immediately, never blocks. A blocked/slow harness blocks ONLY its own writer thread, never the broker dispatch. Backpressure (operator ruling): queue full => DROP excess input + stamp the session INPUT_BACKPRESSURE (visible health signal); the daemon NEVER wedges; a merely-slow harness self-heals as the writer drains. Exactly-once preserved (PtyWrite ephemeral: apply_once effect = the non-blocking enqueue => Applied; ack now means accepted+ordered, benign — rc does not gate on landing); order preserved (single FIFO + single writer); inject-floor (W2 Layer C) choreography moves to the lone writer. Completes the W1b-deferred fix (2), cross-platform (cfg(unix) forkpty park folds in). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0598505Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0598757Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0599191Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0599440Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0599685Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0599933Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0600182Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0600454Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0600711Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0600954Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0601202Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0601459Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0601718Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0601954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0602271Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0602529Z               "line": 4190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0602776Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0603025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0603316Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0603588Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0603825Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0604069Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0604317Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0604571Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0604826Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0605081Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0605325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0605668Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0605930Z               "line": 2889
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0606169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0606416Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0606755Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0607021Z               "line": 2929
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0607269Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0607511Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0607762Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0608010Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0608281Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0608634Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0608879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0609283Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0609545Z               "line": 10790
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0609789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0610028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0610327Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0610588Z               "line": 10854
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0610831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0611076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0611385Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0611644Z               "line": 11874
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0611887Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0612133Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0612376Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0612628Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0612869Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0613107Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0613398Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0614619Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0614891Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0615136Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0615391Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0615631Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0615880Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0616128Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0616381Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0616637Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0616890Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0617129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0617416Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0617674Z               "line": 499
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0617919Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0618165Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0618404Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0618676Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0618933Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0619277Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0619639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0619944Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0620207Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0620444Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0620692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0620988Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0621245Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0621488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0621730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0622035Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0622288Z               "line": 1011
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0622533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0622776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0623079Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0623334Z               "line": 1035
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0623596Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0623845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0624150Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0624418Z               "line": 2449
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0624664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0624907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0625218Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0625470Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0625710Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0625955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0626268Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0626525Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0626769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0627022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0627332Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0627585Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0627832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0628074Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0628380Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0628753Z               "line": 588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0629077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0629331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0629670Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0629927Z               "line": 821
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0630171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0630413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0630728Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0630981Z               "line": 908
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0631224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0631471Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0631771Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0632033Z               "line": 1565
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0632276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0632514Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0632806Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0633064Z               "line": 1152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0633316Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0633563Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0633804Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0634052Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0634319Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0634570Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0634819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0635152Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0635411Z               "line": 380
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0635659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0635898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0636232Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0636486Z               "line": 488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0636728Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0636972Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0637210Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0637457Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0637719Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0637982Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0638226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0638550Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0638912Z               "line": 2032
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0639247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0639491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0639801Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0640058Z               "line": 2182
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0640300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0640544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0640868Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0641130Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0641375Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0641617Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0641854Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0642094Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0642336Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0642583Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0642874Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0646928Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0647354Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0647598Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0647846Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0648113Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0648356Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0648604Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0648852Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0649199Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0649462Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0649709Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0649954Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0650216Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0650465Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0650718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0651004Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0651267Z               "line": 1155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0651509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0651757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0652038Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0652297Z               "line": 2063
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0652557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0652800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0653081Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0653345Z               "line": 2840
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0653592Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0653836Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0654078Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0654326Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0654588Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0654845Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0655091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0655396Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0655653Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0655901Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0656144Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0656388Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0656631Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0656893Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0657150Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0657395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0657679Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0657943Z               "line": 3659
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0658191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0658539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0658825Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0659164Z               "line": 4076
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0659407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0659651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0659933Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0660192Z               "line": 4100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0660433Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0660678Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0660911Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0661158Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0661397Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0661640Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0661931Z       "id": "REQ-HAZARD-RC-ATTACH-ONLINE-RACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0666691Z       "title": "`spt endpoint run` in an ATTACH/VIEW terminal action attaches BEFORE the freshly-spawned endpoint is online, so the attach races (or outright loses to) the harness bind. ROOT (doyle /diagnose, code-grounded): cmd_endpoint_run (cli.rs) does launch_harness_brokered_in -> (if start: return) -> run_attach with NO await-online between them. launch_harness_brokered_in returns once the harness PROCESS is spawned, but the broker-PTY bind (info status -> STATUS_ONLINE + the live session) lands ASYNC. Both picker attach paths route here with start=false (RunMode::Attach -> cmd_endpoint_run start=false,view=false): Start-now catches the endpoint mid-bringup -> run_attach attempts + loses the handshake race; Resume-from-history catches it still fully OFFLINE -> run_attach's status-gate (REQ-HAZARD-RC-ATTACH-FAILFAST) short-circuits 'offline - nothing to attach' and NEVER attempts. SAME root, two faces (the W4 attach-by-default surfaced both; an online endpoint is unaffected - the picker returns Outcome::Attach, not Run). FIX: in cmd_endpoint_run, when the terminal action is attach/view (NOT start), AWAIT the endpoint online between launch_harness_brokered_in success and run_attach - poll spt_store::info read_info().status to STATUS_ONLINE with a bounded harness-boot deadline (~25s) at a tight interval; on online -> run_attach; on timeout -> ENDPOINT_RUN_ONLINE_TIMEOUT err (do NOT attach a dead bringup). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0667066Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0667316Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0667559Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0667796Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0668043Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0668286Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0668532Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0668798Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0669137Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0669385Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0669633Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0669891Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0670150Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0670391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0670681Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0670951Z               "line": 5180
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0671199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0671443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0671733Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0671989Z               "line": 5201
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0672239Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0672482Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0672730Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0672978Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0673240Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0673496Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0673740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0674055Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0674312Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0674559Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0674798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0675041Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0675285Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0675551Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0675808Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0676053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0676336Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0676697Z               "line": 31310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0676950Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0677189Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0677431Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0677679Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0677932Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0678177Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0678457Z       "id": "REQ-HAZARD-RC-ATTACH-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0681100Z       "title": "RC-RENDER-TRUTH W1 (KNOWN-HAZARDS 7.46 — umbrella conformance seam for ADR-0042): an rc surface answers from live session authority, never a stale persisted projection; a resuming perch is UNBOUND, not offline. Regression matrix from the hertz RCAs + operator field recovery: offline-row-over-honest-session attaches; offline-no-session refuses; zombie refuses/reaps never attaches; resume-never-bound reads UNBOUND and is attachable; harness-only refuses truthfully pre-stream; qualified targets attach with bare wire id. HEAVY nextest group at birth for any leg spawning a daemon tree (standing CI lint). Gate: int — the matrix; doc — KNOWN-HAZARDS 7.46.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0681389Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0681630Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0681878Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0682117Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0682369Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0682613Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0682879Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0683128Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0683370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0683662Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0683920Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0684165Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0684413Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0684662Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0684906Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0685172Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0685429Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0685673Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0686044Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0686301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0686567Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0686809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0687100Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0687352Z               "line": 4516
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0687600Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0687839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0688158Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0688417Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0688659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0688907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0689316Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0689575Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0689814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0690058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0690358Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0690615Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0690868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0691106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0691421Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0691679Z               "line": 444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0691921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0692161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0692475Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0692729Z               "line": 516
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0692973Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0693221Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0693463Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0693706Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0693968Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0694227Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0694466Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0694706Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0694950Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0695189Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0695461Z       "id": "REQ-HAZARD-RC-EOF",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0700551Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0700876Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0701127Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0701375Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0701623Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0701868Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0702111Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0702380Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0702631Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0702880Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0703123Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0703384Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0703646Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0703889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0704176Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0704552Z               "line": 2863
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0704796Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0705036Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0705309Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0705552Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0705816Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0706068Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0706312Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0706563Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0706817Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0707074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0707318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0707602Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0707861Z               "line": 4995
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0708105Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0708344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0708597Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0708845Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0709169Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0709411Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0709707Z       "id": "REQ-HAZARD-RC-INPUT-KEY-ENCODING",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0715398Z       "title": "An `spt rc` session forwards the Backspace key as the VT DEL byte (0x7f), so the hosted TUI (Claude Code) deletes ONE character — never a whole word. SYMPTOM (operator dogfooding): Backspace in an rc session always behaves like ctrl+Backspace — deletes the entire last word. ROOT (doyle /diagnose, code-grounded, byte PENDING HITL confirm): rc is a RAW VERBATIM byte pump — spawn_stdin_reader (rc.rs:152) reads std::io::stdin() bytes under crossterm raw mode and forwards them unchanged (parse_stdin_chunk only intercepts the ctrl-b detach prefix); there is NO key-event encoding and NO 0x08↔0x7f normalization ANYWHERE in the tree (grep: zero SetConsoleMode / ENABLE_VIRTUAL_TERMINAL_INPUT). On Windows, crossterm enable_raw_mode does NOT set ENABLE_VIRTUAL_TERMINAL_INPUT, so the LEGACY console delivers ^H (0x08, ctrl+h) for Backspace instead of VT DEL (0x7f); Claude Code maps ^H → backward-kill-word → the observed whole-word delete. CONFIRM-FIRST (build the loop): an env-gated hexdump in spawn_stdin_reader (SPT_RC_DEBUG_KEYS) prints the forwarded byte; operator presses Backspace + ctrl+Backspace in a real rc session. FIX CANDIDATES: (a) enable ENABLE_VIRTUAL_TERMINAL_INPUT on the rc stdin console on Windows so the console emits proper VT (Backspace→0x7f, arrows/Home/End as CSI) — cleanest, fixes the whole key map not just Backspace; (b) narrow normalize bare 0x08→0x7f in the rc input path (riskier — a real ctrl+h is also 0x08). Prefer (a) unless it regresses other keys. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0715708Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0715956Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0716198Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0716446Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0716691Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0716938Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0717201Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0717462Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0717706Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0717953Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0718238Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0718489Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0718727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0719133Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0719385Z               "line": 526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0719637Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0719881Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0720121Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0720373Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0720635Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0720901Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0721138Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0721390Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0721647Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0721899Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0722138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0722424Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0722682Z               "line": 4098
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0722930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0723178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0723558Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0723817Z               "line": 5108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0724070Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0724319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0724600Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0724858Z               "line": 5110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0725105Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0725353Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0725592Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0725831Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0726078Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0726316Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0726621Z       "id": "REQ-HAZARD-REDISPATCH-CONTROL-STEAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0730851Z       "title": "REDISPATCH-TRUTH W1 (KNOWN-HAZARDS 7.41, hertz field RCA 2026-07-16 — 4/5 endpoints frozen per brain cycle): a fresh dispatcher must NEVER re-serve a terminal stream — a replayed historical Attach must not steal (same-identity silent become_controller, no Displaced) or clear (replayed-EOF detach_session) a LIVE controller. The legitimate same-by successor re-take after a brain restart still silently re-takes: the discriminator is stream LIFECYCLE, never origin identity. Gate: int — production-path regression D1: finished historical Attach + current active Attach, same endpoint/origin; restart target brain only (real run_dispatch_loop rediscovery, NO manual re-serve — the pre-fix e2e bypass is the lesson); prove the historical stream neither takes nor clears the current controller and current input/output stays exactly-once without detach; doc — KNOWN-HAZARDS 7.41. HEAVY nextest group at birth (the HEAVY-AT-BIRTH ruling, .config/nextest.toml). Kin REQ-REDISPATCH-FINISHED-RETIRE (the mechanism), REQ-BRAIN-RESUME-NO-CONTROL-STEAL (the CLOSED session-cursor sibling — different leg), ADR-0038.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0731142Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0731390Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0731637Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0731878Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0732130Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0732402Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0732665Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0732914Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0733280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0733571Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0733834Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0734079Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0734321Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0734565Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0734808Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0735069Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0735322Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0735570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0735880Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0736147Z               "line": 572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0736391Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0736633Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0736885Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0737129Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0737391Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0737658Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0737900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0738224Z               "path": "crates/spt-daemon/tests/redispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0738492Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0738740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0739064Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0739381Z               "path": "crates/spt-daemon/tests/redispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0739633Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0739880Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0740123Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0740377Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0740625Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0740887Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0741144Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0741387Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0741630Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0741870Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0742121Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0742404Z       "id": "REQ-HAZARD-REDISPATCH-STALL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0746942Z       "title": "REDISPATCH-STALL W1 (KNOWN-HAZARDS 7.43, hertz v0.34 field RCA 2026-07-16 — recurrent 20-30s PTY/RC freezes, 17-62s DISPATCH tails): one wedged stream subscriber must NEVER stall stream serving, and recovery machinery must not manufacture new replay victims. Today: claim retries x the broad Err(_) opener fallback (dispatch.rs:414) install throwaway peek subscribers whose StreamLog::attach replays the entire retained ring UNDER the per-stream mutex with discarded write errors and the poisoned subscriber left installed — serial 15s bounded-write poison windows (33 observed, all 15,000-15,154ms) composing into the field stalls. Gate: int — production-path regression at the REAL run_dispatch_loop + StreamLog + serve_attach seams: wedge one subscriber conn, prove producer appends and unrelated streams stay flat while the poisoned subscriber is removed and the stream recovers (no abandonment); doc — KNOWN-HAZARDS 7.43. Binding: redispatch D1/D1b stay green every leg. HEAVY nextest group at birth. Kin REQ-STREAMLOG-SUBSCRIBER-DISCIPLINE + REQ-DISPATCH-FALLBACK-CIRCUIT (the mechanisms), REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (the deadline that fires), ADR-0038 Amendment.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0747356Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0747689Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0751899Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0752167Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0752426Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0752671Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0752936Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0753193Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0753437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0753733Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0753985Z               "line": 784
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0754233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0754476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0754785Z               "path": "docs/REDISPATCH-STALL-TRIAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0755039Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0755281Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0755530Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0755788Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0756042Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0756304Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0756695Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0756943Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0757192Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0757463Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0757715Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0757962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0758296Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0758554Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0758797Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0759140Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0759378Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0759626Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0759893Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0760146Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0760374Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0760624Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0760872Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0761111Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0761421Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0761896Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0762164Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0762412Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0762657Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0762899Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0763145Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0763392Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0763649Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0763906Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0764144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0764435Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0764693Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0764932Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0765185Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0765432Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0765679Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0765939Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0766197Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0766550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0766845Z               "path": "crates/spt-store/src/db.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0767108Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0767350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0767593Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0767879Z               "path": "crates/spt-store/src/db.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0768137Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0768381Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0768626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0768922Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0769265Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0769514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0769757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0770063Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0770316Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0770563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0770805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0771099Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0771366Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0771618Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0771870Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0772118Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0772367Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0772629Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0772882Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0773120Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0773363Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0773630Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0773896Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0774142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0774447Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0774709Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0774948Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0775196Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0775440Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0775682Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0775920Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0776159Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0776458Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0777218Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0777491Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0777734Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0777982Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0778225Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0778473Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0778725Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0779054Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0779316Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0779568Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0779811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0780107Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0780365Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0780604Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0780852Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0781099Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0781342Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0781612Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0781883Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0782135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0782455Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0782721Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0782965Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0783213Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0783457Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0783704Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0783971Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0784227Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0784475Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0784721Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0784987Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0785240Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0785485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0785793Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0786057Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0786300Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0786542Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0786794Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0787140Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0787384Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0787627Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0787932Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0788618Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0788877Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0789216Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0789458Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0789709Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0789962Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0790210Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0790468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0790729Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0790977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0791268Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0791526Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0791770Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0792020Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0792261Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0792528Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0792791Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0793068Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0793315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0793634Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0793891Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0794139Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0794384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0794699Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0794959Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0795204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0795452Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0795767Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0796030Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0796278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0796516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0796841Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0797131Z               "line": 479
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0797378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0797620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0798024Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0798282Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0798521Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0798764Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0799093Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0799340Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0799602Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0799859Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0800100Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0800350Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0800607Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0800860Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0801104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0801418Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0801672Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0801913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0802161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0802495Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0802746Z               "line": 1500
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0802998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0803236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0803551Z               "path": "crates/spt-daemon/tests/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0803803Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0804047Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0804295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0804606Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0804859Z               "line": 1363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0805100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0805348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0805655Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0805913Z               "line": 1382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0806156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0806408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0806718Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0807081Z               "line": 290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0807328Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0807566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0807881Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0808134Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0808379Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0808627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0808927Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0809270Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0809519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0809762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0810058Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0810316Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0810554Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0810796Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0811035Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0811277Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0811515Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0811759Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0812050Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0815931Z       "title": "Registry rows must decay (no immortal rows) via TWO triggers: (a) NODE-SILENCE — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window, so a vanished node's rows stop poisoning bare-id resolution with phantom AcrossNodes ambiguity; AND (b) per-row OFFLINE-TTL — evict rows that have been non-routable (Offline) beyond the per-row grace even while the author node is alive, because purge/erase leaves an immortal Offline row otherwise (ghost-heal re-advertises Offline ONCE with a fresh epoch, and whole-node eviction never fires for a still-alive author) so Offline ghost rows accumulate unbounded on a remote viewer under purge/erase churn (#2-secondary). Both keyed on RECEIVER-observed state (heard-map recency / a sticky receiver-observed offline_since, NOT the gossip epoch — an epoch-keyed clock would be reset by ghost-heal's fresh-epoch re-advertise); own rows never decay; a revived/re-flapped row re-inserts (or clears its offline_since) from its durable epoch within one pump cadence (4.10)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0816234Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0816596Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0816845Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0817098Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0817336Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0817588Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0817836Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0818103Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0818357Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0818608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0818905Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0819383Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0819683Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0819927Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0820169Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0820422Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0820679Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0820938Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0821176Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0821547Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0821799Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0822042Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0822291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0822614Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0822872Z               "line": 251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0823116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0823363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0823681Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0823946Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0824190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0824438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0824748Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0825005Z               "line": 782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0825252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0825486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0825810Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0826183Z               "line": 819
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0826426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0826696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0827024Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0827281Z               "line": 826
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0827533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0827781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0828091Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0828362Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0828607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0828856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0829254Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0829523Z               "line": 389
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0829780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0830013Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0830262Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0830506Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0830763Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0831020Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0831273Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0831516Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0831780Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0832054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0832297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0832621Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0832874Z               "line": 2479
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0833122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0833366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0833691Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0833947Z               "line": 2544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0834198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0834449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0834760Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0835022Z               "line": 2583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0835270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0835521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0835836Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0836108Z               "line": 1395
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0836352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0836708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0837023Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0837284Z               "line": 1441
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0837535Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0837778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0838088Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0838350Z               "line": 1471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0838598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0838852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0839242Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0839506Z               "line": 1501
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0839751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0839997Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0840312Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0840564Z               "line": 1535
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0840813Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0841066Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0841313Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0841561Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0841813Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0842058Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0842354Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0842753Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0843015Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0843273Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0843524Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0843772Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0844025Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0844274Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0844546Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0844806Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0845052Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0845301Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0845558Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0845810Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0846062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0846479Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0846740Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0846997Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0847240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0847550Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0847802Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0848043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0848300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0848614Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0848868Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0849202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0849450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0849756Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0850013Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0850258Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0850500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0850810Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0851068Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0851321Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0851564Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0851806Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0852060Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0852336Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0852590Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0852838Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0853084Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0853345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0853608Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0853852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0854152Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0854413Z               "line": 524
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0854652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0854895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0855206Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0855471Z               "line": 530
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0855721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0855974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0856270Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0856542Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0856918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0857171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0857472Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0857739Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0857988Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0858238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0858560Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0858818Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0859146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0859390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0859705Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0859967Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0860216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0860462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0860772Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0861036Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0861290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0861543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0861852Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0862124Z               "line": 290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0862371Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0862615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0862924Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0863183Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0863436Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0863681Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0863929Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0864173Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0864422Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0864664Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0864954Z       "id": "REQ-HAZARD-REGISTRY-STALL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0868793Z       "title": "REGISTRY-LIFECYCLE W1 (KNOWN-HAZARDS 7.44, hertz post-close v0.36 RCA — the umbrella conformance seam): streams and seats on a long-lived connection have BOUNDED lifetime. The hertz regression seam verbatim: real long-lived pump + dispatcher integration, N registry-only rounds over ONE persistent connection, asserting (a) dispatcher-eligible Registry rows plateau O(active) not O(N); (b) physical stream/subscriber/seat counts plateau after completion CROSS-FAMILY (sync/update seats included, not just Registry); (c) snapshot writes O(feeds) not O(chunks x record-kinds); (d) brain refresh produces ZERO historical Registry replay subscriptions; (e) zero CONN_WRITE_POISONED / replay-write-failed events; (f) broker thread count returns to a bounded baseline. HEAVY nextest group at birth (spawns a real daemon tree). Binding: redispatch D1/D1b + REDISPATCH-STALL T1-T7 + mesh-recovery legs green every leg (retire machinery + registry gate = substrate). Gate: int — the seam above; doc — KNOWN-HAZARDS 7.44.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0869302Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0869555Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0869807Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0870045Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0870308Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0870575Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0870842Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0871100Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0871365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0871667Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0871925Z               "line": 791
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0872178Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0872427Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0872674Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0872921Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0873199Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0873460Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0873710Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0873958Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0874227Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0874485Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0874728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0875082Z               "path": "crates/spt-daemon/tests/registry_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0875339Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0875587Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0875848Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0876091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0876353Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0876727Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0877000Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0877243Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0877495Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0877738Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0877991Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0878277Z       "id": "REQ-HAZARD-RENDER-LIFECYCLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0880882Z       "title": "RC-RENDER-TRUTH W3 (KNOWN-HAZARDS 7.47 — umbrella conformance seam for ADR-0043): the physical terminal is never mutated or terminated outside its renderer's ordered state model. Regression matrix from the hertz RCA: output-before-exit through the production path; unconditional display teardown across every rc exit class; TUI baseline reconstructs whole after out-of-band mutation (recording backend); repaint replays tracked modes. Deferred P2 seeds recorded, NOT this milestone: Exit{after_seq} watermark defense; per-client semantic baseline (only if spt ever transforms live frames). Gate: int — the matrix; doc — KNOWN-HAZARDS 7.47.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0881196Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0881445Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0881693Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0881943Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0882194Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0882448Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0882701Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0882968Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0883215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0883501Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0883759Z               "line": 812
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0884007Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0884251Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0884488Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0884735Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0884993Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0885250Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0885489Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0885856Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0886113Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0886380Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0886623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0886952Z               "path": "crates/spt-daemon/tests/render_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0887212Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0887450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0887702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0887992Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0888260Z               "line": 642
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0888504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0888747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0889114Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0889368Z               "line": 3959
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0889615Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0889852Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0890093Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0890340Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0890602Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0890864Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0891108Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0891352Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0891605Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0891842Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0892128Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0892609Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0892869Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0893116Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0893360Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0893599Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0893837Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0894090Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0894328Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0894590Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0894844Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0895083Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0895333Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0895586Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0895848Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0896097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0896402Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0896755Z               "line": 891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0897051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0897297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0897597Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0897857Z               "line": 1890
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0898101Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0898344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0898645Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0898896Z               "line": 1971
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0899225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0899468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0899764Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0900026Z               "line": 2016
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0900280Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0900526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0900833Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0901109Z               "line": 8648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0901353Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0901611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0901916Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0902193Z               "line": 9151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0902441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0902698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0903016Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0903277Z               "line": 9439
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0903525Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0903778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0904088Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0904349Z               "line": 9504
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0904606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0904850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0905159Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0905414Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0905667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0906022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0906332Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0906604Z               "line": 414
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0906851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0907105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0907409Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0907663Z               "line": 708
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0907921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0908161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0908464Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0908727Z               "line": 519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0909075Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0909323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0909624Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0909886Z               "line": 562
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0910129Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0910381Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0910624Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0910878Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0911148Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0911413Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0911669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0911994Z               "path": "crates/spt-daemon/tests/idempotent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0912256Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0912505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0912744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0913049Z               "path": "crates/spt-daemon/tests/netbroker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0913306Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0913548Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0913794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0914100Z               "path": "crates/spt-daemon/tests/netstream.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0914352Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0914599Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0914842Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0915085Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0915325Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0915583Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0915839Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0916082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0916477Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0916743Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0916998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0917241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0917541Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0917798Z               "line": 668
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0918045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0918283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0918584Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0918836Z               "line": 724
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0919173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0919416Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0919711Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0919973Z               "line": 2390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0920217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0920460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0920766Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0921024Z               "line": 828
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0921275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0921513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0921815Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0922069Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0922312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0922549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0922850Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0923103Z               "line": 1373
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0923342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0923586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0923881Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0924141Z               "line": 1403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0924382Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0924621Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0924859Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0925101Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0925341Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0925579Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0926027Z       "id": "REQ-HAZARD-RESTART-STRANDS-PERSISTENT-SHELLS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0933991Z       "title": "A NODE RESTART MUST NOT PERMANENTLY STRAND EVERY `persistent` SHELL, AND THE EXISTING CASCADE TEST CANNOT SEE THAT IT DOES. Distinct from REQ-HAZARD-SHELL-STALE-ONLINE, which governs a force-kill DURING operation: this is a different trigger with a different safe remedy, and conflating them is how the restart class stays invisible. THE COVERAGE GAP IS THE HAZARD'S OWN SUBJECT, and it must be named here so no future reader mistakes the cascade test for coverage of this class: `rest_edges_cascade_shells_with_divergence` (spt-daemon resting.rs) is the cascade's only coverage and it walks the graceful path ONLY -- it SUSPENDS FIRST, and the suspend edge WRITES the offline record, so by the time the wake edge fires the instance is already in exactly the state the to_active arm requires. The restart shape -- record left online over a corpse, no rest edge ever -- is UNREACHABLE FROM THAT TEST BY CONSTRUCTION. The test is not weak; its SETUP SUPPRESSES THE FAILING ARM, so a reader asking whether the cascade is covered gets a true answer to the wrong question. This is the third suppressed-arm instance found in one week, and the pattern is the same each time: a fixture that establishes the precondition the code under test is supposed to establish. THE OWNER-FACING SURFACES HIDE THE FAULT, which is why it survived unreported for days: every display path (`shell list`, its --json twin, the shell-context render) routes through the ONE discovery seam, which DERIVES status and so correctly reports the binary as offline, while the only consumer whose decision matters -- the wake cascade -- reads the RECORDED field that no owner-facing surface shows. Absence of a visible symptom is therefore not evidence of absence of this fault, and a clean-looking context render must never be taken as proof the class did not occur; the correct falsifier is the on-disk record. Gate: impl -- the restart shape reaches a restoration path at all (leg b) and the record stops lying (leg a); unit -- the RESTART shape specifically, constructed WITHOUT a suspend edge: an instance whose record says online over a corpse that predates boot, with an online owner, is restored -- the row `rest_edges_cascade_shells_with_divergence` cannot express, asserted on a fixture that never calls the suspend path, since a fixture that suspends first re-creates the suppressed arm and proves nothing about this class.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0934297Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0934546Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0934797Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0935051Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0935300Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0935548Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0935796Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0936064Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0936320Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0936573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0936863Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0937131Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0937375Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0937640Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0937887Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0938141Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0938417Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0938676Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0938923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0939324Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0939586Z               "line": 615
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0939832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0940083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0940397Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0940655Z               "line": 774
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0940913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0941166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0941475Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0941732Z               "line": 841
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0942095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0942338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0942662Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0942921Z               "line": 934
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0943175Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0943417Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0943655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0943899Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0944161Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0944429Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0948495Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0948776Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0949149Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0949406Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0949654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0949978Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0950237Z               "line": 1266
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0950483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0950728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0951043Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0951324Z               "line": 1358
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0951568Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0951821Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0952059Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0952307Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0952550Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0952789Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0953081Z       "id": "REQ-HAZARD-RESUME-CUSTODY-ABA",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0954946Z       "title": "KNOWN-HAZARDS 7.51: process custody is an identity, never a bare PID — a recycled pid must read NOT OURS. The hazard-conformance twin of REQ-RESUME-CUSTODY-IDENTITY: its int-stage recycled-pid rig IS this hazard's required test (custody pair mismatching a live impostor pid -> record deleted, reconcile proceeds, row goes honest). Registered separately so the hazard list stays a conformance checklist (CLAUDE.md rule 4) — evidence may tag the same rig.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0955217Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0955460Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0955717Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0955978Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0956229Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0956481Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0956883Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0957149Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0957388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0957679Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0957936Z               "line": 844
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0958180Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0958418Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0958664Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0958909Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0959257Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0959514Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0959757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0960004Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0960262Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0960514Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0960755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0961100Z               "path": "crates/spt-daemon/tests/resume_custody_aba.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0961370Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0961612Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0961865Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0962104Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0962348Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0962610Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0962867Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0963105Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0963344Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0963588Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0963824Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0964122Z       "id": "REQ-HAZARD-RING-PERCH-ADOPTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0976672Z       "title": "A ring NEVER adopts — and therefore never deletes — a perch directory it did not create in THIS invocation (3.4). The twin of REQ-HAZARD-EPHEMERAL-CLEANUP, which guarded the LEAK direction only: cleanup runs on every exit path, so the moment `ring` mistakes somebody's REAL perch for its own ephemeral one, that same guaranteed cleanup becomes a guaranteed DELETION — ready marker, info.json, spool.db and the dir itself, by silent CLI-side fs ops with no daemon log (field 2026-07-27: emphasys lost a live endpoint and its spooled mail this way). DELETION IS ONLY THE DURABILITY HALF: while the ring holds the adopted perch, its reply-wait `drain_one_at` CONSUMES whatever is in the victim's spool and RENDERS it to the ringer as the reply. When ringer and victim are the SAME agent (the field case) that is at worst loss — anything drained goes to its intended recipient. When a THIRD party rings a live agent it is CROSS-AGENT MAIL DISCLOSURE: the victim's inbox is drained into the ringer's output, with no trace on either side once the dir is removed, and on a subnet spanning machines that is a CONFIDENTIALITY failure, not merely a durability one. Proven by the red-first artifact — with the guard disabled the survival unit returns `Replied{from:\"someone\", body:\"mail that must survive\"}` instead of a refusal. (Field-bounded by emphasys 2026-07-27: his own 66-second ring window returned TIMEOUT with no `Replied`, so nothing was drained in THAT incident — the disclosure shape was available and did not fire.) SELF-CAMOUFLAGING, which is why it went unattributed: the damage — perch gone, roster row ghosted — MIMICS the stale-liveness condition people reach for `ring` to diagnose, so the field caller was probing a ghost-roster symptom and the probe manufactured a fresh one; debuggers of stale liveness are disproportionately its victims and read the wreckage as more of the symptom they were chasing. The misjudgement source is READY-MARKER-FIRST liveness: an existing perch whose ready marker is momentarily down (busy turn, soft session-end, stale re-bind — and on hosted OMP endpoints marker-down is the NORMAL steady state during work, since the extension owns the listener and publishes busy/idle through `api state`) reads 'caller is perchless', so marker-first misjudges HEALTHY endpoints routinely, not rarely. INVARIANT: before creating an ephemeral reply perch, probe the perch DIRECTORY, not the marker — a dir carrying a record or a spool is OCCUPIED and the ring refuses to adopt it; an UNREADABLE record (corrupt/truncated info.json) or an unreadable dir counts as OCCUPIED, never as residue, because deletion is irreversible and refusal is recoverable, so every ambiguity resolves toward refusal; a pre-existing EMPTY dir is refused too (it is not provably ring's own residue — `endpoint run` mid-create owns an empty perch dir for a window, and deleting it is the same race wearing a different hat). Refusal is never silent and never blocks: the message is DELIVERED, the call declines to block-wait (the reply lands on the caller's own listener), and the caller gets a distinct loud report — RING_PERCH_EXISTS (record/spool) or RING_STALE_DIR (empty, naming the path and the manual remedy), so the permanent-refusal failure mode is solved by LOUDNESS rather than by a self-heal that would re-introduce the deletion race. Structural, not advisory: the leaf dir is created with `create_dir` (fails AlreadyExists), so even a perch that appears between the probe and the create cannot be adopted, and the occupied-refusal path never calls cleanup.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0977173Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0977422Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0977664Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0977901Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0978155Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0978399Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0978661Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0978913Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0979243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0979568Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0979822Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0980066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0980310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0980601Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0980853Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0981105Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0981344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0981588Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0981949Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0982216Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0982475Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0982718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0983014Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0983267Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0983515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0983759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0984055Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0984316Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0984564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0984812Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0985097Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0985362Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0985604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0985852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0986134Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0986392Z               "line": 12069
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0986646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0986887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0987169Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0987426Z               "line": 12085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0987668Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0987909Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0988152Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0988400Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0988668Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0988930Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0989254Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0989503Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0989764Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0990017Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0990260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0990550Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0990803Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0991050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0991298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0991585Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0991852Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0992096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0992338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0992723Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0992997Z               "line": 699
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0993240Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0993484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0993770Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0994028Z               "line": 728
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0994275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0994513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0994805Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0995057Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0995302Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0995547Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0995797Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0996041Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0996275Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0996518Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0996856Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0999237Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0999504Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.0999743Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1000000Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1000243Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1000491Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1000735Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1000985Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1001243Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1001501Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1001886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1002173Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1002449Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1002703Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1002947Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1003183Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1003429Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1003687Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1003939Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1004181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1004511Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1004768Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1005017Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1005265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1005580Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1005838Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1006083Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1006324Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1006573Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1006826Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1007092Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1007354Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1007602Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1007845Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1008109Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1008361Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1008602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1008933Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1009272Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1009520Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1009764Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1010003Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1010245Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1010489Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1010727Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1011014Z       "id": "REQ-HAZARD-ROSTER-GHOST",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1014204Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1014484Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1014727Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1014975Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1015214Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1015463Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1015710Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1015972Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1016244Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1016488Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1016744Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1017018Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1017275Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1017513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1017838Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1018090Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1018330Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1018572Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1018815Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1019158Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1019418Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1019676Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1019919Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1020161Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1020428Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1020686Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1020925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1021249Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1021616Z               "line": 2323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1021856Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1022110Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1022354Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1022598Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1022836Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1023083Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1023389Z       "id": "REQ-HAZARD-SEEDMAP-CONNECT-UNBOUNDED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1027650Z       "title": "SEED (doyle-filed, 2026-07-05, from the REQ-HAZARD-DAEMON-STOP-BARRIER B2 fix): the PRODUCTION seedmap connect callers (put / take / is_running) inherit the SAME interprocess WaitNamedPipeW-forever hazard the stop path just bounded — a Windows named-pipe connect to a name that EXISTS but has NO accepting instance parks in NMPWAIT_WAIT_FOREVER, so a slow / half-dead seed daemon could wedge a live `api seed` / `api listen` / `daemon start`. UPDATE (2026-07-05, doyle reversed the stop-path scope-guard): request_stop's OWN initial connect became load-bearing (a stop-guard re-dialing an already-dying name parked forever, resurrecting the convoy) → it is now bounded via connect_bounded under REQ-HAZARD-DAEMON-STOP-BARRIER (every dial on the STOP path is bounded). REMAINING deferred here = the put / take / is_running production clients. FIX (deferred, needs its own ruling): a shared bounded seed-control connect for those — but a 2s-style cap on a legitimately slow daemon-start connect is a real behavior change (a slow-but-fine start could become a spurious failure), so the timeout + degrade semantics need design first. NOT built — activate when scoped.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1027946Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1028198Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1028445Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1028713Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1029056Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1029299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1029544Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1029808Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1030063Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1030331Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1030579Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1030955Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1031222Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1031462Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1031714Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1031976Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1032233Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1032486Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1032724Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1032966Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1033205Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1033487Z       "id": "REQ-HAZARD-SELF-DETECT-TIE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1039339Z       "title": "releases#240 (CONDUIT #236 respin RCA, measured 2026-08-29): self-detection leg (c) must REFUSE an AMBIGUOUS ancestor instead of answering from directory enumeration order. ROOT: match_self_by_ancestry walked the ancestry nearest-first and took the FIRST candidate at the nearest matching ancestor, so when two or more DISTINCT top-level perches recorded the same live pid (rec.pid or the E-1 rec.parent_pid arm, [[REQ-SELF-DETECT-PARENT-PID]]) the answer was whichever id read_dir happened to return first. Measured on one head at one sha: candidates [(bob, P), (alice, P)] on ext4 chose bob, candidates [(alice, P), (bob, P)] on NTFS chose alice; cli.rs then published MSG_OUT with that id as owner and the sink filed it under the WRONG endpoint. The Windows green was enumeration order landing heads, not the code being right, and the order is arbitrary PER DIRECTORY rather than alphabetical or creation-ordered (the same filesystem produced both orders in one session), so no platform is safe. The ambiguous state is PRODUCTION-REACHABLE through shipped verbs with no override flags: two `spt api bind` calls from ONE parent shell both succeed and both record that shell as parent_pid (measured construction test, isolated SPT_HOME). Nested Psyche/Worker perches are NOT a route (they live under owlery/<parent>/nested/ and leg (c) scans top-level only). FIX: a tie among DISTINCT ids at the nearest matching ancestor resolves to None with a loud-once diagnostic naming the tied ids and the pid, never a silent pick. Two ids that are the SAME id (the perch matching on both its rec.pid and its parent_pid) are NOT a tie. LABEL-ONLY like the whole of leg (c): None at the send site falls back to the CALLED --from, which is not merely honest but MORE ACCURATE than the coin. Authentication is untouched.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1039731Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1039974Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1040221Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1040468Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1040709Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1040956Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1041210Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1041468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1041725Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1041968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1042259Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1042516Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1042769Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1043018Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1043259Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1043526Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1043789Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1044042Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1044285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1044571Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1044833Z               "line": 310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1045076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1045329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1045622Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1045874Z               "line": 335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1046121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1046369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1046656Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1046908Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1047152Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1047395Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1047638Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1047895Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1048154Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1048513Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1048756Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1049094Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1049352Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1049608Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1049852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1050147Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1050405Z               "line": 529
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1050645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1050890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1051174Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1051431Z               "line": 552
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1051675Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1051914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1052200Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1052457Z               "line": 575
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1052705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1052953Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1053235Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1053497Z               "line": 590
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1053747Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1053991Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1054230Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1054469Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1054715Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1054950Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1055226Z       "id": "REQ-HAZARD-SELF-ELEVATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1058008Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1058394Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1058643Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1058888Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1059219Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1059472Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1059731Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1059988Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1060222Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1060469Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1060736Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1060988Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1061229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1061517Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1061771Z               "line": 13365
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1062020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1062259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1062574Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1062836Z               "line": 13417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1063089Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1063336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1063613Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1063865Z               "line": 13462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1064110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1064355Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1064646Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1064899Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1065143Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1065381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1065678Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1065934Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1066182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1066420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1066719Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1066970Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1067222Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1067470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1067871Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1068133Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1068372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1068621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1068907Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1069251Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1069496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1069746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1070046Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1070300Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1070543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1070786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1071082Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1071334Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1071582Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1071826Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1072067Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1072331Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1072594Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1072857Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1073095Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1073344Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1073600Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1073858Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1074096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1074388Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1074646Z               "line": 419
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1074886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1075130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1075421Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1075684Z               "line": 470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1075928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1076174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1076465Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1076717Z               "line": 499
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1076971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1077316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1077612Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1077874Z               "line": 526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1078126Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1078359Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1078598Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1078837Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1079162Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1079405Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1079705Z       "id": "REQ-HAZARD-SELF-ROW-LEASE-FREEZE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1083741Z       "title": "HAZARD: a node whose epoch counter has regressed below the lease on its own fleet-replicated roster row is FROZEN — it can never again change its advertised address, on any peer, and nothing in the system says so. The failure is silent by construction: the node keeps authoring self-entries at a lower lease, every peer's merge_entry returns Stale, net_up stays true, the heartbeat stays fresh, and the roster rows peers hold keep a fresh last_seen riding a dead address. Regression is near-deterministic on a hard reset because the counter is rewritten every few seconds through the non-durable atomic path and resurrects as a NUL husk that parses to absent and reloads as 0 (evidenced twice: ENLYZEAM Kernel-Power 41 seventy-two seconds after its last winning row; HFENDULEAM Jul-19 resets against a Jul-18 frozen row). Forbidden state: a node advertising a self-entry the fleet cannot admit, with no self-repair path. Twin of REQ-ROSTER-SELF-LEASE-HEAL. Gate: doc — the KNOWN-HAZARDS entry; int — the frozen-row shape is set up on a real node root and the boot heal is proved to break it (a pre-fix build strands).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1084032Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1084281Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1084529Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1084766Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1085018Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1085267Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1085529Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1085781Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1086033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1086320Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1086687Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1086935Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1087178Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1087417Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1087663Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1087924Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1088177Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1088419Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1088672Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1088929Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1089267Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1089511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1089840Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1090098Z               "line": 647
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1090342Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1090587Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1090823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1091073Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1091339Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1091602Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1091839Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1092087Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1092331Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1092570Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1092856Z       "id": "REQ-HAZARD-SESSION-PIN-WEDGE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1101142Z       "title": "A perch PINNED to a DEAD session-id self-heals instead of wedging forever. authenticate() (spt/src/api/auth.rs:78) gates api poll/state/boundary on proof-sid == info.json.session_id; if ONE boundary rotation is lost (transient env corruption kills the /clear-era hook), the perch stays pinned to the dead sid and EVERY id-scoped hook call refuses — INCLUDING boundary itself (it presents the new sid), a permanent strand (ready:false, stale .idle, drain no-ops, WAN spool sleeps forever; AUTH_REFUSED is stderr-only = invisible inside a hook). FIX: authenticate() gains a DEAD-OWNER fallback — when the sid MISMATCHES AND the perch's recorded pid is dead (proc::is_process_alive==false), ACCEPT the caller's sid and RE-PIN (rotate session_id + log SESSION_REPIN loud). Same trust model as establish_perch's conflict gate (api/startup.rs:207-210), which already allows rebind exactly when owner_alive==false (an orphaned perch accepts a new LOCAL owner). A LIVE-owner mismatch STILL refuses (squat protection UNCHANGED). ADDITIVE to token auth — the existing token-auth recovery path is UNTOUCHED; the new branch fires only on (no token) AND (sid mismatch) AND (owner dead). COVERAGE SPLIT (explicit, perri clean-room 2026-07-02 — the wedge latches on /clear even in a CLEAN env, so the corruption domino was sufficient but NOT necessary): the dead-owner re-pin rescues CRASHED/DEAD sessions ONLY; a LIVE-pid rotation (/clear, /compact — same process, new sid) is CORRECTLY refused without the departed session's prior-sid proof and MUST NOT be widened to live owners. The live-rotation contract is adapter-side: the adapter PERSISTS the prior sid across rotation and PRESENTS it as boundary proof (perri's state-file pattern = the reference); a silent boundary skip on an unresolvable id, or a boundary call with NO auth proof, strands the perch (perri's court). Core rescues only the dead-owner orphan; live-rotation proof is the harness-contract's job (see the harness-contract boundary section, which cross-refs this hazard). PARKED (not this wave, logged): pid-ancestry self-proving rotation (core walks the caller's real ancestry vs info.json.pid) — needs an ADR + Windows parent-spoof caveats. (F-024C, F024C-AUTHWEDGE-ADDENDUM + F024D-DOCSCOPE)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1101571Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1101823Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1102070Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1102309Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1102553Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1102796Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1103043Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1103301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1103567Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1103829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1104123Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1104485Z               "line": 644
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1104733Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1104980Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1105262Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1105519Z               "line": 1079
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1105762Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1106007Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1106244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1106496Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1106749Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1107006Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1107254Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1107545Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1107802Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1108045Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1108294Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1108532Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1108778Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1109138Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1109400Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1109649Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1109898Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1110160Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1110412Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1110655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1110940Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1111194Z               "line": 378
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1111438Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1111679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1111962Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1112216Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1112464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1112712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1113002Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1113259Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1113507Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1113747Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1114085Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1114327Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1114572Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1114811Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1115168Z       "id": "REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1127744Z       "title": "UPDATE-WEDGE round-4 (hertz RCA, root reproduced + source-pinned on Windows 2026-07-09): EVERY write on a physical broker connection rides ONE bounded + cancelable + poison-on-failure framed-write primitive — no writer may hold the connection's serialized send gate across an UNBOUNDED OS write. ROOT: controller_writer held the SharedSend = Arc<Mutex<SendHalf>> guard ACROSS a blocking write_frame; on Windows interprocess 2.4.2 routes the send to WriteFileEx + SleepEx(INFINITE, alertable) with NO supported write timeout (set_timeout → Unsupported), so an `rc --take` controller consumer that stops reading blocks the write INDEFINITELY (~127.95 s in the field capture, released only when a brain restart tore the conns down). Logical stall_evict_controller (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) removes the controller ROLE but neither cancels the in-flight pipe write, closes the physical connection, nor invokes CancelIoEx — the detached writer keeps its SharedSend clone + live stack-owned mutex guard. Load-gated: needs a real seq>0 frame + a non-draining consumer (seq-0 boot conns + a quiescent update are clean — why v0.30.5's controlled apply passed); CTRL_WRITE_LOCKED wait_us=0 on all four capture writers exonerates the mutex convoy — the block is INSIDE the OS write, after lock acquisition. Existing deadlines can't bound it: CONTROLLER_WRITE_DEADLINE is output-driven channel-full handling (a writer blocked on its first owned frame never fills the channel); BRAIN_WRITE_DEADLINE is an age PREDICATE sampled opportunistically, not an I/O timer. FIX (accepted shape, doyle GO + 3 confirms): broker-owned Arc conn object (conn.rs BrokerConn) replacing raw Arc<Mutex<SendHalf>> — serialized write gate (bounded gate-wait) + send half (never leaves the object, so a bypass cannot compile) + idempotent poisoned state + per-in-flight op identity + platform abort seam, with an INDEPENDENT per-conn watchdog firing OUT OF BAND at an ABSOLUTE deadline stamped at write entry covering BOTH gate-wait and OS write completion (brain_write_deadline() — the existing SPT_BRAIN_WRITE_DEADLINE_MS knob; the abort NEVER relies on the write returning or on opportunistic stall-evict sampling). On deadline/partial/cancel/unknown completion: (1) poison the whole physical conn, (2) abort read+write (cfg(windows) CancelIoEx then DisconnectNamedPipe; cfg(unix) UnixStream::shutdown(Both)) so handle_conn reaches existing EOF cleanup, (3) wait for the canceled op to report completion before releasing its buffer (interprocess write_exsync returns only after the completion APC — release = write return), (4) NEVER reuse the conn (a timed-out length-prefixed frame may be partially written), (5) join/finish the retired writer before reporting physical cleanup. Controller (replay + live), viewer, dispatch-reply (send_frame/send_error + inline dispatch_* replies), and nethost stream-log/presence writes ALL route through the primitive — leaving ANY raw unbounded write behind the gate preserves the failure class (grep-proven: no surviving raw send.lock()+write_frame on a physical conn path). NO new output queue (the bounded queue + isolated writer exist; the block is BELOW them); NO PIPE_NOWAIT (recorded mid-frame corruption risk). Broker-side only, no wire change, mixed-version peers wire-compatible; Unix keeps existing semantics under the same poison/retire invariant.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1128108Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1128355Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1128602Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1128846Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1129165Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1129414Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1129662Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1129922Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1130173Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1130544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1130831Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1131093Z               "line": 738
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1131346Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1131585Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1131827Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1132080Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1132338Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1132587Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1132832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1133135Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1133392Z               "line": 3706
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1133637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1133880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1134185Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1134442Z               "line": 3739
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1134684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1134928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1135233Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1135499Z               "line": 3938
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1135740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1135988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1136293Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1136556Z               "line": 5817
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1136799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1137043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1137338Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1137600Z               "line": 5937
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1137843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1138091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1138391Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1138648Z               "line": 9935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1138895Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1139220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1139511Z               "path": "crates/spt-daemon/src/conn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1139768Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1140012Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1140256Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1140501Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1140747Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1141138Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1141400Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1141639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1141968Z               "path": "crates/spt-daemon/tests/brain_decouple.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1142221Z               "line": 474
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1142470Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1142726Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1142964Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1143213Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1143468Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1143724Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1143971Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1144216Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1144454Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1144697Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1144983Z       "id": "REQ-HAZARD-SHELL-STALE-ONLINE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1187194Z       "title": "A shell instance's ONLINE-ness is DERIVED (recorded status AND its recorded `shell.pid` not provably dead), never the recorded `status` field alone — an abruptly-dead binary (force-kill, crash, OOM: no link-break, so `close_shell`'s offline flip never runs) must not read online forever. The shell-side twin of REQ-HAZARD-DAEMON-HOSTED-LIVENESS, which gave AGENT perches exactly this resolver and which shells never got. PROVABLY DEAD is the narrow discriminant: `shell.pid` present AND parses non-zero AND `!is_process_alive` — pid absent, unparseable, or 0 (a broker-hosted spawn whose backend exposed no pid records 0) reads ALIVE, the same interim-parity/fail-toward-alive stance `liveness.rs` already holds, so a pid-less backend is NEVER falsely declared dead. Recycled-pid caveat, accepted at mint: a reused pid reads alive, so the heal is missed, never mis-fired — the failure direction is 'stays stale', never 'kills a live instance'. SITE CLASSIFICATION IS PART OF THE REQUIREMENT (authoritative cfg(test)-excluded census at mint = 8 status reads, 3 classes — do NOT blanket-swap the predicate): (a) DERIVED — relink's already-online refusal (the gate that made recovery impossible), the `shell cmd` wake-if-offline arm (which silently spooled to a corpse), the drive drop-if-offline branch, `shelldisc::discover` (the single source of BOTH `shell list` renders, text + --json), and the activity fan-out's online filter; (b) RAW status, deliberately — `bind_shell_by_token`/`close_shell` (the WRITERS) and `cascade_owner_edge`'s suspend-close arm, where routing through the resolver would SKIP the close that is itself the cleanup, removing a heal path; (c) RAW recorded status AND the corpse-boot discriminant — the `shellwake::reconcile_once` watcher-eligibility read. AMENDED BAROMETER W2 (doyle, releases#78 comment 5156810267): this class's original text — 'RAW status, pending an operator ruling', with no spontaneous relaunch of anything — IS STRUCK, because it rested on a fact leg (a) deliberately ends. What actually held a force-killed instance out of the eligible set was the STALE `online` record itself; healing that record to the truth removes the accidental protection, so the guard had to move to a rule that STATES it. Eligibility is now recorded `offline` AND (no corpse, or the corpse's launch PREDATES THE BOOT INSTANT), reusing leg (b)'s `launch_predates_boot` and its slack constant verbatim. NO SPONTANEOUS RELAUNCH OF SAME-BOOT DEATHS: flynn's mid-deploy forcing case (an operator kills the process precisely to free the exe for overwrite — shared install dir ⇒ 'kill the process' is a routine deploy step) is preserved BY CONSTRUCTION, since a force-kill during steady state leaves a corpse launched AFTER boot, which the predicate can never accept; for those, recovery stays demand-driven (an unblocked `relink`, or a `shell cmd` that wakes). Boot-restoration of PRE-boot casualties is enabled, per #78 leg (b)'s operator-greenlit scope and this ruling (#78 thread). CORPSE IS DEFINED ON THE PARKED STAMPS, never on a bare pid re-probe: a RECYCLED pid — alive, but its native start stamp mismatching the one leg (a) parked — is corpse-equivalent because our process is dead, and the parked ABSOLUTE launch stamp is what decides pre/post-boot. Without that, the heal-then-recycle race reads 'alive ⇒ no corpse' on the next tick and walks back into the forbidden shape through a side door. Deriving is still WRONG at this site and this is NOT a swap to class (a): the census stays 8 reads / 3 classes — the site reclassifies, it does not multiply, the do-NOT-blanket-swap sentence above stands, and `shell list` still tells the truth by derivation (class (a), untouched). LOCALITY SYMMETRY (field-caught by flynn's leg-2 run, 2026-07-25): 'a shell cmd that wakes' holds for BOTH the local CLI cmd and the cross-node serve — at mint the wake arm lived in the SHELL_LINK_CMD serve handler only (module docs scoped wake-if-offline to remote cmd), so a LOCAL cmd against a corpse spooled silently and nothing woke, the exact accepted-happily/drained-by-nobody shape this req exists to kill; the arm is now the shared `linkhost::wake_if_offline_persistent`, called by both, and the derived status READ inside it is the same single census site as before (the census of 8 reads/3 classes is unchanged — the read moved, it did not multiply). ROTATION CARRIES THE DURABLE CHANNEL (flynn's frame-loss field catch, 2026-07-25, both trials): a spooled command frame is MAC-stamped under the link token current at SPOOL time, and the drain is a raw destructive passthrough — the shell verifies against its CURRENT key — so a relink's token mint orphaned every pending frame: drained to the woken binary, failed verify, correctly discarded BY THE ADAPTER, lost permanently; the wake-triggering command itself was the frame the wake lost (#23 armed the wake and never answered; #24/#19 spooled after rotation and drained in order). The fix is three-layered (todlando's A1/A2 race+crash hazards addressed at mint): (1) the token mint re-stamps all pending rows old-key→new-key (idempotent, crash-partial converges — an old-stamped remainder is converted by the next rotation or drain); (2) the rotated-out token is STASHED (`link.token.retired`, never a live credential — bind resolves only the parked file) so (3) the drain paths give any race straggler a second-chance re-stamp at delivery (`restamp_for_drain`), while frames verifying under neither key pass through untouched for the adapter to refuse exactly as before. Rows are selected by MAC verification against the threaded new key, never by token-snapshot equality (the D-2 class). MOCK CONFORMANCE IS A PROPERTY OF THE RIG, not a patch (todlando A4): mock-shell MUST verify inbound frame MACs exactly as the public contract demands of a real adapter and drop failures loudly — a mock that accepts what the field rejects is a broken rig, and that exact divergence (credulous mock) is how the frame loss passed the e2e while failing in the field. The adapter-side discard behavior is CORRECT and must never be softened to paper over the spool side. Relink additionally probes LOCALLY rather than trusting a daemon sweep, so recovery holds with the daemon down. RECOVERY PRESERVES CONSUMER STATE (the property consumers actually depend on, flynn 2026-07-25): 'same canonical id, same perch' exists so that state a consumer PERSISTED IN THE PERCH survives the recovery — an adapter's repo binding, a scanner's cursor. The teardown+spawn workaround destroyed exactly that, and its worst cost was SILENT, not the rename: alchemy's tag cursor re-baselines at the digest tip, so tags written between the kill and the re-bind are never scanned — not failed-and-retried, just never seen. A loud failure gets retried; a silent one does not. Gate: int — force-kill a bound persistent instance's process, then prove (1) `shell list` reads offline, (2) `relink` succeeds instead of SHELL_ALREADY_ONLINE and the SAME canonical id + perch survive, carrying perch-persisted consumer state with them (no teardown+spawn, no id churn, no re-baselined cursor), (3) no spontaneous relaunch occurs while the instance sits dead and undriven. FIELD VERDICT — PASS END-TO-END (flynn, alchemy-0, delivered 2026-07-26; v0.43.0, counter 77): every gate leg held in the field, on a record the pre-fix code had already poisoned. (1) `shell list` read OFFLINE while the on-disk info.json still said status=online — the daemon DERIVED offline from the corpse pid (29036 absent from the process table); the record was never corrected and did not need to be. (2) relink ADMITTED, no SHELL_ALREADY_ONLINE — verbatim SHELL_RELINKED:alchemy-0 owner=flynn pid=38644 status=offline, list online thereafter. (3) identity/state integrity: same canonical id, same owner, same perch; repo binding byte-identical (token_provenance=gh-cli); armed=true preserved; no spontaneous relaunch across the ~6.5h dead window. CURSOR SCOPING, ruled at closure (doyle 2026-07-26) — the one non-byte-identical field: the tag cursor moved 206158430541→210453397553 (gen:seq 48:333→49:49) because the recovery crossed a DAEMON restart that slid the retained digest window past the armed cursor. NOT a gap and NOT this req's property failing: spt-core raised after_predates_window and the consumer took its specced armed-cursor branch (alchemy REQ-TAG-SCANNER missed-rows leg — warn the owner, never silently re-baseline an armed cursor; alchemy src/tags.rs, two unit tests) — the FIRST FIELD FIRING of a path previously exercised only by unit tests. The 'no re-baselined cursor' gate property is hereby scoped: byte-identity holds across SHELL death within one daemon generation (the prior LEG 5 measurement, one daemon instance, uncontradicted — different scenario, generation never moved); across a daemon restart that slides the window the contract is DETECT-AND-ANNOUNCE, not preserve — corroborated independently by a second record's cursor decomposing under the same gen:seq scheme (4294967486 = 1:190). Practical exposure in this event: nil (every agent stood down through the gap; no tag traffic to miss). SECOND SPECIMEN HELD, not spent (doyle ruling 2026-07-26): liam's record — precondition verified by flynn (pid 35464 a CLEAN corpse, not recycled, so the accepted-at-mint recycled-pid caveat does not apply; same poisoned status=online shape; binding intact; cursor armed at 4294967486) — is deliberately NOT relinked while its owner is absent: the admit gate is already field-proven, a relink measurably re-baselines the cursor across a daemon-restart boundary, and liam's is the only untouched specimen with the longer (~8.5h) gap — spending it would destroy the cursor datum liam's own return produces, to buy a redundant second sample of a gate already proven to admit. It waits for liam. SPECIMEN HARVESTED (liam's own return, 2026-07-26 — operator-authorized endpoint start executed by doyle; pre-state snapshotted by doyle AND independently re-verified on disk by liam before touching anything): (1) relink ADMITTED at the ~8.5h gap — verbatim SHELL_RELINKED:alchemy-0 owner=liam pid=47608 status=offline (online at bind); the poisoned record did not refuse; info.json online is now TRUE. (2) integrity FULL PASS: id unchanged (no new mint slot), perch onlined at bind, repo binding byte-identical (token_provenance gh-cli), and the ROTATION-CARRIES-THE-DURABLE-CHANNEL machinery observed live in the field for the first time — link.token.retired present beside the fresh mint, and a post-relink round trip proven end-to-end (shell cmd spooled -> engine executed -> reply home on the owner's perch), not merely an outbound spool. (3) cursor, the sharpest datum of the harvest: BYTE-IDENTICAL through the relink itself (4294967486 armed at pid-change instant, doyle's file watch) — the relink preserves; the SCANNER moves. First scan re-baselined 1:190 -> 2:0 silently, and liam PROVED no-fire-by-precondition rather than assuming: the daemon restart bumped the generation but EVICTED NOTHING (window floor 4294967464 < cursor 4294967486, every gen-1 row past the cursor still retained), so after_predates_window is correctly false at every link of the chain (filter_after floor test -> emit-only-when-true -> unwrap_or(false)) and the missed-rows announce had no precondition to fire on. Flynn's earlier gen-bump reading is refined by this: a restart alone does not slide the window; flynn's announce fired because HIS window had genuinely slid. Scope note carried: a valid negative — the fix's announce chain verified link-by-link to contract on a specimen where it correctly stayed quiet. RESIDUE from the harvest (liam's find, alchemy lane, no core REQ): permanently-unsealable turns from a dark session are jumped by scanner cursor advance with no possible missed-rows notice (a generation bump is not a slide); ruled scanner-side announce for input-bearing null-seq jumps, pseudo-turns jump silently by design; core's per-turn input/input_seq/partial already suffice to discriminate.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1188137Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1188435Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1188764Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1189107Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1189356Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1189613Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1189881Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1190148Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1190419Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1190695Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1190947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1191244Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1191520Z               "line": 1019
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1191773Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1192015Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1192267Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1192521Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1192802Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1193066Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1193311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1193633Z               "path": "crates/spt-daemon/src/activity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1193895Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1194148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1194396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1194716Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1194974Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1195364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1195614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1195938Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1196197Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1196466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1196720Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1197053Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1197345Z               "line": 426
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1197597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1197846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1198166Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1198437Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1198688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1199033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1199353Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1199615Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1199863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1200107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1200441Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1200699Z               "line": 675
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1200955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1201208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1201517Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1201781Z               "line": 894
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1202033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1202280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1202595Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1202866Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1203110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1203358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1203673Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1203924Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1204169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1204413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1204718Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1204985Z               "line": 416
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1205233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1205476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1205901Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1206164Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1206411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1206658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1206960Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1207214Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1207457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1207709Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1208019Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1208281Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1208524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1208768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1209168Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1209433Z               "line": 367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1209675Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1209917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1210232Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1210495Z               "line": 870
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1210743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1210987Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1211292Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1211554Z               "line": 695
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1211792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1212040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1212350Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1212607Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1212855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1213102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1213411Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1213665Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1213904Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1214147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1214450Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1214811Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1215058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1215301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1215611Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1215865Z               "line": 1015
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1220293Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1220564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1220884Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1221141Z               "line": 701
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1221389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1221632Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1221928Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1222186Z               "line": 23240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1222429Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1222675Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1222910Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1223158Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1223415Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1223666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1223924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1224253Z               "path": "crates/spt/tests/shell_stale_online_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1224520Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1224760Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1225006Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1225256Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1225504Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1225762Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1226020Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1226262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1226577Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1226834Z               "line": 1337
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1227077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1227331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1227637Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1227901Z               "line": 1386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1228142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1228390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1228696Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1229057Z               "line": 545
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1229306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1229687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1230011Z               "path": "crates/spt-daemon/src/shelldisc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1230264Z               "line": 320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1230511Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1230751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1231057Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1231314Z               "line": 1171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1231558Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1231802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1232107Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1232364Z               "line": 1812
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1232611Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1232854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1233155Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1233412Z               "line": 1885
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1233665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1233907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1234222Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1234475Z               "line": 507
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1234723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1234962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1235272Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1235522Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1235773Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1236022Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1236265Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1236502Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1236741Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1236989Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1237275Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1237666Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1237928Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1238178Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1238423Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1238764Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1239103Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1239350Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1239632Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1239885Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1240128Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1240377Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1240638Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1240895Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1241137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1241456Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1241708Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1241955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1242199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1242513Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1242766Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1243015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1243264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1243578Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1243843Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1244081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1244324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1244635Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1244893Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1245135Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1245383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1245688Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1245941Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1246183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1246418Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1246714Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1246967Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1247216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1247455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1247755Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1248011Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1248250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1248502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1248799Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1249238Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1249482Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1249730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1250026Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1250278Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1250526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1250764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1251060Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1251304Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1251559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1251800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1252092Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1252349Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1252588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1252830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1253126Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1253393Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1253636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1253881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1254186Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1254446Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1254693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1254933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1255228Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1255481Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1255724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1255971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1256272Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1256524Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1256767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1257008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1257303Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1257560Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1257800Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1258048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1258453Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1258720Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1259058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1259303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1259601Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1259850Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1260099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1260338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1260633Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1260882Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1261124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1261372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1261672Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1261930Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1262172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1262412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1262708Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1262975Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1263215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1263462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1263763Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1264020Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1264263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1264511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1264812Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1265063Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1265306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1265544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1265841Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1266102Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1266342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1266584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1266875Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1267131Z               "line": 291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1267378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1267620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1267921Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1268182Z               "line": 304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1268551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1268798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1269185Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1269442Z               "line": 314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1269690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1269933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1270222Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1270478Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1270720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1270968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1271265Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1271522Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1271762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1272008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1272300Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1272556Z               "line": 342
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1272812Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1273054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1273369Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1273626Z               "line": 351
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1273869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1274117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1274413Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1274671Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1274919Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1275162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1275451Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1275705Z               "line": 377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1275958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1276200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1276500Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1276753Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1276996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1277245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1277649Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1277906Z               "line": 404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1278152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1278395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1278690Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1279033Z               "line": 414
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1279282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1279539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1279835Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1280089Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1280331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1280573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1280866Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1281129Z               "line": 446
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1281373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1281614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1281924Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1282177Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1282435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1282674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1282985Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1283239Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1283485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1283724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1284020Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1284277Z               "line": 479
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1284520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1284763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1285054Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1285312Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1285551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1285804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1286092Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1286350Z               "line": 499
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1286599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1286837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1287128Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1287389Z               "line": 531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1287739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1288053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1288346Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1288616Z               "line": 571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1288855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1289184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1289475Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1289733Z               "line": 578
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1289971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1290218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1290514Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1290766Z               "line": 591
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1291016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1291257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1291550Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1291798Z               "line": 598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1292056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1292299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1292605Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1292857Z               "line": 607
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1293100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1293352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1293643Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1293899Z               "line": 614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1294136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1294378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1294665Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1294918Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1295166Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1295409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1295700Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1295953Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1296195Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1296440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1296734Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1297107Z               "line": 751
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1297373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1297621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1297921Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1298174Z               "line": 943
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1298417Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1298661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1299040Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1299300Z               "line": 959
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1299543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1299786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1300092Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1300354Z               "line": 1030
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1300603Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1300841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1301136Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1301389Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1301646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1301889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1302197Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1302454Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1302696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1302945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1303245Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1303498Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1303747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1303994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1304297Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1304548Z               "line": 230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1304797Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1305035Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1305287Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1305530Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1305807Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1306055Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1306299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1306550Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1306813Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1307070Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1307423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1307724Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1307981Z               "line": 1211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1308224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1308461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1308762Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1309110Z               "line": 1252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1309348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1309586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1309880Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1310132Z               "line": 1265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1310370Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1310619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1310914Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1311177Z               "line": 1438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1311425Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1311672Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1311915Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1312159Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1312410Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1312650Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1312927Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1313319Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1313585Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1313834Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1314077Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1314326Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1314568Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1314815Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1315085Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1315343Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1315580Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1315828Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1316090Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1316343Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1316587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1316879Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1317241Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1317493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1317734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1318039Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1318298Z               "line": 367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1318541Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1318779Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1319123Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1319375Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1319637Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1319885Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1320127Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1320368Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1320635Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1320892Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1321136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1321427Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1321680Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1321927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1322184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1322490Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1322757Z               "line": 1904
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1323004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1323245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1323549Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1323802Z               "line": 1917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1324051Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1324294Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1324537Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1324780Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1325018Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1325258Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1325570Z       "id": "REQ-HAZARD-SPOOL-SENTINEL-CREATE-FAIL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1328153Z       "title": "A persistent failure to (re)create the spool has-messages sentinel is SURFACED, never silently swallowed. touch_has_messages (spt-store/src/spool.rs:147) does `let _ = File::create(...)` — a live field defect on ENLYZEAM left a stale .has-messages (2026-06-29) beside a fresh spool.db insert (06:59:17Z) in ONE directory, i.e. the create silently failed while rows accumulated (suspected read-only-attrib / share-lock). FIX: on File::create failure emit a LOUD-ONCE-per-perch stderr diagnostic naming the concrete io::Error (self-identifying regardless of kind); do NOT make it fatal (spool writes still proceed). (F-024C item 2, doyle)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1328448Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1328695Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1329030Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1329276Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1329520Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1329764Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1330031Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1330288Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1330530Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1330776Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1331033Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1331286Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1331528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1331838Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1332087Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1332339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1332579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1332874Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1333127Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1333368Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1333611Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1333852Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1334090Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1334357Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1334607Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1334854Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1335102Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1335364Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1335616Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1335860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1336163Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1336415Z               "line": 1644
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1336763Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1337010Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1337248Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1337497Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1337735Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1337979Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1338265Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1338585Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1338840Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1339183Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1339436Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1339675Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1339933Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1340175Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1340442Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1340695Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1340944Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1341190Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1341450Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1341702Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1341946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1342256Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1342509Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1342766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1343004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1343323Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1343580Z               "line": 620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1343830Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1344071Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1344307Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1344555Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1344813Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1345071Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1345309Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1345556Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1345814Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1346072Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1346316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1346628Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1346888Z               "line": 799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1347136Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1347390Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1347628Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1347995Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1348239Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1348485Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1348782Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1349222Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1349490Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1349733Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1349982Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1350221Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1350469Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1350716Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1350983Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1351236Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1351476Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1351721Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1351986Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1352234Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1352482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1352797Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1353060Z               "line": 2137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1353307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1353555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1353846Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1354103Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1354343Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1354588Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1354834Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1355083Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1355345Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1355598Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1355845Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1356093Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1356350Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1356600Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1356848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1357145Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1357501Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1357748Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1357992Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1358245Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1358484Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1358736Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1359055Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1359346Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1359671Z       "title": "Stdin session_id precedence over env (2.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1359937Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1360181Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1360433Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1360695Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1360951Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1361196Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1361439Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1361706Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1361959Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1362210Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1362456Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1362723Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1362990Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1363228Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1363485Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1363743Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1363991Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1364230Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1364477Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1364715Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1364960Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1365277Z       "id": "REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1369105Z       "title": "Endpoint-stop and brain-death reconcile MUST reap a brain-less perch's orphan detached Psyche via the cmdline-scoped guard (`psyche_orphan_should_reap`) — the handle-reap (`LiveSet::stop_host`, REQ-HAZARD-UNHOST-PSYCHE-REAP) CANNOT, because the owning brain is gone (its `psyche_child` handle died with it), and the brain-start scoped-reap (REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP) never fires for a perch being STOPPED rather than re-hosted. So the live-host calls the scoped reap after `stop_host` at the reconcile stop-side AND in `confirm_residency_or_unhost`. Preserves fail-safe-decline (pid-alive AND exe-basename==psyche-program AND cmdline contains `<id>-psyche`; any unreadable signal DECLINES — a missed dup is bounded, a wrong-kill is catastrophic). This is the orphan-leak half of the perri F-010xF-015 field bug (the unsupervised install-dir Psyche that locked an update); the other half is the psyche own-copy (ADR-0025 amendment). (v0.13.2 W3 (a))",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1369402Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1369659Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1369902Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1370168Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1370421Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1370659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1370950Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1371201Z               "line": 1073
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1371445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1371689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1372085Z               "path": "docs/adr/0025-live-daemon-coordinated-adapter-update.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1372356Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1372596Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1372841Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1373082Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1373335Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1373603Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1373860Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1374098Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1374346Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1374608Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1374866Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1375115Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1375357Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1375623Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1375874Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1376122Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1376359Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1376602Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1376837Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1377132Z       "id": "REQ-HAZARD-STOP-RESPAWN-CONVOY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1379079Z       "title": "KNOWN-HAZARDS 7.52: an operator stop outranks every implicit ensure — no convenience path resurrects what the operator just killed. The hazard-conformance twin of REQ-ENSURE-DAEMON-STOP-INHIBIT: its int-stage convoy rig IS this hazard's required test (stop under api-call storm -> down + zero respawns + honest refusal; start clears; one-daemon race). Registered separately per CLAUDE.md rule 4 — evidence may tag the same rig.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1379351Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1379599Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1379837Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1380085Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1380332Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1380573Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1380830Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1381080Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1381324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1381620Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1381901Z               "line": 852
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1382154Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1382401Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1382659Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1382902Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1383160Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1383416Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1383666Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1383910Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1384177Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1384435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1384692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1385026Z               "path": "crates/spt/tests/daemon_stop_convoy_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1385287Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1385541Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1385774Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1386032Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1386278Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1386552Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1386814Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1387058Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1387311Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1387558Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1387806Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1388198Z       "id": "REQ-HAZARD-STORE-INIT-RACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1392213Z       "title": "Concurrent first-touch of ONE fresh BranchStore must ALL succeed, never a hard error. BranchStore::open_or_init (spt-store/src/branchstore.rs:47) is a TOCTOU: it gates on HEAD.exists() then runs a NON-ATOMIC init (`git init --bare` + `git config core.autocrlf false` + best-effort worktree.useRelativePaths). Two processes that both observe !HEAD.exists() on one fresh store race the `git config` step, which takes git's per-repo config.lock — the loser fails with 'could not lock config file …/config: File exists', an io::Error that strands the caller (the G3-gate pump.rs:442 flake, doyle-ledgered). FIX: make init race-tolerant — `git init --bare` is idempotent, and `git config` is idempotent (same bytes), so tolerate a concurrent winner (open-after-lose: if init errors but HEAD now exists, proceed as opened) and retry a transient config.lock collision a bounded number of times so the required core.autocrlf=false is guaranteed set. N concurrent open_or_init on ONE fresh dir must ALL return Ok. (F-025 wave, doyle Item 2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1392509Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1392761Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1393009Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1393266Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1393509Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1393763Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1394010Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1394278Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1394531Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1394779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1395085Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1395342Z               "line": 651
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1395591Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1395833Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1396133Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1396497Z               "line": 1089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1396743Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1396985Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1397299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1397557Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1397824Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1398090Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1398338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1398662Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1398919Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1399253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1399500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1399818Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1400085Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1400336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1400584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1400909Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1401177Z               "line": 654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1401429Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1401698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1402017Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1402286Z               "line": 672
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1402539Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1402782Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1403026Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1403274Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1403545Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1403807Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1404050Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1404294Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1408259Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1408541Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1408789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1409222Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1409484Z               "line": 711
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1409733Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1409970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1410292Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1410558Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1410806Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1411045Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1411427Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1411679Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1411914Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1412161Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1412452Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1412793Z       "title": "Every harness/git subprocess has a timeout (5.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1413056Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1413310Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1413562Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1413805Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1414052Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1414296Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1414568Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1414822Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1415067Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1415313Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1415580Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1415843Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1416095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1416410Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1416672Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1416915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1417154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1417449Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1417698Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1417953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1418198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1418504Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1418767Z               "line": 990
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1419096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1419344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1419640Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1419903Z               "line": 1026
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1420149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1420392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1420699Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1421075Z               "line": 1074
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1421325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1421572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1421873Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1422120Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1422368Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1422610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1422906Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1423166Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1423411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1423659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1423950Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1424203Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1424446Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1424685Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1424927Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1425175Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1425443Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1425694Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1425949Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1426188Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1426459Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1426713Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1426952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1427256Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1427513Z               "line": 1723
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1427761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1428005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1428306Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1428552Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1428797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1429121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1429416Z               "path": "crates/spt-store/src/gitrun.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1429675Z               "line": 207
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1429918Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1430157Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1430395Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1430637Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1430882Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1431123Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1431402Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1432753Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1433024Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1433267Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1433514Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1433749Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1433995Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1434242Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1434505Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1434763Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1435002Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1435245Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1435497Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1435773Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1436016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1436343Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1436600Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1436843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1437086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1437382Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1437644Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1437883Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1438126Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1438364Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1438612Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1438875Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1439243Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1439487Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1439734Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1439991Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1440235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1440478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1440784Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1441150Z               "line": 470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1441390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1441640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1441933Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1442186Z               "line": 526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1442430Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1442669Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1442911Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1443158Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1443407Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1443647Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1443933Z       "id": "REQ-HAZARD-TEARDOWN-DEADEND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1449893Z       "title": "TEARDOWN-AUTHORITY W1 HAZARD (ADR-0045 decision 8; hertz RCA 2 — hit doyle's OWN live production endpoint, recoverable only by out-of-band scoped kill): `endpoint stop` followed by `endpoint start <same>` MUST succeed (a fresh session or a resume) and must NEVER answer ENDPOINT_CREATE_CONFLICT about a session that stop claimed to end. TRAP SHAPE (two individually-CORRECT behaviors composing into a lifecycle DEAD END with no in-band exit): (1) stop leaves the broker session alive (REQ-ENDPOINT-TEARDOWN-AUTHORITY), and (2) `endpoint run` correctly REFUSES ENDPOINT_CREATE_CONFLICT rather than silently reattaching (v0.37.0 no-silent-reattach rule, deliberately chosen). The survivor is therefore simultaneously what stop claims to have killed AND what run refuses to work around; with a wedged harness every in-band verb is exhausted (stop lies, run refuses, rc replays a dead PTY, rc --take controls a process that never answers). Neither behavior is individually wrong — the COMPOSITION is the hazard, so the regression must assert the composition, not either verb alone. This single assertion is the whole user-visible point of W1. Gate: impl — covered by the shared primitive; int — start a real broker host, hard-stop it, assert subtree + broker row gone, THEN `endpoint start <same>` SUCCEEDS (never CREATE_CONFLICT) and `endpoint run --resume <recorded sid>` creates a NEW PTY rather than rc-ing the old one; PLUS the durability leg — info stays offline + terminally-normalized across a bounded settle window (proves no re-bind by a survivor, the field rest_state=active finding made into an assertion).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1450212Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1450461Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1450709Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1450953Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1451200Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1451448Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1451706Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1451959Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1452200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1452493Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1452746Z               "line": 826
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1452990Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1453234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1453572Z               "path": "docs/adr/0045-endpoint-teardown-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1453829Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1454091Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1454339Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1454577Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1454836Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1455091Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1455349Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1455592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1455897Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1456159Z               "line": 9715
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1456399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1456645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1456927Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1457184Z               "line": 12408
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1457426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1457677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1457968Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1458225Z               "line": 24645
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1458464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1458702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1459079Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1459436Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1459680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1459929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1460217Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1460482Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1460726Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1460969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1461260Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1461518Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1461760Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1462008Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1462252Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1462500Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1462755Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1463010Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1463255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1463611Z               "path": "crates/spt/tests/endpoint_teardown_authority_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1463869Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1464118Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1464360Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1464598Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1464850Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1465119Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1465367Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1465608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1465904Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1466161Z               "line": 627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1466405Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1466654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1466944Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1467206Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1467453Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1467696Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1467939Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1468179Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1468423Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1468671Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1469047Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1473947Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1474248Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1474496Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1474739Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1474978Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1475221Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1475464Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1475712Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1475975Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1476226Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1476469Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1476717Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1476974Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1477228Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1477470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1477790Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1478163Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1478408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1478669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1479069Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1479331Z               "line": 480
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1479574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1479813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1480123Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1480381Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1480628Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1480871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1481176Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1481432Z               "line": 570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1481679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1481926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1482231Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1482498Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1482742Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1482995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1483315Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1483568Z               "line": 804
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1483814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1484060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1484365Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1484618Z               "line": 1082
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1484875Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1485117Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1485357Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1485600Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1485858Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1486105Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1486353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1486737Z               "path": "crates/spt-daemon/tests/psyche_residency_expectation_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1486985Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1487230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1487473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1487854Z               "path": "crates/spt-daemon/tests/psyche_residency_expectation_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1488216Z               "line": 207
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1488455Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1488703Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1489030Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1489280Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1489534Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1489787Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1490035Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1490341Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1490597Z               "line": 1527
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1490840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1491092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1491397Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1491656Z               "line": 1548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1491902Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1492142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1492448Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1492711Z               "line": 1620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1492964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1493217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1493527Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1493779Z               "line": 1638
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1494037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1494275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1494582Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1494839Z               "line": 1662
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1495081Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1495324Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1495569Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1495812Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1496050Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1496302Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1496612Z       "id": "REQ-HAZARD-TEST-PID-TREE-KILL-IDENTITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1504196Z       "title": "Seed (DE-SCOPED from TEST-only, BAROMETER 2026-08-02 — the id keeps its `-TEST-` infix for registry stability, but the rule always covered both populations and the product half is now proven, tracked by REQ-SHELL-KILL-AUTHENTICATED): any process kill driven by a pid read from a best-effort breadcrumb FILE — tree or single-process, IN A TEST RIG OR IN SHIPPED PRODUCT CODE — must first distinguish an already-exited process (benign: log and skip) from a live process, then prove the live process is the one the record MEANS before terminating it: in a rig by re-resolving its executable path and requiring it under that test job's own target directory (self and test-harness ancestors always refused); in product code by the pid+birth PAIR via `liveness::relay_liveness`, since the daemon can park a birth stamp at launch and an image path cannot separate two shells sharing one binary. A live but unidentifiable process is NEVER a legitimate kill target in either population, and the refusal must be AUDIBLE — a destructive path that treats unknown as do-not-fire trades a loud wrong action for a quiet wrong state unless it names the pid it spared and why. `/T` grades blast radius; it is not the defect. Field trigger: golden run 30501468421 Windows job 90742055246 ended worker_lifecycle_e2e with bare exit 1 after every assertion and observability point had been placed after taskkill /PID <daemon.pid> /F /T. Predicate-bounded breadth on crates/*/tests/*.rs: 42 taskkill-/T files; 30 also reference a literal pid/ready breadcrumb filename; 23 breadcrumb-to-tree-kill flows manually confirmed and 7 unconfirmed. brain.ready dominates (26 references), and its heartbeat refresh makes staleness correlate with the original target already being dead — precisely when pid reuse bites. An independent wider-root predicate reproduced exactly the original 6 daemon.pid tree-kill flows. A graded second tier adds 12 manually-confirmed daemon.pid taskkill-/F files without /T: smaller blast radius, identical unauthenticated-termination defect.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1504644Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1504895Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1505142Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1505414Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1505671Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1506014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1506306Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1506562Z               "line": 904
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1506806Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1507053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1507340Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1507593Z               "line": 919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1507839Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1508077Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1508316Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1508560Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1508826Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1509170Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1509412Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1509665Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1509918Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1510174Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1510419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1510759Z               "path": "crates/spt/tests/resident_service_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1511021Z               "line": 560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1511264Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1511512Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1511756Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1512003Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1512261Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1512517Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1512762Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1513012Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1513253Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1513492Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1513784Z       "id": "REQ-HAZARD-THRASH-GUARD-BLIND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1515404Z       "title": "W3 (F030 hazard; paid-for: evidence #6, hall-bf ~12/min re-host NEVER tripped the C3(b) thrash guard — boot records were not ledger boundaries to the guard): the failure budget must count REAL attempts (ledger-derived: boot/turn records via the psyche perch ledger), not whatever it counted that let 12/min churn run invisibly. Red-first synthetic loop: a 12/min synthetic failure loop MUST trip the budget.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1515801Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1516045Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1516293Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1516536Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1516778Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1517032Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1517275Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1517543Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1517795Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1518038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1518327Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1518582Z               "line": 690
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1518829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1519163Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1519482Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1519740Z               "line": 1088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1519991Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1520225Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1520465Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1520720Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1520979Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1521237Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1521477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1521791Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1522053Z               "line": 1934
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1522306Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1522549Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1522797Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1523049Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1523318Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1523582Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1523827Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1524076Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1524339Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1524601Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1524848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1525173Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1525439Z               "line": 2926
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1525697Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1525950Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1526192Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1526544Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1526786Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1527033Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1527362Z       "id": "REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1529965Z       "title": "C-1 hazard (F029; paid-for: B6 + three-version checkpoint-wake breakage): a REAL translation fault (binary death — stdin write fail / stdout disconnect — or strike-budget exhaustion) must get a BOUNDED eager respawn (C3(b) give-up budget) instead of permanent death, and must stamp a PERCH-VISIBLE fault surface (mutate_info field, cleared on healthy respawn/commit) — TRANSLATION_FAULT is daemon-stderr-only today (the F-019 unread-channel trap; same honesty rule as F-027 ENDPOINT_SPAWN_FAIL). A real fault legitimately loses in-memory state (the wake is NOT carried across a real fault, unlike a mere commit-miss). See addendum C-1 (3)-(4).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1530261Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1530542Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1530814Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1531080Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1531328Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1531583Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1531831Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1532102Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1532361Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1532609Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1532861Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1533128Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1533390Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1533647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1533966Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1534228Z               "line": 8766
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1534479Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1534721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1535026Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1535284Z               "line": 763
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1535642Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1535890Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1536139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1536397Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1536671Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1536930Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1537175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1537527Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1537789Z               "line": 2028
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1538043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1538290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1538635Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1538891Z               "line": 2088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1539216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1539466Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1539711Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1539959Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1540230Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1540492Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1540749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1541041Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1541298Z               "line": 1867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1541547Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1541802Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1542043Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1542287Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1542530Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1542778Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1543068Z       "id": "REQ-HAZARD-TREE-CWD-PIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1556848Z       "title": "releases#110: a directory that is a live process's CURRENT DIRECTORY cannot be renamed or deleted on Windows while files INSIDE it stay writable, so a test descendant that outlives its run leaves an undeletable `.worktrees` skeleton that reads as neither a file lock nor a rig failure. cargo runs each test binary with cwd = the PACKAGE ROOT, so every spawned child — and every grandchild inheriting through it — takes `<worktree>/crates/<pkg>` as its own cwd. THE FILED MECHANISM IS REFUTED AND THE CORRECTION IS THE POINT: #110 named the holder an orphaned `conhost.exe` holding the crate root; measurement on HFENDULEAM 2026-08-02 shows `CREATE_NO_WINDOW` does mint exactly one conhost per console child (counted by ParentProcessId) but that conhost's cwd is OS-assigned, not inherited — a census of every conhost on the box returned 43 readable, all `C:\\WINDOWS\\` or `C:\\WINDOWS\\system32\\`, ZERO under any worktree (4 unopenable, stated). Positive control on a scratch dir: write-inside OK, delete BLOCKED, kill the CONHOST → still BLOCKED, kill the actual holder → deletes first try; the holder was an orphaned GRANDCHILD (`PING.exe`, cwd inherited through `cmd`) that survived its parent's kill. A CREATE_NO_WINDOW conhost is a byproduct, never the pin — killing it is not the cure and \"no conhosts\" is not the all-clear. AMENDED 2026-08-02, on field evidence that landed BEFORE this shipped in a golden run: a `--headless` ConPTY conhost is a DIFFERENT population and the word 'never' does not survive it. It inherits the cwd of whoever created the pseudoconsole and can be the SOLE pin — BAROMETER W4 specimen pid 46556, `conhost.exe --headless --width 80 --height 24`, parent dead, PEB cwd inside that worktree's crates/spt, killed and the tree deleted (todlando). Reproduced deliberately through CreatePseudoConsole from a chosen cwd, with the pin's own control (write-inside OK, delete BLOCKED while it lives, DELETED after ClosePseudoConsole) and the pty-teardown alternative excluded by a kill-ORDER rig: client killed first and the directory is STILL pinned, conhost killed and it deletes. Read a conhost's COMMAND LINE before deciding — a bare `conhost.exe 0x...` is never the pin, a `--headless` one can be, and its child count says nothing either way because a ConPTY client is a child of the creator, not of the conhost. Two tempting fixes are refused ON EVIDENCE: flipping the rigs' `CommandNoWindowExt::no_window()` to `DETACHED_PROCESS` removes the conhost (1 → 0) but not the pin, and `job_escape_e2e::conhost_children_of` shells to powershell through that helper with an `unwrap_or(0)` fallback, so under a flag where powershell does not execute at all (KH 5.17 amendment) the `REQ-HAZARD-WMI-DAEMON-WINDOW` guard would assert \"no conhost\" VACUOUSLY GREEN — a gate whose failure signature is identical to the fault it guards; and the helper cannot hand children a neutral cwd because `bind_cwd_project_e2e` and `resume_template_e2e` assert on the INHERITED cwd, which is the behavior under test. Doc stage carries the triage step that the diagnosis tool cannot: the finder answers WHO pins a directory, never whether it is SAFE TO KILL, and the blocked-delete error is identical for an orphan and for a working agent's own shell (confirmed live — one worktree's holder was an agent's pwsh tool shell with its Bash tool holding a SEPARATE cwd in the same tree; a pattern-matched kill would have cost that agent their session). Kin REQ-TEST-TMPDIR-HYGIENE (which lists 'children pinning the dir cwd so removal fails' as an unproven candidate root — this proves that class), REQ-TEST-RIG-DAEMON-TEARDOWN-PROVEN (teardown completeness is the prevention side, extended to grandchildren), REQ-HAZARD-WMI-DAEMON-WINDOW (the guard the refused fix would have hollowed out).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1557310Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1557564Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1557800Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1558050Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1558304Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1558562Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1558819Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1559143Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1559435Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1559691Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1559940Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1560182Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1560427Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1560677Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1560939Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1561197Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1561455Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1561703Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1561965Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1562338Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1562585Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1562836Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1563101Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1563354Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1563606Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1563849Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1564088Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1564326Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1564613Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1564956Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1565220Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1565467Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1565708Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1565954Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1566197Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1566445Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1566711Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1566974Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1567212Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1567471Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1567728Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1567981Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1568223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1568526Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1568788Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1569113Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1569365Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1569607Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1569860Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1570127Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1570376Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1570620Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1570861Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1571123Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1571372Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1571619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1571920Z               "path": "crates/spt-store/src/atomic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1572278Z               "line": 378
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1572520Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1572772Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1573015Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1573255Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1573497Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1573742Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1574037Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1577978Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1578274Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1578521Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1578769Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1579119Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1579377Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1579625Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1579872Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1580125Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1580377Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1580626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1580959Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1581213Z               "line": 582
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1581622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1581874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1582218Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1582475Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1582712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1582952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1583261Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1583515Z               "line": 906
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1583758Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1583994Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1584240Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1584489Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1584756Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1585018Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1585265Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1585518Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1585780Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1586049Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1586292Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1586538Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1586795Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1587042Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1587332Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1587822Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1588094Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1588342Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1588591Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1588839Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1589178Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1589423Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1589698Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1589961Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1590209Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1590456Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1590727Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1590985Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1591233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1591657Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1591915Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1592173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1592419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1592734Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1592996Z               "line": 496
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1593244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1593492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1593802Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1594060Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1594314Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1594564Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1594809Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1595064Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1595326Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1595583Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1595834Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1596083Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1596345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1596604Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1596847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1597185Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1597493Z               "line": 1060
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1597739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1597982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1598283Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1598540Z               "line": 1074
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1598788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1599113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1599418Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1599679Z               "line": 1093
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1599922Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1600168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1600468Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1600726Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1600963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1601211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1601526Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1601784Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1602131Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1602376Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1602619Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1602860Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1603099Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1603338Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1603633Z       "id": "REQ-HAZARD-VIEWER-CLOSE-DETACH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1615351Z       "title": "A VIEW is independent from the endpoint: closing the tab/window where the endpoint was brought up must detach ONLY the `spt rc` attach pump — the daemon-hosted harness keeps running and stays re-attachable via `spt rc <id>`. ROOT (Windows, v0.12.0 real-harness defect): the daemon never breaks away from the launching terminal's Job Object. Windows Terminal / VS Code place the launched shell AND every descendant into a Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; closing the tab drops the terminal's last job handle → the OS terminates every process still in that job. A child escapes only with CREATE_BREAKAWAY_FROM_JOB — used NOWHERE in the tree. Both daemon spawn paths (daemon.rs:707 detached_no_inherit = DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP|CREATE_NO_WINDOW; deelevate.rs:519 elevated = CREATE_NEW_CONSOLE|...) drop the CONSOLE but NOT job membership, so the daemon's freshly broker-spawned ConPTY harness subtree is reaped on tab-close. The ConPTY/pseudoconsole isolation itself is CORRECT (portable-pty builds the pseudoconsole in the daemon; no console signal / handle leak) — the leaking lifetime binding is the Job Object, not the console. FIX: add CREATE_BREAKAWAY_FROM_JOB to both daemon spawn paths AND pin each broker-spawned harness into a DAEMON-OWNED Job Object (mirror reap.rs/Breap) as backstop (survives even where a terminal sets SILENT_BREAKAWAY_OK=false). Unix: the daemon's own session detachment (new session, no controlling terminal) already keeps a closing terminal's SIGHUP off its children — verify, add a guard test, no code expected. FIX UPDATE (v0.12.1 L1.5, doyle re-scope operator-approved 2026-06-18): job-neutral daemon launch is now PRIMARY, breakaway DEMOTED to a fallback rung. ROOT reframed — the daemon INHERITS the terminal's Job because spawn_detached runs FROM the terminal-child CLI (DETACHED_PROCESS detaches the console, not the job); breakaway tried to claw back out but a job CAN deny it (the L1 finding). FIX: launch the cold-started daemon via a job-NEUTRAL creator so it is WmiPrvSE/Task-Scheduler-owned, OUTSIDE any terminal job from birth (why Task-Scheduler-autostarted daemons never had this bug). Launcher ladder (first-success-wins, daemon.rs spawn_detached → BOTH cold-start AND `spt daemon start`): (1) WMI Win32_Process.Create via ABSOLUTE powershell -EncodedCommand (KH 5.12 abs path; base64-UTF16LE dodges all quoting; success requires BOTH ReturnValue==0 AND a parsed ProcessId, else fall-through — never a silent launched), forwarding SPT_* env via a `cmd /c set … & start /b` wrapper because a WMI/scheduler child does NOT inherit transient shell env (verified — SPT_HOME would be lost, wrong universe); (2) schtasks one-shot (same env wrapper; best-effort fallback); (3) CREATE_BREAKAWAY_FROM_JOB (the L1 code, reordered below); (4) in-job last resort (logs DETACH_IN_JOB + tab-close caveat). detached_no_inherit (breakaway-then-in-job) is UNCHANGED for its other caller shellhost::launch_shell (a daemon-spawned shell is already job-neutral once the daemon is). The elevated deelevate path keeps its L1 breakaway for now (elevated-case WMI-reparent = FOLLOW-UP). (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1615803Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1616054Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1616296Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1616540Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1616784Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1617027Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1617279Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1617523Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1617789Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1618043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1618306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1618574Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1618926Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1619260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1619507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1619798Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1620046Z               "line": 527
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1620290Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1620529Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1620771Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1621013Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1621279Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1621531Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1621773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1622083Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1622336Z               "line": 1421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1622584Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1622824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1623129Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1623391Z               "line": 1959
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1623633Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1623881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1624186Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1624444Z               "line": 1976
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1624686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1624929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1625234Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1625492Z               "line": 1991
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1625736Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1625979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1626282Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1626537Z               "line": 2011
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1626786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1627025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1627330Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1627587Z               "line": 2156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1627829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1628187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1628493Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1628759Z               "line": 2208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1629083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1629333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1629639Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1629896Z               "line": 2267
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1630139Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1630382Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1630687Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1630944Z               "line": 527
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1631193Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1631432Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1631677Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1631919Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1635832Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1636114Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1636366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1636686Z               "path": "crates/spt/tests/job_escape_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1636956Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1637193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1637445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1637769Z               "path": "crates/spt/tests/job_escape_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1638022Z               "line": 595
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1638270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1638510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1638825Z               "path": "crates/spt/tests/job_escape_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1639182Z               "line": 616
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1639430Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1639676Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1639921Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1640170Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1640433Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1640690Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1640932Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1641242Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1641495Z               "line": 3186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1641758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1642002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1642455Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1642723Z               "line": 3230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1642976Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1643217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1643518Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1643776Z               "line": 3244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1644019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1644264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1644574Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1644836Z               "line": 3262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1645076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1645320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1645621Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1645873Z               "line": 3286
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1646121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1646359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1646674Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1646936Z               "line": 3513
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1647185Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1647436Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1647676Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1647925Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1648159Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1648402Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1648688Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1651574Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1651966Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1652214Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1652465Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1652713Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1652959Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1653211Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1653468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1653720Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1653964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1654259Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1654513Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1654756Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1655013Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1655260Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1655505Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1655766Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1656027Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1656275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1656585Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1656848Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1657091Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1657335Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1657577Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1657825Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1658081Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1658337Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1658580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1658894Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1659238Z               "line": 1351
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1659481Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1659724Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1659959Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1660212Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1660468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1660724Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1660972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1661276Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1661548Z               "line": 10237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1661795Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1662144Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1662391Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1662634Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1662873Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1663117Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1663415Z       "id": "REQ-HAZARD-VIEWER-RING-ROLL-SNAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1668641Z       "title": "A read-only rc --view VIEWER whose serving brain falls behind the live ring under a hard flood and receives a FORWARD Output seq gap (the ring rolled frames out between reads, BEFORE any channel-overflow eviction → NO KIND_VIEWER_EVICTED marker) must SNAP TO LIVE (accept-and-advance via dedup-below + snap-above), NOT fatal with output gap (brain.rs:624/628 legacy reject-gap). ROOT (v0.13.0 forkpty, post-b4+skip-to-live): serve_attach subscribes a viewer via brain.attach_as(Viewer) leaving session_cursors EMPTY → the viewer serve-brain uses the LEGACY reject-gap → a PRE-eviction ring-roll forward-gap FATALS read_event → serve_attach returns → forwarding stops → attach_received_pty_output=FALSE (a_journaled / p0_paste / attach.rs:1071 wedged_viewer, Linux forkpty; Windows ConPTY floods slower → MASKED false-green). DISTINCT from REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT (the POST-eviction re-subscribe-from-floor): this is PRE-eviction gap-tolerance while STILL subscribed. VIEWER-only → B2-SAFE (a viewer never advances delivered_through / is not authoritative); the CONTROLLER keeps strict reject-gap (exactly-once resume). FIX: arm snap-above at initial viewer attach (attach_as_viewer_snap = attach_as(Viewer) + session_cursors.insert(session_id, from_seq)); the two viewer-survival mechanisms COMPOSE — this tolerates pre-eviction ring-roll gaps, REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT recovers post-eviction. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1668936Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1669265Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1669513Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1669759Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1670127Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1670374Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1670622Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1670895Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1671153Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1671404Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1671649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1671917Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1672174Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1672418Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1672660Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1672903Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1673146Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1673415Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1673667Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1673908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1674211Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1674473Z               "line": 341
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1674717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1674961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1675271Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1675527Z               "line": 1505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1675780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1676023Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1676263Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1676511Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1676771Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1677024Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1677263Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1677606Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1677864Z               "line": 939
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1678106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1678354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1678693Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1679040Z               "line": 2907
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1679290Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1679534Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1679777Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1680024Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1680300Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1680558Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1680902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1681212Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1681469Z               "line": 3029
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1681713Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1681959Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1682199Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1682439Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1682683Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1682925Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1683293Z       "id": "REQ-HAZARD-VIEWER-STARVE-UNDER-CONTROLLER-BACKPRESSURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1689926Z       "title": "A SLOW controller must not starve a concurrent `rc --view` VIEWER. W1 (REQ-HAZARD-INJECT-CONTROL-COEXIST) moved the controller SOCKET WRITE off the drain thread onto controller_writer, but left the bounded HANDOFF (ControllerJob::deliver) as an INLINE try_send SLEEP-POLL on the drain (broker.rs:1450-1457 → deliver:669-685, up to CONTROLLER_WRITE_DEADLINE=5s). So when a controller drains slower than the PTY floods, its CONTROLLER_CHANNEL_DEPTH(4096) channel fills, deliver() polls inline, and the DRAIN THREAD is throttled to the controller's read rate → OutputLog::append's viewer fan-out (try_send) stops running → a concurrent VIEWER receives only the initial replay then nothing (root 'b4', warm forkpty: a_journaled c1=0/EVICT=0/got_output=FALSE; steady-state-near-full = no recovery; forkpty-only, floods harder than Windows ConPTY). The viewer-not-starved-by-a-busy-session property is legitimate (rc --view of a noisy session must show LIVE output). FIX: the controller becomes a SINGLE NON-BLOCKING try_send (like a viewer), done IN append() under the log lock; deliver()'s sleep-poll DELETED; the drain NEVER sleeps. ControllerSink gains a stateful last_ok deadline → a TRULY-stalled controller (continuous-Full past CONTROLLER_WRITE_DEADLINE) is evicted (bounded-wedge preserved); a slow-but-alive controller DROPS frames + falls behind the ring (resume-from-floor, the existing reconnect case). B2 GAPLESS-HANDOFF PRESERVED via a CONTIGUOUS delivered_through: controller_writer advances the cursor ONLY when the written seq == cursor (next expected); a gap from a drop FREEZES the cursor at last-contiguous so a re-attaching brain's resume_seq never skips a dropped chunk (a high-watermark advance past the gap would be a not-exactly-once resume = B2 violation, doyle's gate). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1690337Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1690584Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1690827Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1691071Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1691314Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1691562Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1691810Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1692071Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1692339Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1692590Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1692836Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1693098Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1693352Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1693609Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1693924Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1694182Z               "line": 1429
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1694424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1694672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1694976Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1695237Z               "line": 3851
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1695480Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1695722Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1695970Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1696214Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1696471Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1696725Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1696976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1697340Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1697611Z               "line": 938
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1697853Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1698102Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1698364Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1698606Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1698868Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1699308Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1699561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1699870Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1700121Z               "line": 10644
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1700368Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1700611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1700916Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1701173Z               "line": 10719
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1701420Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1701669Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1701908Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1702147Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1702388Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1702631Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1702913Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1704079Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1704350Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1704593Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1704841Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1705085Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1705324Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1705575Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1705820Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1706083Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1706341Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1706577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1706869Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1707122Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1707365Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1707609Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1707847Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1708094Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1708351Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1708742Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1709066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1709395Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1709653Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1709896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1710145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1710450Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1710710Z               "line": 444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1710951Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1711195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1711505Z               "path": "crates/spt-daemon/src/digestlink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1711758Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1712004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1712243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1712558Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1712811Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1713060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1713303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1713606Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1713870Z               "line": 1731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1714115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1714363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1714668Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1714929Z               "line": 2087
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1715167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1715415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1715716Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1715970Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1716216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1716461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1716766Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1717019Z               "line": 776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1717267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1717506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1717816Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1718068Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1718326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1718573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1719063Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1719330Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1719565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1719813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1720118Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1720375Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1720623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1720870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1721175Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1721427Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1721668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1721906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1722225Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1722483Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1722727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1722976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1723286Z               "path": "crates/spt-daemon/src/resthost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1723543Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1723795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1724043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1724346Z               "path": "crates/spt-daemon/src/resthost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1724603Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1724840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1725083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1725384Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1725637Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1725876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1726124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1726429Z               "path": "crates/spt-daemon/src/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1726680Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1726931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1727170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1727470Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1727827Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1728071Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1728313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1728613Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1728866Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1729195Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1729439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1729734Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1729986Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1730234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1730472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1730768Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1731021Z               "line": 707
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1731265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1731507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1731816Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1732071Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1732315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1732558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1732868Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1733124Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1733373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1733621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1733926Z               "path": "crates/spt-net/src/net/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1734170Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1734413Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1734654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1734962Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1735215Z               "line": 38
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1735463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1735706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1736011Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1736269Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1736512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1736756Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1737061Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1737311Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1737562Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1737811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1738205Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1738469Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1738712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1739036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1739337Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1739589Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1739832Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1740074Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1740323Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1740565Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1740822Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1741075Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1741323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1741657Z               "path": "crates/spt-daemon/tests/digest_cross_node.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1741910Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1742154Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1742395Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1742646Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1742889Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1743156Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1743408Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1743651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1743961Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1744219Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1744463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1744702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1745011Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1745262Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1745503Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1745747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1746047Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1746305Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1746546Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1746791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1747104Z               "path": "crates/spt-daemon/tests/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1747463Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1747706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1747957Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1748275Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1748527Z               "line": 779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1748775Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1749085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1749390Z               "path": "crates/spt-daemon/tests/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1749638Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1749883Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1750131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1750436Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1750691Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1750935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1751183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1751483Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1751741Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1751988Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1752241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1752546Z               "path": "crates/spt-net/src/net/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1752809Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1753060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1753300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1753600Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1753854Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1754102Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1754346Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1754647Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1754903Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1755156Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1755398Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1755638Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1755884Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1756120Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1756364Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1756664Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1759489Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1759775Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1760022Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1760270Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1760513Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1760753Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1760991Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1761237Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1761485Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1761748Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1762048Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1762291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1762611Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1762872Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1763110Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1763350Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1763586Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1763831Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1764090Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1764348Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1764591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1764887Z               "path": "crates/spt-term/src/pty.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1765143Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1765387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1765625Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1765912Z               "path": "crates/spt-term/src/pty.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1766170Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1766410Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1766647Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1766990Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1767234Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1767496Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1767754Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1768001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1768306Z               "path": "crates/spt-term/tests/winspawn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1768563Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1768803Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1769139Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1769380Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1769633Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1769890Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1770139Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1770387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1770688Z               "path": "crates/spt-term/src/winprog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1770946Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1771188Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1771435Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1771680Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1771921Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1772164Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1772407Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1772699Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1773051Z       "title": "Windows PID-recycling false positives guarded (5.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1773313Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1773558Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1773805Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1774042Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1774292Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1774536Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1774798Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1775054Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1775288Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1775537Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1775795Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1776052Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1776300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1776600Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1776862Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1777099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1777350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1777650Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1778009Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1778256Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1778504Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1778742Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1779081Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1779354Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1779609Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1779850Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1780098Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1780361Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1780618Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1780862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1781156Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1781413Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1781656Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1781897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1782197Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1782462Z               "line": 573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1782705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1782948Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1783254Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1783511Z               "line": 1850
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1783755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1783997Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1784293Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1784550Z               "line": 1908
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1784787Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1785033Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1785276Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1785520Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1785758Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1786002Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1786292Z       "id": "REQ-HAZARD-WIRE-UNTAGGED-RECORD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1793108Z       "title": "A NEW WIRE RECORD MUST CARRY A `kind` TAG, because the untagged shape is already claimed. The stream dispatcher classifies a feed by sniffing its FIRST LINE, and the message family (`WanMessage`) is deliberately untagged: any first line carrying `target` plus `op_id` and no `kind` is read as a message feed. A new record type that omits the tag is therefore not merely unrecognized on an older daemon — it is MISCLASSIFIED as a message and DELIVERED INTO THE TARGET ENDPOINT'S SPOOL AS CHAT, on every N-1 node in the fleet, silently and without error. The failure is invisible to any same-version test, because both ends of a same-version pair agree; only a cross-version reading finds it. Discovered in W4 T10 (releases#53) while designing the knock record, which necessarily carries a `target` and would have hit exactly this arm. INVARIANT: every wire record minted from here on carries a `kind` tag that the dispatcher's tagged arm routes, so an older daemon's `Some(_)` catch-all resolves it to the Unknown family and DROPS it cleanly — no delivery, no wedge, no misread. The correct degrade for a request an old peer cannot serve is that it never arrives, never that it arrives as something else. PROOF OBLIGATION, both halves, or the pin goes vacuous: (a) this version routes the record to its own family AND is asserted NOT to route it to the message family; (b) the same bytes under a tag this version does not know resolve to Unknown; and (c) the untagged shape is asserted to genuinely BE claimed by the message arm — without (c) the test passes for the wrong reason the day the record's fields drift and it would no longer have collided anyway. Gate: doc — the KNOWN-HAZARDS entry stating the invariant and the misdelivery mechanism; impl — the tag on the record plus the dispatcher arm that routes it; unit — the three-part classifier pin above, run against the REAL classifier rather than a restatement of it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1793532Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1793775Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1794024Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1794266Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1794514Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1794762Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1795007Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1795286Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1795535Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1795889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1796179Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1796437Z               "line": 962
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1796676Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1796924Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1797163Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1797463Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1797725Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1797972Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1798219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1798542Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1798805Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1799134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1799381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1799686Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1799963Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1800210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1800464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1800767Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1801032Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1801275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1801519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1801824Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1802086Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1802339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1802582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1802887Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1803149Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1803397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1803645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1803955Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1804217Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1804464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1804708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1805022Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1805393Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1805637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1805898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1806211Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1806473Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1806725Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1806978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1807293Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1807555Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1807804Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1808057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1808367Z               "path": "crates/spt-net/src/net/forkmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1808622Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1808863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1809192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1809516Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1809774Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1810037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1810280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1810614Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1810870Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1811118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1811365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1811678Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1811941Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1812188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1812436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1812746Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1813003Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1813252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1813501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1813801Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1814065Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1814314Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1814557Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1814796Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1815053Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1815314Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1815677Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1815925Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1816169Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1816430Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1816685Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1816928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1817238Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1817491Z               "line": 2357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1817739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1817982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1818292Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1818549Z               "line": 2485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1818792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1819111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1819414Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1819672Z               "line": 2687
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1819925Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1820166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1820476Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1820734Z               "line": 2736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1820982Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1821222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1821528Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1821787Z               "line": 2810
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1822032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1822277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1822586Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1822844Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1823092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1823339Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1823644Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1823897Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1824141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1824385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1824788Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1825045Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1825293Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1825541Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1825780Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1826024Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1826266Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1826504Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1826795Z       "id": "REQ-HAZARD-WMI-DAEMON-WINDOW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1829998Z       "title": "`spt daemon start` launches the daemon with NO visible console window. REGRESSION (v0.12.1 L1.5): the WMI job-neutral launch (spawn_daemon_via_wmi) set CREATE_NO_WINDOW on the launching powershell but NOT on the Win32_Process.Create call — Win32_Process.Create does not inherit it, so the spawned cmd.exe env-forwarding wrapper popped a console window on every cold-start (violating REQ-INSTALL-10's v0.7.4 no-persistent-window invariant; the old detached_no_inherit path set DETACHED_PROCESS|CREATE_NO_WINDOW). FIX: pass a Win32_ProcessStartup with CreateFlags=DETACHED_PROCESS (0x8 — no console so no window; CREATE_NO_WINDOW 0x08000000 is NOT a valid Win32_ProcessStartup flag → ReturnValue 21 invalid-param, which is why the naive port fails) + ShowWindow=SW_HIDE(0) belt, via the ProcessStartupInformation argument. (v0.12.2)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1830284Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1830532Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1830775Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1831018Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1831261Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1831505Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1831749Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1832010Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1832266Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1832508Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1832755Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1833017Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1833279Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1833523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1833823Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1834100Z               "line": 2062
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1834339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1834683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1834988Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1835243Z               "line": 2186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1835486Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1839437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1839698Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1839951Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1840222Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1840473Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1840725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1841040Z               "path": "crates/spt/tests/job_escape_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1841296Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1841544Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1841788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1842093Z               "path": "crates/spt/tests/job_escape_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1842351Z               "line": 358
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1842609Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1842845Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1843091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1843340Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1843607Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1843863Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1844111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1844421Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1844674Z               "line": 3190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1844923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1845166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1845457Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1845712Z               "line": 31168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1845961Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1846200Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1846452Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1846699Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1846938Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1847187Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1847468Z       "id": "REQ-HAZARD-WORKER-PATH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1847849Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1848250Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1848500Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1848747Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1849086Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1849334Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1849580Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1849843Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1850100Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1850341Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1850588Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1850853Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1851103Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1851347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1851647Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1851905Z               "line": 637
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1852147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1852391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1852691Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1852940Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1853203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1853443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1853746Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1853999Z               "line": 694
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1854243Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1854486Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1854728Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1854972Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1855234Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1855488Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1855726Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1855973Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1856230Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1856483Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1856730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1857031Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1857288Z               "line": 1179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1857532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1857775Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1858071Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1858343Z               "line": 1223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1858703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1859035Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1859322Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1859583Z               "line": 362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1859831Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1860070Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1860318Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1860557Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1860804Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1861037Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1861332Z       "id": "REQ-HEAVY-UNIT-CLASSIFICATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1866557Z       "title": "A unit test that stands up a REAL broker inside a lib/bin `#[cfg(test)]` block must sit in the `heavy-broker-pty` nextest group, and the classification must be ENFORCED rather than remembered. FLAKE-LEDGER: `attach_viewport_reconnects_across_a_broker_bounce` diagnosed this class in the `spt` binary, wrote the CLASS in prose, then shipped an ENUMERATION of four `rc::tests::` names — so the identical shape in `spt-daemon`'s lib (`applyhost`: a real `Broker::bind` + `serve()` in 10 of its 13 units) stayed in the full-parallel Phase-A pool and TIMED OUT at 240s twice, at v0.32.0 and again under the v0.39.0 W5 gate, the v0.32.0 remedy never having landed. The defect is provable from `.config/nextest.toml` ALONE (two overrides, neither matching `kind(lib)`); timing evidence only ever estimated the rate. Gate: impl — heavy-group overrides for `applyhost`/`livehost`/`pump` (spt-daemon lib) and `wansend` (spt bin, found BY the check rather than by a person), plus `xtask check`'s `check_heavy_unit_classification` keyed on the SHAPE (a `Broker::bind` after the `mod tests` marker) instead of a name list; unit — the two pure seams, including the regression for this check's OWN first draft, which substring-matched `<module>::tests` and so missed every module written inside an alternation group. Kin FLAKE-LEDGER: `attach_viewport_reconnects_across_a_broker_bounce` + the HEAVY-AT-BIRTH ruling (.config/nextest.toml), REQ-CI-DOCS-ONLY-THIN.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1866971Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1867237Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1867480Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1867725Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1867973Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1868216Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1868487Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1868745Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1869077Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1869319Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1869576Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1869829Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1870066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1870357Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1870616Z               "line": 1299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1870859Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1871098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1871383Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1871650Z               "line": 1319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1871892Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1872126Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1872381Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1872619Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1872881Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1873134Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1873374Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1873625Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1873883Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1874140Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1874379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1874673Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1874923Z               "line": 2880
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1875176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1875420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1875701Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1875964Z               "line": 2896
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1876202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1876445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1876736Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1876997Z               "line": 2917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1877340Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1877589Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1877832Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1878079Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1878323Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1878561Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1878829Z       "id": "REQ-HOST-RUN-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1881933Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1882219Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1882467Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1882714Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1882960Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1883202Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1883450Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1883699Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1883962Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1884219Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1884462Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1884719Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1884972Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1885224Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1885469Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1885789Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1886041Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1886285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1886633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1886948Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1887210Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1887450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1887692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1888009Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1888262Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1888511Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1888745Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1889117Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1889369Z               "line": 2919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1889612Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1889855Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1890094Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1890340Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1890600Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1890853Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1891092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1891412Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1891707Z               "line": 299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1891955Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1892213Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1892450Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1892698Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1892957Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1893207Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1893448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1893763Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1894015Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1894264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1894518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1894832Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1895094Z               "line": 652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1895346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1895598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1895915Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1896178Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1896435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1896683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1897079Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1897346Z               "line": 3371
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1897651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1897899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1898185Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1898446Z               "line": 3490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1898695Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1899038Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1899286Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1899547Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1899790Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1900029Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1900297Z       "id": "REQ-HOST-RUN-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1902710Z       "title": "Project-scoped working directory for spt-hosted bringup: an spt-hosted bringup lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1902991Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1903239Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1903494Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1903739Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1903984Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1904237Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1904490Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1904758Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1905010Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1905253Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1905500Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1905754Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1906116Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1906358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1906685Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1906952Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1907204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1907443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1907734Z               "path": "crates/spt-term/src/pty.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1907982Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1908231Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1908468Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1908711Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1909044Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1909298Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1909555Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1909793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1910126Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1910379Z               "line": 770
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1910622Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1910861Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1911100Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1911356Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1911620Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1911884Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1912127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1912437Z               "path": "crates/spt-term/tests/surface.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1912694Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1912945Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1913190Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1913438Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1913686Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1913929Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1914180Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1914487Z       "id": "REQ-HOSTING-AUTHORITY-CONTROLLABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1923801Z       "title": "RC-RENDER-TRUTH v0.38.1 fast-follow leg 3 (hertz todlando immortal-hybrid trace, doyle fork ruling 2026-07-18 = controllable-authority): ONE hosting authority — persisted `state` stays the durable endpoint TYPE (REQ-EP-6 open type system; establish_perch's prior-type preserve at startup.rs:346-350 is INTENTIONAL and stays), `controllable==Some(true)` is the source-definitive broker-PTY authority. FIELD ROOT (C1 coverage gap, not new family): an spt-hosted bind over a prior ready_agent perch preserves state=ready_agent while stamping controllable=true + online -> livehost restart_resume_gate (508-534) Skip's state!=live_agent so the orphan never resumes, and reconcile's C1 dead-pid hybrid heal predicate was scoped controllable=false so controllable=true escapes -> immortal dead-PID ready_agent hybrid, latch-driven Active projection (todlando field state; rc's no-session refusal was TRUTHFUL). FIX (hertz refinement, ratified): remove the state rejection from restart_resume_gate; reconcile routes only non-live_agent && controllable!=Some(true) through the PID-model hybrid heal, while controllable==Some(true) rows fall through BROKER-SESSION truth (orphan with ledger/adapter material => Resume; no session + dead pid => terminal offline via the W2 atomic normalize). Psyche hosting stays separately state-gated (live_agent only). endpoint_survival tables BOTH live_agent and ready_agent broker-owned rows -- both resume their PTY at daemon start, ready stays no-Psyche (hertz definitive-trace addendum). restart_resume_gate keys on online+controllable+session/relay/custody belts, no state arg. cmd_bind's online gate reads/verifies the PERSISTED state it just wrote, never only the requested arg (parity with cmd_listen's W2 creator gate). Gate: impl -- gate/reconcile routing + bind online-gate persisted-read; unit -- routing table (non-live+controllable!=true -> PID-model; ready+true -> session-truth; live_agent unchanged); int -- hertz matrix verbatim: (i) ready_agent+controllable=true+online ORPHAN (dead harness, ledger+material) => restart RESUMES; (ii) ready+true+online with dead pid/NO session => reconcile terminally offlines + Active projection removed; (iii) legitimate ready listener (controllable!=true, live pid) => stays messaging-online on the PID model, never treated as PTY-attachable; (iv) spt-hosted bind over prior ready_agent => controllable=true+online+restart-resume works with preserved type; doc -- ADR-0041 amendment note (authority split: type vs hosting).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1924222Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1924479Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1924730Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1924977Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1925219Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1925457Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1925714Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1925954Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1926226Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1926474Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1926721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1927050Z               "path": "docs/adr/0041-endpoint-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1927312Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1927553Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1927796Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1928034Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1928281Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1928539Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1928797Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1929126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1929454Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1929713Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1929961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1930197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1930512Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1930766Z               "line": 528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1931009Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1931251Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1931557Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1931814Z               "line": 853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1932186Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1932490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1932792Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1933050Z               "line": 1183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1933298Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1933547Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1933799Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1934046Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1934310Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1934695Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1934947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1935290Z               "path": "crates/spt-daemon/tests/endpoint_survival.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1935547Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1935789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1936036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1936366Z               "path": "crates/spt-daemon/tests/endpoint_survival.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1936618Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1936867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1937105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1937430Z               "path": "crates/spt-daemon/tests/endpoint_survival.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1937683Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1937928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1938169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1938465Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1938728Z               "line": 2494
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1939061Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1939315Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1939557Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1939800Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1940062Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1940315Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1940555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1940862Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1941119Z               "line": 2737
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1941363Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1941607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1941907Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1942165Z               "line": 2800
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1942407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1942650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1942950Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1943202Z               "line": 2538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1943550Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1943797Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1944049Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1944287Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1944541Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1944784Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1945066Z       "id": "REQ-IDLE-PARKED-DELIVERY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1947860Z       "title": "W5 (LIFECYCLE-TRUTH): a message QUEUED to an ALREADY-idle spt-hosted endpoint is delivered without an operator poke. ROOT (live during the milestone dispatch 2026-07-07): the idle-edge drain (F-023 leg 2) fires only on the ACTIVE->IDLE transition; no new edge ever comes for a parked session, and the send-time inject didn't carry it — both doyle->todlando dispatches sat delivered=0 in the spool while the endpoint showed ONLINE. FIX: send-time inject fires for an already-idle spt-hosted target (activity sense says idle => inject now, not spool), and/or a bounded spool sweep re-offers pending rows to idle endpoints (piggyback the pulse tick, no new loop). Int: send to a session idle for N minutes -> delivered without any operator poke.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1948142Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1948394Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1948654Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1948897Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1949240Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1949483Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1949730Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1949988Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1950246Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1950485Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1950742Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1950999Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1951246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1951490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1951795Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1952057Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1952299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1952538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1952839Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1953101Z               "line": 129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1953350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1953696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1954004Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1954261Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1954509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1954747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1955058Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1955311Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1955549Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1955792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1956072Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1956326Z               "line": 11754
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1956567Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1956813Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1957056Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1957300Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1957553Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1957805Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1958067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1958406Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1958668Z               "line": 3150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1958916Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1959242Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1959481Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1959728Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1959995Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1960248Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1960491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1960792Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1961050Z               "line": 306
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1961297Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1961554Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1961797Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1962045Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1962288Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1962531Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1962850Z       "id": "REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1967402Z       "title": "Linux inbound reachability is VERIFIED and rendered, never repaired: the daemon detects the active host firewall (ufw, nftables, firewalld), decides whether inbound UDP to the port it ACTUALLY bound is permitted, and renders the exact command an operator would run. Zero writes to the host firewall. The Linux sibling of REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH, split on the platform axis and stopping short of repair for a stated reason: a durable rule needs a stable port and production binds ephemeral (BindScope::Port is test-scope only), so an auto-written rule would be stale at the next restart while reading repaired. Auto-repair is relocated to releases#54 behind the pinned-port decision, not dropped — see REQ-NET-PINNED-UDP-PORT. No detected firewall is not a pass: it is UNKNOWN unless the probe positively determined the port is reachable. Gate: doc — the install docs state the Linux posture (verify + tell, no writes) and name the command; impl — the bounded ufw/nft/firewalld probes and the decide seam over (firewall kind, ruleset, bound port); unit — an allowing ruleset passes, a blocking one fails carrying the rendered command, an absent/failed probe reads UNKNOWN.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1967808Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1968056Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1968312Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1968561Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1968809Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1969142Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1969401Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1969666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1969925Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1970174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1970526Z               "path": "docs-site/src/networking/inbound-reachability.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1970784Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1971027Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1971276Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1971518Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1971776Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1972037Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1972315Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1972562Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1972977Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1973244Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1973491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1973739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1974049Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1974316Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1974565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1974811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1975119Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1975376Z               "line": 1419
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1975624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1975863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1976173Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1976426Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1976669Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1976917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1977207Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1977465Z               "line": 13918
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1977711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1977957Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1978195Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1978445Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1978702Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1979049Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1979293Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1979540Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1979802Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1980054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1980302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1980610Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1980867Z               "line": 861
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1981110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1981349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1981654Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1981902Z               "line": 882
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1982250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1982495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1982809Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1983064Z               "line": 893
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1983317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1983561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1983861Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1984114Z               "line": 907
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1984362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1984605Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1984905Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1985162Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1985404Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1985645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1985946Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1986203Z               "line": 962
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1986447Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1986690Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1986933Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1987185Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1987423Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1987663Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1987978Z       "id": "REQ-INBOUND-PROVIDER-FIREWALL-DOCS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1990757Z       "title": "Provider-level firewalls (cloud vendor security groups — the DigitalOcean droplet case) are unreachable by any installer BY DESIGN, so inbound UDP for QUIC is a stated hosting REQUIREMENT in the public docs rather than something code pretends to fix. The docs leg exists because the failure is otherwise indistinguishable to the operator from the host-firewall classes REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH and REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY cover: same silent NO_SEED_HOLDER symptom, a cause no local probe can see. Gate: doc — a public-docs section naming the inbound-UDP requirement, that it is the operator's to satisfy at the provider, and the symptom it produces when unsatisfied.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1991027Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1991289Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1991532Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1991781Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1992143Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1992406Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1992662Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1992905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1993249Z               "path": "docs-site/src/networking/inbound-reachability.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1993500Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1993749Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1993992Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1994234Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1994487Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1994745Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1995003Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1995242Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1995494Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1995756Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1996011Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1996254Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1996501Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1996772Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1997030Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1997279Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1997565Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1997813Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1998051Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.1998352Z       "id": "REQ-INBOUND-RECORD-WIRE-FIDELITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2009938Z       "title": "THE INBOUND RECORD ROUND-TRIPS EVERY VERDICT VARIANT, AND THE PIN IS EXHAUSTIVE BY CONSTRUCTION RATHER THAN BY A LIST SOMEONE REMEMBERED TO EXTEND. `InboundRecord` carries `binder_pid` and `binder_path` and FLATTENS `InboundVerdict` beside them; the `PathMismatch` variant carried a `binder_path` of its OWN, so serializing it emitted a LITERAL DUPLICATE KEY, `read_current` failed the parse, and the reader fell closed to `Unknown` (releases#172; the duplicate confirmed in the on-disk record on HFENDULEAM 2026-08-06). The one verdict class the record exists to surface was STRUCTURALLY UNRENDERABLE: the file plainly said `path_mismatch` while `spt subnet status` said unknown, and the operator learned of the real mismatch only from a manual probe. IT STACKED WITH A SECOND DEFECT — the firewall rule genuinely WAS wrong — which is the shape that makes a self-erasing diagnostic expensive rather than merely untidy: the instrument went quiet in exactly the condition it was built to announce. THE COLLIDING FIELD IS RENAMED ON THE WIRE (`running_path`), NOT UN-FLATTENED: un-flattening would move every OTHER variant's shape too, for a defect that lives in one variant, and the flattened form is what every existing record on every node already carries. The variant keeps a path of its own rather than borrowing the envelope's, because `InboundVerdict::warning()` renders from the verdict ALONE and has no envelope in hand — a renderer that reached for one would be a second source for a field the record already owns. MIGRATION IS NOTHING, AND THAT IS DERIVED RATHER THAN HOPED: an old duplicate-key record already reads `Unknown`, which is the safe reading, and the next binder write replaces the file wholesale. The reader stays FAIL-CLOSED — an unparseable record is still `Unknown`, never a guess. WHY THE COVERAGE THAT EXISTED WAS GREEN THROUGHOUT: `REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED`'s unit sentence says a live binder round-trips its verdict, and it was satisfied — by round-tripping the VARIANT, never the variant THROUGH THE ENVELOPE. The collision cannot exist until the two are composed, so every test that touched one half passed. The pin this requirement adds is therefore not another round-trip; it is a WILDCARD-FREE MATCH over the enum that stops the crate compiling until a newly added variant is placed in the table, plus one specimen per variant with EVERY field a distinct value (identical fillers would hide a field that round-trips to a sibling's value). Gate: doc — the published status-JSON field table and example in the inbound-reachability page, carrying the rename and the reason the old name was never emitted; impl — the renamed variant field and its producers and renderers moved with it, one name on the wire and one in the code; unit — every variant written through `write_to` and read back through `read_current_from` under a live-binder oracle, the variant tags asserted against WRITTEN-OUT LITERALS rather than counted, the failing set reported with the on-disk body so a red names which variant and what the record actually held, and the exhaustiveness carried by a match the compiler enforces.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2010368Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2010615Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2010858Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2011105Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2011355Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2011598Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2011844Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2012104Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2012353Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2012596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2012948Z               "path": "docs-site/src/networking/inbound-reachability.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2013225Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2013472Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2013730Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2013968Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2014217Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2014480Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2014734Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2014978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2015283Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2015536Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2015780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2016032Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2016270Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2016523Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2016781Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2017042Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2017282Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2017526Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2017788Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2018041Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2018366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2018675Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2019033Z               "line": 343
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2019282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2019524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2019823Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2020083Z               "line": 358
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2020327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2020575Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2020875Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2021132Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2021375Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2021619Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2021858Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2022100Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2022337Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2022575Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2022899Z       "id": "REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2029198Z       "title": "The inbound-reachability verdict is written by the process that BINDS the UDP socket (the daemon, at endpoint bringup) into a record every renderer reads, and that record is PINNED to the binder's identity — pid AND image path — with validity RE-DERIVED from the process table at read time: the recorded pid must still resolve to an image and that image must be the recorded one, or the record is discarded as UNKNOWN. The pin is the whole point — a daemon that restarted onto a new ephemeral port, or died before re-verifying, must not leave behind a verdict that still reads reachable, because a stale green is producible by exactly the fault the verdict exists to detect (KNOWN-HAZARDS 7.61). Image path is part of the identity because a pid alone is recyclable. The pin explicitly does NOT key on <spt_home>/daemon.pid: that breadcrumb is best-effort by contract and is written BEFORE the socket bind that arbitrates single-daemon-per-home, so a losing starter overwrites the winner's value on its way out (measured on HFENDULEAM 2026-07-31 — the file named a pid dead since startup while the real daemon served on another), and a verdict keyed to it would be discarded for the daemon that actually wrote it. Absent, corrupt, dead-binder and recycled-pid are the SAME answer: unknown, never fine. Only the binder writes; the CLI renders and never probes on its own, because only the binder knows both its own image path and the port it actually got. Gate: impl — the record type, the binder-side write at daemon bringup, the process-table-validated read; unit — a dead binder reads UNKNOWN not its recorded verdict, a live pid running a different image reads UNKNOWN, absent and corrupt read UNKNOWN, a live binder round-trips its verdict.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2029513Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2029759Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2030007Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2030246Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2030493Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2030743Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2031000Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2031282Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2031530Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2031778Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2032060Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2032317Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2032564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2032874Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2033130Z               "line": 596
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2033372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2033615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2033915Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2034168Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2034416Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2034656Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2034902Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2035150Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2035407Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2035662Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2035903Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2036141Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2036508Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2036761Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2037014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2037319Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2037568Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2037816Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2038057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2038360Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2038612Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2038856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2039233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2039538Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2039796Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2040034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2040281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2040582Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2040844Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2041086Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2041346Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2041656Z               "path": "crates/spt-store/src/inbound.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2041913Z               "line": 306
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2042171Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2042405Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2042649Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2042886Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2043134Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2043373Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2043662Z       "id": "REQ-INBOUND-VERDICT-SURFACED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2057061Z       "title": "The inbound-reachability verdict is carried on the MACHINE surface — `spt subnet status --json` — in EVERY state, present always and omitted never. THE SCOPE IS `--json` ONLY, and the HUMAN/MACHINE ASYMMETRY IS THE DESIGN RATHER THAN A GAP LEFT OPEN: the human surfaces (the coming-online banner, `spt subnet status`, its `--nodes` view) stay WARNING-ONLY by ratification — they render `InboundVerdict::warning()`, which is `None` for `Ok` AND for `Unknown`, so a verified-healthy node and an unsayable one both say nothing there, and that silence is deliberate. A reading view earns its lines: M8 decision 12 narrowed HINT_FOOTER out of `subnet status` on exactly that argument, and a line that says 'inbound is fine' on every healthy run is the noise that teaches an operator to stop reading the one run where it is not. A MACHINE READER HAS THE OPPOSITE NEED and it is not a matter of taste: a consumer that must distinguish verified-ok from cannot-say from blocked cannot do it by ABSENCE, because absence already means 'this reader is old' or 'this field was skipped', so a field that appears only when something is wrong makes the healthy state and the unimplemented state the same bytes. THREE CONSTRAINTS, ALL REQUIRED AT MINT AND ALL LOAD-BEARING. (a) THE FIELD RIDES BESIDE `peer_health_verdict` IN THE SAME PAYLOAD AND IS POPULATED IN EVERY ARM INCLUDING `Ok` AND `Unknown`, NEVER OMITTED — no `Option`, no `skip_serializing_if`. The `Ok` arm is the row a warning-only mindset forgets, and it is the row the whole requirement exists for. THE PAYLOAD HAS TWO EMIT SITES, not one — the membership view and the `--nodes` view both construct it — and BOTH carry the field, because a field that appears and disappears with an unrelated flag is a field no consumer can depend on. (b) THE STATES MIRROR THE STORE'S VERDICT VOCABULARY 1:1 AND NO NEW VOCABULARY IS INVENTED AT THE RENDER SITE. This is satisfied STRUCTURALLY rather than by a mapping function: `InboundVerdict` already derives `Serialize` with `serde(tag = \"verdict\", rename_all = \"snake_case\")`, so the store already publishes the wire spelling of its own states and the render site EMBEDS THE VERDICT rather than translating it. A token table in the CLI would be a second vocabulary that agrees with the first only until someone adds a variant — the drift class the surface table's single-source discipline exists to prevent — and it would also drop the `fix` command each non-`Ok` variant carries, which the store builds ONCE in the process that knows the real path and port and which a machine consumer would otherwise have to re-derive wrongly. (c) THE UNITS ASSERT, BY NAME: each state serializes to its documented value; the field is PRESENT IN THE `Ok` ARM; and the HUMAN PROSE IS UNCHANGED IN `Ok` AND `Unknown` — that last one is a characterization test guarding the docs-only half of this ruling, so a later change that starts printing an all-clear line on the reading view fails here rather than in the field. STATED CONSEQUENCE OF 'NEVER OMITTED', named so it is not later read as a leak: the human path computes its hint only when the daemon is running, while the `--json` arms read the verdict unconditionally. With the daemon down the binder pin resolves no live process and the read returns `Unknown` on its own, so daemon-down serializes as `unknown` with no special-casing and no vocabulary outside (b) — the machine surface says 'cannot say' in a state where the human surface deliberately says nothing at all. Gate: impl — the verdict field on the `subnet status --json` payload, populated unconditionally at BOTH emit sites; unit — every state serializes to its store-defined spelling, the field is present in the `Ok` arm and in the daemon-down `Unknown` arm, both emit sites agree, and the human render stays byte-identical under `Ok` and `Unknown`.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2057519Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2057767Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2058020Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2058262Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2058501Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2058758Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2059082Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2059343Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2059594Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2059837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2060190Z               "path": "docs-site/src/networking/inbound-reachability.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2060448Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2060696Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2060939Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2061203Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2061444Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2061702Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2061954Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2062201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2062486Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2062743Z               "line": 14324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2062986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2063225Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2063516Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2063778Z               "line": 14515
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2064021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2064264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2064549Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2064801Z               "line": 14679
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2065061Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2065304Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2065547Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2065801Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2066063Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2066444Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2066684Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2066937Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2067203Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2067464Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2067708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2067984Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2068242Z               "line": 35530
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2068489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2068732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2069094Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2069356Z               "line": 35591
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2069600Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2069837Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2073751Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2074014Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2074261Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2074504Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2074838Z       "id": "REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2080896Z       "title": "Windows inbound reachability is verified by PATH MATCH against the binder, not by rule name: the check passes only when the installer's program-scoped firewall rule names the executable of the resident daemon — the process that binds the QUIC/mDNS UDP socket — and the elevated repair rewrites the rule to THAT path. Supersedes the name-presence probe REQ-INSTALL-7 shipped, which a rule pointing at a moved or dev-build binary satisfies while inbound is blocked in fact (gap class 2). Measured on HFENDULEAM 2026-07-31: the rule names %LOCALAPPDATA%\\spt-core\\bin\\spt.exe and the resident daemon runs that same installed binary, so this host is a MATCH, not a live mismatch — the class is proven by construction (a program-scoped rule admits exactly one path) and by unit fixture, not by a field specimen. An earlier version of this title claimed the mismatch was live here; direct measurement refuted it. The authoritative binary is never the invoking CLI's argv[0]: a repair keyed to the caller would rewrite the rule onto whichever build happened to run the command. With no resident daemon the verdict is UNKNOWN — the check reports that it cannot say rather than guessing a path. Unelevated: report loudly with the exact command, write nothing. Gate: doc — KNOWN-HAZARDS/install docs state that the rule is verified against the binder's path; impl — the netsh verbose probe, the Program-line parse, the decide seam, the elevated repair; unit — path match passes, path mismatch fails with the rule's path in the verdict, a missing Program line and a failed probe both read UNKNOWN rather than either pass or fail.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2081219Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2081463Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2081716Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2081959Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2082207Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2082454Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2082694Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2082957Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2083216Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2083490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2083843Z               "path": "docs-site/src/networking/inbound-reachability.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2084115Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2084359Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2084602Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2084845Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2085093Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2085364Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2085613Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2085859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2086167Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2086425Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2086672Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2086921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2087221Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2087480Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2087722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2087969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2088256Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2088612Z               "line": 13917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2088851Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2089185Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2089433Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2089671Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2089933Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2090190Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2090429Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2090679Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2090938Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2091188Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2091432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2091742Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2091995Z               "line": 655
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2092234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2092480Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2092786Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2093038Z               "line": 676
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2093277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2093527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2093829Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2094093Z               "line": 829
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2094342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2094585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2094891Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2095144Z               "line": 850
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2095391Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2095629Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2095872Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2096112Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2096362Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2096598Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2096866Z       "id": "REQ-INFRA-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2097242Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2097505Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2097800Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2098049Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2098316Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2098583Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2098826Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2099153Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2099525Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2099787Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2100026Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2100280Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2100542Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2100798Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2101036Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2101280Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2101541Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2101806Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2102049Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2102288Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2102531Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2102770Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2103064Z       "id": "REQ-INJECT-MULTILINE-INTEGRITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2106232Z       "title": "W5 (LIFECYCLE-TRUTH): the idle-inject TYPED delivery leg delivers multi-line bodies byte-complete. ROOT (4 field instances + spool diff): the typed leg eats HEAD bytes nondeterministically — spool rows complete (1669B) vs ~322B received suffix; mid-turn poll envelopes always intact; a 1854B body later rode the same leg intact => timing race (terminal-readiness / enter-coalescing settle class), NOT a size cap. FIX DIRECTION (todlando proposes on the broker/translate typed-inject seam): settle-before-head, bracketed-paste where the harness supports it, or chunked write with echo-verify. STAKES: live-SENT injects leave NO spool copy — truncation there is unrecoverable. Int: repeated large multi-line injects into a real PTY session arrive byte-complete (loop N times — the race is timing-dependent, single-shot green is not proof).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2106514Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2106757Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2106998Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2107244Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2107482Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2107727Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2107970Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2108351Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2108609Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2108872Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2109205Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2109467Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2109718Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2109958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2110267Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2110530Z               "line": 4712
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2110772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2111014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2111320Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2111582Z               "line": 4767
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2111827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2112072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2112376Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2112628Z               "line": 4798
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2112876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2113129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2113434Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2113692Z               "line": 4838
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2113939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2114178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2114483Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2114740Z               "line": 4906
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2114983Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2115228Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2115466Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2115720Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2115977Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2116230Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2116472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2116811Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2117069Z               "line": 3258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2117312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2117558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2117896Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2118163Z               "line": 3342
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2118405Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2118753Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2119082Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2119335Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2119597Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2119850Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2120094Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2120402Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2120659Z               "line": 11696
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2120902Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2121146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2121447Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2121705Z               "line": 11722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2121952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2122195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2122494Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2122746Z               "line": 11744
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2123003Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2123245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2123560Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2123817Z               "line": 11757
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2124066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2124309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2124605Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2124868Z               "line": 11782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2125110Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2125357Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2125599Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2125841Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2126078Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2126322Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2126604Z       "id": "REQ-INPUT-CONTROLLER-FENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2132412Z       "title": "RC-RENDER-TRUTH W2 (ADR-0044 decision 3, hertz same-machine --take split-brain RCA P0-C + scope clarification, doyle seam-verified broker.rs dispatch_input 3920-3935 session-addressed unfenced): broker-enforced input fencing SCOPED TO RC-ORIGIN INPUT — RC Input/Resize bind to the ACTIVE controller lease (or originating broker connection as the N-1 surrogate); commands from a displaced/stale lease are rejected/dropped after replacement. Do NOT globally gate generic KIND_INPUT: shell/system injection legitimately sends InputReq from non-controller connections (Minter::Shell, shellchan seam) — fence keys on an additive controller-ownership token validated only for token-bearing/Minter::Rc requests, or a dedicated guarded RC-input verb; token optional/default-none preserves generic injection exactly. REQUIRED DEFENSE, not optional hardening: this is what makes the at-most-one-input-capable-controller invariant TRUE even when the Displaced notification is delayed or lost (today the displaced window keeps typing into the PTY indefinitely — the field split-brain). Gate: impl — token/verb + lease-bound validation on the RC input path; unit — stale-lease RC input rejected post-replacement, active-lease applies, tokenless generic injection (shell) UNCHANGED, absent-lease N-1 falls back to connection fencing; int — hertz regression steps 5-6 (post-takeover Input+Resize from A mutate NOTHING, from B both apply) + shell injection still lands mid-controlled-session; doc — ADR-0044.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2132827Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2133069Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2133315Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2133563Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2133810Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2134048Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2134302Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2134545Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2134803Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2135059Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2135298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2135622Z               "path": "docs/adr/0044-controller-lease-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2135874Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2136122Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2136372Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2136634Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2136877Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2137135Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2137512Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2137755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2138061Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2138314Z               "line": 488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2138559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2138801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2139191Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2139458Z               "line": 8675
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2139698Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2139945Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2140193Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2140441Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2140698Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2140952Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2141196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2141527Z               "path": "crates/spt-daemon/tests/controller_lease.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2141789Z               "line": 452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2142027Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2142271Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2142524Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2142767Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2143024Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2143281Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2143526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2143829Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2144089Z               "line": 10584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2144331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2144570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2144871Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2145124Z               "line": 10620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2145368Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2145605Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2145853Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2146096Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2146336Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2146571Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2146832Z       "id": "REQ-INST-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2147281Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2147552Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2147819Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2148058Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2148329Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2148583Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2148821Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2149148Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2149412Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2149661Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2149905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2150143Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2150404Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2150658Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2150896Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2151145Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2151402Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2151659Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2151901Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2152154Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2152393Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2152635Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2152898Z       "id": "REQ-INST-10",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2153322Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2153584Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2153827Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2154071Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2154308Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2154558Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2154797Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2155064Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2155318Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2155555Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2155797Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2156056Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2156304Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2156552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2156872Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2157127Z               "line": 915
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2157373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2157617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2158021Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2158280Z               "line": 956
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2158523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2158771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2159157Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2159415Z               "line": 1005
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2159656Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2159897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2160193Z               "path": "crates/spt-proto/src/addr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2160446Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2160693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2160936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2161241Z               "path": "crates/spt-proto/src/addr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2161494Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2161724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2161982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2162287Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2162537Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2162781Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2163025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2163311Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2163572Z               "line": 1280
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2163814Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2164058Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2164307Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2164551Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2164820Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2165075Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2165329Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2165572Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2165834Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2166096Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2166343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2166672Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2166930Z               "line": 1612
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2167278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2167527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2167844Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2168110Z               "line": 2084
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2168367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2168615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2168924Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2169268Z               "line": 2095
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2169516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2169764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2170075Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2170335Z               "line": 2111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2170580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2170833Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2171143Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2171401Z               "line": 2127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2171649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2171897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2172207Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2172483Z               "line": 2149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2172746Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2172989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2173308Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2173570Z               "line": 2171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2173813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2174065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2174375Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2174633Z               "line": 2194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2174882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2175125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2175433Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2175697Z               "line": 2215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2175940Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2176179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2176484Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2176738Z               "line": 2572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2176984Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2177223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2177634Z               "path": "crates/spt-proto/src/addr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2177891Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2178133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2178376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2178670Z               "path": "crates/spt-proto/src/addr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2178927Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2179256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2179499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2179790Z               "path": "crates/spt-proto/src/addr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2180043Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2180287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2180525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2180818Z               "path": "crates/spt-proto/src/addr.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2181074Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2181318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2181556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2181857Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2182109Z               "line": 2661
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2182366Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2182610Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2182849Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2183092Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2183330Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2183572Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2183835Z       "id": "REQ-INST-11",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2184253Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2184531Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2184769Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2185017Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2185551Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2186045Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2186543Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2187054Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2187603Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2188117Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2188633Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2189358Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2189916Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2190451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2191037Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2191653Z               "line": 761
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2192188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2192688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2193260Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2193890Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2194419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2194923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2195467Z               "path": "crates/spt-store/src/rename.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2196062Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2196600Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2197098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2197718Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2198339Z               "line": 15862
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2198892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2199482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2200047Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2200657Z               "line": 24004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2201177Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2201694Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2202185Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2202676Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2203239Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2203796Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2204326Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2204820Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2205345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2205898Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2206408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2206970Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2207593Z               "line": 2323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2208141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2208646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2209299Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2209918Z               "line": 2405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2210469Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2210975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2211652Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2212315Z               "line": 653
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2212835Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2213336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2213899Z               "path": "crates/spt-store/src/rename.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2214501Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2215029Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2215515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2216063Z               "path": "crates/spt-store/src/rename.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2216653Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2217164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2217663Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2218199Z               "path": "crates/spt-store/src/rename.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2218796Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2219396Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2219889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2220426Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2221010Z               "line": 29465
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2221545Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2222044Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2222532Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2223011Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2223486Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2223967Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2224463Z       "id": "REQ-INST-12",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2225255Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2226056Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2226584Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2227080Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2227572Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2228053Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2228555Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2229151Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2229690Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2230211Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2230802Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2231312Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2231851Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2232371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2232924Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2233533Z               "line": 825
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2234046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2234542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2235100Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2235695Z               "line": 926
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2236212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2236692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2237235Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2237842Z               "line": 1019
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2238360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2238850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2239473Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2240070Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2240598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2241090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2241641Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2242234Z               "line": 551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2242755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2243246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2243799Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2244410Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2244931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2245426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2245955Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2246542Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2247065Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2247552Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2248038Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2248525Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2249121Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2249670Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2250180Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2250677Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2251196Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2251730Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2252465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2253034Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2253643Z               "line": 2447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2254164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2254663Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2255220Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2255829Z               "line": 2470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2256363Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2256849Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2261317Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2261984Z               "line": 2507
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2262515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2263011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2263561Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2264161Z               "line": 984
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2264696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2265190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2265760Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2266370Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2266889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2267380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2267940Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2268543Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2269159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2269654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2270213Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2270814Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2271333Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2271821Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2272301Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2272775Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2273254Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2273744Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2274243Z       "id": "REQ-INST-13",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2274911Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2275750Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2276277Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2276786Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2277278Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2277764Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2278264Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2278774Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2279408Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2279928Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2280416Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2280923Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2281456Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2281965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2282500Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2283104Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2283621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2284107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2284676Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2285286Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2285811Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2286315Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2286794Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2287289Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2287801Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2288338Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2288848Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2289425Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2289934Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2290469Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2290981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2291540Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2292153Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2292683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2293208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2293775Z               "path": "crates/spt-store/src/visibility.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2294388Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2294926Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2295422Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2295918Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2296414Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2296903Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2297387Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2298083Z       "id": "REQ-INST-14",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2299070Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2300000Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2300543Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2301091Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2301648Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2302168Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2302680Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2303224Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2303792Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2304359Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2304892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2305424Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2305982Z               "line": 861
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2306506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2307012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2307553Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2308133Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2308662Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2309231Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2309745Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2310241Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2310759Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2311307Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2311828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2312396Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2313026Z               "line": 548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2313550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2314051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2314629Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2315239Z               "line": 589
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2315769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2316270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2316827Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2317563Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2318099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2318608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2319222Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2319815Z               "line": 5352
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2320343Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2320838Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2321334Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2321830Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2322355Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2322922Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2323438Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2323944Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2324463Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2325011Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2325532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2326097Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2326710Z               "line": 1732
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2327230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2327716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2328274Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2328881Z               "line": 1624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2329502Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2330002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2330545Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2331165Z               "line": 1903
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2331685Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2332179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2332733Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2333348Z               "line": 1606
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2333881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2334379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2334918Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2335514Z               "line": 29538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2336083Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2336577Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2337070Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2337561Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2338053Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2338543Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2339133Z       "id": "REQ-INST-15",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2340606Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2341996Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2342535Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2343049Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2343555Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2344061Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2344558Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2345069Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2345587Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2346127Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2346643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2347260Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2347926Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2348459Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2349036Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2349515Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2350015Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2350546Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2351074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2351585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2352148Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2352805Z               "line": 474
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2353353Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2353857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2354402Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2355006Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2355527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2356029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2356597Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2357222Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2357763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2358286Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2359091Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2359736Z               "line": 536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2360277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2360777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2361324Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2361925Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2362454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2362951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2363502Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2364107Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2364623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2365128Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2365673Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2366284Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2366809Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2367313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2367862Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2368461Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2369089Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2369603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2370161Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2370762Z               "line": 240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2371293Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2371798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2372342Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2372953Z               "line": 529
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2373483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2373986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2374526Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2375112Z               "line": 5229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2375645Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2376149Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2376643Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2377140Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2377659Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2378212Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2378741Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2379315Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2379843Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2380388Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2381022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2381602Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2382235Z               "line": 703
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2382764Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2383265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2383828Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2384451Z               "line": 899
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2384979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2385480Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2386025Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2386619Z               "line": 299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2387137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2387629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2388166Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2388753Z               "line": 335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2389358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2389842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2390399Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2390991Z               "line": 348
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2391507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2392005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2392556Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2393176Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2393944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2394467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2395021Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2395636Z               "line": 1930
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2396165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2396665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2397203Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2397864Z               "line": 29478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2398407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2398912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2399537Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2400292Z               "line": 33924
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2400822Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2401331Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2401822Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2402310Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2402792Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2403279Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2403784Z       "id": "REQ-INST-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2404370Z       "title": "Per-node files, synced Psyche mind",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2404990Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2405518Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2406014Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2406497Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2406982Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2407484Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2408008Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2408552Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2409168Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2409664Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2410183Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2410720Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2411228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2411781Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2412392Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2412918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2413418Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2413973Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2414582Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2415103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2415607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2416160Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2416776Z               "line": 182
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2417304Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2417808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2418357Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2419051Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2419580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2420085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2420638Z               "path": "crates/spt-live/src/signoff.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2421247Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2421793Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2422290Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2422900Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2423406Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2423931Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2424476Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2425009Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2425505Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2426025Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2426562Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2427073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2427621Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2428213Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2428731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2429297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2429840Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2430440Z               "line": 302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2430955Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2431438Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2431939Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2432435Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2432921Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2433417Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2433937Z       "id": "REQ-INST-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2434562Z       "title": "Dormant (warm) / suspended (cold) resting states",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2435220Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2435760Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2436270Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2436770Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2437309Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2437829Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2438343Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2438863Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2439547Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2440061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2440613Z               "path": "docs/DORMANCY-BUDGET.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2441219Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2441740Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2442238Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2442733Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2443348Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2443872Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2449484Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2450037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2450626Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2451246Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2451779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2452286Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2452865Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2453488Z               "line": 1385
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2454026Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2454533Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2455096Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2455725Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2456279Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2456789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2457363Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2457987Z               "line": 1325
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2458532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2459125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2459692Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2460317Z               "line": 1361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2460847Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2461353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2461925Z               "path": "crates/spt-daemon/src/pump/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2462550Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2463085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2463595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2464172Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2464801Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2465346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2465840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2466406Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2467015Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2467535Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2468031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2468599Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2469421Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2469961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2470453Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2471004Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2471260Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2471508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2471751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2472056Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2472317Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2472566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2472818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2473129Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2473401Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2473649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2473895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2474198Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2474470Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2474718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2474967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2475286Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2475547Z               "line": 196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2475795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2476038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2476348Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2476614Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2476855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2477103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2477408Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2477676Z               "line": 377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2477924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2478173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2478473Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2478734Z               "line": 401
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2479064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2479419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2479739Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2480005Z               "line": 495
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2480259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2480502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2480812Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2481070Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2481322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2481574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2481881Z               "path": "crates/spt-daemon/tests/budget.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2482144Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2482397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2482640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2482955Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2483221Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2483460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2483712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2484008Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2484281Z               "line": 531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2484536Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2484791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2485082Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2485335Z               "line": 7588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2485592Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2485831Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2486074Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2486322Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2486589Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2486843Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2487088Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2487339Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2487596Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2487854Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2488098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2488403Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2488660Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2488903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2489237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2489552Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2489912Z               "line": 4166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2490161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2490409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2490724Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2490977Z               "line": 4223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2491229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2491467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2491767Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2492016Z               "line": 1737
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2492267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2492507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2492818Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2493080Z               "line": 1862
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2493329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2493577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2493892Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2494164Z               "line": 1906
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2494416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2494668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2494991Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2495256Z               "line": 2149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2495509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2495752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2496062Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2496324Z               "line": 722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2496572Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2496820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2497130Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2497394Z               "line": 758
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2497667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2497970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2498281Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2498538Z               "line": 813
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2498786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2499283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2499598Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2499869Z               "line": 1147
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2500116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2500364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2500674Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2500941Z               "line": 1394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2501184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2501430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2501741Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2501999Z               "line": 1408
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2502252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2502500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2502813Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2503077Z               "line": 2065
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2503325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2503579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2503874Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2504146Z               "line": 1374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2504395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2504651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2504942Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2505204Z               "line": 29502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2505457Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2505713Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2505954Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2506192Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2506432Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2506671Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2506932Z       "id": "REQ-INST-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2507305Z       "title": "active to dormant/suspended fires a transition echo commune",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2507572Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2507824Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2508066Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2508308Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2508554Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2508802Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2509155Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2509422Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2509661Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2509904Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2510271Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2510525Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2510768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2511071Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2511333Z               "line": 1326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2511568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2511811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2512125Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2512383Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2512625Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2512859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2513183Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2513449Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2513700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2513947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2514257Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2514533Z               "line": 364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2514778Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2515035Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2515284Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2515536Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2515798Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2516064Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2516311Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2516562Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2516824Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2517076Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2517335Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2517692Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2517954Z               "line": 4218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2518204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2518456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2518769Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2519100Z               "line": 834
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2519357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2519749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2520074Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2520335Z               "line": 1113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2520588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2520831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2521141Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2521404Z               "line": 1206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2521654Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2521902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2522146Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2522404Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2522648Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2522894Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2523157Z       "id": "REQ-INST-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2523543Z       "title": "Two-tier context sync (live to all, project to same-project)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2523814Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2524060Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2524313Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2524561Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2524822Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2525075Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2525333Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2525605Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2525863Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2526110Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2526358Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2526619Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2526867Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2527113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2527418Z               "path": "crates/spt-daemon/src/pump/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2527670Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2527914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2528162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2528463Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2528716Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2529040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2529285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2529579Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2529836Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2530085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2530329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2530738Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2531006Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2531253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2531501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2531792Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2532048Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2532297Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2532544Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2532791Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2533049Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2533312Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2533565Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2533823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2534142Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2534403Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2534648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2534902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2535216Z               "path": "crates/spt-daemon/tests/pump.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2535488Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2535731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2535982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2536302Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2536555Z               "line": 1274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2536804Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2537052Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2537365Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2537624Z               "line": 2218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2537877Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2538127Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2538374Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2538627Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2538889Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2539227Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2539475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2539784Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2540153Z               "line": 603
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2540411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2540669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2540974Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2541232Z               "line": 646
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2541479Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2541727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2542032Z               "path": "crates/spt-daemon/tests/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2542303Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2542548Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2542794Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2543041Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2543290Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2543538Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2543777Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2544044Z       "id": "REQ-INST-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2544430Z       "title": "Deferred messages not delivered to dormant/suspended instances",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2544697Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2544943Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2545204Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2545452Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2545699Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2545961Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2546209Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2546472Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2546725Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2546973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2547245Z               "path": "docs/DEFERRED.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2547497Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2547735Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2547982Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2548228Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2548475Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2548738Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2549071Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2549315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2549615Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2549874Z               "line": 1241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2550117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2550373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2550680Z               "path": "crates/spt-daemon/src/resthost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2551047Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2551299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2551543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2551848Z               "path": "crates/spt-daemon/src/resthost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2552102Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2552354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2552601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2552912Z               "path": "crates/spt-daemon/src/resthost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2553192Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2553446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2553712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2554022Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2554293Z               "line": 532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2554541Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2554794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2555104Z               "path": "crates/spt-net/src/net/rest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2555367Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2555632Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2555892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2556211Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2556468Z               "line": 725
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2556722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2556970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2557275Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2557533Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2557781Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2558033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2558318Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2558584Z               "line": 7589
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2558831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2559161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2559456Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2559718Z               "line": 857
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2559970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2560213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2560609Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2560871Z               "line": 907
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2561123Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2561369Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2561621Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2561869Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2562132Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2562394Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2562638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2562953Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2563214Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2563462Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2563705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2564020Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2564287Z               "line": 1288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2564529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2564777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2565087Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2565359Z               "line": 2263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2565612Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2565856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2566149Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2566409Z               "line": 2491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2566653Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2566891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2567139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2567382Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2567644Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2567892Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2568136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2568441Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2568699Z               "line": 2262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2569036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2569281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2569581Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2569839Z               "line": 1362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2570083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2570331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2570631Z               "path": "crates/spt-net/src/net/rest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2570999Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2571247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2571493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2571786Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2572049Z               "line": 1477
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2572297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2572540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2572840Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2573102Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2573350Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2573603Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2573852Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2574094Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2574336Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2574580Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2574842Z       "id": "REQ-INST-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2575180Z       "title": "Subnet registry + bare-id resolution policy",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2575462Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2575709Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2575957Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2576214Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2576463Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2576714Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2576959Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2577241Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2577494Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2577743Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2577996Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2578262Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2578524Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2578767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2579177Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2579439Z               "line": 1324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2579690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2579936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2580266Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2580523Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2580881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2581134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2581458Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2581724Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2581972Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2582224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2582537Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2582799Z               "line": 465
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2583051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2583294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2583609Z               "path": "crates/spt-net/src/net/ndjson.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2583871Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2584121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2584369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2584684Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2584943Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2585191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2585440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2585759Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2586013Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2586259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2586507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2586812Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2587074Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2587322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2587567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2587873Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2588125Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2588374Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2588612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2588917Z               "path": "crates/spt-store/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2589252Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2589495Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2589742Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2589985Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2590236Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2590501Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2590754Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2590992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2591437Z               "path": "crates/spt-daemon/tests/pump.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2591689Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2591937Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2592180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2592500Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2592765Z               "line": 1130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2593011Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2593268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2593583Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2593845Z               "line": 2033
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2594093Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2594342Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2594594Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2594856Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2595128Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2595381Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2595642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2595967Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2596244Z               "line": 1703
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2596490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2596738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2597063Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2597325Z               "line": 2378
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2597574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2597868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2598194Z               "path": "crates/spt-daemon/tests/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2598447Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2598704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2599028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2599343Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2599610Z               "line": 1232
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2599854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2600107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2600413Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2600787Z               "line": 1335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2601033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2601285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2601590Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2601858Z               "line": 1350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2602106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2602350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2602664Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2602927Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2603173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2603419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2603734Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2603996Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2604244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2604500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2604806Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2605072Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2605320Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2605570Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2605813Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2606063Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2606302Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2606541Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2606804Z       "id": "REQ-INST-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2607142Z       "title": "Remote-control mode distinct from local operation",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2607404Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2607651Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2607899Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2608143Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2608384Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2608630Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2608878Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2609236Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2609494Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2609737Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2609985Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2610246Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2610490Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2610743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2611048Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2611407Z               "line": 443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2611656Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2611898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2612203Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2612460Z               "line": 869
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2612709Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2612953Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2613258Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2613525Z               "line": 985
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2613780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2614031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2614345Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2614609Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2614852Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2615104Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2615351Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2615605Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2615880Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2616135Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2616387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2616709Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2616966Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2617214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2617473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2617783Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2618050Z               "line": 2177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2618303Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2618550Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2618798Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2619124Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2619387Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2619644Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2619891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2620216Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2620487Z               "line": 401
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2620740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2621093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2621413Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2621674Z               "line": 833
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2621925Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2622168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2622478Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2622739Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2622987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2623244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2623555Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2623823Z               "line": 419
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2624071Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2624321Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2624567Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2624816Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2625059Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2625306Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2625572Z       "id": "REQ-INST-9",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2625969Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2626236Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2626484Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2626737Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2631482Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2631759Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2632011Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2632286Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2632551Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2632795Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2633047Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2633309Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2633571Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2633819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2634143Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2634411Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2634659Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2634905Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2635151Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2635405Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2635671Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2635953Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2636195Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2636592Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2636864Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2637125Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2637378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2637701Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2637973Z               "line": 2240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2638221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2638474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2638798Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2639147Z               "line": 2249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2639399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2639646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2639960Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2640225Z               "line": 2265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2640478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2640721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2641041Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2641317Z               "line": 2277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2641569Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2641817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2642127Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2642390Z               "line": 2297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2642644Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2642893Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2643135Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2643383Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2643631Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2643874Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2644145Z       "id": "REQ-INSTALL-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2646289Z       "title": "Two install paths (harness-bootstrapped calls into standalone); OS-service registration deferred. HISTORY: originally 'signed one-line script' — the hosted one-liner retired as the PUBLIC install surface at THE-FORKENING W1/W2 (ADR-0036; the canonical bootstrap is gh + the spt install verb, REQ-INSTALL-BOOTSTRAP-VERB); installer/ scripts remain in-repo as the hermetic oneliner_e2e fixture + air-gap/mirror fallback, which is what this REQ's evidence now attests (doyle-ratified 2026-07-14).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2646669Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2646917Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2647166Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2647414Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2647646Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2647899Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2648144Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2648409Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2648661Z           "evidence": [
traceability	UNKNOWN STEP	﻿2026-09-09T04:19:35.2650884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2651166Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2651423Z               "line": 1202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2651686Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2651930Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2652172Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2652425Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2652696Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2652955Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2653213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2653530Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2653799Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2654052Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2654296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2654596Z               "path": "installer/install.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2654864Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2655117Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2655359Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2655606Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2655860Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2656120Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2656409Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2656662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2656986Z               "path": "crates/spt/tests/oneliner_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2657243Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2657496Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2657740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2657993Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2658245Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2658521Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2658778Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2659240Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2659498Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2659742Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2659990Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2660262Z       "id": "REQ-INSTALL-10",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2662060Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2662346Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2662594Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2662847Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2663095Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2663352Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2663605Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2663872Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2664133Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2664393Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2664640Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2664908Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2665171Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2665419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2665715Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2665972Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2666219Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2666457Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2666714Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2666960Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2667226Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2667479Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2667723Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2667967Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2668224Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2668481Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2668724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2669178Z               "path": "crates/spt/tests/oneliner_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2669443Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2669691Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2669934Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2670173Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2670415Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2670654Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2670897Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2671156Z       "id": "REQ-INSTALL-11",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2673488Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2673917Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2674179Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2674436Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2674683Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2674929Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2675181Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2675435Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2675702Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2675950Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2676207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2676483Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2676756Z               "line": 176
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2677003Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2677255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2677548Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2677810Z               "line": 635
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2678058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2678307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2678583Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2678846Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2679199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2679551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2679838Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2680108Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2680355Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2680608Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2680853Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2681110Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2681372Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2681629Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2681881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2682205Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2682469Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2682718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2682966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2683291Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2683552Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2683795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2684053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2684376Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2684653Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2684903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2685148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2685465Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2685723Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2685976Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2686224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2686539Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2686802Z               "line": 802
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2687058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2687311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2687624Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2687890Z               "line": 816
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2688133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2688375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2688690Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2689105Z               "line": 687
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2689349Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2689634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2689945Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2690206Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2690454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2690697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2691008Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2691265Z               "line": 559
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2691521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2691836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2692155Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2692423Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2692675Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2692922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2693230Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2693492Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2693745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2693997Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2694312Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2694574Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2694824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2695071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2695396Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2695655Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2695906Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2696150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2696460Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2696728Z               "line": 960
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2696974Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2697222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2697532Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2697794Z               "line": 418
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2698100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2698351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2698659Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2698930Z               "line": 565
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2699365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2699618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2699933Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2700194Z               "line": 577
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2700451Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2700690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2701005Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2701253Z               "line": 1027
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2701500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2701752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2703482Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2703771Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2704028Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2704281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2704586Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2704854Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2705116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2705360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2705674Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2705931Z               "line": 129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2706183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2706429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2706734Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2706991Z               "line": 538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2707239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2707482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2707782Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2708045Z               "line": 716
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2708284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2708551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2708868Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2709210Z               "line": 810
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2709452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2709700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2710086Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2710344Z               "line": 1050
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2710597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2710836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2711137Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2711389Z               "line": 1073
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2711640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2711880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2712189Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2712452Z               "line": 1088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2712757Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2713004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2713319Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2713585Z               "line": 949
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2713833Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2714085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2714393Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2714660Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2714912Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2715155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2715446Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2715704Z               "line": 23013
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2715953Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2716201Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2716453Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2716700Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2716970Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2717232Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2717479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2717818Z               "path": "crates/spt/tests/resident_service_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2718084Z               "line": 519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2718337Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2718585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2718910Z               "path": "crates/spt/tests/resident_service_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2719243Z               "line": 534
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2719500Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2719750Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2719998Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2720251Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2720575Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2720842Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2721091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2721415Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2721673Z               "line": 536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2721930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2722186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2722500Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2722769Z               "line": 2298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2723021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2723269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2723665Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2723937Z               "line": 1395
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2724193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2724436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2724748Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2725006Z               "line": 1436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2725263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2725511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2725826Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2726092Z               "line": 1484
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2726335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2726583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2726889Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2727153Z               "line": 1512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2727393Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2727634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2727948Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2728216Z               "line": 1757
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2728464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2728702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2729108Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2729366Z               "line": 1769
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2729618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2729921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2730238Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2730501Z               "line": 1778
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2730745Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2730988Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2731226Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2731469Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2731708Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2731951Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2732219Z       "id": "REQ-INSTALL-12",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2735627Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2735980Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2736229Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2736481Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2736734Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2736981Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2737243Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2737496Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2737759Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2738020Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2738280Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2738528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2738804Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2739147Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2739405Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2739658Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2739902Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2740226Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2740496Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2740761Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2741005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2741329Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2741586Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2741840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2742086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2742406Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2742678Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2742920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2743259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2743550Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2743817Z               "line": 21059
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2744070Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2744316Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2744570Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2744818Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2745086Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2745343Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2745598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2745925Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2746178Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2746426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2746660Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2746907Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2747155Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2747413Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2747666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2747919Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2748229Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2748479Z               "line": 401
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2748725Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2749054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2749369Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2749679Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2749927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2750167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2750481Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2750743Z               "line": 446
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2750990Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2751236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2751536Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2751798Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2752041Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2752307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2752636Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2752880Z               "line": 32198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2753137Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2753386Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2753634Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2753875Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2754124Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2754368Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2754639Z       "id": "REQ-INSTALL-13",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2758240Z       "title": "Adapter add is non-destructive & idempotent-safe (F-018): `spt adapter add --github|--release` REFUSES when the target `_github/<safe>` home already backs an ACTIVE registered record — emitting an actionable code (ADAPTER_ADD_ALREADY_REGISTERED) that routes to `spt adapter update <name>` (refresh in place) or `spt adapter remove <name>` then re-add (replace) — instead of clobbering the live install (the perri footgun: `add --github` over a `--release` pointer git-cloned a source tree over the extracted built binaries → registered pointer dangled → cryptic `os error 2`). And when it DOES (re)populate the home it STAGES-THEN-SWAPS (clone/extract to a sibling staging dir, swap into place only on success) so a failed fetch/clone never strands the previously-extracted manifest+binaries as a dangling pointer (the os-2 / DeferredManifest class). Mirrors the safe stage-then-swap `adapter update` already uses (REQ-UPD-9, apply_release_crc_swap). (v0.14.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2758527Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2758789Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2759121Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2759438Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2759695Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2759948Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2760206Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2760468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2760732Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2760983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2761265Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2761526Z               "line": 1219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2761772Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2762029Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2762277Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2762534Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2762839Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2763130Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2763378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2763669Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2763933Z               "line": 10668
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2764185Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2764435Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2764717Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2764984Z               "line": 20532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2765228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2765480Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2765766Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2766028Z               "line": 20690
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2766276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2766521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2766809Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2767078Z               "line": 20722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2767326Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2767570Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2767828Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2768071Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2768347Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2768609Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2768856Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2769215Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2769567Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2769831Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2770080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2770375Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2770633Z               "line": 39404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2770880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2771137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2771423Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2771691Z               "line": 39448
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2771940Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2772195Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2772502Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2772751Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2772994Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2773242Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2773524Z       "id": "REQ-INSTALL-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2773863Z       "title": "Marketplace-repackaging-friendly install",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2774129Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2774382Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2774634Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2774901Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2775153Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2775415Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2775682Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2775935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2776211Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2776479Z               "line": 1203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2776727Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2776984Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2777231Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2777482Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2777744Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2778015Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2778272Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2778520Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2778788Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2779127Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2779374Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2779619Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2779881Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2780132Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2780386Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2780635Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2780878Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2781183Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2781454Z       "id": "REQ-INSTALL-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2781798Z       "title": "Idempotent + interactive-optional first run",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2782065Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2782317Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2782561Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2782808Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2783062Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2783297Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2783569Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2783831Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2784084Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2784384Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2784650Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2784908Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2785156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2785452Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2785713Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2785965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2786213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2786500Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2786757Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2787006Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2787239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2787525Z               "path": "installer/install.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2787786Z               "line": 81
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2788028Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2788275Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2788513Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2788770Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2789104Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2789367Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2789610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2789921Z               "path": "crates/spt/tests/oneliner_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2790179Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2790426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2790668Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2790965Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2791219Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2791486Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2791743Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2791981Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2792234Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2792482Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2792726Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2792998Z       "id": "REQ-INSTALL-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2793942Z       "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",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2794266Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2794524Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2794772Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2795020Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2795279Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2795525Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2795793Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2796059Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2796303Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2796555Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2796826Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2797093Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2797336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2797670Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2797984Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2798233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2798485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2798797Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2799150Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2799397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2799654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2799974Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2800237Z               "line": 299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2800490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2800739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2801058Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2801318Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2801568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2801883Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2802202Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2802461Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2802709Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2802962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2803281Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2803548Z               "line": 512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2803795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2804050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2804341Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2804655Z               "line": 20549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2804909Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2805156Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2805403Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2805657Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2805923Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2806182Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2806420Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2806666Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2806929Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2807192Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2807435Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2807764Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2808020Z               "line": 381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2808268Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2808507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2808817Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2809172Z               "line": 1021
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2809420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2809672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2809977Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2810234Z               "line": 1144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2810478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2810721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2811027Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2811346Z               "line": 1164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2811594Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2811840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2812128Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2812391Z               "line": 31767
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2812639Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2812888Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2813144Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2813392Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2813635Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2813880Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2814156Z       "id": "REQ-INSTALL-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2816278Z       "title": "Non-interactive install path: the install path doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration. HISTORY: 'the canonical one-liner' — since THE-FORKENING (ADR-0036) the canonical path is gh + the spt install verb (itself non-interactive, REQ-INSTALL-BOOTSTRAP-VERB); the scripts this REQ's evidence attests remain as the hermetic CI fixture + air-gap fallback, still non-interactive by construction (doyle-ratified 2026-07-14).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2816569Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2816822Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2817067Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2817321Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2817574Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2817823Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2818099Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2818357Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2818609Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2818861Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2819229Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2819490Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2819750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2820042Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2820299Z               "line": 7
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2820557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2820803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2821094Z               "path": "installer/install.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2821357Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2821605Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2821925Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2822173Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2822428Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2822698Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2822960Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2823208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2823523Z               "path": "crates/spt/tests/oneliner_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2823786Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2828864Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2829241Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2829542Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2829799Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2830170Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2830443Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2830691Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2830940Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2831188Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2831436Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2831707Z       "id": "REQ-INSTALL-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2833412Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2833698Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2833949Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2834206Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2834460Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2834718Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2834966Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2835276Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2835555Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2835801Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2836063Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2836326Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2836589Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2836904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2837223Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2837499Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2837747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2837999Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2838313Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2838581Z               "line": 933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2838828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2839162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2839477Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2839797Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2840044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2840297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2840615Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2840875Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2841128Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2841371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2841667Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2841938Z               "line": 180
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2842186Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2842434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2842721Z               "path": "installer/install.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2842979Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2843236Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2843510Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2843752Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2844005Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2844267Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2844539Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2844786Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2845049Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2845315Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2845574Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2845822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2846135Z               "path": "crates/spt-daemon/src/deelevate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2846403Z               "line": 894
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2846652Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2846900Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2847154Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2847406Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2847658Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2847963Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2848240Z       "id": "REQ-INSTALL-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2857312Z       "title": "Windows inbound reachability: the install path RECONCILES the product inbound-UDP firewall rule onto the binder it places — create when missing, REPOINT when the rule names a different image, and report which it did — and 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). AMENDED BY REPLACEMENT (releases#173, doyle ruling 2026-08-21): the previous title said the elevated leg REGISTERS the rule, which is create-only and describes half the behaviour. A program-scoped rule admits exactly one path, so the moment the binder can move is the moment the rule can go stale — and a stale rule reads GREEN BY NAME while inbound is dead on the Public profile (KNOWN-HAZARDS 7.61; field specimen 2026-08-06, a rule naming an actions-runner debug exe on a node whose installed binder serves, still reproducing at c62904e7). REPOINT-IF-DIFFERENT IS THE LOAD-BEARING ARM and create belongs to first install: an update swaps the binary in place at the same canonical path, so the program scope does not change and the reconcile is a no-op in the common case. SCOPED TO THE PRODUCT-NAMED RULE ALWAYS — the probe queries by name and the repair deletes by name, so dev and CI rules naming spt images on the same box are never read and never touched; they can be load-bearing for runner jobs, and a delete-by-image sweep would read as tidying while eating one. Elevation unavailable degrades LOUD and NEVER FATAL: the rule is left exactly as it was and the operator is handed the exact command, because a placed binder with a stated reachability problem beats a refused installation. The durable verdict is NOT written by the installer — the inbound record is pinned to the binder pid AND image (REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED), so a record authored by a short-lived installer re-derives as Unknown for every reader, which is the self-erase class releases#172 closed; the verdict stays the daemon's to write at bind. Gate: doc — the CONTEXT.md install entry stating that placement reconciles the rule and what happens unelevated; impl — the pure reconcile decision seam, its thin netsh effector, and the call at binder placement; unit — the four decision cases (missing, correct, stale path, cannot-elevate) decided with no netsh and no privilege, plus a named cell proving a reconcile never reaches a rule it was not asked about.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2857751Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2858004Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2858251Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2858504Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2858747Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2859080Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2859340Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2859605Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2859862Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2860119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2860401Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2860664Z               "line": 1210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2860917Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2861164Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2861417Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2861674Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2861948Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2862205Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2862462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2862782Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2863043Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2863287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2863530Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2863888Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2864146Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2864404Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2864650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2864943Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2865272Z               "line": 10198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2865534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2865782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2866069Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2866336Z               "line": 10336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2866583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2866836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2867126Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2867387Z               "line": 13916
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2867644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2867891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2868245Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2868506Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2868754Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2869059Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2869312Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2869562Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2869833Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2870097Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2870346Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2870699Z               "path": "crates/spt/tests/install_firewall_wiring_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2870956Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2871204Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2871454Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2871705Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2871957Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2872229Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2872494Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2872746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2873056Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2873322Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2873589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2873838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2874153Z               "path": "crates/spt-daemon/src/firewall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2874424Z               "line": 768
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2874730Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2874983Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2875228Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2875474Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2875723Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2875971Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2876238Z       "id": "REQ-INSTALL-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2877771Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2878107Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2878355Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2878609Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2878857Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2879191Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2879468Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2879735Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2879982Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2880234Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2880506Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2880763Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2881011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2881301Z               "path": "installer/install.ps1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2881564Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2881812Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2882065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2882356Z               "path": "installer/install.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2882614Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2882869Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2883115Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2883373Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2883621Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2883897Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2884154Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2884412Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2884665Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2884928Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2885200Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2885447Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2885750Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2885992Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2886240Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2886503Z       "id": "REQ-INSTALL-9",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2888158Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2888493Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2888744Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2889093Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2889341Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2889583Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2889827Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2890084Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2890343Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2890605Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2890857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2891123Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2891381Z               "line": 1219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2891619Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2891866Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2892104Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2892348Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2892616Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2892874Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2893120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2893424Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2893694Z               "line": 10503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2893938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2894190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2894482Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2894748Z               "line": 10572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2894996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2895301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2895591Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2895864Z               "line": 10639
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2896117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2896368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2896656Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2896918Z               "line": 20837
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2897168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2897420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2897706Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2898021Z               "line": 20849
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2898350Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2898598Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2898849Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2899185Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2899457Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2899715Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2899963Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2900216Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2900482Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2900744Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2900992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2901293Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2901561Z               "line": 28272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2901812Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2902059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2902345Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2902608Z               "line": 31797
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2902851Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2903095Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2903347Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2903594Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2903843Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2904085Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2904378Z       "id": "REQ-INSTALL-BOOTSTRAP-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2909216Z       "title": "THE-FORKENING W1 (ADR-0036 §3, bootstrap shape b operator-ruled): virgin-box install = `gh release download` the platform binary + ONE self-install verb in the binary itself — the verb places the binary at the canonical install path (the path self-update already respawns from, v0.4.2 lesson), registers user PATH, and leaves first-run identity/daemon-start to the existing idempotent first-run; hosted one-liner install scripts (curl|sh / irm|iex at the dead Pages URL) are RETIRED. Non-interactive (CONTEXT.md Installation: the install path doubles as every adapter's pack-in on-demand install). Windows UAC-740 gotcha binding: the downloaded exe keeps the `spt-*` asset name and the verb lives INSIDE spt — no installer-detection trigger words in exe names. README (bs-core) documents: install gh -> gh auth login -> gh release download -> the verb. Gate: unit — verb places/registers idempotently, refuses cross-platform binaries (platform-stamp check exists, v0.3.2); int — from a clean SPT_HOME+PATH sim, downloaded-binary self-install yields a working `spt` on PATH whose `spt update fetch` then speaks the gh channel; doc — README install section rewritten. Kin REQ-UPDATE-GH-TRANSPORT, REQ-INSTALL-1/2 (the two-paths model this reshapes), ADR-0036.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2909566Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2909855Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2910122Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2910374Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2910618Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2910862Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2911110Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2911367Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2911628Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2911885Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2912140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2912419Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2912691Z               "line": 1210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2912934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2913187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2913592Z               "path": "docs-site/src/harness-contract/install-on-demand.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2913859Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2914107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2914366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2914725Z               "path": "docs-site/src/index.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2914986Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2915239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2915491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2915820Z               "path": "docs-site/src/quickstart/messaging.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2916087Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2916335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2916580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2916899Z               "path": "docs-site/src/reference/install.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2917156Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2917426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2917728Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2917982Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2918245Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2918512Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2918773Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2919103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2919413Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2919679Z               "line": 2504
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2919940Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2920192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2920487Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2920754Z               "line": 10005
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2921006Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2921258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2921549Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2921817Z               "line": 10015
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2922070Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2922318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2922605Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2922874Z               "line": 10065
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2923132Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2923385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2923675Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2923939Z               "line": 10080
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2924190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2924438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2924734Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2925005Z               "line": 10145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2925257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2925565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2925861Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2926123Z               "line": 10180
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2926371Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2926624Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2926872Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2927130Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2927401Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2927663Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2927915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2928246Z               "path": "crates/spt/tests/bootstrap_verb_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2928561Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2928814Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2929157Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2929420Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2929678Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2929949Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2930220Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2930472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2930766Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2931033Z               "line": 35044
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2931290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2931537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2931833Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2932096Z               "line": 35062
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2932348Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2932597Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2932845Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2933097Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2933348Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2933597Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2933883Z       "id": "REQ-IO-BOUNDARY-EVENTS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2945162Z       "title": "ENDPOINT BOUNDARIES ARE THEIR OWN FRAME CLASS ON THE WIRE, CARRIED BY THE SHIPPED IO FUNNEL UNDERNEATH (operator ruling releases#239 comment 5461768503; carrier design gated 2026-08-29). THE WIRE CATEGORY IS RULED AND NOT REOPENABLE: boot/clear/compact ship as a NEW boundary frame category with EVENT-CLASS SEMANTICS -- edges, ordered, each occurrence matters -- and explicitly NOT as an activity subset, because activity is drive-class latest-wins and would drop edges by construction. That premise is true at the IMPLEMENTATION and not merely in the doc that asserts it: write_activity is a single latest-wins slot and take_activity takes AND clears, so a clear followed by a compact before a poll loses the clear outright. THE THREE VARIANTS ARE MINTED WHOLE in one closed list and are NOT new spellings -- SessionTrigger::token() already answers exactly boot/clear/compact and already serves as the boundary marker kind in the spanned digest, so the emitter MAPS FROM THE TRIGGER rather than typing a literal, which is what keeps the wire and the ledger from drifting into two vocabularies for one concept. THE CARRIER WAS A SEPARATE DECISION AND IT WENT TO THE SHIPPED FUNNEL: same bus, same durable per-endpoint io log, same api io events cursor, NO TRIM CHANGE. A boundary-first trim ordering was proposed and REFUSED at the gate because it breaks the trim's own deciding arithmetic -- seqs are contiguous BECAUSE eviction is front-only, so skip-boundary eviction makes the row count overcount by every hole and fires a whole-file rewrite on every append past that point, which is the cost the trim slack exists to amortize. THE FRAME CLASS IS A FUNCTION OF THE KIND AND OF NOTHING ELSE: the two vocabularies are disjoint (SCREAMING_CASE io kinds, lowercase boundary variants, pinned by a test rather than left to habit), so the sink reads the wire class off the closed list with no second field to keep in sync. THE BODY IS EMPTY AND THAT IS LOAD-BEARING (the activity precedent, not the io one): a boundary's entire content is which edge and when, and there is no untruncated version of it living anywhere else. ONE EVENT PER REAL BOUNDARY: sessions::append answers Ok(false) for a same-session re-bind and calls that not a new boundary in its own words, so both emitters gate on it -- publishing off the ATTEMPT would emit an edge on a call that crossed none and make the funnel disagree with the ledger written by the same call. THE EMITTER PUBLISHES THE COERCED TOKEN, NEVER THE CALLER WORD: cmd_boundary reads an unknown mode as clear rather than refusing it, so the raw argument would put an unbounded string on a closed wire vocabulary. EMISSION IS BEST-EFFORT AND CAN NEVER FAIL THE BOUNDARY IT OBSERVES, the rule the boundary's own ledger append already holds. THE OBSERVATION CONTRACT IS A DOC DELIVERABLE, NOT A NICETY (gate rider): a live-attached shell receives the pushed frame, a session-cursor poller sees every boundary from its seed forward, and history before first contact is reachable only by an explicit --after and only within the retention window -- boot in particular is observable live and by an early --after and is NOT replayed to a silently-seeded consumer. Unstated, the carrier's one real limit is discoverable only by someone who already knows it, which is how an undiscoverable shipped surface re-files itself as a bug.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2945592Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2945877Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2946154Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2946405Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2946657Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2946909Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2947162Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2947415Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2947682Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2947945Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2948192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2948517Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2948788Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2949106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2949366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2949681Z               "path": "docs-site/src/lifecycle/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2949939Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2950182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2950430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2950793Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2951049Z               "line": 320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2951302Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2951546Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2951787Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2952032Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2952304Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2952567Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2952815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2953130Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2953388Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2953698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2953950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2954275Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2954540Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2954793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2955046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2955365Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2955633Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2955880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2956137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2956457Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2956719Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2956970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2957226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2957541Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2957803Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2958055Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2958304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2958619Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2958885Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2959257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2959515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2959837Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2960108Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2960360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2960617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2960927Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2961261Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2961513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2961772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2962087Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2962357Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2962602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2962855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2963169Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2963438Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2963690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2963939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2964306Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2964573Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2964825Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2965076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2965376Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2965654Z               "line": 800
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2965902Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2966159Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2966407Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2966668Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2966926Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2967185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2967435Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2967752Z               "path": "crates/spt/tests/boundary_events_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2968014Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2968253Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2968502Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2968746Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2969088Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2969346Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2969607Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2969855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2970155Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2970420Z               "line": 533
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2970663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2970987Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2971293Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2971555Z               "line": 557
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2971807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2972050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2972369Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2972628Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2972884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2973129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2973458Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2973725Z               "line": 656
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2974035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2974287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2974602Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2974866Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2975119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2975366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2975679Z               "path": "crates/spt-proto/src/boundary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2975950Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2976200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2976457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2976763Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2977029Z               "line": 449
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2977276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2977524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2977839Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2978104Z               "line": 1691
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2978361Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2978608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2978928Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2979272Z               "line": 1711
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2979528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2979776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2980086Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2980348Z               "line": 1736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2980598Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2980853Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2981103Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2981351Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2981662Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2981914Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2982201Z       "id": "REQ-IO-COMMUNE-EVENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2987722Z       "title": "A COMMUNE IS ACCOUNTED AT THE DELETION CORE ALREADY PERFORMS, CARRYING THE DROP FILE CONTENT VERBATIM (operator ruling 5). The event fires where `ingest_drops` consumes a commune drop and unlinks it — the seam core already owns — and its payload is the bytes of that file, never Psyche output, never echo-commune output, never the composed brief a resume renders from it. Wake markers (`!!wake!!`) are the harness adapter's construct and get ZERO special treatment here: core carries the text through untouched and does not parse, strip, or act on them. TWO DELETIONS EXIST AT THIS SEAM AND ONLY ONE IS A CONSUMPTION: the F-032 commit-before-delete branch (REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE) deliberately PRESERVES a commune drop whose project slice could not be committed, rewriting it in place for a later resolvable ingest, and deletes only a SIGNOFF source there — a drop on that branch has not been consumed, it is coming back, and emitting for it would double-fire when the real consumption later deletes the same content. Emission is therefore keyed on the CONSUMPTION OUTCOME the ingest already reports (`preserved` false) rather than on reaching a call to remove_file, so the preserved path is excluded structurally instead of by a condition a later edit can drift past. A DELETED SIGNOFF DROP EMITS NOTHING: the vocabulary has no SIGNOFF token and one is not borrowed. Emission never alters ingest: a drop is consumed, preserved, or left to retry exactly as it is today regardless of the funnel.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2988032Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2988282Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2988541Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2988791Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2989116Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2989416Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2989669Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2989917Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2990190Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2990447Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2990689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2990999Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2991256Z               "line": 559
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2991503Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2991744Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2991996Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2992250Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2992522Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2992841Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2993085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2993414Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2993677Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2993932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2994183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2994498Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2994770Z               "line": 461
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2995027Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2995285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2995600Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2995871Z               "line": 1036
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2996123Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2996376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2996686Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2996952Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2997200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2997457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2997762Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2998077Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2998330Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2998578Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2998832Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2999173Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2999442Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2999704Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.2999962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3000377Z               "path": "crates/spt-daemon/tests/commune_io_events_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3000644Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3000896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3001149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3001502Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3001769Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3002026Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3002276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3002619Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3002885Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3003191Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3003449Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3003692Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3003955Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3004218Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3004482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3004733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3005048Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3005320Z               "line": 2184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3005577Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3005831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3006145Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3006416Z               "line": 2212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3006665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3006921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3007227Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3007489Z               "line": 452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3007751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3007998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3008312Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3008575Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3008828Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3009166Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3009425Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3009675Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3009979Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3010236Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3010526Z       "id": "REQ-IO-COMMUNE-FAIL-EVENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3014095Z       "title": "A FAILED COMMUNE INGEST EMITS A NAMED REASON AND LEAVES ITS FILE ON DISK (operator ruling 6). Today a failing ingest is a bare `PSYCHE_INGEST_FAIL` line on the daemon's stderr — the failure is real, the drop survives as the on-disk diagnostic, and NOBODY IS TOLD: the measured instance is six such lines across three agents in one day, produced by a shared-checkout git index.lock collision, none of which reached the agents whose context was not rebuilt. The event is the push signal that silence is missing; the surviving FILE remains the diagnostic and is never deleted by the failure path. The reason is CARRIED, not re-derived: the sweep already composes a named reason and already keeps the FIRST failure across drop dirs, and the event publishes that same string, so the event and the log line can never disagree about why. Emission is best-effort and never alters ingest — a failed ingest retries on the next pass exactly as it does today.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3014463Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3014715Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3014972Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3015227Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3015479Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3015731Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3015979Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3016238Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3016504Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3016767Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3017010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3017340Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3017596Z               "line": 586
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3017862Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3018125Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3018378Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3018631Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3018897Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3019230Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3019492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3019821Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3020141Z               "line": 462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3020400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3020654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3020973Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3021241Z               "line": 1058
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3021488Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3021740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3021989Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3022246Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3022519Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3022785Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3023031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3023444Z               "path": "crates/spt-daemon/tests/commune_io_events_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3023710Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3023973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3024221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3024569Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3024831Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3025085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3025343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3025689Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3025948Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3026201Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3026450Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3026702Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3026956Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3027222Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3027479Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3027722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3028032Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3028286Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3028532Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3028765Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3029084Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3029334Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3029581Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3029878Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3030183Z       "id": "REQ-IO-DISPATCH-RESULT-VOCABULARY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3033822Z       "title": "THE DISPATCH_RESULTS ROW VOCABULARY IS MINTED WHOLE, INCLUDING THE ARM NOTHING EMITS YET (ruled 2026-08-27, on the TOOL_USE pattern). One closed outcome vocabulary covers every confirmation the funnel carries: DELIVERED, NO_PERCH, NOT_DELIVERED with the refusing exit code, and the seal-mint outcome and refusal arms. NO_PERCH IS NAMED BUT NOT EMITTED until the W5 lane's typed send-path return can distinguish it — today `cmd_send` answers 1 for a missing perch, an ambiguous target and a refused ring alike, so NOT_DELIVERED carries that coarse code as a TRANSITIONAL arm. Naming the unemitted arm now is the point, exactly as the event taxonomy named TOOL_USE without an emitter: a constant nothing produces costs nothing, while a second vocabulary minted later costs every consumer and turns W5 into a migration instead of a one-arm change. A ROW ALSO NEED NOT NAME A TARGET: a seal outcome is about text, not a recipient, so the target is optional and a consumer must not assume one.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3034180Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3034429Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3034686Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3034939Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3035191Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3035443Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3035706Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3035978Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3036234Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3036489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3036803Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3037066Z               "line": 746
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3037315Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3037572Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3037825Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3038077Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3038349Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3038601Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3038860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3039241Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3039565Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3039822Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3040075Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3040317Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3040580Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3040860Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3041129Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3041375Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3041629Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3041901Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3042164Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3042417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3042822Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3043089Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3043343Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3043591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3043925Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3044189Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3044444Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3044697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3045036Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3045298Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3045552Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3045843Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3050625Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3050911Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3051159Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3051402Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3051698Z       "id": "REQ-IO-DISPATCH-RESULTS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3055056Z       "title": "A SHORTFORM DISPATCH ACCUMULATES A PER-TARGET RESULT, AND THAT IS ITS ONLY CONFIRMATION CHANNEL (operator ruling 10). Each target of a parsed tag records what actually happened to it — delivered, or no perch — accumulated as the v1 DISPATCH_RESULTS category; the seal-mint outcomes and refusals of the next wave accumulate into the same category. RENDERING IS NOT THIS WAVE: the now-signal verb that surfaces these lands with #233, so this requirement delivers accumulation with no reader yet, deliberately — the same shape as the event bus shipping with one sink, and for the same reason, that the reader must cost a registration rather than a rework. No other confirmation channel may be added: an author learns what their dispatch did through the now-signal and nowhere else, so a dispatch must never grow its own bespoke echo, log line, or reply message as a substitute.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3055454Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3055710Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3056030Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3056282Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3056535Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3056803Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3057052Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3057326Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3057585Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3057838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3058158Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3058435Z               "line": 675
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3058683Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3059031Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3059289Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3059546Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3059813Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3060074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3060322Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3060660Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3060928Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3061180Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3061432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3061761Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3062029Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3062281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3062543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3062846Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3063113Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3063365Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3063622Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3063871Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3064190Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3064468Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3064730Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3064982Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3065233Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3065503Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3065770Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3066028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3066357Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3066628Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3066881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3067176Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3067506Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3067762Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3068009Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3068256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3068580Z               "path": "crates/spt-store/src/dispatchresults.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3068847Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3069171Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3069423Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3069667Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3069915Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3070154Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3070396Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3070681Z       "id": "REQ-IO-EVENT-ADAPTER-LOG",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3077164Z       "title": "ADAPTER-CONSUMABLE IO EVENTS LAND IN A PER-ENDPOINT APPEND-ONLY LOG REGISTERED AS A THIRD BUS SINK (releases#234, operator ruling 2). The funnel's claim was that a second reader costs a REGISTRATION and never a rework, and on the sink side that holds exactly as claimed — this consumer is one `bus.register` line in `default_bus`. THE READER IS FREE, THE STORE IS NOT, and this requirement is the honest half of that claim: neither existing sink writes a per-endpoint, ordered, cursorable surface — the shell-link sink spools per linked shell and the last-msg sink keeps two overwritten slots — so a delta-cursored poll needs a NEW DURABLE STORE, and that store is what this covers. EVERY ROW CARRIES ITS OWN MONOTONIC seq AS THE LINE'S KEY RATHER THAN AS A JSON FIELD: a row is `<seq>` TAB `<json>`, so a cursor scan parses an integer prefix and never the body, and the ordering key cannot become an accident of serialization field order. THE LOG'S seq AND THE DIGEST seq ARE DIFFERENT NUMBERS AND ARE SPELLED DIFFERENTLY (`seq` versus `digest_seq`), because the digest remains the content surface that a truncated payload points at and one name for two counters is a consumer following the wrong one. THE LOG IS BOUNDED PER ENDPOINT AND TRIMMED OLDEST-FIRST so that an adapter which stops polling cannot grow it without limit; the bound is a STATED CHOICE derived from a measured event rate rather than a guessed number, and the trim is amortized against a slack so an ordinary append is not a whole-file rewrite. APPENDS ARE SERIALIZED under an exclusive advisory lock on a stable sentinel, because the daemon publishes from several edges and two racing appends must not mint a colliding seq. A SINK FAILURE IS STILL ONLY A REPORT: this store may not become the first sink whose bad day reaches the operation it observes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3077589Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3077852Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3078109Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3078360Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3078611Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3078859Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3079202Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3079469Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3079736Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3079993Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3080279Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3080546Z               "line": 1183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3080795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3081049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3081385Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3081656Z               "line": 471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3081903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3082157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3082519Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3082791Z               "line": 425
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3083045Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3083293Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3083548Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3083803Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3084076Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3084333Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3084586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3084901Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3085167Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3085467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3085724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3086030Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3086292Z               "line": 388
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3086544Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3086799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3087105Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3087366Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3087619Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3087872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3088172Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3088436Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3088684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3089039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3089342Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3089628Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3089881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3090134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3090448Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3090711Z               "line": 326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3090965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3091216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3091521Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3091844Z               "line": 341
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3092097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3092345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3092660Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3092927Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3093175Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3093432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3093746Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3094013Z               "line": 413
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3094265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3094516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3094821Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3095141Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3095398Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3095645Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3095899Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3096148Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3096420Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3096682Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3096933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3097297Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3097564Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3097818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3098123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3098480Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3098746Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3099080Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3099325Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3099575Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3099835Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3100102Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3100360Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3100608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3100919Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3101176Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3101437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3101680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3101990Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3102258Z               "line": 642
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3102505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3102824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3103126Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3103387Z               "line": 656
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3103639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3103892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3104197Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3104460Z               "line": 670
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3104716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3104961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3105271Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3105581Z               "line": 699
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3105839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3106087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3106393Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3106660Z               "line": 725
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3106912Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3107169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3107459Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3107734Z               "line": 769
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3107977Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3108225Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3108520Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3108787Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3109116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3109359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3109659Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3109922Z               "line": 814
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3110169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3110414Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3110714Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3110967Z               "line": 830
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3111216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3111465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3111760Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3112094Z               "line": 856
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3112341Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3112594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3112884Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3113147Z               "line": 871
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3113399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3113651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3113957Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3114214Z               "line": 899
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3114466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3114715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3115067Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3115328Z               "line": 963
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3115584Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3115831Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3116085Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3116337Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3116586Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3116833Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3117109Z       "id": "REQ-IO-EVENT-BUS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3121104Z       "title": "THE IO EVENT FUNNEL IS CONSUMER-AGNOSTIC INTERNALLY: emitters publish to ONE bus and the bus fans out to registered sinks (emitters -> bus -> {shell-link, core consumers}), so the adapter-consumption work tracked as releases#234 lands as a NEW READER registering a sink and never as a funnel rework. No emitter names a consumer and no consumer is reachable except through the bus; a sink list with exactly one entry today is the point, because the second entry must cost a registration rather than a refactor. ONE SINK FAILURE NEVER SUPPRESSES ANOTHER: publish returns a per-sink outcome and a failing sink is reported and stepped over, never propagated as a publish failure — an IO event is an OBSERVATION, and an observation that aborts the operation it observes has become a control path, which is the defect class this funnel exists to avoid. Emission is best-effort against the emitting operation: no `api state` call, no send, and no delivery may fail, block, or change its exit because a sink failed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3121395Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3121652Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3121967Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3122229Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3122476Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3122738Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3122988Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3123269Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3123524Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3123782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3124096Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3124379Z               "line": 381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3124631Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3124880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3125185Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3125436Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3125707Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3125968Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3126216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3126526Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3126798Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3127054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3127303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3127603Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3127860Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3128105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3128347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3128646Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3128901Z               "line": 386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3129239Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3129493Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3129741Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3129989Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3130255Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3130512Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3130751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3131005Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3131270Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3131529Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3131853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3132159Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3132430Z               "line": 452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3132684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3132937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3133252Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3133524Z               "line": 467
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3133766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3134023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3134347Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3134718Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3134985Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3135248Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3135511Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3135755Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3136011Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3136258Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3136547Z       "id": "REQ-IO-EVENT-POLL-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3147874Z       "title": "spt api io-events IS THE DELTA-CURSORED POLL A HARNESS ADAPTER READS IO EVENTS THROUGH (releases#234; the operator DELEGATED the mechanics and CHOSE POLL over push). It answers with the rows the caller has not yet been shown and with nothing else. TWO CURSOR MODES OVER ONE ORDERING: `--session-id <sid>` keeps a per-session cursor exactly as `api now-signal` keeps per-session seen-sets, and `--after <seq>` lets a caller carry its own cursor exactly as `endpoint digest --after` already does; naming both is what keeps a stateless adapter and a session-keyed hook off two different verbs. THE CURSOR KEY IS THE AUTH SESSION ID AND NOT A SECOND FLAG BESIDE IT: the harness session is ONE identity, and a `--session` for the cursor sitting one character from a `--session-id` for the gate would be two ways to be wrong about it on a verb an adapter wires once; a token-authenticated caller has no session identity and uses `--after`. A POLL WITH NEITHER CURSOR IS REFUSED BY NAME (`IO_EVENTS_NO_CURSOR`, exit 2) RATHER THAN ANSWERED WITH SILENCE, because a caller who asked an unanswerable question must not read the answer as nothing having happened. A NEW SESSION'S FIRST POLL SEES NOTHING AND SEEDS ITS CURSOR SILENTLY — history is the digest's job, and replaying an unbounded backlog into a turn-boundary hook is the exact cost the now-signal's delta discipline exists to avoid, with EDGE_TRANSITIONS the standing precedent for seeding silently for that reason. PROVING THIS NEEDS THE SEEDED-EMPTY FIRST POLL ASSERTED BESIDE A NON-EMPTY SECOND ONE, because an assertion that the first poll is empty passes just as well against a verb that emits nothing ever. ALL SIX EMITTED KINDS ARE VISIBLE — USER_INPUT, AGENT_OUTPUT, MSG_IN, MSG_OUT, COMMUNE, COMMUNE_FAIL — and AN UNKNOWN KIND IS IGNORED RATHER THAN REFUSED, the same posture the now-signal category vocabulary takes toward a name it does not know. TOOL_USE STAYS UNEMITTED AND THIS VERB DOES NOT CHANGE THAT: measurement says the harness adapter is its natural emitter, which is a question back to deployah and then the operator and must not ride in on this verb. THE PAYLOAD BOUND IS THE 16KB CLASS WITH A truncated FLAG AND THE DIGEST POINTER, MATCHING THE SHELL FRAME AS A CHOICE AND NOT AS AN INHERITANCE — `IoEvent.payload` is deliberately unbounded at the bus layer and the cap belongs to the frame — so that one event reads identically through either transport and a consumer needing the whole body follows the pointer into the digest. THE POLL IS AUTHENTICATED THE WAY `api poll` IS, AND FOR THE SAME REASON: it hands back the session's VERBATIM user input and agent output, which is the payload class addressed to the endpoint's occupant rather than to whoever asks. This is a DELIBERATE DEPARTURE from its sibling reader `api now-signal`, which is ungated because it renders DERIVED summaries — a ten-word excerpt, a category count — and never a raw payload; the gate follows the content, not the verb family. Proof is the `--session-id` an adapter already passes to `api state`, or a capability token, so the gate costs a compliant adapter nothing.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3148270Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3148527Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3148799Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3149133Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3149391Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3149657Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3149913Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3150160Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3150431Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3150698Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3150952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3151232Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3151561Z               "line": 1185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3151815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3152063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3152409Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3152678Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3152926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3153180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3153560Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3153828Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3154080Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3154334Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3154581Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3154838Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3155104Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3155373Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3155625Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3155935Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3156202Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3156454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3156711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3157016Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3157279Z               "line": 245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3157531Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3157776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3158085Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3158348Z               "line": 325
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3158606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3158859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3159297Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3159574Z               "line": 635
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3159827Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3160076Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3160331Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3160581Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3160849Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3161107Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3161354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3161679Z               "path": "crates/spt/tests/io_events_poll_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3161959Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3162211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3162512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3162845Z               "path": "crates/spt/tests/io_events_poll_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3163105Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3163358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3163606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3163960Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3164226Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3164483Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3164731Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3164965Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3165224Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3165490Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3165750Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3165998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3166308Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3166576Z               "line": 416
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3166829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3167081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3167391Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3167662Z               "line": 476
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3167910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3168161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3168456Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3168776Z               "line": 498
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3169114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3169358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3169662Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3169914Z               "line": 511
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3170162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3170411Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3170712Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3170972Z               "line": 532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3171217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3171465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3171818Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3172081Z               "line": 548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3172334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3172582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3172892Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3173169Z               "line": 564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3173420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3173679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3173989Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3174252Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3174505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3174757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3175066Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3175329Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3175581Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3175831Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3176079Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3176333Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3176577Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3176831Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3177121Z       "id": "REQ-IO-EVENT-TAXONOMY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3181551Z       "title": "THE IO EVENT VOCABULARY IS CLOSED AND NAMED IN ONE PLACE: USER_INPUT, AGENT_OUTPUT, MSG_IN, MSG_OUT, COMMUNE, COMMUNE_FAIL, plus TOOL_USE which is NAMED IN THE TAXONOMY AND HAS NO EMITTER (operator ruling 3 — its unlock is a per-harness digest capability, and naming it now is what keeps a later emitter from minting a second spelling). IO FRAMES ARE COMMAND-CLASS under the shell channel taxonomy (operator ruling 7): discrete, durable, spooled — they ride the shellchan spool path and MUST NOT route through drivehub or activity_write, which are the ephemeral latest-wins machinery ADR-0048 decision 2 defines for ACTIVITY frames. Two frame classes share one stream and share NO machinery; a future reader must not be able to reach an IO frame through the drive hub. PAYLOAD IS BOUNDED AT 16KB-CLASS with an explicit `truncated` flag and a digest `seq` pointer, because the digest stays the content surface and the frame is the push signal: a consumer that needs the untruncated body follows the seq. Truncation is UTF-8 SAFE (cut on a character boundary, never mid-codepoint) and a truncated frame is still a valid frame.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3181859Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3182111Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3182368Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3182627Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3182894Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3183147Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3183399Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3183685Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3183941Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3184198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3184508Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3184774Z               "line": 380
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3185027Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3185278Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3185531Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3185784Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3186057Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3186319Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3186576Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3186884Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3187151Z               "line": 230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3187400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3187639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3187954Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3188273Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3188526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3188773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3189281Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3189542Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3189790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3190038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3190348Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3190605Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3190849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3191154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3191460Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3191722Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3191973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3192219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3192529Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3192792Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3193039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3193296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3193616Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3193882Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3194135Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3194389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3194692Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3194952Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3195200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3195452Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3195763Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3196024Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3196274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3196526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3196841Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3197102Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3197354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3197598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3197913Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3198227Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3198490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3198800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3199200Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3199473Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3199727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3199982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3200288Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3200555Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3200803Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3201057Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3201308Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3201561Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3201885Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3202152Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3202401Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3202657Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3202926Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3203183Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3203441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3203752Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3204018Z               "line": 496
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3204272Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3204519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3204829Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3205090Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3205346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3205589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3205904Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3206161Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3206413Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3206670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3206985Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3207252Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3207497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3207745Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3208053Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3208367Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3208620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3208863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3209283Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3209540Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3209793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3210033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3210340Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3210595Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3210843Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3211087Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3211392Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3211635Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3211873Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3212116Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3212412Z       "id": "REQ-IO-INGEST-STATE-PAYLOAD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3220362Z       "title": "THE BUSY/IDLE INGEST EDGE CARRIES AN OPTIONAL PAYLOAD, AND EMITTING IT NEVER TOUCHES THE IDLE-EDGE STAMP (doyle W1 rulings 1 and 2). `api state busy` carries the USER_INPUT payload and `api state idle` carries the AGENT_OUTPUT end-of-turn payload; the payload arrives on STDIN or via `--payload-file`, never as an inline argument (payloads are 16KB-class and an inline arg is the Windows command-length trap; `spt send` already reads bodies from stdin, so stdin is house precedent). SUPPLYING BOTH STDIN AND --payload-file IS AN IMMEDIATE NAMED REFUSAL — house style refuses ambiguity rather than guessing which the caller meant. THE PAYLOAD IS OPTIONAL AND ITS ABSENCE IS THE BACK-COMPAT ARM: a call with no payload behaves byte-for-byte as it does today and emits NO event, which is what lets every already-shipped adapter keep firing this verb on every hook across the release that lands this. THE DECOUPLING, which is the load-bearing decision: one IO event is emitted per PAYLOAD-CARRYING `api state` call, while `stamp_transition`'s edge-only rule is left byte-for-byte untouched. Binding it to the transition edge instead would mean an adapter that reports idle without ever reporting busy emits exactly ONE event for the life of the endpoint. The alternative of stamping every report is REFUSED BY NAME: ADR-0048 decision 3 anchors an idle countdown to the flip instant, and walking that instant forward on every hook fire is precisely the defect that decision exists to prevent, so a consumer countdown could never fire. Core does NOT dedupe calls — EXACTLY-ONCE SPAN REPORTING belongs to the adapter under the manifest IO-compliance declaration (respec'd releases#238, gated 2026-08-29): every reported payload span is reported exactly once across the turn, mid-turn spans and the closing remainder disjoint. The once-per-turn spelling this replaced was true only while end-of-turn was the sole AGENT_OUTPUT shape. A MID-TURN SPAN IS AN AGENT_OUTPUT REPORT ON THE BUSY ARM marked by the mid attribute — see REQ-IO-MIDTURN-SPAN, which owns that arm; this requirement keeps the payload plumbing and the decoupling.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3220686Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3220943Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3221208Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3221455Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3221737Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3221985Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3222243Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3222492Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3222758Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3223020Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3223267Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3223601Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3223861Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3224113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3224370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3224690Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3224956Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3225205Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3225467Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3225721Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3225979Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3226234Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3226560Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3226809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3227128Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3227390Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3227639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3227876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3228177Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3228439Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3228696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3229029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3229331Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3229655Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3229898Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3230146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3230441Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3230713Z               "line": 422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3230955Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3231199Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3231451Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3231700Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3231973Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3232235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3232493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3232817Z               "path": "crates/spt/tests/io_state_payload_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3233071Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3233318Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3233585Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3233851Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3234104Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3234375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3234640Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3234892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3235202Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3235469Z               "line": 870
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3235722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3235966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3236271Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3236534Z               "line": 879
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3236789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3237040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3237411Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3237679Z               "line": 891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3237927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3238180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3238485Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3238751Z               "line": 910
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3239076Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3239338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3239647Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3239909Z               "line": 920
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3240219Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3240467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3240778Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3241035Z               "line": 930
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3241292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3241540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3241854Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3242123Z               "line": 950
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3242376Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3242628Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3242876Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3243124Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3243368Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3243626Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3243907Z       "id": "REQ-IO-MIDTURN-SPAN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3252229Z       "title": "MID-TURN AGENT OUTPUT IS AN AGENT_OUTPUT EVENT CARRYING A mid ATTRIBUTE, NOT A NEW KIND (operator ruling, releases#238 comment 5461768445; design gated 2026-08-29). An adapter reports a span while the agent is BUSY, so the span arrives on the busy arm of api state and must be typed AGENT_OUTPUT there: state_io_kind gains a THIRD ARGUMENT and stays pure — busy+payload without the flag is USER_INPUT unchanged, busy+payload WITH it is AGENT_OUTPUT with mid set, idle+payload is AGENT_OUTPUT unchanged, and a payload-free call still emits nothing. THE FLAG AT IDLE IS A CONTRADICTION AND IS REFUSED BY NAME (STATE_MID_ON_IDLE), as is the flag with no payload; both are argument validation refused where STATE_PAYLOAD_AMBIGUOUS is refused, so the funnel's rule that an observation can never fail the operation it observes is untouched. THE ATTRIBUTE IS PRESENT-ONLY, spelled mid=1 on the frame in the house form truncated already uses, a skip-when-false row field, and a poll field emitted only when set; an enum spelling was refused because an enum invites an ORDINAL, and core cannot know a span's ordinal without modelling turn assembly, which the funnel refuses. THE ATTRIBUTE MUST BE MINTED AT EVERY SITE BECAUSE THE #234 READER DOES NOT PASS UNKNOWN ATTRIBUTES THROUGH — measured at sha 786d2381: IoLogRow carries no flatten and no deny_unknown_fields so serde ACCEPTS AND DISCARDS an unknown key, and render_json is an explicit per-field allowlist projection, so an unretained field could never reach an adapter. The attr-passthrough precedent is a fact about the EVENT wire, not about this reader. AN OLDER READER IS NOT VERSION-GATED: it reads a mid row as an ordinary end-of-turn report and therefore OVER-COUNTS TURNS, which is acceptable because nothing emits a span unless an adapter asks, a new kind is exactly what the operator ruled against, and the body an old reader gets is real agent output verbatim and in order. THAT NO-GATE ARGUMENT RESTS ENTIRELY ON UNKNOWN-FIELD TOLERANCE, so the forward-compat unit is REQUIRED rather than optional (gater rider, 2026-08-29): a stored row carrying a field this binary does not know must be READ, not skipped — unpinned, a later deny_unknown_fields would make parse_line answer None and the reader SKIP the row in silence, turning a forward-compatible record into a quiet poll.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3252669Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3252922Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3253179Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3253431Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3253693Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3253942Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3254200Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3254448Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3254792Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3255058Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3255309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3255641Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3255898Z               "line": 341
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3256152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3256400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3256709Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3256985Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3257238Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3257495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3257857Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3258127Z               "line": 717
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3258375Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3258627Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3258874Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3259213Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3259475Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3259738Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3259996Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3260302Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3260569Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3260823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3261076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3261381Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3261650Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3261898Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3262160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3262465Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3262732Z               "line": 367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3262988Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3263239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3263558Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3263825Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3264135Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3264388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3264707Z               "path": "crates/spt-proto/src/ioevent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3264973Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3265217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3265474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3265780Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3266045Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3266301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3266557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3266872Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3267187Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3267450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3267693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3268004Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3268266Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3268516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3268757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3269139Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3269401Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3269645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3269889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3270189Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3270446Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3270693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3270946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3271237Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3271499Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3271756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3272013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3276832Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3277137Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3277390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3277643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3277967Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3278230Z               "line": 256
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3278483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3278740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3279144Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3279500Z               "line": 758
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3279767Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3280019Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3280271Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3280524Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3280796Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3281054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3281307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3281646Z               "path": "crates/spt/tests/midturn_span_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3281915Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3282168Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3282411Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3282726Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3282984Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3283256Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3283517Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3283775Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3284089Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3284359Z               "line": 572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3284616Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3284864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3285174Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3285440Z               "line": 599
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3285693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3285941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3286246Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3286515Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3286767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3287022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3287321Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3287583Z               "line": 512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3287827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3288070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3288375Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3288636Z               "line": 1089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3289039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3289285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3289603Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3289859Z               "line": 1111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3290113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3290355Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3290656Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3290917Z               "line": 1131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3291160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3291399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3291704Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3292028Z               "line": 1162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3292282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3292537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3292837Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3293104Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3293367Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3293615Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3293864Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3294121Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3294373Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3294620Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3294901Z       "id": "REQ-IO-MSG-EDGES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3298271Z       "title": "MSG_IN AND MSG_OUT ARE ACCOUNTED AT THE DELIVERY EDGES CORE ALREADY OWNS, not at a new interception point: MSG_OUT publishes where the send path commits an outbound message and MSG_IN publishes where core delivers or injects an inbound one, so the funnel observes the edges rather than growing a parallel notion of what a message is. THE INGEST-SCOPE BOUNDARY IS ESTABLISHED HERE EVEN THOUGH THE PARSERS LAND LATER (operator ruling 11): a received message body is INGEST DATA and never a parse surface — no MSG_IN body may fire a dispatch or a ceremony at the receiver, and W1 is where MSG_IN gets published in a shape that keeps the later parsers structurally unable to read it as agent output. Emission is best-effort and never alters delivery: a message is delivered, spooled, or refused exactly as it is today regardless of what the funnel does with the observation.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3298571Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3298891Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3299235Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3299488Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3299740Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3299994Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3300255Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3300519Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3300785Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3301034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3301354Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3301630Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3301884Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3302203Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3302451Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3302712Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3302978Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3303246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3303499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3303814Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3304080Z               "line": 755
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3304342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3304595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3304905Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3305171Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3305419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3305669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3305974Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3306241Z               "line": 1063
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3306498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3306747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3307047Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3307311Z               "line": 11225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3307563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3307805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3308090Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3308351Z               "line": 11635
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3308656Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3308904Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3309224Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3309481Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3309743Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3310000Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3310244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3310596Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3310852Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3311103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3311364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3311703Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3312018Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3312266Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3312529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3312871Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3313139Z               "line": 573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3313397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3313648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3314011Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3314277Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3314529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3314783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3315136Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3315407Z               "line": 919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3315661Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3315917Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3316167Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3316420Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3316692Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3316954Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3317207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3317527Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3317793Z               "line": 1223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3318045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3318312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3318617Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3318888Z               "line": 1279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3319235Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3319559Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3319812Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3320060Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3320307Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3320564Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3320870Z       "id": "REQ-IO-SEAL-SHORTFORM-CEREMONY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3325400Z       "title": "A `;;` MINT RUNS THE EXISTING SEAL CEREMONY, OFF THE HOOK PATH, AND ITS REFUSAL IS THE ONE ALREADY SHIPPED (operator ruling 15 + the async rider ruled 2026-08-27). The ceremony is `Brain::seal_ceremony` — the same TOTP human-presence path `spt seal mint` runs; no second ceremony, no second refusal. WITH NO CAPABLE CONTROLLER ATTACHED the ceremony already answers an immediate named `SEAL_NO_CEREMONY_SURFACE` with no pending state and no timeout queue, and W4 ROUTES that outcome into DISPATCH_RESULTS rather than minting a rival refusal beside it. INGEST-FIRED MINTS ARE ASYNC-DISPATCHED: the `api state` call returns immediately and the ceremony runs off the hook path, because that ceremony blocks for a human-scale duration and an adapter hook that blocks on a human overlay is the wedge class this project has refused twice already (the `--payload-stdin` sniff and the pump deadlines). THE TWO IMMEDIACIES ARE DIFFERENT AND BOTH HOLD: `immediate, never queued` pins CEREMONY SEMANTICS — nothing waits for a controller to show up — while the hook's return is PLUMBING, so an async hook does not weaken ruling 15. A reader must be able to see that distinction in the code rather than rediscover it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3325715Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3325967Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3326226Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3326477Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3326727Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3326980Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3327238Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3327486Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3327767Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3328092Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3328343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3328668Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3328930Z               "line": 735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3329281Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3329551Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3329809Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3330067Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3330334Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3330591Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3330839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3331148Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3331487Z               "line": 292
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3331744Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3331991Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3332305Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3332567Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3332823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3333081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3333391Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3333653Z               "line": 374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3333907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3334165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3334465Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3334725Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3334973Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3335226Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3335475Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3335726Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3335998Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3336266Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3336513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3336842Z               "path": "crates/spt/tests/seal_shortform_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3337108Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3337359Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3337611Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3337859Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3338112Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3338389Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3338652Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3338908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3339348Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3339615Z               "line": 1011
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3339865Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3340121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3340426Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3340689Z               "line": 1065
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3340941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3341194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3341504Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3341770Z               "line": 1077
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3342076Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3342328Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3342579Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3342836Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3343083Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3343336Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3343631Z       "id": "REQ-IO-SEAL-SHORTFORM-GRAMMAR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3351483Z       "title": "THE `;;` SEAL-MINT SHORTFORM PARSES UNDER THE SAME SUPPRESSION GRAMMAR AS `@<…@>` (operator rulings 8 and 12-14). Pairs parse GREEDY LEFT-TO-RIGHT and each pair mints its OWN ceremony, run sequentially — two pairs in one turn are two seals over two texts, never one seal over the span between them. AN EMPTY PAIR `;;;;` IS FULLY IGNORED: no ceremony, and NO REFUSAL either, because an author who typed nothing between the markers asked for nothing and a refusal would be noise about a non-event. AN ODD TRAILING `;;` IS THE BARE CASE and seals ALL TEXT AFTER IT THROUGH END OF OUTPUT, with the text between the last completed pair and the bare marker left UNTOUCHED — the bare marker is a decision to seal the remainder, not a retroactive claim on what preceded it. Pair parsing runs FIRST and the bare case is what an odd marker becomes after pairing, which is the only order under which `;;a;; tail ;;rest` has one pair and one bare seal rather than an ambiguous three-marker soup. Detection covers AGENT OUTPUT and USER INPUT alike (CONTEXT.md): either author path mints, because the user typing the directive verbatim and the agent drafting it are the same intent. THE BARE CASE IS REACHABLE ONLY AT THE TURN-CLOSE INGEST (releases#238, design gated 2026-08-29): mid-turn, END OF OUTPUT names text the parser HAS NOT SEEN, so a per-chunk bare seal would silently seal a SHORTER region than the author asked for — a correctness failure indistinguishable from success in the output. In a mid span an odd trailing marker therefore mints NOTHING and is refused by name as SEAL_BARE_MIDTURN, routed into the shipped DISPATCH_RESULTS surface rather than a rival refusal beside it, with the refusal text naming the fix (close the pair, or place the bare marker in the turn's closing output). PAIRS are self-delimiting — both ends present in the chunk — and keep minting mid-turn exactly as ruled, which is what honours the operator's parse-all-agent-output ruling. At the idle turn-close ingest ruling 14 stands verbatim, because there end-of-output is text the parser holds in full. This narrowing costs core ZERO cross-call state, which is what keeps the no-turn-assembly boundary free of an exception.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3351916Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3352173Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3352427Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3352675Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3352930Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3353176Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3353430Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3353667Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3353939Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3354206Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3354459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3354778Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3355045Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3355295Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3355542Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3355793Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3356046Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3356323Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3356580Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3356886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3357219Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3357486Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3357743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3357990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3358303Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3358570Z               "line": 355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3358827Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3359152Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3359409Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3359665Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3359990Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3360262Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3360510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3360839Z               "path": "crates/spt/tests/seal_shortform_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3361105Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3361360Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3361612Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3361860Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3362119Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3362381Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3362644Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3362891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3363210Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3363472Z               "line": 453
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3363727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3363970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3364290Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3364557Z               "line": 473
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3364808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3365062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3365377Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3365653Z               "line": 492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3365897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3366150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3366520Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3366787Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3367039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3367288Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3367598Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3367860Z               "line": 513
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3368104Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3368351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3368659Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3368924Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3369262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3369567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3369877Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3370141Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3370375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3370628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3370933Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3371199Z               "line": 545
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3371450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3371693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3371997Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3372260Z               "line": 1131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3372511Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3372759Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3373032Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3373289Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3373538Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3373795Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3374074Z       "id": "REQ-IO-SEND-VERDICT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3380634Z       "title": "THE SEND PATH RETURNS A NAMED OUTCOME, NOT AN EXIT CODE, AND THAT IS WHAT POPULATES NO_PERCH (booked as the W5 prerequisite, IO-PARSER #22). Before this, cmd_send_with_body answered 1 for a missing perch, a refused admission gate, an ambiguous target, an unconfirmed WAN hop and an empty body alike, so the DISPATCH_RESULTS accumulator could only record the coarse transitional NOT_DELIVERED arm and the ruled delivered/no-perch split was NOT DERIVABLE AT ALL — a report this lane handed the gater by name rather than approximating. The send path therefore names its own outcomes: DELIVERED covers SENT and QUEUED alike (both mean the message is the target's problem now), NO_PERCH covers every absence arm across all three delivery cascades — the local perch that is not listening, the WAN leg answering no-perch-remote, and the WAN registry answering not-found — and REFUSED carries the exit code for every outcome that is a refusal rather than an absence. THE EXIT CODE IS DERIVED FROM THE VERDICT AND NEVER THE OTHER WAY AROUND: the CLI wrapper maps the verdict to its process code so that the operator-facing contract is unchanged to the byte, while the in-process caller reads the name. AN ABSENCE IS NOT A REFUSAL, AND THE OPPOSITE READING IS THE ONE THIS EXISTS TO KILL: an author whose peer simply is not listening must not be told their message was refused, because those two facts call for different next actions. NO ROW ALREADY WRITTEN IS MIGRATED — the store is append-only, so previously-written NOT_DELIVERED rows stay exactly as written and the arm merely narrows for rows written from here on.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3380968Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3381231Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3381483Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3381735Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3381987Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3382244Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3382519Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3382790Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3383076Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3383343Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3383634Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3383905Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3384168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3384488Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3384754Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3385023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3385275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3385648Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3385919Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3386191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3386463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3386759Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3387026Z               "line": 11310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3387309Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3387559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3387883Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3388145Z               "line": 11328
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3388398Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3388708Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3389070Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3389342Z               "line": 11346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3389605Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3389856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3390150Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3390416Z               "line": 11394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3390664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3390922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3391213Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3391480Z               "line": 11683
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3391733Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3391980Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3392271Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3392533Z               "line": 11772
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3392790Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3393036Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3393288Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3393545Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3393818Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3394089Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3394338Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3394600Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3394867Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3395133Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3395384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3395703Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3395970Z               "line": 1828
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3396217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3396470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3396837Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3397109Z               "line": 1859
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3397357Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3397610Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3397864Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3398152Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3398452Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3398705Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3399063Z       "id": "REQ-IO-SHORTFORM-DISPATCH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3402564Z       "title": "CORE PARSES `@<targets body @>` OVER INGESTED AGENT OUTPUT AND USER INPUT ONLY, AND DISPATCHES THROUGH THE NORMAL SEND PATH (operator rulings 10 and 11). The grammar: `@<` opens, comma-separated target ids run to the first space, the body runs to the first `@>`. THE INGEST-SCOPE BOUNDARY IS ABSOLUTE AND STRUCTURAL: parsers run over USER_INPUT and AGENT_OUTPUT ingest only and NEVER over a MSG_IN body — a message that ARRIVES carrying a live tag can never fire a dispatch or a ceremony at its receiver, because a peer's text is data about a tag, not an instruction to send one. That boundary is held by which funnel path the body traverses rather than by a kind check a later edit could widen. Dispatch reuses the delivery path core already owns — no parallel send machinery, no second notion of what delivery means — so admission, sealing, spooling and refusal behave exactly as they do for an operator-typed send.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3402860Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3403112Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3403368Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3403629Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3403881Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3404134Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3404392Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3404635Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3404903Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3405165Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3405436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3405821Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3406099Z               "line": 598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3406348Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3406602Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3406854Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3407107Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3407383Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3407640Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3407893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3408207Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3408471Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3408780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3409118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3409480Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3409738Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3409996Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3410242Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3410495Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3410748Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3411019Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3411279Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3411536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3411884Z               "path": "crates/spt/tests/shortform_dispatch_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3412146Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3412400Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3412643Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3412896Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3413144Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3413410Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3413672Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3413924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3414256Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3414524Z               "line": 304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3414776Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3415023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3415333Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3415595Z               "line": 316
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3415853Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3416112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3416485Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3416751Z               "line": 326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3416999Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3417246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3417551Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3417819Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3418067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3418321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3418635Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3418897Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3419224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3419549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3419868Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3420126Z               "line": 364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3420378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3420627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3420946Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3421214Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3421464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3421719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3422025Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3422297Z               "line": 1176
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3422541Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3422789Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3423035Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3423284Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3423532Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3423781Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3424067Z       "id": "REQ-IO-SHORTFORM-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3427979Z       "title": "SHORTFORM IS ENABLED PER-ADAPTER, ONLY ON A MANIFEST IO-COMPLIANCE DECLARATION (operator ruling 9), AND A DECLARING ADAPTER MAY STILL OPT OUT (ruling 8). Absent the declaration core parses NOTHING for that adapter, which is what makes the migration safe: every adapter shipping its own parser today keeps parsing, alone, until its own release declares compliance and deletes the local parser in the same change — so no release exists in which both parse the same text and dispatch it twice. THE DEFAULT IS OFF AND THAT IS LOAD-BEARING: a default-on core would double-fire against every already-shipped adapter the moment core upgraded, which is precisely the window ruling 9 forbids. The manifest fields are additive and N-1-safe (absent in older manifests, omitted from serialization when unset), so an older core reading a newer manifest and a newer core reading an older one both behave as they did before. Core owns the field and the gating; the handshake with each adapter's own release is the gater's boundary, not this requirement's.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3428369Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3428637Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3428890Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3429210Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3429491Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3429741Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3429999Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3430262Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3430534Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3430796Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3431057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3431392Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3431659Z               "line": 442
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3431916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3432158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3432467Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3432729Z               "line": 652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3432980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3433233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3433515Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3433777Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3434031Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3434283Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3434535Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3434801Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3435067Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3435334Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3435581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3435963Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3436230Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3436487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3436744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3437064Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3437335Z               "line": 1138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3437587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3437842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3438143Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3438414Z               "line": 470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3438667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3439067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3439387Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3439678Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3439931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3440188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3440489Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3440755Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3441012Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3441265Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3441518Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3441780Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3442043Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3442310Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3442561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3442906Z               "path": "crates/spt/tests/shortform_dispatch_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3443164Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3443422Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3443675Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3443923Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3444185Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3444456Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3444718Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3444967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3445287Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3445556Z               "line": 2977
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3445874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3446126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3446451Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3446722Z               "line": 2987
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3446976Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3447228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3447538Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3447811Z               "line": 2997
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3448062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3448316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3448631Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3449023Z               "line": 3007
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3449289Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3449546Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3449799Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3450049Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3450301Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3450553Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3450857Z       "id": "REQ-IO-SUPPRESSION-GRAMMAR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3454297Z       "title": "ONE SUPPRESSION GRAMMAR, CORE-OWNED, SHARED BY EVERY SHORTFORM (operator ruling 8). A shortform marker inside an inline backtick span or a fenced code block is a QUOTATION and fires nothing — that is how an agent writes about a tag without dispatching one, and how a code sample containing a marker stays a code sample. The grammar lives in ONE place and is applied by every shortform reader: the `@<…@>` parser of this wave and the `;;` seal-mint of the next, so the two can never disagree about what is quoted. A second spelling of suppression is the defect this requirement exists to prevent — an author who learns the rule from one surface must not be surprised by the other. The masking is computed over the raw text before any marker scan, so a marker is either inside a suppressed region or it is live, never both, and nesting is resolved by the outer region: a backtick span inside a fenced block is simply more fenced content.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3454588Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3454850Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3455108Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3455359Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3455684Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3455940Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3456196Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3456459Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3456720Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3456972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3457282Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3457550Z               "line": 630
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3457797Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3458061Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3458318Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3458573Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3458900Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3459234Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3459486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3459811Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3460078Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3460331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3460585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3460900Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3461157Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3461403Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3461656Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3461904Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3462157Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3462433Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3462695Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3462943Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3463196Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3463473Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3463728Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3463979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3464298Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3464556Z               "line": 374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3464814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3465057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3465372Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3465697Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3465954Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3466201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3466514Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3466784Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3467033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3467285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3467596Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3467866Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3468105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3468405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3468710Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3469048Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3469305Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3469551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3469862Z               "path": "crates/spt-proto/src/shortform.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3470118Z               "line": 423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3470371Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3470614Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3470863Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3471111Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3471354Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3471596Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3471905Z       "id": "REQ-IPC-DEADLINE-UNHONORABLE-REFUSED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3483601Z       "title": "A BRAIN-IPC READ HANDED A DEADLINE ITS CARRIER CANNOT HONOR REFUSES BY NAME AT THE READ PRIMITIVE, never silently unbounded. `Brain::read_frame_until` takes `deadline: Option<Instant>` and dispatches on the carrier: the `Split` (pump) arm honors it as a total-wait `recv_timeout` on the remaining budget, and the blocking `Whole` arm CANNOT honor it at all — a timeout there would have to abandon a half-read frame, which is a desynced carrier, and that is precisely why REQ-HAZARD-PUMP-IPC-DEADLINE built the reader-thread carrier rather than reaching for a socket timeout (interprocess on Windows named pipes has no portable read timeout and its `set_nonblocking` corrupts mid-stream — measured at that requirement). So the fix is NOT to make the Whole arm bounded; the fix is to stop the Whole arm from ACCEPTING a bound it will not keep. Pre-fix it dropped the parameter on the floor and returned a blocking read, so a caller that asked for a bounded read got an unbounded one WITH NO DIAGNOSTIC — the caller's own deadline was the thing that vanished. THE INVARIANT IS TWO-SIDED AND BOTH SIDES ARE LOAD-BEARING: an ABSENT deadline STAYS ABSENT (the ordinary blocking read on a `Whole` carrier is untouched, and no default bound is fabricated for it — the absent-is-not-zero shape ruled on releases#201), while a PRESENT deadline on a carrier that cannot honor it becomes a NAMED, DISTINCT error naming the carrier arm and the remedy. THIS MOVES AN EXISTING RULE TO THE SEAM EVERY VERB CROSSES rather than inventing one: `digestlink::refuse_unbounded_carrier` already refuses a `Whole` brain for the digest-pull verb, and its own doc comment records why a comment was not enough — 'it already fooled one implementation of this very function'. One verb was guarded; every other deadline-taking verb (`read_event_until`, `broker_image_version_until`, `read_controller_event_resuming_until`, `read_peer_reply_until`) reached the same primitive unguarded, which is the declare-vs-enforce shape: the rule was declared in three doc comments and enforced at one call site. AT c62904e7 NO PRODUCTION CALLER PASSES A DEADLINE ON A WHOLE CARRIER — the rc pump, the peer pump and the digest pull all build `cold_start_pump`, and the two deadline-aware wrappers document that production passes `None` — so this is a latent unbounded read one construction away, filed as such rather than as a field incident. Gate: impl — the `Whole` arm of `read_frame_until` returns the named refusal for `Some(deadline)` and the unchanged blocking read for `None`, plus the one-line amendment at `refuse_unbounded_carrier` recording that the primitive now enforces what its comment used to only warn; int — three carrier arms measured together, because any one of them alone is satisfiable by a wrong fix: `Whole`+deadline must RETURN (the witnessed red, which pre-fix blocks to its kill bound), `Split`+deadline must STILL time out at its deadline (the positive control a blanket refusal would break), and `Whole`+`None` must still round-trip a real request (the negative control against a fabricated default). Kin REQ-HAZARD-PUMP-IPC-DEADLINE (the carrier split this protects) and REQ-DIGEST-CROSS-NODE-PULL (the one verb that guarded itself).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3484015Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3484269Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3484580Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3484824Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3485080Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3485337Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3485615Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3485882Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3486134Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3486391Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3486653Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3486925Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3487174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3487499Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3487759Z               "line": 2450
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3488013Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3488257Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3488505Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3488758Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3489107Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3489374Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3489631Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3489985Z               "path": "crates/spt-daemon/tests/brain_read_deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3490249Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3490504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3490763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3491106Z               "path": "crates/spt-daemon/tests/brain_read_deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3491367Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3491621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3491882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3492222Z               "path": "crates/spt-daemon/tests/brain_read_deadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3492551Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3492808Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3493059Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3493322Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3493574Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3493842Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3494108Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3494360Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3494609Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3494867Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3495115Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3495423Z       "id": "REQ-JOIN-DEFERRED-ELEVATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3499551Z       "title": "W2 (JOIN-TRUTH, operator UX ruling verbatim): 'if --code was not supplied, don't spawn the elevated subnet-join window until a target machine is discovered → just in time for the code prompt.' When --code is ABSENT and the process is UNELEVATED, run the name prompt + ALREADY_MEMBER check + ensure_daemon + the MEET phase (brain.pair_meet) UNELEVATED; only on MetMember spawn the elevated window via the EXISTING try_auto_elevate machinery (the elevated re-run re-executes the join flow — its second meet is cheap, the member is proven present). A FAILED search must NEVER show a UAC/sudo/pkexec prompt. The --code path is UNCHANGED (gate-first, one-shot). The unelevated phase performs ZERO trust mutation — meet is pre-trust per REQ-JOIN-TWO-PHASE/ADR-0030. RULED OUT (doyle): cross-elevation hold-session adoption (passing the daemon-held pair session_id into the elevated process) — a new security seam we don't need; the elevated re-run re-meets instead. The elevation gate MOVES from command-entry to the enrollment boundary; discovery is read-only pre-trust.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3499857Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3500109Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3504892Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3505178Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3505431Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3505793Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3506045Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3506319Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3506591Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3506848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3507220Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3507487Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3507750Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3507993Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3508247Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3508499Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3508759Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3509172Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3509424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3509720Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3509979Z               "line": 15261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3510227Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3510465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3510760Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3511027Z               "line": 15279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3511274Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3511521Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3511767Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3512020Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3512286Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3512550Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3512793Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3513041Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3513307Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3513569Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3513817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3514113Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3514380Z               "line": 34249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3514627Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3514884Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3515142Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3515390Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3515635Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3515887Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3516177Z       "id": "REQ-JOIN-DIAGNOSTICS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3520018Z       "title": "`spt subnet join` never fails SILENTLY (ADR-0030; the field incident showed no output at all). (a) LIVE progress during the meet (replace the one-shot \"Searching…\" cli.rs:6268 with periodic elapsed/deadline) so silence ≠ hang; (b) DETAILED failure on meet-exhaustion — rendezvous candidates + families attempted (IPv4/IPv6) + relay-vs-direct + the last concrete error — surfaced BEFORE any code prompt (a dead subnet must not make the user fetch a code); connect_seed_holder (pairhost.rs:437) and dial_via_rendezvous (meet.rs:281) currently swallow per-attempt errors — thread the last error up with attempt context; (c) PROPAGATE the terminal event — brain.rs:1024 `_ => continue` must deliver a daemon NoSeedHolder/PairFail to the CLI as a printed error (this is WHY the user saw nothing); (d) `--verbose`/`SPT_LOG` discovery TRACE (per-probe derived id, discovery path mDNS/n0-DNS/relay, per-family timeouts), opt-in — no such knob exists today. (next milestone)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3520323Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3520590Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3520848Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3521111Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3521360Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3521616Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3521862Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3522133Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3522395Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3522642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3522981Z               "path": "docs/adr/0030-robust-wan-subnet-join.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3523248Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3523500Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3523758Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3524006Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3524269Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3524546Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3524805Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3525058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3525373Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3525636Z               "line": 1842
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3525950Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3526200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3526524Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3526781Z               "line": 586
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3527036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3527282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3527597Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3527869Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3528117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3528365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3528645Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3529057Z               "line": 15435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3529304Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3529557Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3529799Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3530051Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3530321Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3530578Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3530826Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3531074Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3531337Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3531600Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3531846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3532161Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3532422Z               "line": 1054
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3532669Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3532911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3533198Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3533455Z               "line": 34130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3533707Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3533951Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3534195Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3534432Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3534685Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3534923Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3535201Z       "id": "REQ-JOIN-TWO-PHASE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3539730Z       "title": "`spt subnet join` is two-phase (meet-before-code) so the entered code is FRESH at the ceremony regardless of discovery time (ADR-0030). The meet selector is the PUBLIC `(subnet-name, TOTP-epoch)` (rendezvous_token = SHA256(domain ‖ name ‖ totp_step)); the secret TOTP-code is the SPAKE2 password ONLY, never a discovery input — so the code is collected AFTER a member is found. Extend the brain.pair_join event stream (brain.rs:1009): CLI PairMeetReq{subnet} → daemon meets (name, current-epoch) resolving the seed-holder's REAL stable pairing address → MetMember event → CLI prompts the code (cli.rs cmd_subnet_join :6236) → PairCodeSubmit{code} → daemon dials the held real-address on SPT_PAIR_ALPN + SPAKE2 → PairJoined/PairFail. Daemon holds the real-address between phases, bounded by a 5-MINUTE wait-for-code timeout; a wrong-code retry re-runs the CEREMONY ONLY against the held address (no re-search). The non-interactive `--code` path stays one-shot (no prompt; relies on REQ-NET-FAMILY-GATE fast discovery, fails loudly per REQ-JOIN-DIAGNOSTICS on staleness). Security unchanged — the meet is pre-trust/unauthenticated (SPT_PAIR_MEET_ALPN); auth stays in SPAKE2. (next milestone)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3540044Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3540303Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3540554Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3540794Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3541048Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3541291Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3541540Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3541792Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3542049Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3542311Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3542551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3542884Z               "path": "docs/adr/0030-robust-wan-subnet-join.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3543140Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3543394Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3543642Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3543882Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3544135Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3544397Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3544654Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3544897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3545264Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3545526Z               "line": 1842
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3545775Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3546026Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3546326Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3546588Z               "line": 1866
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3546831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3547099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3547413Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3547672Z               "line": 9310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3547968Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3548218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3548531Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3548788Z               "line": 9362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3549122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3549365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3549675Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3549937Z               "line": 1506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3550187Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3550439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3550749Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3551009Z               "line": 462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3551255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3551508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3551823Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3552090Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3552332Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3552585Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3552828Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3553077Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3553345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3553599Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3553846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3554160Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3554418Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3554652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3554938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3555257Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3555597Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3555848Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3556091Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3556340Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3556591Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3556853Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3557105Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3557373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3557697Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3557964Z               "line": 10262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3558218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3558461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3558812Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3559158Z               "line": 1942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3559463Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3559710Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3559963Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3560217Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3560464Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3560718Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3561009Z       "id": "REQ-JOIN-VERBOSE-CLOCK",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3563731Z       "title": "W2/D4 (JOIN-TRUTH): the JOINER side is no longer blind to its own ceremony clock — `spt subnet join --verbose` prints the joiner's derived TOTP step, the applied offset seconds, and the NTP correction state (corrected / uncorrected) per meet sweep; the same triple folds into `meet_failure_detail` so the NO_SEED_HOLDER verbose block carries it. ROOT: diagnosing enlyzeam required shipping a compiled probe over ssh because the member logs PAIR_MEET_UP step=N but the joiner surfaces nothing about its OWN step/offset — the exact asymmetry that hid D1-D3. Extends REQ-JOIN-DIAGNOSTICS's --verbose without a new knob. CLI help changes → xtask docs gen, no internal REQ codes in clap /// (docs-token gate).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3564018Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3564274Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3564591Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3564834Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3565096Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3565355Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3565636Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3565908Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3566157Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3566413Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3566675Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3566937Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3567190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3567518Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3567843Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3568096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3568347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3568672Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3569031Z               "line": 564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3569281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3569551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3569861Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3570128Z               "line": 586
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3570376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3570629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3570958Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3571219Z               "line": 129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3571477Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3571734Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3571993Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3572244Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3572518Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3572780Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3573033Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3573296Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3573558Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3573825Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3574072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3574392Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3574658Z               "line": 1054
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3574914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3575171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3575486Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3575824Z               "line": 1088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3576073Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3576324Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3576573Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3576830Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3577074Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3577322Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3577587Z       "id": "REQ-KICK-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3580950Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3581247Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3581494Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3581741Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3581999Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3582242Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3582492Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3582736Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3582992Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3583255Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3583517Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3583766Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3584037Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3584299Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3584546Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3584851Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3585096Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3585351Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3585620Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3585874Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3586122Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3586436Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3586694Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3586942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3587194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3587476Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3587786Z               "line": 1522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3588029Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3588281Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3588533Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3588776Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3589129Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3589382Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3589630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3589935Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3590204Z               "line": 1166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3590449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3590700Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3590947Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3591191Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3591459Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3591710Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3591958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3592263Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3592525Z               "line": 627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3592770Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3593018Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3593263Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3593504Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3593753Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3593996Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3594282Z       "id": "REQ-KNOCK-ANSWER-RECEIPT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3602742Z       "title": "A CROSS-NODE APPROVAL SENDS AN ANSWER RECEIPT BACK TO THE KNOCKER'S NODE, and that receipt is the only thing that consumes a knocker-local `--mutual` pre-authorization. Pre-auths are node-local BY DESIGN and stay so: nobody writes another endpoint's rules, so the knocker states its own conditional intention on its own side and its own daemon writes the reverse rule when the answer is proven. As shipped the only consumer runs inside the APPROVER's node against the APPROVER's store, so for every cross-node knock `armed_mutual` is None at the approver and the knocker's record dangles forever -- the seam CONTEXT.md's mutual-whitelisting entry already names ('written by their daemon at answer-receipt, keyed to the knock's correlation id and the node-proven answer') simply does not exist. THE RECEIPT IS ITS OWN KIND-TAGGED WIRE FAMILY MEMBER, on the `knockmsg`/`redeemmsg` precedent and for the identical reason: UNKNOWN FIELDS DECODE FINE, so a receipt smuggled as a field on an existing record would be ACCEPTED and MISREAD by an N-1 daemon, and misread is worse than dropped. A new kind resolves to the unknown family and drops clean. NODE-PROVEN OR IT CONSUMES NOTHING: the receipt's origin node is transport truth from the handshake identity, never a claimed field, and the consumed pre-auth is keyed to the knock's correlation id so a replayed receipt writes the reverse rule exactly once. AN UNPROVEN OR UNKNOWN RECEIPT IS NOT A REFUSAL AND NOT AN ANSWER -- it leaves the pre-authorization armed, because a conditional intention that silently expired reads identically to one that was never made. Gate: doc -- the entry naming the receipt family, its tag, and what a receipt is allowed to consume; impl -- the record, the send leg on the approve path, the classifier arm and the receiving consume seam; unit -- a receipt classifies into its own family and can NEVER be read as the message feed or as a knock (both asserted, since either alone leaves the other misclassification reachable), an N-1 receiver drops it clean, a proven receipt consumes the knocker-local pre-auth and writes the reverse rule ONCE while a REPLAY of the same receipt writes nothing further, a receipt whose correlation id matches no armed record writes nothing, and -- the discriminator, since 'consumed' and 'never armed' both end with no pending record -- an arrival that is NOT node-proven leaves the record ARMED rather than consumed, asserted beside the proven arrival on the same fixture so the two cannot both be satisfied by an implementation that ignores proof.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3603085Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3603339Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3603587Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3603837Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3604079Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3604370Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3604623Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3604876Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3605137Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3605390Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3605638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3605911Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3606169Z               "line": 995
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3606414Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3606665Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3606904Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3607156Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3607423Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3607675Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3607924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3608234Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3608491Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3608735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3609069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3609377Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3609648Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3609896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3610150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3610464Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3610718Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3610970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3611218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3611530Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3611786Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3612101Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3612349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3612659Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3612917Z               "line": 1153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3613159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3613402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3613703Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3613964Z               "line": 1824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3614219Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3614460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3614820Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3615082Z               "line": 524
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3615325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3615574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3615874Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3616127Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3616380Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3616623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3616922Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3617177Z               "line": 574
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3617426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3617673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3617983Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3618244Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3618493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3618737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3619132Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3619389Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3619638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3619884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3620194Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3620456Z               "line": 81
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3620701Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3620943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3621305Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3621569Z               "line": 953
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3621816Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3622063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3622365Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3622623Z               "line": 1015
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3622866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3623114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3623410Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3623671Z               "line": 1538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3623996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3624234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3624524Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3624784Z               "line": 17803
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3625029Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3625279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3625566Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3625819Z               "line": 17864
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3626072Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3626320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3626601Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3626863Z               "line": 18669
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3627106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3627355Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3627635Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3627899Z               "line": 18721
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3628142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3628395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3628672Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3628930Z               "line": 18738
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3629263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3629512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3629798Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3630055Z               "line": 18750
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3630306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3630555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3630851Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3631118Z               "line": 1670
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3631364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3631674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3631965Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3632227Z               "line": 1689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3632472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3632718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3633001Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3633259Z               "line": 1722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3633507Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3633751Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3634008Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3634251Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3634570Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3634828Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3635075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3635418Z               "path": "crates/spt/tests/knock_approve_not_hostage_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3635680Z               "line": 227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3635931Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3636173Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3636421Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3636675Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3636933Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3637185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3637433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3637743Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3637995Z               "line": 328
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3638251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3638493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3638803Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3639147Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3639399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3639641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3639952Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3640214Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3640453Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3640701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3641062Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3641323Z               "line": 539
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3641571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3641816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3642120Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3642388Z               "line": 2736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3642636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3642878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3643192Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3643447Z               "line": 2794
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3643743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3643987Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3644311Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3644568Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3644811Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3645063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3645369Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3645635Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3645885Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3646126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3646438Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3646710Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3646958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3647201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3647511Z               "path": "crates/spt-net/src/net/answermsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3647765Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3648016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3648259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3648555Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3648820Z               "line": 3316
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3649158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3649411Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3649693Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3649959Z               "line": 37745
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3650201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3650450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3650736Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3650994Z               "line": 37791
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3651300Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3651545Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3651802Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3652042Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3652290Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3652585Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3652867Z       "id": "REQ-KNOCK-AUTHORITY-SPLIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3659214Z       "title": "Who may answer a knock, or mint an invite code, follows the TARGET TIER of what it grants. Node-target grants (node-tier rules, node modes, any permission no single endpoint owns) are answerable and mintable ONLY by the node's engine-room and land only in the engine-room's inbox. Endpoint-target grants stay SELF-SOVEREIGN — the target endpoint's own agent answers — with one guard: approving a surface that is not sender-attributable writes a NODE-SUBJECT entry, admitting every endpoint on the knocker's node whatever the knock named, so that approval (and a code-mint baking such a surface) must carry an explicit widening acknowledgment at the CLI and is gated by the node's grant-nodes policy. No silent widening, ever. A code is a pre-approval, never a widening loophole: it carries the same acknowledgment as the approve it stands in for. Where a single knock mixes attributable and non-attributable surfaces under a false policy, the attributable SUBSET is approvable and the refused remainder STAYS PENDING with stdout naming the engine-room as the seat that can answer it — the mixed case renders its own verdict and must not collapse into a blanket approve or a blanket deny (hazard 7.61: a partial fault renders its own verdict). Gate: doc — the CONTEXT.md grant-authority entry; impl — target-tier routing, the widening acknowledgment, and the partial-approve path; unit — a node-target knock reaches only the engine-room inbox, an endpoint-target knock is answerable by its own agent and not routed to the engine-room, a non-attributable approval without the acknowledgment is refused, and a mixed knock under a false policy grants the attributable subset while the remainder stays pending naming the engine-room.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3659732Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3659995Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3660271Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3660533Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3660799Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3661053Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3661320Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3661601Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3661869Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3662177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3662453Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3662734Z               "line": 1004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3662983Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3663231Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3663475Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3663732Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3663998Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3664255Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3664511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3664816Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3665088Z               "line": 744
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3665335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3665587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3665892Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3666156Z               "line": 769
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3666418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3666667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3666976Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3667246Z               "line": 788
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3667491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3667740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3668050Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3668321Z               "line": 796
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3668570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3668821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3669214Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3669486Z               "line": 1303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3669732Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3670049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3670340Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3670607Z               "line": 18284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3670864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3671108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3671398Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3671660Z               "line": 19807
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3671913Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3672161Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3672415Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3672665Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3672990Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3673256Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3673505Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3673763Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3674025Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3674287Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3674535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3674843Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3675109Z               "line": 2721
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3675361Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3675614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3675919Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3676186Z               "line": 2756
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3676438Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3676691Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3676940Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3677193Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3677435Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3677691Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3677985Z       "id": "REQ-KNOCK-BARE-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3682735Z       "title": "`spt knock <target>` is the bare form of the knock verb — sugar routing to `knock send` with identical semantics, identical origin classification and identical defaults, never a second code path with its own behavior. The docs already describe this form (the CLI's own knock doc-comment and the CONTEXT.md knock-initiation entry both state it): this requirement makes those sentences TRUE rather than amending them away, which is the correct repair for a documented-but-unbuilt affordance. Because clap resolves a subcommand name before a positional, an endpoint whose id collides with a subcommand name (`send`, `list`, `approve`, `deny`, `new-code`, `redeem`) is shadowed and must be knocked as `knock send <id>`; that SHADOWING RULE IS DOCUMENTED where an operator meets it rather than left to be discovered, since the failure mode is a knock that silently runs a different verb. Gate: doc — the CONTEXT.md knock-initiation entry and the public CLI reference stating the bare form and the shadowing rule; impl — the optional-subcommand-with-positional shape routing to the send path; unit — the bare form produces the same knock the explicit send form produces for the same arguments, and a target whose id equals a subcommand name resolves to THAT SUBCOMMAND (the precedence is pinned, not assumed).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3683135Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3683389Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3683636Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3683893Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3684141Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3684389Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3684638Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3684900Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3685157Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3685408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3685683Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3685936Z               "line": 988
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3686183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3686440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3686770Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3687031Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3687271Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3687514Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3687758Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3688010Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3688266Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3688541Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3688788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3689217Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3689485Z               "line": 16952
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3689733Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3689976Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3690218Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3690471Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3690729Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3690990Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3691230Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3691478Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3691751Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3692008Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3692308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3692591Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3692857Z               "line": 30841
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3693105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3693352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3693643Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3693906Z               "line": 30873
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3694158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3694409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3694701Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3694959Z               "line": 30901
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3695202Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3695446Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3695688Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3695935Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3696177Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3696424Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3696720Z       "id": "REQ-KNOCK-CODE-INERT-RULE-REPAIR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3702410Z       "title": "A SHIPPED DEFECT, REPAIRED IN THE OPEN RATHER THAN RIDDEN ALONG. `spt knock redeem` as shipped in v0.49.0 writes `Subject::SenderEndpoint` for EVERY surface and hardcodes the widening acknowledgment true at the mutation seam. For a NON-ATTRIBUTABLE surface that rule CAN NEVER MATCH TRAFFIC: it is written, reported as approved, rendered in the access view as though it governed something, and governs nothing -- the dead-rule class, and the silent arm of the same fault whose loud arm was already filed. The acknowledgment was never actually given by anyone, either; it was asserted by the code on the operator's behalf, which is the more serious half. THE REPAIR IS ONE IMPLEMENTATION UNDER BOTH ARMS -- the local verb and the wire serve side compute the grant through the SAME code, in the shape the fork-local split already established -- because a repair applied to one arm is a defect scheduled to return through the other. IT IS NAMED IN THE WAVE CARD AS A REPAIR OF SHIPPED BEHAVIOUR, not folded silently into the feature that happened to touch it: an operator whose access view currently shows an inert rule deserves to find the reason under its own heading. Gate: impl -- the shared grant construction replacing the every-surface sender-endpoint write and the hardcoded acknowledgment; unit -- a non-attributable surface redeemed LOCALLY writes a rule that MATCHES the traffic it names (asserted against the real chain, not against a second reading of it), the acknowledgment is honoured rather than assumed, and the local and wire arms produce the identical grant for one fixture -- the discriminator that proves it is one implementation and not two that currently agree.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3702807Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3703054Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3703307Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3703545Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3703799Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3704047Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3704311Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3704575Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3704823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3705071Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3705337Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3705599Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3705843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3706166Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3706429Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3706676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3706917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3707275Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3707541Z               "line": 557
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3707780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3708028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3708324Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3708587Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3708834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3709169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3709466Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3709731Z               "line": 590
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3710027Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3710276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3710576Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3710829Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3711081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3711329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3711620Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3711882Z               "line": 19606
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3712129Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3712375Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3712622Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3712875Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3713143Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3713401Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3713648Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3713896Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3714158Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3714415Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3714665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3714978Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3715239Z               "line": 745
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3715487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3715736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3716031Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3716284Z               "line": 2239
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3716590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3716837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3721075Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3721356Z               "line": 2277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3721608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3721856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3722170Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3722433Z               "line": 2317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3722680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3722930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3723230Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3723579Z               "line": 2443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3723821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3724070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3724360Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3724623Z               "line": 29862
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3724862Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3725114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3725408Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3725666Z               "line": 30018
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3725915Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3726158Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3726400Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3726644Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3726882Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3727126Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3727416Z       "id": "REQ-KNOCK-CODE-MULTI-ENVELOPE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3741123Z       "title": "A CODE MINTED ON A MULTI-SUBNET NODE OPENS FOR EVERY MEMBERSHIP THAT NODE HOLDS, AND THE MINT SAYS SO. The ratified design always had it (ADR-0054 sketch line 17, `--subnet` selecting only when the minter belongs to several); the W4 build DEFERRED the slice and marked it UNBUILT in amendment 3, and the shipped surface then taught the deferral as the design -- `--subnet` took exactly ONE value and several memberships with no `--subnet` REFUSED with `KNOCK_WHICH_SUBNET`, whose copy states 'a sealed code opens only for members of ONE subnet' as though it were a rule rather than a gap. The operator's restatement (2026-08-04) governs and supersedes amendment 3: `--subnet` TAKES A LIST, and OMITTED means seal for ALL memberships. ONE SECRET, N KEYS -- NEVER N SECRETS: the store record keys on the secret, so a second draw would mint a code whose envelope opens to a secret no record holds, and this is also what keeps the SIV construction safe, since the envelopes differ by KEY and never by a repeated (key, plaintext) pair. The envelopes ride ONE string, concatenated at a fixed 22 B width so the count is DERIVED FROM THE LENGTH rather than declared in a header -- nothing in the string says how many there are, for the same reason nothing in it says which subnets they are for. THE DISCLOSURE DELTA IS ACCEPTED AND STATED RATHER THAN PADDED AWAY (doyle, 2026-08-18): a concatenated code reveals HOW MANY memberships the minter holds, never WHICH, and padding to a fixed envelope count would spend the length budget the whole ADR defends in order to hide a fact strictly weaker than the ones the format actually hides. THE N-1 ARM IS REAL AND IS ANSWERED AT THE MINT, NOT BY A VERSION FLOOR: an older binary refuses a multi-envelope string on its length check and reports it through the anti-oracle silence every other failure uses, so no redeemer can ever diagnose it -- and a new prefix would not help, since an unknown prefix routes to the legacy path and misses just as silently. The mint is therefore the only place the fact can be told, and it tells it: sealing N>1 envelopes PRINTS the consequence, naming that the code redeems only at or past the version that ships this. No fleet version floor is claimed, because a floor claimed before the feature ships is a floor about an unshipped thing. TWO OPENINGS ARE NOW POSSIBLE AND THE WINNER IS PINNED, NOT INCIDENTAL: a redeemer holding two of the minter's subnets opens two envelopes, and the winner selects the registry that resolves the short node key -- so the loop's exit condition is ROUTED, NOT OPENED (try every opening, prefer the first that resolves a route), with ties broken by SUBNET-NAME LEXICOGRAPHIC ORDER so the choice is a stated property rather than an artifact of store iteration. This cannot reach a wrong destination by construction: the short key is the MINTER's, so every opening names the same physical node, and preferring a routed one can only avoid a thin registry's NoRoute. Gate: doc -- the CONTEXT.md sealed-code entry gaining the multi-envelope mint UX and the count-disclosure qualifier; impl -- `seal_to_all` over N seeds sharing one secret, the length-derived envelope split, `open_all_among` returning EVERY opening with its label, the redeem route's prefer-routed selection with the lexicographic tiebreak, the mint's subnet-list choice replacing the single-choice refusal, and the N>1 mint print; unit -- a two-membership code opening under BOTH seeds and yielding the SAME secret and node (the property the one-draw rule exists for), the single-envelope form byte-unchanged and still exactly 36 base32 chars beside a multi-envelope sibling pinning the N>1 length as a LITERAL (71 for N=2, because the envelopes are base32-encoded as ONE blob rather than encoded separately and joined -- twice-36 is the wrong figure and a derived expectation gets it wrong, which is why the pin is written out), a non-member opening NOTHING from a multi-envelope code (the anti-cross-open pair kept as the negative control), prefer-routed selecting the subnet that RESOLVES when the lexicographically-first one does not, the lexicographic tiebreak deciding when BOTH route, and the previous-seed rotation grace still opening one envelope of a multi-envelope code.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3741526Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3741779Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3742031Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3742285Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3742533Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3742786Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3743028Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3743290Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3743548Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3743800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3744074Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3744369Z               "line": 968
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3744617Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3744861Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3745109Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3745357Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3745628Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3745885Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3746138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3746457Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3746710Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3746958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3747200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3747559Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3747816Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3748064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3748307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3748618Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3748878Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3749210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3749457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3749743Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3750001Z               "line": 17329
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3750245Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3750493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3750779Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3751035Z               "line": 17370
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3751288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3751532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3751817Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3752072Z               "line": 18832
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3752324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3752563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3752855Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3753112Z               "line": 1514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3753356Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3753666Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3753912Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3754164Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3754430Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3754696Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3754939Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3755191Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3755454Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3755706Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3755956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3756261Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3756518Z               "line": 402
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3756818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3757065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3757375Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3757638Z               "line": 449
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3757881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3758124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3758443Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3758700Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3759039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3759291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3759603Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3759856Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3760109Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3760356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3760641Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3760900Z               "line": 29641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3761148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3761392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3761678Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3761940Z               "line": 29692
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3762191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3762437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3762728Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3762986Z               "line": 2965
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3763233Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3763476Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3763724Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3763968Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3764221Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3764521Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3764805Z       "id": "REQ-KNOCK-CODE-ROUTE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3770988Z       "title": "THE REDEEMER RESOLVES THE MINTING NODE FROM THE CODE, NEVER FROM DISCOVERY. The sealed payload's 4 B short key is matched against the node-tier rows the redeemer's own subnet registry already replicates -- node-level labels and the authoring nodes of instance rows -- because a code exists precisely to reach an endpoint that discovery does NOT surface. Routing through endpoint DISCOVER would rebuild the hidden co-requisite the fork-surface rig finding already paid for (releases#76 grounds): any cross-node verb that resolves its target through registry replication inherits a DISCOVER dependency it never declared. THE RESOLUTION SET IS THE UNION of both node-tier carriers rather than the label map alone -- a member that never named itself holds no label row, and that member is exactly the undiscoverable minter this feature exists to reach, so a label-only lookup would fail for the case the feature was built for. AN AMBIGUOUS PREFIX REFUSES AND NEVER PICKS: 4 B is 32 bits, collision is negligible and not zero, and guessing dials a stranger with a live code -- the resolution policy's own refuse-and-qualify discipline, applied where the cost of a wrong guess is a capability handed to the wrong machine. Resolution runs INSIDE the one subnet whose key opened the envelope, so the ambiguity surface is that subnet's node set rather than every node known. Gate: doc -- the networking entry stating what the route resolves against and what it must not widen; impl -- the union lookup and the ambiguity refusal; unit -- a short key resolving to its full node key through each carrier INDEPENDENTLY (a label-only row and an instance-only row, so neither leg can be the only one working), two nodes sharing a prefix refusing rather than resolving to either, and an unresolvable short key reading as its own outcome rather than as a refusal by the far end.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3771322Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3771579Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3771827Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3772074Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3772319Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3772572Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3772817Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3773082Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3773336Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3773584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3773860Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3774166Z               "line": 973
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3774413Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3774666Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3774914Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3775158Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3775423Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3775677Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3775926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3776227Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3776484Z               "line": 19289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3776747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3776989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3777285Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3777542Z               "line": 1381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3777794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3778044Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3778342Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3778604Z               "line": 1403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3778852Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3779195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3779481Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3779749Z               "line": 1551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3779992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3780236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3780529Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3780789Z               "line": 1632
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3781033Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3781277Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3781530Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3781776Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3782106Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3782368Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3782620Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3782869Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3783128Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3783387Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3783633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3783919Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3784177Z               "line": 2900
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3784430Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3784668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3785011Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3785273Z               "line": 2939
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3785520Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3785765Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3786006Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3786252Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3786495Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3786743Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3787016Z       "id": "REQ-KNOCK-CODE-SEALED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3795052Z       "title": "A KNOCK CODE CARRIES ITS OWN ROUTE, SEALED TO THE MINTING NODE'S SUBNET (ADR-0054, ratified 2026-08-01). The string is `sptkc_` + unpadded lowercase base32 of one envelope; the prefix is the FORMAT VERSION MARKER (a future format mints a new prefix, never a flag day) and the standing agent-recognition hook. Payload = the minting node's SHORT key (4 B) + the code secret (10 B): 80 bits is ample under the receiver-enforced redemption rate limit and the 24 h TTL, and the length is bought with payload economy because NO INVERTIBLE TRANSFORM EMITS FEWER BITS THAN IT CARRIES -- 'shrink by adding an encryption layer' is refused on the record so it cannot resurface looking clever. SEAL, as ruled: keys HKDF-SHA256 from the subnet seed under DISTINCT domain-separated labels for encryption and authentication (a tag key and a cipher key must never be the same key); the tag is truncate-8 of HMAC-SHA256 over the PLAINTEXT and that tag IS the SIV nonce, padded to the cipher's nonce width, so the envelope is tag||ciphertext at 22 B and ~36 base32 chars -- SHORTER than the shipped 32-hex form. Determinism is safe ONLY because the 10 B secret is fresh per code; a reused secret would repeat an envelope, and that is the property this construction rests on. Verification is CONSTANT-TIME. THE REDEEMER TRY-DECRYPTS with every subnet key it holds, CURRENT AND PREVIOUS SEED, so a code inherits the subnet's own one-deep rotation grace (Mesh-D7) rather than a private key schedule -- and EVERY failure is INDISTINGUISHABLE from every other: a wrong subnet, a tampered byte, a bad length and an unknown code all return the same nothing, because a decode that reported WHY would be the oracle the redeem refusals already refuse to be. A pasted code reveals nothing to a non-member -- not the node, not the subnet, not which subnet -- and the decode-set is exactly the population that could dial the minter anyway, so no capability is lost. LEGACY BARE-HEX CODES STAY LOCAL-REDEEMABLE, untouched. Gate: doc -- the CONTEXT.md sealed-code entry naming the format, the payload economy and the rotation grace; impl -- the codec, its two derived keys and the try-decrypt; unit -- a round trip through a real seed, a code sealed to one subnet refusing under another, the previous seed still opening a code the current one minted before rotation, a single flipped byte anywhere in the envelope refusing, every refusal shape returning the identical nothing, and a legacy bare-hex code still reading as itself.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3795457Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3795709Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3795963Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3796211Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3796462Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3796708Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3796955Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3797223Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3797479Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3797722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3797995Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3798310Z               "line": 967
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3798609Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3798859Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3799188Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3799438Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3799714Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3799967Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3800216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3800530Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3800798Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3801046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3801293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3801654Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3801914Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3802162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3802406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3802721Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3802979Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3803230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3803474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3803789Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3804045Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3804290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3804536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3804839Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3805100Z               "line": 335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3805345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3805597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3805903Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3806165Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3806417Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3806660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3806960Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3807216Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3807520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3807759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3808059Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3808320Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3808574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3808826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3809203Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3809466Z               "line": 450
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3809710Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3809955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3810246Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3810561Z               "line": 531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3810804Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3811052Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3811353Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3811611Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3811858Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3812100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3812389Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3812647Z               "line": 17270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3812899Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3813146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3813423Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3813685Z               "line": 17285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3813933Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3814183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3814459Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3814720Z               "line": 17328
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3814963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3815209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3815500Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3815762Z               "line": 18933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3816008Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3816252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3816538Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3816792Z               "line": 19023
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3817045Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3817287Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3817534Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3817786Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3818110Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3818377Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3818619Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3818866Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3819215Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3819472Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3819711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3820026Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3820289Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3820539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3820787Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3821144Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3821407Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3821660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3821908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3822209Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3822481Z               "line": 517
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3822727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3822977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3823287Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3823540Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3823789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3824031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3824346Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3824603Z               "line": 567
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3824851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3825095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3825405Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3825670Z               "line": 601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3825920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3826164Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3826465Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3826722Z               "line": 616
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3826966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3827271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3827576Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3827837Z               "line": 624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3828085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3828332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3828645Z               "path": "crates/spt-net/src/net/codeseal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3828903Z               "line": 680
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3829232Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3829484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3829789Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3830051Z               "line": 1903
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3830347Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3830595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3830896Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3831162Z               "line": 1931
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3831409Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3831647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3831947Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3832210Z               "line": 1969
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3832455Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3832693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3832983Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3833249Z               "line": 29779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3833499Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3833743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3834024Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3834281Z               "line": 30749
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3834519Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3834768Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3835011Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3835254Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3835492Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3835735Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3836031Z       "id": "REQ-KNOCK-COUNTER-KNOCK-TRAVELS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3845050Z       "title": "RETIRED 2026-08-04 (ADR-0055, releases#144 bag grill) — ITS SUBJECT NO LONGER EXISTS. `knock approve --mutual` and the reciprocal knock it minted are REMOVED, not renamed: an approval carries no directionality, and a receiver who wants reverse reach knocks back through the knock verb itself. The routing bug this requirement fixed was real and its fix was correct for the shape that then existed; the shape is gone, so its impl, unit and int evidence deleted with the code. Retained in the registry rather than deleted so the reversal reads back. The superseded text follows verbatim. THE RECIPROCAL KNOCK AN APPROVAL MINTS RIDES THE SAME WIRE LEG A FIRST-ORDER KNOCK RIDES. `knock approve --mutual` mints a counter-knock addressed to the original knocker and, as shipped, upserts it into the APPROVER'S OWN local store -- so when the knocker is remote the approver's node holds a knock addressed to an endpoint that queries a different node and will never see it. It is not a delivery that failed; it is a delivery that was never attempted, silently, while the approver's stdout reads as though reciprocity was offered. The first-order path already calls `wansend::knock_send_remote` for exactly this reason and the counter-knock path does not; the paired notify is `NotifScope::Node` and by its own comment never enters a replication feed, so it carries nothing across either and STAYS as the design says for the remote case. THE ROUTE IS CHOSEN BY WHERE THE ORIGINAL KNOCKER LIVES, not by a flag: a local knocker keeps the local upsert (the shipped behaviour, which is correct for it), a remote knocker gets the send. AND THE APPROVAL ITSELF IS NEVER HELD HOSTAGE TO THE RECIPROCAL: the approval has already been decided and written when the counter-knock is minted, so a counter-knock that cannot be delivered reports its own failure and does not unwind or downgrade the approval it rode in on. Gate: impl -- the route split on the original knocker's node and the wansend leg for the remote arm; unit -- a REMOTE knocker's counter-knock leaves the approver's local store untouched and reaches the send leg, a LOCAL knocker's counter-knock still lands in the local store and does NOT reach the send leg (the pair asserted together, since either alone passes an implementation that routes everything one way), and a send-leg failure on the remote arm leaves the ALREADY-WRITTEN approval intact and still reported as approved.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3845427Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3845680Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3845933Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3846192Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3846449Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3846690Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3846945Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3847209Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3847518Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3847762Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3848013Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3848285Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3848547Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3848796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3849238Z               "path": "crates/spt/tests/knock_approve_not_hostage_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3849503Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3849747Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3849989Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3850236Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3850490Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3850752Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3851010Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3851258Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3851500Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3851748Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3851988Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3852282Z       "id": "REQ-KNOCK-DEFAULT-SURFACE-MSG",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3857482Z       "title": "A knock sent with no --surfaces requests MSG AND NOTHING ELSE, because the commonest knock is 'let me talk to you' and a default that requests every surface asks an operator to approve a machine-wide grant they never intended. The narrowing lives ENTIRELY IN THE CLI, which materializes an EXPLICIT [MSG] list at compose time: the store's wire encoding is UNCHANGED and empty still means every surface, so `--surfaces ALL` keeps mapping to the empty vec through the same field and an N-1 record with an empty list still reads as all. DISCOVER is deliberately OUT of the default (ruled): reachability and enumerability are different asks. SCOPE IS send AND THE BARE FORM ONLY — `approve` and `new-code` keep their current defaults, so any helper shared with them must not be changed underneath them; a narrowing applied at the shared helper would silently re-scope two other verbs. The help sentence states the affordance positively ('only use --surfaces if you need more than MSG') rather than describing the encoding. Gate: doc — the CONTEXT.md knock-initiation entry stating the send-side default; impl — the CLI-side materialization at the send/bare compose site only; unit — a bare send composes exactly [MSG], ALL composes the empty vec and still reads as every-surface, approve and new-code defaults are unchanged by the same call, and a store fixture carrying an empty list still evaluates as every surface.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3857778Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3858030Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3858288Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3858540Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3858783Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3859126Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3859370Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3859638Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3859893Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3860138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3860411Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3860668Z               "line": 988
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3860912Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3861169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3861488Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3861755Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3862003Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3862247Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3862491Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3862741Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3863003Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3863318Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3863567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3863862Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3864125Z               "line": 17445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3864373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3864620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3864915Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3865179Z               "line": 17702
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3865423Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3865670Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3865918Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3866166Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3866486Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3866748Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3866993Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3867245Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3867502Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3867758Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3868000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3868285Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3868552Z               "line": 37531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3868799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3869138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3869415Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3869672Z               "line": 37923
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3869921Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3870165Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3870405Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3870656Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3870895Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3871138Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3871444Z       "id": "REQ-KNOCK-DIRECTIONALITY-EXPLICIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3883519Z       "title": "RETIRED 2026-08-04 (ADR-0055, releases#144 bag grill) — SUPERSEDED BY REQ-KNOCK-DIRECTIONALITY-SENDER, which owns the surviving fact at its new seats. The forced explicit choice was RIGHT and is kept; the SEAT was wrong. Directionality is sender-declared, so the mutex moved to `spt knock` / `knock send` / `knock redeem` and left `approve` and `new-code` declaring nothing, and the mint-side pre-authorization this requirement specified is removed with the flag that armed it. Retained in the registry rather than deleted so the reversal reads back. The superseded text follows verbatim. Answering a knock and minting a code both FORCE AN EXPLICIT DIRECTIONALITY CHOICE: `knock approve` and `knock new-code` require exactly one of --mutual or --one-way, and a bare invocation REFUSES LOUDLY naming both options rather than proceeding on a silent default. A mandatory choice is not auto-mutual — nobody's rules are written without their own act — it removes the default whose consequence an operator most often failed to notice. --one-way is the explicit decline and is RECORDED (on the answer for approve, on the code record at mint for new-code) so the declining act is legible afterward, not merely an absence. `new-code --mutual` is a MINTER-LOCAL persisted pre-authorization of the REVERSE grant, armed at mint and keyed to the CODE ID, consumed EXACTLY ONCE at receipt of the node-proven REDEEMED outcome, at which point the minter's own node writes its whitelist entry naming the redeemer. There is no counter-knock at mint — at mint there is no knocker yet, which is precisely why arming defers to redemption — and this is approve --mutual's consent shape transposed from knock correlation to code id, SYMMETRIC with redeem --mutual: each side arms only its OWN side, neither ever writes on the other's node, and full mutuality requires both. The pre-authorization record is the EXISTING one, extended with an EXPLICIT TWO-VALUED KEY KIND (knock | code) rather than overloading its knock-id field with a code id: consumption is a string match, so an overloaded field makes a code pre-authorization consumable by a knock answer that merely carries the same id string, and a discriminant makes that unrepresentable instead of merely improbable. The discriminant is additive with a serde default of knock — the only kind shipped records can be — so N-1 records decode unchanged, and the code record's directionality field is additive by the same discipline so a code minted before the field existed still reads. Gate: doc — the CONTEXT.md mutual-whitelisting entry, amended so the forced choice replaces the one-directional default while the auto-mutual ban survives intact; impl — the mandatory-one-of arg shape on both verbs, the --one-way record, and the code-id-keyed pre-authorization with its once-only consumption at node-proven redemption; unit — a bare approve and a bare new-code each refuse naming both options, a mint with --mutual plus a node-proven redemption writes the minter-side entry exactly once, a SECOND redemption notice finds the pre-authorization already consumed, --one-way writes nothing on redemption, a forged or unproven redemption notice consumes nothing, A CODE PRE-AUTHORIZATION IS NOT CONSUMABLE BY A KNOCK ANSWER CARRYING THE SAME ID STRING (the row that fails under an overloaded key), and an N-1 record with neither the key kind nor the directionality field still decodes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3883967Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3884219Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3884466Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3884743Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3885001Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3885241Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3885498Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3885754Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3886016Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3886258Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3886505Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3886767Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3887033Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3887286Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3887530Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3887793Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3888050Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3888297Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3888540Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3888785Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3889111Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3889415Z       "id": "REQ-KNOCK-DIRECTIONALITY-SENDER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3899774Z       "title": "DIRECTIONALITY IS SENDER-DECLARED, AND ONLY SENDER-DECLARED (ratified 2026-08-04 bag grill, releases#144 / ADR-0055). The reach-REQUESTING surfaces — `spt knock <target>`, `spt knock send` and `spt knock redeem` — take a MANDATORY, MUTUALLY EXCLUSIVE pair, --send-only | --send-receive, with NO default: a bare invocation refuses loudly naming both, and naming both together refuses as opposite answers to one question. The declaration names what the DECLARER'S OWN SIDE does — --send-receive arms the declarer's own inbound to the counterparty, at answer-receipt for a knock and at redemption for a code, and nothing more. The RECEIVER verbs `knock approve` and `knock new-code` carry NO directionality flag at all: accepting IS the receiver's own-side act, so there is nothing further for them to declare, and the `approve --mutual` COUNTER-KNOCK IS REMOVED RATHER THAN RENAMED — a receiver who wants reverse reach knocks back, because the counter-ask is the knock verb's own job and a rider on approval duplicated it with a second grammar. VOCABULARY: send-only and send-receive are canonical; mutual and one-way are RETIRED from every user-visible surface — help text, refusals, stdout claims and the published guide alike — because 'mutual' misdescribes an act that only ever opens the declarer's side. MIGRATION IS A CLEAN BREAK WITH A SPEAKING REFUSAL: --mutual and --one-way are parse errors that NAME the flag which replaced them and the seat they were typed at, never clap's bare unexpected-argument, and there are no deprecation aliases (an alias keeps the retired mental model alive in scripts and agent habits). THE RENAME IS THE USER-VISIBLE SURFACE ONLY: store and wire field names are untouched, and PRE-AUTHORIZATIONS ARMED UNDER THE OLD FLAGS STAY HONORED — a record armed before this change still consumes through the answer-receipt path and still opens the reverse it was armed for. Gate: doc — the CONTEXT.md knock/knock-code directionality sentence and the mutual-whitelisting entry corrected by replacement so no entry states the retired seats, plus the published knocking guide; impl — the mandatory mutex at the bare form, `send` and `redeem`, the absence of any directionality argument at `approve` and `new-code`, the removal of the counter-knock path, and the retired-flag refusals; unit — a bare requesting invocation refuses naming both new flags, each flag ALONE is accepted, both together refuse, `approve` and `new-code` refuse the directionality flags outright, a retired flag's refusal NAMES its replacement at every seat that carried it, no user-visible string on the knock family carries the retired vocabulary, and — the load-bearing row — A PRE-AUTHORIZATION RECORD ARMED UNDER THE OLD FLAGS, DECODED FROM ITS SHIPPED BYTES RATHER THAN BUILT BY THE NEW CLI, STILL CONSUMES THROUGH THE RECEIPT PATH AND STILL OPENS ITS REVERSE, with the store and wire field names it names unchanged.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3900222Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3900484Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3900732Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3900985Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3901244Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3901496Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3901748Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3902010Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3902266Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3902513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3902784Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3903041Z               "line": 961
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3903290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3903533Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3903810Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3904073Z               "line": 994
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3904324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3904572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3904896Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3905159Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3905407Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3905649Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3905896Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3906145Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3906454Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3906708Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3906952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3907265Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3907524Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3907777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3908016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3908330Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3908589Z               "line": 201
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3908840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3909165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3909518Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3909780Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3910032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3910282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3910597Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3910864Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3911107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3911364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3911679Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3911941Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3912189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3912438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3912741Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3912996Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3913244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3913483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3913793Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3914051Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3914298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3914546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3914837Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3915104Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3915343Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3915652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3915947Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3916214Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3916461Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3916705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3917010Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3917273Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3917526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3917772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3918070Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3918323Z               "line": 843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3918633Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3918876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3919268Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3919534Z               "line": 864
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3919773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3920020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3920316Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3920577Z               "line": 890
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3920819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3921071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3921372Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3921628Z               "line": 911
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3921871Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3922115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3922411Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3922665Z               "line": 929
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3922917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3923158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3923466Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3923724Z               "line": 970
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3923967Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3924214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3924510Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3924767Z               "line": 985
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3925015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3925264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3925560Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3925879Z               "line": 1030
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3926139Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3926387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3926683Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3926942Z               "line": 1399
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3927189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3927433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3927738Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3927994Z               "line": 1412
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3928246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3928494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3928841Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3929188Z               "line": 1480
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3929436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3929694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3929990Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3930256Z               "line": 1482
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3930504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3930752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3931044Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3931304Z               "line": 17023
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3931554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3931797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3932088Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3932341Z               "line": 17053
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3932590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3932837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3933118Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3933390Z               "line": 17088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3933638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3933894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3934184Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3934441Z               "line": 17793
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3934688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3934941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3935285Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3935542Z               "line": 17855
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3935800Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3936043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3936334Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3936585Z               "line": 17939
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3936834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3937077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3937363Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3937625Z               "line": 18539
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3937868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3938169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3938454Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3938717Z               "line": 18780
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3939054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3939305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3939581Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3939843Z               "line": 19018
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3940096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3940339Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3940622Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3940879Z               "line": 19036
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3941131Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3941374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3941659Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3941921Z               "line": 19063
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3942167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3942414Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3942696Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3942958Z               "line": 19119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3943202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3943446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3943737Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3943998Z               "line": 19159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3944236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3944487Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3944772Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3945029Z               "line": 19365
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3945277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3945521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3945873Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3946131Z               "line": 19403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3946389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3946637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3946918Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3947178Z               "line": 19512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3947427Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3947671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3947961Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3948223Z               "line": 19687
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3948519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3948771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3949139Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3949395Z               "line": 19693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3949646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3949894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3950179Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3950436Z               "line": 19708
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3950689Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3950933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3951219Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3951487Z               "line": 19716
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3951735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3951986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3952272Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3952532Z               "line": 19762
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3952780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3953037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3953318Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3953580Z               "line": 19777
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3953829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3954072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3954364Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3954616Z               "line": 1451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3954924Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3955165Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3955413Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3955661Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3955929Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3956185Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3956428Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3960482Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3960774Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3961036Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3961282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3961602Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3961955Z               "line": 914
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3962203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3962451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3962770Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3963036Z               "line": 915
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3963277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3963525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3963840Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3964111Z               "line": 1032
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3964369Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3964623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3964933Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3965186Z               "line": 2110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3965436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3965677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3965997Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3966259Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3966508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3966760Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3967060Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3967327Z               "line": 2860
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3967575Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3967819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3968120Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3968379Z               "line": 2899
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3968627Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3968876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3969338Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3969605Z               "line": 2959
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3969854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3970097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3970397Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3970653Z               "line": 2982
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3970903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3971147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3971448Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3971714Z               "line": 3217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3971958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3972297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3972597Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3972855Z               "line": 3263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3973102Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3973349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3973657Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3973914Z               "line": 3305
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3974167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3974419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3974705Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3974963Z               "line": 30284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3975220Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3975460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3975750Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3976015Z               "line": 30361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3976261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3976505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3976791Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3977063Z               "line": 37574
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3977305Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3977558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3977844Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3978111Z               "line": 37641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3978360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3978675Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3979046Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3979307Z               "line": 37669
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3979555Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3979798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3980046Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3980285Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3980533Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3980776Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3981056Z       "id": "REQ-KNOCK-EVIDENCE-ROUTE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3989648Z       "title": "A KNOCK REACHES AN EVIDENCE-KNOWN PEER THAT RESOLUTION CANNOT FIND, exactly as an ordinary send already does. `knock_send_remote` returned `NotFound` the moment `resolve_across_visible` did, while the message leg at the SAME resolution point fell through to the node-tier evidence route (REQ-UNLISTED-EVIDENCE-ROUTE, DOORBELL W3): an undiscoverable target was therefore UNKNOCKABLE WHILE STILL SENDABLE -- the one door whose whole purpose is to be knocked on was the one that was closed, and a knock is precisely how a stranger asks to be admitted. IT IS ALSO THE N-1 INTEROP LEG OF releases#180 AND LOAD-BEARING, NOT COSMETIC: a peer on a pre-#180 build still applies its blanket-closed posture to DISCOVER and will not advertise, so flipping OUR default cannot make THEM knockable, and without this arm #180 buys nothing against the installed fleet. THE ARM IS THE MESSAGE LEG'S, NOT A SECOND MECHANISM: the same `unlisted::route_node_for` over the same `raw_evidence`, consuming the same field (the node key) the message leg consumes, and the ASKER'S OWN EXCLUSION IS RE-IMPOSED AT THE ARM with `excl.anywhere()` -- the same source the resolve path's predicate came from -- because resolution's own check lives INSIDE the call this arm has already fallen out of. NOTHING ABOUT ADMISSION MOVES: the TARGET's access gate rules this hop at the owner's own seam exactly as it rules every inbound today; routing on evidence is not circumventing hiddenness, because the invitation IS the consent. `KnockSendOutcome::Excluded` is minted as the message leg's `WanSendOutcome::Excluded` sibling so an exclusion refusal NAMES THE BOUNDARY AND WHOSE IT IS instead of collapsing into `NotFound` and sending the operator hunting at the far end for a decision they made at this one -- and it is deliberately NOT a landing: it must not take `NotFound`'s local-inbox fallback, since recording the ask locally would write a row against a boundary the operator themselves drew (releases#145's defect in a new costume). Gate: doc -- the CONTEXT.md evidence-route entry extended to name the knock leg and what it does not widen; impl -- the NotFound arm on the knock leg, the `Excluded` outcome, its CLI line, and its placement in the landing/refusal partition; unit -- the discriminator triple at the real function over an EMPTY registry (no evidence still refuses NotFound, an excluded id refuses through the route, and a non-excluded evidence-known id is REACHED), with the excluded arm run FIRST so the admitted arm cannot be a leftover, plus `Excluded` proven to be neither a landing at EITHER value of target-locality nor a wire refusal.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3989987Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3990244Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3990488Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3990739Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3990988Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3991240Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3991485Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3991735Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3991999Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3992253Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3992501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3992778Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3993036Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3993282Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3993535Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3993774Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3994032Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3994299Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3994550Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3994800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3995138Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3995402Z               "line": 17561
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3995650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3995892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3996174Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3996435Z               "line": 17835
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3996678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3996928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3997221Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3997476Z               "line": 525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3997724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3998010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3998306Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3998616Z               "line": 577
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3998874Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3999207Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3999452Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3999699Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.3999955Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4000213Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4000456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4000766Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4001023Z               "line": 931
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4001271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4001514Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4001814Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4002073Z               "line": 1327
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4002314Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4002564Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4002808Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4003056Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4003314Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4003576Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4003823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4004105Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4004362Z               "line": 30588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4004606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4004854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4005147Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4005412Z               "line": 2210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4005722Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4005967Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4006215Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4006457Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4006709Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4006952Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4007229Z       "id": "REQ-KNOCK-FLOOD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4014165Z       "title": "Knocking cannot be used to flood, enumerate or brute-force. One pending knock per (knocker, target) pair — a re-knock UPDATES IN PLACE rather than queueing a second row, so an inbox cannot be filled by repetition. Knocks carry a TTL of one day and the expiry is enforced AT THE ANSWER SEAM: an expired knock is unapprovable regardless of what a stale list rendering showed, because a TTL that only filters a view is a display convention rather than a boundary. Inbound knocks are rate-limited per node (roughly ten an hour by default, knob-adjustable) using the existing windowed-counter shape rather than a newly minted clock pattern, and code redemption attempts are rate-limited per node likewise. Redemption is single-use and ATOMIC — two concurrent redemptions of one code yield exactly one success — and a redemption whose resulting write is refused does NOT burn the code. Code entropy is sized so guessing is closed under the TTL and rate limit together, and codes carry their target so no blind enumeration is possible through the discovery bypass (the docs state this). An expiry that removes a knock from the inbox must render as expired rather than as a clean nothing-to-approve: set-membership change is a re-entry path for hazard 7.61 and is pinned by test. Gate: doc — the CONTEXT.md knock entry stating TTL, one-pending-per-pair and the enumeration property, plus the public docs note on codes carrying their target; impl — the in-place upsert, the answer-seam expiry check, the per-node rate windows, and atomic single-use redemption; unit — a re-knock updates rather than appends, an expired knock is refused at answer even when a stale list showed it pending, concurrent redemptions produce exactly one success, a refused write leaves the code unburned, the rate limit refuses past its window and admits within it, and an expired-out knock renders as expired rather than as absence.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4014532Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4014785Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4015036Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4015284Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4015533Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4015784Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4016083Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4016349Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4016611Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4016856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4017179Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4017437Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4017685Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4017928Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4018184Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4018435Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4018707Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4019055Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4019308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4019623Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4019879Z               "line": 1678
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4020132Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4020379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4020694Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4020957Z               "line": 1910
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4021209Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4021456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4021756Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4022024Z               "line": 314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4022277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4022525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4022817Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4023083Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4023324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4023576Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4023923Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4024190Z               "line": 516
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4024434Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4024681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4024977Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4025239Z               "line": 1169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4025487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4025731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4026032Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4026292Z               "line": 1217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4026589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4026833Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4027138Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4027401Z               "line": 1270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4027649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4027897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4028192Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4028464Z               "line": 1324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4028706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4029028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4029334Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4029586Z               "line": 1344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4029834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4030077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4030372Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4030626Z               "line": 1581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4030874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4031122Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4031413Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4031677Z               "line": 17671
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4031916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4032160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4032442Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4032703Z               "line": 18820
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4033004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4033252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4033537Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4033799Z               "line": 19543
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4034051Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4034292Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4034544Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4034788Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4035051Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4035309Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4035556Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4035804Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4036114Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4036366Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4036611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4036923Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4037179Z               "line": 2843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4037426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4037670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4037971Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4038233Z               "line": 2492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4038481Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4038728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4039106Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4039366Z               "line": 2512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4039607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4039861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4040151Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4040409Z               "line": 2533
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4040651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4040904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4041200Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4041466Z               "line": 2555
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4041716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4041969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4042261Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4042514Z               "line": 2577
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4042763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4043011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4043364Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4043627Z               "line": 2666
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4043869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4044112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4044412Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4044682Z               "line": 2687
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4044929Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4045181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4045487Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4045753Z               "line": 2704
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4046002Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4046321Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4046574Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4046823Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4047071Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4047316Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4047643Z       "id": "REQ-KNOCK-HUMAN-PRESENTER-NOT-DEAD-ENDED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4055326Z       "title": "A HUMAN PRESENTING A VALID CODE REACHES A DECISION, RATHER THAN SILENCE THAT NEVER ENDS. A bare-terminal presenter binds the deliberately-narrower `node + origin user` subject -- the knock design's own human form, 'the humans on my node', ratified as narrower than a bare node entry. `RuleMutation::widens()` classifies widening by subject KIND ALONE, so the origin-USER qualifier does not narrow it, and redeeming ANY code whose mint did not carry `--admit-node` -- INCLUDING AN MSG-ONLY CODE, whose surface is perfectly attributable -- refuses the rule write, reaches no decision, and returns the two-silences serve arm. The silence is individually correct and collectively a dead end: nobody at MINT time knows whether a human will redeem, so the commonest invite there is -- here is a code, message me -- is a latent trap for exactly the least-technical presenter, and it starts at the mint, where the person who could have avoided it was never told. THE FIX SIDE IS A RULING, NOT A BUILDER'S CHOICE, and this requirement deliberately states the PROPERTY rather than the mechanism: whether `widens()` learns the qualifier axis (a subject admitting only the humans on a machine is multi-party but materially narrower, and the acknowledgment's own stated ground -- that it admits every endpoint on the knocker's node -- is false of it) or the redemption path carries a special case, the delivered property is the same. Weighed against it and to be answered by the ruling, not assumed away: humans on a machine can widen over time as users are added, and the grant-nodes policy may deliberately treat any node-scoped subject as node-tier whatever its qualifier. Gate: impl -- the ruled mechanism, single-sourced so the local verb and the wire serve side cannot answer differently; unit -- an MSG-only code minted WITHOUT the acknowledgment, presented by a bare terminal, reaches a DECISION and writes a rule that MATCHES the traffic it names (asserted against the real chain, not a second reading of it), presented by an ENDPOINT it still binds the sender-endpoint subject unchanged, and -- the non-vacuity row, since a mechanism that stops refusing everything would also satisfy the first -- a genuinely node-widening bake WITHOUT the acknowledgment is still REFUSED on the same fixture.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4055718Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4055970Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4056223Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4056471Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4056725Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4056976Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4057225Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4057472Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4057745Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4058006Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4058255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4058532Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4058790Z               "line": 1016
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4059129Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4059372Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4059616Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4059872Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4060129Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4060448Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4060690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4060991Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4061248Z               "line": 1393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4061500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4061747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4062028Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4062291Z               "line": 18203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4062531Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4062783Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4063025Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4063272Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4063587Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4063845Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4064094Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4064427Z               "path": "crates/spt/tests/human_redeem_msg_code_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4064689Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4064936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4065184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4065523Z               "path": "crates/spt/tests/human_redeem_msg_code_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4065788Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4066035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4066283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4066621Z               "path": "crates/spt/tests/human_redeem_msg_code_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4066878Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4067122Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4067370Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4067614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4067861Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4068128Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4068390Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4068646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4069045Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4069307Z               "line": 1131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4069551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4069856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4070162Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4070418Z               "line": 2529
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4070671Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4070914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4071217Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4071473Z               "line": 2119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4071716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4071964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4072255Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4072512Z               "line": 2161
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4072808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4073057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4073362Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4073629Z               "line": 2194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4073875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4074119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4074405Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4074663Z               "line": 38137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4074910Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4075153Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4075406Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4075650Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4075898Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4076144Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4076428Z       "id": "REQ-KNOCK-INBOX-DAEMON-OWNED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4081592Z       "title": "The knock inbox is DAEMON-OWNED and durable independently of any agent's attach state: knocks land and persist whether or not the target's agent is running, attached, or resting, and an engine-room that is posture-offline loses nothing it was sent. This rules OUT the per-perch message spool as the substrate — that store is a property of a perch and dies with `endpoint purge`, which would make purging one endpoint destroy knocks addressed to another and would silently discard a pending knock at exactly the moment an operator is reorganizing endpoints. The store is therefore node-level and daemon-owned, and its durability is proven rather than asserted: purging the KNOCKER's perch leaves the knock answerable by the target, since the record's authority is the daemon's mint-time stamp and not the continued existence of the knocker's perch. Knocks are never auto-surfaced to the receiving agent — the inbox is queryable and the user or another agent must ask — with the sole exceptions being the three consented notifications. Gate: doc — the CONTEXT.md knock entry naming the inbox as daemon-owned and queryable-not-surfaced; impl — the node-level daemon-owned store; unit — a knock survives the target agent being absent and is answerable when it returns, purging the knocker's perch leaves the knock answerable, and no knock reaches an agent's event stream unbidden.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4081947Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4082199Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4082454Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4082701Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4082940Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4083192Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4083445Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4083707Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4083975Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4084219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4084540Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4084793Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4085041Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4085289Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4085543Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4085789Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4086056Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4086309Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4086557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4086856Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4087126Z               "line": 1119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4087373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4087612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4087917Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4088171Z               "line": 1125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4088480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4088725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4089115Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4089369Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4089618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4089874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4090155Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4090418Z               "line": 17896
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4090671Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4090918Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4091157Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4091409Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4091729Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4091987Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4092238Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4092483Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4092745Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4093004Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4093257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4093552Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4093824Z               "line": 3352
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4094066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4094314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4094614Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4094869Z               "line": 3380
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4095110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4095353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4095648Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4095902Z               "line": 3393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4096150Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4096393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4096694Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4096960Z               "line": 3422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4097207Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4097458Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4097701Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4097943Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4098182Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4098426Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4098759Z       "id": "REQ-KNOCK-KNOCKER-STAMP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4103115Z       "title": "BINDING: the knock record's knocker field is daemon-stamped at mint (session-proven, the W2b discipline) and never caller-supplied. This is the load-bearing security property of the whole knock mechanism, not a hardening detail — an approval WRITES A WHITELIST ENTRY FOR THAT ID, so a forgeable knocker field is a grant-to-attacker primitive: an attacker who can name someone else as the knocker gets the target's own agent to authorize reach for an identity the attacker controls. KNOCK is therefore attributable by construction, independent of the per-surface attributability of whatever surfaces the knock requests. The stamp is applied at the same sending-daemon seam that proves the sender endpoint, and no CLI flag, envelope field or record edit may override it after mint. Gate: doc — the CONTEXT.md knock entries naming the stamp as binding; impl — the mint-time stamp with no caller-supplied path to the field; unit — a knock minted by an agent carries that agent's proven id, a caller-supplied knocker value is ignored or refused rather than persisted, and an approval writes its entry for the STAMPED id and never for a supplied one.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4103420Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4103668Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4103912Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4104160Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4104408Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4104655Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4104903Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4105151Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4105415Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4105679Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4105922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4106251Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4106504Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4106748Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4106997Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4107244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4107496Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4107828Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4108074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4108328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4108633Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4108900Z               "line": 1677
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4109229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4109476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4109781Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4110039Z               "line": 1909
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4110286Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4110592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4110904Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4111166Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4111418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4111661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4111962Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4112229Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4112473Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4112717Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4113017Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4113272Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4113518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4113766Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4114048Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4114310Z               "line": 16899
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4114561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4114806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4115091Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4115350Z               "line": 17670
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4115593Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4115835Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4116087Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4116331Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4116593Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4116855Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4117102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4117417Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4117675Z               "line": 1158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4117923Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4118233Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4118484Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4118729Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4119083Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4119340Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4119583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4119898Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4120156Z               "line": 2843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4120400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4120646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4120961Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4121270Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4121521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4121774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4122070Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4122332Z               "line": 2475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4122579Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4122827Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4123066Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4123314Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4123557Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4123799Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4124101Z       "id": "REQ-KNOCK-MINT-MUTUAL-IS-A-REQUEST",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4138919Z       "title": "RETIRED 2026-08-04 (ADR-0055, releases#144 bag grill) — ITS SUBJECT NO LONGER EXISTS. `knock new-code --mutual` is removed: a mint declares no directionality at all, so there is no mint-side pre-authorization left to be a request or a grant. The finding this requirement recorded stands as history and its second property survives it — no surface may claim a reverse the claiming side did not open — which is now carried by the sender-declared model itself, where only the declarer's own act opens the declarer's own side. Its impl, unit and int evidence deleted with the code (including arms 2 and 3 of crates/spt/tests/knock_mutual_cross_node_e2e.rs; the surviving arms stay and remain REQ-KNOCK-REDEEM-MUTUAL-RECEIPT's). Retained in the registry rather than deleted so the reversal reads back. The superseded text follows verbatim. A MINT-SIDE `--mutual` IS A REQUEST FOR THE REVERSE, NEVER A GRANT OF IT, AND NOTHING MAY RENDER IT AS ONE. The reverse of a code grant is the TARGET reaching the REDEEMER, which can only be opened by a rule scoped on the REDEEMER'S OWN endpoint -- so no record held on the MINTING node can ever constitute that consent. As shipped, `new-code --mutual` armed a minter-local record whose consumption wrote scope=target subject=redeemer, which is the SAME DIRECTION the redemption grant already wrote: a DUPLICATE, not a reverse. The `REDEEMED` reply then carried a flag rendered to the presenter as `reach is TWO-way -- they may reach you as well`, asserting a direction that nothing had opened and that only the presenter's own act could open. TWO INDEPENDENT PROPERTIES, and the second is not implied by the first: the mint-side mutual must not DUPLICATE the forward grant, and no surface may CLAIM a reverse that the claiming side did not open. A repair that stopped the duplicate write while leaving the sentence standing would satisfy one and keep shipping the other. THE RATIFIED PRINCIPLES DECIDE THE INSTRUMENT and this requirement records which: `knock approve --mutual` was always the precedent -- when the side OFFERING reach wants it back, the instrument is a reciprocal KNOCK, not a grant -- so consuming the mint-armed record puts the target's knock in the redeemer's inbox, the redeemer answers it, and the reverse opens with the only consent that can open it. `full mutuality needs both` is FALSE under the grant spelling (`redeem --mutual` alone already writes the true reverse) and TRUE under this one, which is the tell that distinguishes them. WHICH SIDE A PRE-AUTHORIZATION IS MUST BE RECORDED AT ARM TIME, not re-derived at consumption by comparing an owner against the code's target: the two sides owe DIFFERENT things and a discriminant inferred at the check is a second source for what was known at the mint. THE REPLY IS THE CARRIER and the provenance is its own: the request rides the redemption reply already crossing the seam with node-proof in hand, and the knock the redeemer's node writes from it is stamped with a provenance distinct from a handshake-stamped first-order knock -- it is sound because the redeemer opened a sealed code with a subnet seed and received a node-proven reply in the SAME exchange, which is better evidence than an inbound receiver holds, and that argument does not generalize beyond this exchange. Gate: doc -- the CONTEXT.md mutual entry carrying the struck-and-amended mint-side clause; impl -- the arm-time side discriminant on the record, the consumption producing a reciprocal knock instead of a rule, the reply-carried request, and the distinct provenance at the write site; unit -- a mint-armed record's consumption yields a KNOCK and writes NO access rule (asserted against a fixture where the duplicate rule would be visible, since a repair that merely stopped rendering would pass a rendering-only row), a redeemer-armed record's consumption still yields its reverse RULE (the pair asserted together, since either alone passes an implementation that treats every record one way), the reply-written knock carries the distinct provenance and NOT the first-order one, and no surface renders a two-way claim on the strength of the minting side's record alone. Retirement row: the `they may reach you as well` sentence is gone from every surface, asserted by rendering.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4139438Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4139685Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4139936Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4140203Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4140470Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4140708Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4140961Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4141229Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4141486Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4141733Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4142019Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4142286Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4142542Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4142788Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4143036Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4143303Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4143566Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4143809Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4144052Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4144295Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4144538Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4144820Z       "id": "REQ-KNOCK-MONIC-IMPART",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4154207Z       "title": "A knock answer can impart a MONIC about whoever it admits: `spt knock approve <id> --monic <message>` writes the note at the approval, and `spt knock new-code --monic <message>` bakes one into a code that is imparted when the code is REDEEMED. The code path is deferred by necessity rather than by design — at mint there is nobody to write a classification about yet, and the redeemer's identity only becomes stamped-and-real at redemption. THE NOTE IS ABOUT A DAEMON-STAMPED ID, never a caller-supplied one: it is written about the same stamped knocker id an approval writes its whitelist entry for, so a note can no more be planted on an innocent peer than a grant can. A knocker with no endpoint id — a bare-terminal human, stamped as their node — CANNOT be classified: the note is refused loudly and the grant stands, because writing a classification under a node id would produce a record no delivery-edge lookup can ever match while reading back as though someone had been classified. AN EXISTING CLASSIFICATION IS KEPT. Both paths route through ONE shared impart primitive whose rule is that the owner's standing judgement outranks a judgement arriving with a grant — an approval must not silently rewrite what an agent already decided about a peer, and a note typed at code-mint hours earlier certainly must not — and the caller is told which happened so it prints the replace command instead of implying the note landed. An UNREADABLE record is not a classification, so imparting replaces a husk. THE NOTE RIDES THE GRANT AND NEVER CHANGES IT: it is imparted only AFTER the grant has committed, is skipped entirely on a refusal (a classification of a peer you did not admit), and a mind that cannot be opened costs a loud diagnostic rather than a retracted approval. Whose mind holds the judgement is RECORDED, not derived: a node-target code is minted by the engine room and a node has no mind, so the imprint carries its owner endpoint from the mint, and the redemption path never guesses. The code record's imprint field is ADDITIVE — a code minted before the field existed still reads, and a code with no note serializes without the key. Gate: impl — the `--monic` flag on approve (a NEW public flag; it existed only on new-code, where it was recorded and inert), the owner-carrying imprint on the code record, the shared impart primitive, and the impart calls at the approve and redeem sites after their commits; unit — imparting writes with knock provenance, KEEPS a standing judgement and reports what is held, replaces a husk, the imprint field reads with and without a note in the record bytes, and both answer surfaces parse the flag.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4154593Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4154841Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4155093Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4155338Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4155584Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4155824Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4156082Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4156335Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4156593Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4156865Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4157107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4157441Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4157699Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4157947Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4158191Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4158436Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4158694Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4159100Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4159356Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4159601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4159915Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4160173Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4160422Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4160662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4160974Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4161237Z               "line": 393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4161481Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4161734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4162095Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4162359Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4162601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4162853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4163154Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4163415Z               "line": 917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4163663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4163908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4164194Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4164452Z               "line": 18291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4164705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4164949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4165235Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4165492Z               "line": 18336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4165740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4165997Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4166276Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4166538Z               "line": 18560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4166785Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4167032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4167314Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4167572Z               "line": 18995
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4167821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4168064Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4168350Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4168607Z               "line": 19675
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4168864Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4169193Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4169498Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4169746Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4170008Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4170265Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4170508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4170856Z               "path": "crates/spt/tests/knock_approve_not_hostage_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4171108Z               "line": 240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4171360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4171601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4171950Z               "path": "crates/spt/tests/knock_approve_not_hostage_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4172251Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4172507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4172750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4173084Z               "path": "crates/spt/tests/knock_approve_not_hostage_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4173346Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4173595Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4173839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4174180Z               "path": "crates/spt/tests/knock_approve_not_hostage_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4174445Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4174688Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4174932Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4175180Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4175427Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4175699Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4175951Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4176195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4176491Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4176765Z               "line": 1874
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4177016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4177263Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4177569Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4177827Z               "line": 1791
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4178075Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4178324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4178672Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4178929Z               "line": 29570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4179268Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4179513Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4179762Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4180010Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4180249Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4180491Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4180758Z       "id": "REQ-KNOCK-MUTUAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4190693Z       "title": "Two-way reach is ENCOURAGED but never imposed, and NOBODY WRITES ANOTHER ENDPOINT'S RULES — the principle this requirement exists for, unchanged through two amendments of its mechanism. AMENDED 2026-08-04 (USHER, releases#144 / ADR-0055), CORRECTING the 2026-08-01 DOORBELL W2 amendment rather than adding to it: two-way reach DECOMPOSES INTO TWO SOVEREIGN ACTS, each side opening only its own inbound, and each act is declared by the side that PERFORMS it. The requester declares theirs at the requesting verb (--send-receive pre-authorizes a rule on the requester's OWN endpoint, written by their own daemon at answer-receipt, keyed to the knock's correlation id and the node-proven answer, subject exactly the endpoint knocked, and CONSUMED EXACTLY ONCE: a replayed or duplicated answer must not write it twice, and an answer that never arrives leaves it unconsumed rather than dangling as an open grant). The RECEIVER declares nothing when accepting — accepting IS their own-side act — and REVERSE REACH IS ARMED BY THE OTHER SIDE'S OWN KNOCK-BACK, an ordinary knock carrying its own declaration, never a rider on an approval and never a grant written across the boundary. SUPERSEDED SPELLINGS, both of which this requirement once carried: \"one-directional approve stands as the default\" (a silent default nobody typed), and \"approving with the mutual flag performs approve-plus-counter-knock\" (a second grammar for the knock verb's own job — removed, not renamed, by ADR-0055). What survives every revision intact: auto-mutual stays BANNED, and so does a standing \"mutual mode\" setting. The forced-choice machinery now lives at the requesting seats and is specified by REQ-KNOCK-DIRECTIONALITY-SENDER. NOTIFICATIONS ARE NOW TWO, not three, and the reduction is a CONSEQUENCE of the counter-knock's removal rather than a separate decision: an approval notifies the knocker, and a code redemption notifies the code's minter. The third — a counter-knock's arrival notifying the original knocker — was produced by the counter-knock path and dies with it; a knock-back is an ordinary knock and lands inbox-only, which is the never-auto-surface default the other two are exceptions to. Nobody whose own act did not invite the notice is ever notified. Gate: doc — the CONTEXT.md mutual-whitelisting entry, carrying the two sovereign acts and the knock-back as the reverse's only instrument; impl — the pre-authorization record with its correlation-id keying and once-only consumption, and the two notifications; unit — a pre-authorization is consumed exactly once under a replayed answer, an unanswered knock leaves it unconsumed, the send-only stdout prints a reverse command that actually PARSES under the mandatory-flag grammar, and no third notification path exists.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4191070Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4191323Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4191580Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4191825Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4192078Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4192328Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4192574Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4192846Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4193104Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4193366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4193637Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4193908Z               "line": 993
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4194157Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4194396Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4194644Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4194896Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4195162Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4195412Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4195713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4196013Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4196281Z               "line": 1374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4196533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4196776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4197081Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4197338Z               "line": 1398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4197582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4197824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4201860Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4202240Z               "line": 1411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4202493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4202746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4203041Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4203301Z               "line": 17208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4203543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4203786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4204074Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4204340Z               "line": 18720
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4204589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4204836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4205122Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4205380Z               "line": 18779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4205627Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4205870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4206158Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4206410Z               "line": 18797
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4206654Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4206902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4207156Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4207408Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4207670Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4207932Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4208171Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4208422Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4208677Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4208934Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4209277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4209588Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4209841Z               "line": 2795
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4210151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4210399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4210700Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4210968Z               "line": 2830
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4211213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4211461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4211743Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4212000Z               "line": 37744
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4212253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4212500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4212834Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4213091Z               "line": 37840
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4213335Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4213582Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4213828Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4214075Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4214319Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4214576Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4214863Z       "id": "REQ-KNOCK-NOTIFY-INSTIGATOR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4229409Z       "title": "THE THREE CONSENTED KNOCK COURTESIES REACH THE PARTY THEY ARE OWED TO -- an approval notifies the KNOCKER, a redemption notifies the code's MINTER, and each is ADDRESSED to that endpoint rather than aimed at whoever the user was last seen at. Field origin (releases#149/#169): lia minted an invite code, it was redeemed, and lia was never told; the notification existed, landed on the right NODE, and could not surface. THREE STRUCTURAL FAULTS IN ONE SHAPE, written the same way at all four producing sites (local approve, cross-node approve, local redeem, cross-node redeem): the recipient rode the `from_id` slot because the row had NO ADDRESSEE FIELD, so the notif said the recipient issued it; the subnet was the empty string, which is not a member subnet, and BOTH surfacing paths walk member subnets only -- `resurface_at_boundary` iterates `policy.subnets` (built from real memberships) and first-fire admits candidates through `policy.visible(id, subnet)`, false for every endpoint at `\"\"` -- so the row was unreachable by construction; and they called `NotifStore::produce_scoped` DIRECTLY, bypassing the daemon's produce-and-fire front door, so nothing was delivered live either. THE FIX IS AN ADDRESSED NOTIF, NOT A LOUDER MISS (doyle Q1, ADR-0046 amendment 2): `NotifRow` grows an optional `to_id` (additive serde, the `SubscribeReq.code` precedent -- an N-1 peer parses an addressed row clean and reads it as unaddressed), honored at BOTH surfacing paths -- first-fire targets the ADDRESSEE and the address BEATS most-recently-active, with NO fallback to the MRA winner (an absent addressee yields NoTarget and the row waits for that endpoint's own next boundary), and a boundary resurface at any OTHER endpoint SKIPS the row with its own outcome rather than a suppression, because `not you` and `not now` are different facts. Merely giving the rows a real subnet was REJECTED as a fix: delivery would stay presence-MRA, so on a 14-endpoint node the approval notice still lands on a bystander. Re-homing the three onto the message spool was rejected too -- they were deliberately put on the notif spool against inbox delivery by the ratified W4 decision, and the spool would silently retire it. ONE PRODUCER FOR ALL FOUR SITES, with a REAL member subnet: the correlation subnet the exchange rode (the member subnet whose registry has seen the peer's node) where one is derivable, else the first member subnet the ADDRESSEE IS VISIBLE IN -- visibility is the condition both surfacing paths impose, so a subnet the recipient is hidden in would reproduce the unreachable row under a nicer name. THE APPROVAL COURTESY IS LIFTED AHEAD OF THE MUTUAL ARM: the cross-node producer sat after the `ReceiptOutcome::Consumed` arm, which only a `--mutual` knocker reaches, so a plain knock's receipt returned `Ignored` and the ORDINARY knocker -- the party who asked, with no other way to learn the answer -- was structurally un-notifiable. It is now produced on every APPROVAL, proven by the outbound knock row THIS node sent (matched on correlation id, the answering endpoint and the handshake-proven origin node) rather than by the pre-authorization, so a receipt matching none of our knocks notifies nobody and a guessed correlation id cannot become a spray channel; a DENIAL still notifies no one, since the ratified set does not extend to it. A REPLAYABLE arrival carries a coalesce key naming the EXCHANGE (`spt-core:knock-answered:<correlation-id>`) and not the kind -- two approvals are two facts and both stand, while two receipts for one knock are one fact said twice, so ADR-0046 decision 2's supersession leaves exactly one LIVE courtesy per knock instead of nagging. Gate: doc -- ADR-0046 amendment 2 stating the addressee, both honoring paths, the member-subnet rule and the lift; impl -- the `to_id` field, column and addressed produce front doors, the addressed first-fire target and the resurface skip, the shared courtesy producer and its subnet chooser, the outbound-knock proof seam, and all four producing sites moved onto it; unit -- per courtesy produce->fire->surface, an addressed row NEVER lands on a bystander (the 14-endpoints-on-a-box case), an absent addressee yields NoTarget rather than the MRA winner, a resurface elsewhere skips and the addressee's own boundary surfaces it, a plain (non-mutual) approval receipt produces the courtesy, a receipt matching no outbound knock produces nothing, and the subnet chooser refuses a subnet the addressee is hidden in.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4229797Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4230050Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4230299Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4230546Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4230795Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4231041Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4231295Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4231538Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4231801Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4232059Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4232347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4232734Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4233000Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4233253Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4233501Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4233750Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4233999Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4234265Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4234516Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4234767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4235073Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4235377Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4235621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4235872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4236182Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4236439Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4236683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4236927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4237242Z               "path": "crates/spt-daemon/src/knocknotif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4237498Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4237748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4237996Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4238311Z               "path": "crates/spt-daemon/src/knocknotif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4238568Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4238822Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4239156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4239470Z               "path": "crates/spt-daemon/src/knocknotif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4239732Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4239973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4240224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4240525Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4240787Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4241030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4241273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4241573Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4241831Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4242088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4242333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4242690Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4242950Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4243198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4243446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4243747Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4244009Z               "line": 704
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4244253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4244510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4244805Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4245066Z               "line": 750
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4245318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4245613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4245927Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4246185Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4246437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4246675Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4246986Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4247243Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4247492Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4247740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4248033Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4248293Z               "line": 1250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4248533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4248780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4249162Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4249424Z               "line": 126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4249672Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4249915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4250215Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4250472Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4250719Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4250965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4251265Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4251518Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4251842Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4252086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4252372Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4252639Z               "line": 17209
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4252888Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4253135Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4253377Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4253626Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4253888Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4254145Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4254387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4254697Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4255017Z               "line": 1624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4255260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4255514Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4255817Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4256073Z               "line": 2832
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4256320Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4256564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4256878Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4257136Z               "line": 2884
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4257384Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4257627Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4257875Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4258122Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4258386Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4258641Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4258891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4259293Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4259554Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4259802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4260045Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4260355Z               "path": "crates/spt-daemon/src/answerop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4260614Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4260862Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4261103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4261415Z               "path": "crates/spt-daemon/src/knocknotif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4261673Z               "line": 180
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4261917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4262165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4262532Z               "path": "crates/spt-daemon/src/knocknotif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4262794Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4263037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4263280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4263599Z               "path": "crates/spt-daemon/src/knocknotif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4263852Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4264100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4264342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4264642Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4264900Z               "line": 943
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4265191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4265440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4265735Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4265998Z               "line": 1003
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4266239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4266485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4266785Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4267043Z               "line": 1045
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4267291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4267538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4267848Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4268106Z               "line": 639
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4268354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4268603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4268903Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4269249Z               "line": 1714
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4269509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4269752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4270047Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4270311Z               "line": 735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4270554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4270807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4271103Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4271359Z               "line": 779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4271663Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4271909Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4272157Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4272405Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4272647Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4272891Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4273201Z       "id": "REQ-KNOCK-PRESCRIBED-REMEDY-HONORED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4283169Z       "title": "A REMEDY THE CLI PRESCRIBES IS ONE THE CLI HONORS. `spt knock list` prints, beside every waiting knock, the command that answers it; running exactly that command from exactly that seat must not then be refused by the approve path. The defect this closes was observed verbatim in the field (releases#66, flynn -> Librarian during the v0.49.0 verify): the listing prescribed `spt knock approve <id> --approve-requested`, and the same binary answered that invocation with `not approved — <surface> stays pending, which only the engine room can answer`. PRESCRIBE-THEN-REFUSE IS THE WORST OF THE THREE AVAILABLE BEHAVIOURS, and the reason is not tidiness: a printed command is read as authoritative — more so than prose, because it is copy-pasteable — so a wrong one spends the operator's trust in the surface that exists to be trusted, and it does so at the moment they are deciding whether to widen access. Refusing with an explanation would be honest; prescribing the honored form would be helpful; prescribing an unhonored form is neither, and it is indistinguishable from the tool being broken. THE FIX IS A SHARED PREDICATE, NOT A SECOND LITERAL. The listing must compose its remedy from THE SAME decision the approve path evaluates, so the two cannot drift apart again — the single-source discipline the surface table already carries for attributability, applied to the prescription. A remedy composed by re-typing what the approve path is believed to do is the same defect one refactor later. WHERE NO INVOCATION FROM THE LISTING SEAT WOULD SUCCEED, THE LISTING SAYS SO AND NAMES THE SEAT THAT CAN ANSWER, rather than printing a command that seat cannot run: the honest arm of a prescription is sometimes 'not by you', and that is information the operator can act on. THE PRESCRIPTION MUST NEVER RECOMMEND A WIDENING THE GRANT DOES NOT REQUIRE. Stated as its own constraint because it is the failure mode a naive reading of the field report produces: telling an operator to add the whole-machine acknowledgment for a grant that binds a single proven sender would trade a confusing refusal for a silent over-grant, which is strictly worse — a refusal costs a round trip, an unnecessary widening costs the access boundary. Gate: impl — the shared answerability predicate and the listing composing its remedy line from it; unit — a knock the listing seat can fully answer prescribes an invocation that the approve path accepts, a knock it cannot fully answer prescribes the form that WOULD succeed or names the seat that can answer instead of printing an unhonored command, no prescription recommends an acknowledgment the grant does not require, and the listing's prescription and the approve path's decision are asserted to be the same predicate rather than two agreeing literals.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4283561Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4283823Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4284071Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4284319Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4284558Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4284815Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4285062Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4285325Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4285577Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4285820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4286144Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4286406Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4286664Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4286907Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4287151Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4287397Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4287662Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4287920Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4288159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4288520Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4288788Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4289126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4289365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4289671Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4289927Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4290178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4290425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4290720Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4290983Z               "line": 738
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4291278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4291530Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4291826Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4292083Z               "line": 795
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4292327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4292581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4292883Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4293147Z               "line": 807
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4293396Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4293640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4293930Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4294189Z               "line": 17398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4294435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4294674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4294960Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4295227Z               "line": 17701
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4295476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4295727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4296007Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4296275Z               "line": 17958
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4296519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4296771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4297053Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4297315Z               "line": 18036
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4297567Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4297810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4298099Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4298355Z               "line": 18149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4298704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4299061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4299352Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4299615Z               "line": 18170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4299857Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4300106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4300386Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4300645Z               "line": 18357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4300891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4301146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4301432Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4301746Z               "line": 18458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4301996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4302234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4302516Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4302773Z               "line": 18514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4303020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4303267Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4303556Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4303813Z               "line": 18907
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4304066Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4304313Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4304552Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4304800Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4305064Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4305320Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4305567Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4305820Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4306078Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4306344Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4306587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4306891Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4307154Z               "line": 3583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4307393Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4307642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4307938Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4308257Z               "line": 3809
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4308498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4308753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4309144Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4309397Z               "line": 3830
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4309650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4309894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4310194Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4310461Z               "line": 3851
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4310703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4310951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4311298Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4311555Z               "line": 3882
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4311807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4312054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4312340Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4312597Z               "line": 37487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4312845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4313095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4313381Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4313638Z               "line": 38057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4313889Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4314130Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4314378Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4314621Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4314859Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4315108Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4315398Z       "id": "REQ-KNOCK-PRESCRIBES-FORK-PAIR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4322347Z       "title": "THE KNOCK PRESCRIPTION PRESCRIBES THE PAIR WHERE THE PAIR IS NEEDED: when a pending knock asks for `FORK` without `DISCOVER` and the knocker's machine would still be refused `DISCOVER` on the target, `knock list` prescribes `spt knock approve <id> --surfaces FORK,DISCOVER` beside the form line, naming why -- the knocker would be granted an operation it cannot reach. Prescribed ONLY where the binary would otherwise refuse (doyle Q3), from the SAME predicate REQ-ACL-FORK-WITHOUT-DISCOVER-CONSEQUENCE answers, so the two statements about one question cannot drift; the rule an as-requested approval WOULD write is BUILT and handed to that predicate rather than described, which is the shape `approval_form` already established after a hand-written second copy of an approval classifier went stale in the field. IT RIDES BESIDE THE FORM LINE, NEVER REPLACING IT: the form line says what the SEAT must pass for the approval to be honored, this says what the approval must GRANT to be usable, and an operator who pasted the form line and stopped would write the exact grant that filed the request. `--approve-requested` IS NOT TAUGHT TO WIDEN: it means exactly what was asked for, and quietly granting a surface nobody requested would make that flag a liar at every other site that uses it -- so the prescription is an explicit `--surfaces` invocation the operator can read before pasting. Silent when the request already names `DISCOVER`, when it is blanket (which covers every surface), when it names no `FORK`, or when the knocker's machine can already resolve the target. Gate: doc -- the CONTEXT.md fork-pair entry, prescription half; impl -- the prescription composer over the built rule and the shared verdict, and its `knock list` call site below the form line; unit -- a FORK-only knock from a machine that cannot resolve gets the paired invocation with DISCOVER appended, the same knock from a machine that CAN resolve gets nothing, a FORK+DISCOVER request gets nothing, a blanket request gets nothing, and the composed command parses as the approve verb's own `--surfaces` form.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4322643Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4322890Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4323139Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4323387Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4323636Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4323883Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4324135Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4324383Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4324653Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4324909Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4325205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4325476Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4325743Z               "line": 951
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4325992Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4326235Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4326484Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4326726Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4326993Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4327245Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4327493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4327779Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4328046Z               "line": 18008
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4328351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4328598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4328885Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4329228Z               "line": 18035
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4329480Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4329723Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4329973Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4330221Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4330493Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4330751Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4330994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4331304Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4331557Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4331809Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4332052Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4332297Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4332542Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4332807Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4333064Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4333308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4333599Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4333852Z               "line": 36421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4334104Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4334347Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4334591Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4334835Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4335080Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4335321Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4335622Z       "id": "REQ-KNOCK-REDEEM-MUTUAL-RECEIPT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4344212Z       "title": "VOCABULARY CORRECTED 2026-08-04 (ADR-0055, releases#144): the flag is --send-receive, its retired spelling was --mutual; the requirement itself is UNCHANGED and survives the ratification intact, since redeem is a REQUESTING verb and keeps its directionality declaration. `redeem --send-receive` ARMS THE REDEEMER'S OWN SIDE AND THE NODE-PROVEN `REDEEMED` REPLY CONSUMES IT. Unlike the knock case the receipt ALREADY EXISTS on this route -- the proven reply arrives back at the redeemer -- and is simply not wired to the flag, which is why this is materially cheaper than the answer-receipt build and not covered by it. ADR-0054's governing clause is the spec, verbatim: `--send-receive` stays redeemer-local, consumed once by the node-proven `REDEEMED` reply. As shipped the cross-node route arms NOTHING and refuses with a general rule -- that `--send-receive` arms the minter's side and is set at mint -- WHICH THE LOCAL ROUTE FALSIFIES by arming the redeemer's own side and consuming it in the same invocation: the refusal is keyed on the ROUTE but explains itself on the axis of flag ownership, so it is wrong wherever it is read. THE SUBJECT COMES FROM THE REPLY, NEVER FROM A LOCAL GUESS -- the redeemer holds no code record, so the counterpart identity and the surfaces are exactly what the proven reply carried, which is what the store's already-shipped empty-subject-means-whoever-answered resolution exists for. THE INTENTION IS RECORDED BEFORE THE OUTCOME IS KNOWN, so the three outcomes can be told apart on the record and not merely in a rendering: REDEEMED consumes, REFUSED disarms, and UNCONFIRMED NEITHER -- no proof, no open, and no false close either; the armed record survives the silence and expires with itself rather than being read as an answer. Gate: impl -- the arm on the redeemer's own store ahead of the send, keyed in the CODE keyspace, and the three-way consume/disarm/leave on the outcome; unit -- REDEEMED consumes exactly once and writes the reverse rule naming the subject THE REPLY carried (asserted against a reply whose target differs from anything the redeemer could have guessed locally, so a local-guess implementation fails the row), REFUSED leaves NO armed record, UNCONFIRMED leaves the record ARMED and unconsumed -- the three asserted on one fixture, since any two alone pass an implementation that collapses the third into a neighbour -- and a replayed REDEEMED reply writes the reverse rule no second time. Retirement row: the shipped cross-node refusal message is GONE from every surface that carried it, asserted by rendering the surfaces rather than by reading the source.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4344597Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4344850Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4345114Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4345366Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4345616Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4345857Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4346107Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4346355Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4346621Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4346873Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4347121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4347455Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4347712Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4347967Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4348210Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4348451Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4348703Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4349051Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4349304Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4349553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4349858Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4350115Z               "line": 1048
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4350367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4350610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4350918Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4351165Z               "line": 1440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4351417Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4351660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4351956Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4352271Z               "line": 1481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4352524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4352768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4353050Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4353312Z               "line": 19100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4353553Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4353799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4354081Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4354338Z               "line": 19221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4354590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4354833Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4355171Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4355428Z               "line": 19350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4355678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4355922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4356210Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4356475Z               "line": 19459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4356718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4356966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4357258Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4357515Z               "line": 19475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4357762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4358006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4358286Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4358550Z               "line": 19494
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4358798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4359130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4359421Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4359678Z               "line": 1469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4359926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4360174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4360470Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4360728Z               "line": 1552
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4360975Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4361222Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4361535Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4361783Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4362050Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4362312Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4362549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4362898Z               "path": "crates/spt/tests/knock_mutual_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4363151Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4363404Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4363647Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4363895Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4364146Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4364402Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4364712Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4364956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4365261Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4365518Z               "line": 3009
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4365765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4366013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4366308Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4366572Z               "line": 3075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4366813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4367063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4367359Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4367616Z               "line": 3148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4367860Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4368109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4368395Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4368647Z               "line": 30187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4368895Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4369219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4369504Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4369762Z               "line": 30235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4370014Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4370256Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4370505Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4370749Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4370988Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4371230Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4371516Z       "id": "REQ-KNOCK-REDEEM-SERVE-INTENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4377528Z       "title": "THE SERVE SIDE EXECUTES THE MINT'S STANDING INTENT, NEVER THE NODE-SOVEREIGN LEVER. A redemption arriving over the wire is answered with the authority recorded AT MINT -- owner-agent for an endpoint code, engine room for a node code, both already enforced where the code is minted -- and never `SameNodeUser`: no human is present at a wire redemption, and borrowing the node-sovereign authority would falsify the audit trail by recording a machine's act as a person's. SUBJECT BINDING MIRRORS THE APPROVAL PATH'S OWN SPLIT rather than restating it: an ATTRIBUTABLE surface binds the stamped redeemer as a sender endpoint, a NON-ATTRIBUTABLE one binds the handshake-proven origin NODE -- which is real widening, and therefore `--admit-node` ARRIVES ON `new-code`, is REFUSED for a non-attributable bake without it, PERSISTS on the code record, and is CITED when the redemption executes. That is the mechanism the glossary's 'same widening acknowledgment as an approve' promised and never had. A BARE-TERMINAL REDEEMER binds the narrow node-plus-origin-user subject, exactly as a human's knock does. Gate: doc -- the entry stating whose authority answers a wire redemption and what binds; impl -- the mint-recorded authority, the acknowledgment on the code record and the shared subject split; unit -- an endpoint code answering under owner-agent and a node code under engine-room authority with NEITHER answering under same-node-user, a non-attributable bake refused without the acknowledgment and accepted with it, the acknowledgment surviving a store round trip and being cited at redemption, and an attributable surface binding the redeemer while a non-attributable one binds the node -- the pair asserted together, since either alone passes an implementation that binds everything the same way.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4377820Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4378068Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4378316Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4378562Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4378806Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4379192Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4379440Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4379703Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4379957Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4380197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4380469Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4380731Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4380980Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4381219Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4381465Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4381713Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4381975Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4382280Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4382528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4382850Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4383107Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4383359Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4383603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4383904Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4384166Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4384420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4384667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4384967Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4385228Z               "line": 632
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4385475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4385727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4386009Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4386280Z               "line": 17303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4386523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4386771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4387057Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4387320Z               "line": 18919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4387568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4387809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4388093Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4388352Z               "line": 19024
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4388599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4388841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4389214Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4389475Z               "line": 19075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4389790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4390047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4390329Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4390592Z               "line": 19667
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4390834Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4391086Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4391339Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4391583Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4391854Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4392113Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4392365Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4392612Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4392931Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4393186Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4393439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4393749Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4394007Z               "line": 745
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4394263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4394502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4394816Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4395069Z               "line": 1094
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4395323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4395575Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4395874Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4396133Z               "line": 1126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4396378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4396626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4396926Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4397203Z               "line": 2379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4397445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4397698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4397993Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4398247Z               "line": 2414
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4398493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4398762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4399145Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4399464Z               "line": 29613
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4399716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4399964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4400251Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4400513Z               "line": 29780
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4400752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4401000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4401284Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4401546Z               "line": 30019
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4401790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4402085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4402368Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4402634Z               "line": 30693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4402881Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4403124Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4403368Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4403610Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4403855Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4404104Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4404385Z       "id": "REQ-KNOCK-REDEEM-WIRE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4416213Z       "title": "REDEMPTION TRAVELS AS ITS OWN KIND-TAGGED WIRE FAMILY, never a field on `KnockRecord`. Extending the knock record was refused on the record and the reason is the decisive one: UNKNOWN FIELDS DECODE FINE, so an older minter would ACCEPT a redemption as an ordinary knock -- pending in its inbox, no auto-approve, the code unconsumed, a knock-shaped ack returning -- and MISREAD IS WORSE THAN DROPPED. A new kind means an N-1 daemon resolves it to the unknown family and DROPS IT CLEAN, which is the honest failure. THE REDEEMER'S IDENTITY IS DAEMON-STAMPED at the proven-sender tier and never caller-supplied, the same seam the knocker stamp already rests on. THE OUTCOME IS A TRIPLE AND THE THIRD MEMBER IS LOAD-BEARING: REDEEMED (the granted surfaces, the one-directional sentence and the reverse command), REDEEM_REFUSED (ONE anti-oracle message covering unknown, expired, consumed-by-ANOTHER-EXCHANGE AND rate-limited alike -- WHICH budget or which reason a caller exhausted is itself the oracle), and REDEEM_UNCONFIRMED (no answer at all -- an older node or an unreachable one), which must NEVER collapse into refused: silence is not a decision, and a redeemer told 'refused' would stop trying a code that was never seen. THE REDEEMER RENDERS FROM THE REPLY, not from its own store, because redemption executes on the MINTING node and the redeemer holds no code record -- so the granted surfaces, the target and the acknowledgment citation ride the REDEEMED reply, while REFUSED CARRIES NOTHING AT ALL and UNCONFIRMED CLAIMS NOTHING (a refusal carrying a target would be the oracle the single message exists to prevent). THE RATE LIMIT IS THE RECEIVING NODE'S OWN, enforced against its own store and clock, and it SHARES ONE BUCKET with knock arrivals from that origin: both are attempts at the same door. A REPEAT OF THE EXCHANGE THAT ALREADY SPENT THE CODE IS ECHOED, NOT REFUSED (releases#193): the receiving node records WHICH wire exchange consumed each code -- the handshake-proven origin, the stamped redeemer and that presentation's own correlation id, plus the `reverse_requested` its first reply carried, which is the one field a later reply cannot recompute once the due is consumed -- and a presentation matching all three is answered with the SAME REDEEMED payload, reply-only: no second rule, no second minter courtesy, no second monic. This is the promise the seam's replay comment already made -- a replayed REDEEMED finds nothing unconsumed and writes nothing -- and the claim arm contradicted: measured on the two-host ladder, two dispatcher PROCESSES on one node each served one redemption, the winner consumed it and notified the minter, and the LOSER's refusal reached the presenter 88 ms ahead of the winner's REDEEMED -- so a redeemer was told 'nothing was decided and nothing was spent' about a grant written in their own name, which is the misread the outcome triple exists to prevent. The single anti-oracle message is UNCHANGED for every other cause, byte for byte, and the oracle does not widen: an echo requires proof of the exchange, which a guesser holding only the code string does not have. The dispatcher-exclusion half -- why two serve loops can exist at all -- is NOT this requirement's (releases#194). Gate: doc -- the networking entry naming the family, its tag and the outcome triple; impl -- the record, the reply, the classifier arm and the serve side; unit -- the record classifies into its own family and is never read as a message feed, an N-1 receiver drops it clean, the three outcomes are distinct with silence never rendering as refusal, refused and rate-limited emit the IDENTICAL message, and a refused reply carries no target.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4416604Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4416856Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4417103Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4417345Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4417597Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4417850Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4418099Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4418361Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4418613Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4418856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4419224Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4419499Z               "line": 978
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4419745Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4420003Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4420246Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4420493Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4420755Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4421008Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4421262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4421572Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4421839Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4422086Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4422332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4422643Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4422895Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4423149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4423396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4423715Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4424035Z               "line": 1151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4424316Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4424564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4424875Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4425144Z               "line": 1777
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4425391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4425648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4425953Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4426215Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4426468Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4426721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4427097Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4427356Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4427612Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4427856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4428171Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4428434Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4428687Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4428930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4429326Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4429584Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4429837Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4430087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4430395Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4430662Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4430910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4434958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4435319Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4435583Z               "line": 313
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4435840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4436079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4436412Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4436676Z               "line": 342
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4436929Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4437272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4437582Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4437859Z               "line": 453
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4438114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4438365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4438674Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4438937Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4439290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4439542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4439839Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4440101Z               "line": 593
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4440407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4440652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4440969Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4441222Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4441470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4441714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4442029Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4442290Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4442547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4442795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4443105Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4443369Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4443610Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4443853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4444163Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4444416Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4444664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4444908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4445218Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4445474Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4445722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4445967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4446269Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4446530Z               "line": 483
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4446787Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4447040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4447321Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4447626Z               "line": 1103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4447874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4448147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4448476Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4448741Z               "line": 1608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4449059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4449311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4449615Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4449883Z               "line": 1623
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4450136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4450389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4450728Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4450990Z               "line": 19093
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4451241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4451486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4451778Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4452045Z               "line": 19272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4452298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4452551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4452836Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4453098Z               "line": 19290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4453341Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4453595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4453881Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4454151Z               "line": 1438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4454399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4454647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4454944Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4455210Z               "line": 1633
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4455463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4455710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4455996Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4456258Z               "line": 1740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4456504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4456756Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4457056Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4457308Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4457580Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4457848Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4458091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4458345Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4458607Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4458868Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4459215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4459532Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4459794Z               "line": 2485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4460109Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4460358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4460691Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4460949Z               "line": 2538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4461198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4461439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4461748Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4462009Z               "line": 489
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4462257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4462500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4462810Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4463067Z               "line": 535
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4463315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4463563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4463873Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4464136Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4464384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4464649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4464959Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4465226Z               "line": 816
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4465479Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4465728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4466043Z               "path": "crates/spt-daemon/src/redeemop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4466305Z               "line": 873
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4466556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4466804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4467106Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4467430Z               "line": 2078
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4467688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4467937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4468251Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4468512Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4468760Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4469104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4469424Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4469685Z               "line": 291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4469941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4470193Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4470565Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4470828Z               "line": 313
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4471085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4471337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4471656Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4471923Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4472172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4472419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4472741Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4473002Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4473255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4473508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4473817Z               "path": "crates/spt-net/src/net/redeemmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4474080Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4474339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4474591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4474901Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4475166Z               "line": 2601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4475420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4475668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4475968Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4476230Z               "line": 2644
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4476482Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4476782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4477069Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4477331Z               "line": 30137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4477578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4477828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4478119Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4478391Z               "line": 3046
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4478639Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4478887Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4479211Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4479465Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4479712Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4480017Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4480316Z       "id": "REQ-KNOCK-UNRESOLVED-REFUSES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4490364Z       "title": "A KNOCK THAT RESOLVED NOWHERE REFUSES LOUDLY AND RECORDS NOTHING, and a knock that lands in the sender's OWN inbox says so. Operator-ruled 2026-08-03 (releases#145): if `spt knock` cannot reach endpoints on nodes lacking a DISCOVER rule, it must directly report that it cannot find the endpoint. The defect was one site with two halves. First, the wire leg's NotFound outcome fell through to the LOCAL landing unconditionally, ten lines under a comment naming the exact hazard it then committed — 'a local-only record would leave the operator believing they asked when nobody was told' — so a target that existed on no reachable node was written into the SENDER's own store and reported with the fully positive 'It is waiting in their inbox', exit 0. Field case: ball-b@ENLYZEAM knocked lia@HFENDULEAM and got a positive stdout while lia's node held zero knock rows; both nodes were members of one CLOSED subnet, where endpoint-tier discovery is deny-default BY DESIGN, so resolution NotFounded correctly and the whole defect is the CLI's answer to it. Second, the LOCAL and remote-QUEUED landings rendered an IDENTICAL closing sentence, so the operator could not tell 'their node has it' from 'this machine recorded it in hope'. THE LOCAL LANDING SURVIVES ONLY FOR A TARGET VERIFIED TO EXIST HERE — it exists for a LOCAL endpoint carrying no registry row (unregistered or asleep), and the question that separates that from a target existing nowhere is whether the target is an endpoint on this machine, asked with the same predicate `--for` already asks of the knocker. THE REFUSAL NAMES THE REMEDY THAT ACTUALLY REACHES AN UNDISCOVERABLE ENDPOINT: the knock-code (mint on their machine, redeem here), because in a closed subnet the bare knock is not merely failing, it is the wrong mechanism — and the prescribed invocations must be forms the binary HONORS (REQ-KNOCK-PRESCRIBED-REMEDY-HONORED applies to a refusal's advice exactly as it applies to a listing's). Gate: impl — the landing decision as a PURE classifier over the outcome plus the target's locality, the locality predicate, and one composer rendering every landing's line; unit — a NotFound at a non-local target refuses while a NotFound at a local endpoint still lands, the landing classifier and the wire-refusal renderer partition the outcome enum with no variant covered twice or missed, and the three landing lines are RENDERED and asserted distinct (the identical-sentence half is invisible to any test that does not render); int — the real binary knocking a target that exists nowhere exits nonzero, names KNOCK_NOTFOUND and leaves the store with no row, beside a local endpoint on the same home landing and exiting 0 so the refusal is discriminating rather than a verb that always refuses.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4490702Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4490962Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4491207Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4491456Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4491709Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4491957Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4492209Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4492476Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4492733Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4492972Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4493226Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4493486Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4493803Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4494041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4494346Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4494604Z               "line": 17539
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4494848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4495091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4495376Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4495630Z               "line": 17578
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4495872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4496126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4496406Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4496721Z               "line": 17608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4496977Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4497221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4497502Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4497765Z               "line": 17641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4498004Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4498246Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4498498Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4498745Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4499158Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4499416Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4499669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4500016Z               "path": "crates/spt/tests/knock_notfound_refuses_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4500270Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4500517Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4500755Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4501003Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4501253Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4501512Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4501762Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4502011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4502311Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4502569Z               "line": 30459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4502813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4503055Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4503346Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4503608Z               "line": 30485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4503852Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4504108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4504406Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4504736Z               "line": 30534
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4504983Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4505240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4505522Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4505789Z               "line": 30618
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4506037Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4506285Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4506523Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4506780Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4507033Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4507276Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4507547Z       "id": "REQ-KNOCK-VERBS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4512529Z       "title": "Knocking is one origin-classified verb family under `spt knock ...` — no user-flavored parallel commands and no second namespace. Agent-invoked, the knocker is the session-proven self endpoint and is never caller-supplied; user-invoked from a bare terminal with no perch, the knock requests the deliberately NARROW `subject <invoking-node>, origin user` ('the humans on my node') rather than a bare node entry, so the commonest approval admits humans only, with an explicit flag to knock on behalf of a local endpoint the sending daemon VERIFIES exists. Target-side minting of an invite code is self-sovereign for an endpoint's own agent; the node-target form is engine-room-only. Every form's stdout states plainly what was created, granted or activated — subject, surfaces, scope, expiry — because the grant a user cannot read is the grant they did not mean. Gate: doc — the CONTEXT.md knock-initiation entry and the public CLI reference; impl — the verb family with invocation-time origin classification and the local-endpoint verification; unit — an agent invocation stamps itself and cannot supply another knocker, a bare-terminal invocation produces the narrow node+user subject rather than a bare node subject, an unknown local endpoint is refused at send, and every form's stdout names subject, surfaces and scope.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4512885Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4513139Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4513397Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4513654Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4513906Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4514154Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4514412Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4514659Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4514923Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4515185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4515434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4515758Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4516082Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4516335Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4516593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4516841Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4517098Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4517369Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4517627Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4517879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4518194Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4518465Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4518717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4519051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4519366Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4519622Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4519870Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4520116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4520421Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4520688Z               "line": 1145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4520936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4521180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4521479Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4521743Z               "line": 1676
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4521986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4522233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4522528Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4522788Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4523036Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4523274Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4523633Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4523889Z               "line": 623
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4524137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4524380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4524694Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4524944Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4525194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4525439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4525736Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4525998Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4526294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4526547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4526829Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4527095Z               "line": 2521
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4527338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4527586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4527872Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4528124Z               "line": 16898
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4528376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4528619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4528906Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4529230Z               "line": 16912
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4529478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4529722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4530008Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4530268Z               "line": 17130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4530504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4530754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4531025Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4531287Z               "line": 17474
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4531539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4531792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4532079Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4532331Z               "line": 17669
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4532651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4532890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4533169Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4533433Z               "line": 17895
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4533686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4533930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4534212Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4534464Z               "line": 18078
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4534711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4534954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4535231Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4535490Z               "line": 18112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4535788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4536033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4536314Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4536572Z               "line": 18819
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4536816Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4537060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4537345Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4537607Z               "line": 536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4537850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4538094Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4538371Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4538626Z               "line": 788
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4538874Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4539212Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4539452Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4539700Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4539958Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4540220Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4540462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4540781Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4541036Z               "line": 1157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4541284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4541532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4541838Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4542099Z               "line": 2139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4542342Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4542595Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4542839Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4543092Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4543412Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4543676Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4543922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4544241Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4544509Z               "line": 2360
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4544762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4545014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4545324Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4545591Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4545843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4546097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4546479Z               "path": "crates/spt-net/src/net/knockmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4546742Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4547000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4547242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4547532Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4547800Z               "line": 25023
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4548058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4548306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4548593Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4548860Z               "line": 30405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4549181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4549434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4549730Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4549993Z               "line": 2121
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4550241Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4550494Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4550746Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4550994Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4551246Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4551498Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4551796Z       "id": "REQ-LIST-JSON-LIVENESS-PARITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4559561Z       "title": "GATEWAY-LIVENESS (flynn field bug 2026-07-09, RCA reader-divergence root): `spt endpoint list` (human) and `endpoint list --json` MUST report an IDENTICAL status for a locally-hosted endpoint — especially a pid-alive, status-ABSENT gateway (no psyche_init). ROOT (todlando RCA STEP-1, doyle-verified): the --json builder (crates/spt/src/cli.rs cmd_endpoint_list) emits each subnet row's status straight from resource_projection (spt-net registry.rs:566, passes instance.status through verbatim :592 — the persisted WAN snapshot, a lagged gossip that can carry a stale/crash-time Suspended) and NEVER applies the self-owned reconcile the human/picker path applies (reconcile_self_owned, crates/spt/src/picker/data.rs:160 via gather_endpoints :112). So a pid-alive self-owned gateway reads Suspended on --json but ONLINE on human (roster::enumerate spt/src/roster.rs:38 -> is_perch_alive pid-fallback spt-store/liveness.rs:136); the adapter suspend-poll (parse_endpoint_status over endpoint list --json --show-all) reads the divergent --json status -> self-suspends a pid-alive gateway. Candidates REFUTED: resource_projection does NOT re-derive liveness (copies instance.status, only skips !routable :582); render is a faithful {:?}. advertised_status (registryhost.rs:822) DOES compute Active via pid-fallback (live advertise fine) — the bug is the READER showing the un-reconciled snapshot. FIX (doyle-ruled): apply the self-owned reconcile in the cli --json builder (SAME spt/picker consumer layer as gather_endpoints, NOT lifted into resource_projection which inverts the dep spt-net->perch), reading LOCAL perch truth (is_perch_alive/unbound -> Active/Offline, mirroring the picker's local_rows). Do NOT force status=online (DEFECT B latent — seed-#5 orphan-listener false-ONLINE risk). Gate: a pid-alive locally-hosted gateway (status-absent, no psyche_init) reads the SAME non-Suspended status on human AND --json. Field-verify flynn (mobile-gw). Kin REQ-PICKER-3 + REQ-PRESENCE-LIVENESS-TRUTH + seed-#5 orphan-listener false-ONLINE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4559980Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4560233Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4560481Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4560739Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4560986Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4561234Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4561554Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4561811Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4562058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4562309Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4562570Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4562828Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4563071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4563358Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4563616Z               "line": 6492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4563868Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4564116Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4564359Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4564655Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4564925Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4565176Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4565423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4565767Z               "path": "crates/spt/tests/list_json_liveness_parity_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4566033Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4566282Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4566526Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4566774Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4567021Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4567287Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4567543Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4567795Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4568038Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4568281Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4568530Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4568839Z       "id": "REQ-LISTEN-PRESERVES-HOSTING-TOPOLOGY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4578888Z       "title": "`api listen` must not ASSERT hosting topology it does not know. (hertz v0.39.0 field RCA 2026-07-21, doyle re-grounded at source.) OBSERVED: the published adapter sequence `api bind` then identity-preserving `api listen --session-id` produces a self-contradictory live record — controlled=true AND controllable=false on a broker-hosted PTY endpoint — which controlled-precedence masks blue while attached and which a DETACH then unmasks as amber HARNESS ONLY. Detach is not the root; it only reveals the bad stamp. SOURCE: api/startup.rs passes controllable=Some(false) UNCONDITIONALLY on the relay/listen path (~191-195, reasoning 'the harness owns the process, so there is no broker PTY'), and establish_perch resolves controllable = controllable.or_else(|| prior…) (~379) — explicit wins, so that Some(false) OVERWRITES the Some(true) an earlier `api bind` EARNED. The carry-forward discipline that protects cwd/adapter/rest_state does not protect this field precisely BECAUSE the listen path is not silent about it. The defect is an ASSUMPTION about hosting authority made by a path that does not know the answer. FIX (preferred): represent LISTENER CUSTODY separately from PTY HOSTING AUTHORITY, so establishing a listener says nothing about who owns the session surface. Merely preserving controllable=true when a broker-hosted session with that session_id exists is weaker — it leaves listen guessing rather than removing the guess. Gate: impl — listen no longer asserts hosting topology for a session it does not host; unit — the stamp resolution table over (prior controllable, listen path, broker-hosted session present); int — bind -> listen -> control -> detach ends at alive=true, controlled=false, controllable=true, display ONLINE. TITLE AMENDMENT 2026-07-27 (doyle ruling, todlando build; rides the build PR per registry-mints-ride-build-PRs): THE REQ PRESERVES A **LIVING** HOSTING ARRANGEMENT ACROSS LISTENER RE-BINDS; IT DOES NOT RESURRECT A DEAD ONE'S CAPABILITY STAMP. FIELD CASE: emphasys rendered ONLINE for 25+ minutes with BOTH recorded pids dead, because its listener-only wake re-bind INHERITED a controllable=Some(true) earned in an earlier broker-PTY life, and the reconcile sweep exempts Some(true) rows from relay-death convergence (livehost.rs) — so an expired capability stamp ROUTED a liveness proof and the row was exempt from EVERY liveness model. The carry-forward is now scoped: Some(true) survives a listener re-bind unless the prior record's RELAY pid is provably Gone. Liveness of the arrangement is judged via the relay-role pid (REQ-PID-ROLE-EVIDENCE), the first record-internal key that actually measures it — NOT via 'earning pid alive', which was falsified pre-build: for a BrokerPty row the record holds no pid of the hosting life at all, only the announcing CLI's.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4579404Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4579657Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4579905Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4580143Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4580390Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4580644Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4580891Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4581162Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4581467Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4581720Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4581964Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4582226Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4582485Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4582731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4583054Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4583328Z               "line": 956
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4583586Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4583835Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4584140Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4584416Z               "line": 726
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4584673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4584926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4585236Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4585498Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4585752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4586003Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4586310Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4586572Z               "line": 690
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4586820Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4587078Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4587322Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4587579Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4587841Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4588165Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4588417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4588767Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4589105Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4589358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4589606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4589912Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4590175Z               "line": 1432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4590426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4590674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4591037Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4591298Z               "line": 1573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4591556Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4591804Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4592056Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4592304Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4592571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4592829Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4593082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4593402Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4593667Z               "line": 11557
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4593926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4594175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4594485Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4594747Z               "line": 1497
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4595000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4595247Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4595553Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4595819Z               "line": 1273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4596072Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4596321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4596629Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4596894Z               "line": 1333
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4597146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4597394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4597704Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4597966Z               "line": 1993
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4598220Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4598521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4598831Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4599210Z               "line": 2047
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4599466Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4599708Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4599956Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4600195Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4600439Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4600681Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4600977Z       "id": "REQ-LISTEN-SEED-CONSUME-AFTER-BIND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4605378Z       "title": "F-034 leg b (perri/hertz field finding 2026-07-09, hertz's HEADLINE): `api listen` must NOT consume the consume-once ephemeral seed on a PRE-BIND refusal — validate (adapter resolvable, home/subnet) and BIND first, THEN consume the seed. ROOT: today `api listen` burns the consume-once seed BEFORE it validates home/subnet, so on a multi-subnet node HOME_REFUSED (needs --subnet) fires AFTER the seed is already gone → the corrected retry (adding --subnet) on the SAME pid hits NO_SEED, a dead end (plausibly ADAPTER_UNRESOLVED burns it the same way). A refusal that never bound must leave the seed intact for the corrected retry. Same EFFECT-BEFORE-IRREVERSIBLE-CONSUME ordering class as F-032 (commune commit-before-delete) — the irreversible consume must follow the successful effect, never precede a refusal. Gate: a pre-bind refusal (HOME_REFUSED on a multi-subnet node without --subnet; ADAPTER_UNRESOLVED) leaves the seed CONSUMABLE — the corrected retry on the same pid binds (no NO_SEED); a SUCCESSFUL bind still consumes the seed exactly once (no double-bind). Files: the api-listen bind path (seed consume ordering). Kin F-032 [[spt-core-findings-backlog]].",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4605679Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4605960Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4606223Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4606477Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4606723Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4607041Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4607292Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4607550Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4607831Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4608094Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4608346Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4608679Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4609033Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4609280Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4609532Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4609779Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4610035Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4610356Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4610617Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4610874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4611184Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4611456Z               "line": 147
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4611708Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4611958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4612263Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4612533Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4612780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4613038Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4613286Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4613545Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4613815Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4614077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4614330Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4614663Z               "path": "crates/spt/tests/listen_seed_retry_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4614933Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4615181Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4615438Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4615685Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4615943Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4616220Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4616482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4616736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4617041Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4617308Z               "line": 2625
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4617558Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4617814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4618185Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4618454Z               "line": 2941
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4618706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4619058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4619364Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4619631Z               "line": 3039
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4619884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4620135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4620438Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4620696Z               "line": 3076
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4620944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4621245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4621540Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4621801Z               "line": 3108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4622044Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4622292Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4622541Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4622785Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4623021Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4623264Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4623560Z       "id": "REQ-LISTEN-SESSION-ID-FALLBACK",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4628204Z       "title": "F-034 leg c (perri/hertz field finding 2026-07-09): a session that goes live LATE (hours after SessionStart, or after a daemon restart) must still be able to bind — the ephemeral SessionStart seed ('consumed within seconds') is GONE by then and nothing re-fires it until the NEXT SessionStart, so even `api listen --parent-pid <correct claude pid>` hits NO_SEED. Design assumption 're-fired on the next SessionStart if needed' does not hold for long-lived sessions. FIX (perri-recommended, cleanest): `api listen --session-id <sid>` fallback that binds from the session-id when the pid has no live seed — removes the ephemeral-seed dependency entirely (the adapter already knows the sid; the skill passes it, and can then DROP its manual re-seed step). Alternative (option 1, less clean): re-fire the seed on daemon restart. Gate: a session with NO live seed (expired / post-daemon-restart) binds via `listen --session-id <sid>` (no NO_SEED); the sid-bind carries the same identity/auth the seed-bind would (session_id custody — kin REQ-PSYCHE-SID-CUSTODY / the sid-symmetric-auth pattern). Files: api-listen bind path (sid-fallback seam), clap --session-id flag (plain doc-comment). hertz/perri live-verify; if it lands the adapter skill drops the re-seed step.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4628560Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4628817Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4629195Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4629451Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4629709Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4629966Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4630225Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4630478Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4630746Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4631002Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4631261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4631599Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4631861Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4632119Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4632361Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4632614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4632866Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4633134Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4633393Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4633643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4633943Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4634210Z               "line": 476
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4634468Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4634716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4635026Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4635289Z               "line": 977
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4635541Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4635793Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4636039Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4636291Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4636563Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4636829Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4637077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4637478Z               "path": "crates/spt/tests/listen_seed_retry_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4637740Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4637997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4638242Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4638490Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4638740Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4639086Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4639353Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4639602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4639912Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4640169Z               "line": 2966
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4640470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4640723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4641029Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4641288Z               "line": 2989
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4641534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4641783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4642078Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4642336Z               "line": 3009
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4642583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4642826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4643108Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4643370Z               "line": 25701
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4643614Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4643861Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4644108Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4644347Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4644595Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4644837Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4645137Z       "id": "REQ-LIVE-AGENT-NO-INJECT-DELIVERY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4654792Z       "title": "F-033 RE-SCOPED (doyle re-ruling 2026-07-10 after the #82 gate falsified the original premise — the hosting-mode class split is BINDING context): 'state:live_agent has a self-delivery reader' CONFLATED two hosting modes. (A) HARNESS-hosted live agents (api listen path) DO deliver via adapter channels only — and are ALREADY structurally excluded from inject: bind_from_seed stamps controllable=Some(false), no broker PTY exists. (B) SPT-HOSTED/CONTROLLED live agents' inject leg IS their delivery reader (broker PTY + translation binary — doyle's own endpoint is field proof: ENDPOINT_INJECT + IDLE_PARKED_DRAIN alongside hook-poll); the original blanket state:live_agent exclusion broke REQ-MSG-IDLE-EDGE-DRAIN + the v0.14.3 LAW on both CI platforms and was REVERTED (predicate stays controllable-gated). perri's adapter-channels-only model (F-dupmsg-adapter-confirm.md) holds for class (A) only — do not re-seed the conflation. The F-033 DUPLICATE mechanism (hook-poll + idle-inject both delivering one row, operator spool row 156) is closed structurally by REQ-CARRIER-CLAIM-EXCLUSIVE's atomic cross-carrier take. REMAINING LEGS OF THIS REQ: (a) unit — a harness-hosted live agent (controllable Some(false)/None, no broker PTY) can never route through try_spt_hosted_inject (evidence may TAG the existing is_spt_hosted_no_relay non-controllable case rather than duplicate it); (b) VERIFICATION (report-before-fix, DELIVERED to doyle 2026-07-10): the no-translation-binary raw payload+CR path is PROVABLY DEAD (broker dispatch_endpoint_input: no-binary -> loud spool, never a PTY write — v0.14.3 holds); the operator's typed-unsubmitted garbage is PINNED to the Layer-2 echo-verify RE-DRIVE (broker.rs inject worker) force-enabled host-wide by ambient SPT_INJECT_VERIFY_ECHO in the daemon's inherited dev-shell env (default-OFF declared capability turned on globally — the F-036 env-inheritance class): a false verify-miss RETYPES the whole sequence into the input field. Fix LANDED on the W4 branch (doyle-accepted echo-scrub 2026-07-10): SPT_INJECT_VERIFY_ECHO/SPT_INJECT_FORCE_ECHO_MISS folded into the W1 daemon-startup env scrub (spt_runtime::INJECT_ECHO_ENV_VARS; startup-only, role-spawn builder untouched so explicit per-spawn declaration stays the production on-switch) — evidence rides REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE (the F-036 class REQ). Residual-class RULED (doyle 2026-07-10): this REQ covers the harness-hosted-never-inject predicate leg (unit) + the echo-scrub itself (impl, dual-tagged) — stages [impl,unit].",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4655216Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4655470Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4655717Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4655955Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4656213Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4656461Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4656724Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4656984Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4657235Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4657483Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4657741Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4658050Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4658298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4658613Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4658874Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4659203Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4659456Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4659705Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4664061Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4664381Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4664652Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4664885Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4665162Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4665438Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4665700Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4665957Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4666282Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4666548Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4666801Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4667054Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4667304Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4667558Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4667809Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4668057Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4668381Z       "id": "REQ-LIVEHOST-RECONCILE-TRIAL-SILENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4674592Z       "title": "SEED (DEFERRED investigation, doyle 2026-07-09 — UPDATE-WEDGE follow-up): determine WHY the trial/rollback brain's livehost reconcile loop did NOT drive the broker controller-reap (nor re-host the live agents) during the ~30s field update-trial window, when livehost polls `query_live_session_endpoints()` → `brain.sessions()` (KIND_SESSIONS) UNCONDITIONALLY every `LIVE_RECONCILE_INTERVAL_MS`=5000ms (livehost.rs:1026). CONTEXT (surfaced building the counter-54 rig): livehost's 5s KIND_SESSIONS poll drives the SAME broker `reap_dead_controller` sweep the fix drives — so it would otherwise reap the 15s-matured wedge by ~T20 < the 30s trial and SELF-HEAL. It didn't (field froze 30s → rollback), so the field trial-brain livehost was silent/delayed (PIN Q2: no `DAEMON_RESTART_RESUME` under gen-1/gen-2; the 30s kill landed before/around livehost's first reconcile tick). The counter-54 fix (REQ-UPDATE-TRIAL-DRAIN-DRIVE) puts a RELIABLE 500ms reap-driver in run_brain's CORE heartbeat loop, making the wedge-reap INDEPENDENT of livehost — so this does NOT block counter-54. But the livehost silence is a latent anomaly with a SECOND consequence: live-agent HARNESS re-hosting was also delayed ~30s (a separate freeze contributor). Investigate: does `spawn_live_host`'s reconcile thread start promptly on a trial-brain boot, or is its first tick delayed past the trial window? Does its brain conn / `query_live_session_endpoints` block against the swap/wedge state? Register concrete REQ(s) once the mechanism is pinned. RELATED: [[REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE]] (if the outgoing brain's black-holed conns perturb the new brain's livehost conn setup).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4675060Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4675328Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4675581Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4675863Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4676126Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4676380Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4676637Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4676909Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4677176Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4677433Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4677685Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4678028Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4678298Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4678551Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4678803Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4679156Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4679418Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4679670Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4679923Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4680171Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4680416Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4680706Z       "id": "REQ-LIVENESS-ORACLE-SOUND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4696371Z       "title": "TEARDOWN-AUTHORITY W2 (todlando W1 gate-round-0 finding, doyle-scoped from the LANDED W1 code 2026-07-19): 'does this pid still exist' has ONE answer in spt-core and it is derived from the OS process table. TODAY spt-daemon/src/broker.rs session_is_zombie computes wrapper_alive from spt_store::proc::is_process_alive, which probes OpenProcess on Windows — and OpenProcess keeps SUCCEEDING for a TERMINATED process while any parent holds an open handle, which the broker ALWAYS does (Arc<PtySession>) for every PTY child it spawned. A correctly-reaped harness therefore reads ALIVE, flipping zombie_verdict off its PRIMARY class (Some(false) = dead root + surviving record = always a zombie) onto the conditional arm, which additionally demands adapter_labeled && past_grace && !has_live_descendants. CONSEQUENCE, live today: a dead-root session that is NOT adapter-labeled is claimed LIVE indefinitely — `endpoint run`'s dup-guard refuses ENDPOINT_ALREADY_LIVE over an already-dead tree and cmd_rest's Suspend alive_hint forces from=alive on the same false claim (both via has_live_session_honest, cli.rs:2014 and :3805). REQ-ENDPOINT-CYCLE-HONEST exists to give the cycle verbs ONE liveness authority; after W1 there are TWO and they disagree by construction (teardown.rs::root_provably_gone asks the table and is right; session_is_zombie asks is_process_alive and is wrong). THE DISCRIMINATOR (binding, and it makes the audit checkable rather than 20 judgement calls): is_process_alive is unsound EXACTLY when the ASKER — or a live ancestor — still holds an open HANDLE to the target; dropping a Child closes it, so a spawner that DROPS is honest and one that RETAINS is not. Hence the dangerous shape is asking 'is it GONE' about a process you OWN, and the SAME CALL IS SOUND IN THE CLI AND UNSOUND IN THE DAEMON FOR THE SAME PID — soundness is a property of the asker, not the call. REJECTED ALTERNATIVE, recorded in ADR-0045 Amendment 1 so it is not re-proposed: proc::reap_if_child before the probe fails twice — it is a NO-OP on Windows (#[cfg(windows)] let _ = pid), and decisively the broker holds the handle BY CONSTRUCTION for every pid this predicate is ever asked about, so no handle-based probe can EVER be sound at this site. FIX: (a) add a sound probe as a NAMED SIBLING whose name is the question — process_exists(pid) over process_table() — and state on is_process_alive's own doc which question it answers and which it does not, pointing at the sibling (the behavior was documented VERBATIM in legacy_resident_sweep_e2e.rs since 2026 and never reached proc.rs or zombie_verdict: written where DISCOVERED, not where CONSUMED); (b) route session_is_zombie's wrapper_alive through it, leaving zombie_verdict PURE and UNCHANGED (it was fed a lie, it is not wrong); (c) an EMPTY table is NO KNOWLEDGE — it must resolve to None (zombie_verdict(None) already means 'never guess') and must NEVER manufacture Some(false), which would mass-classify every live session a zombie = the W1 blocker inverted at broker scope; (d) AUDIT, do not mass-migrate, the remaining callers using the discriminator — roster.rs/api/startup.rs/api/auth.rs are already adjudicated SOUND (the asker never spawned the target); cli.rs purge psyche-quiesce is RIGHT ANSWER FOR A FRAGILE REASON (sound only because the CLI asks and the DAEMON spawned the psyche — it goes unsound SILENTLY if that check ever moves into the daemon) and gets a comment naming the asker as what makes it safe; the daemon-side population (livehost.rs, shellhost.rs, shellwake.rs, lifecycle.rs, in-daemon is_perch_alive) is adjudicated one verdict per site (sound/unsound/unreachable), fixing only unsound AND reachable and REPORTING the verdicts even where left — if unsound-and-reachable exceeds a handful, STOP and escalate to doyle rather than widening this wave. Gate: doc — KNOWN-HAZARDS 7.50 + ADR-0045 Amendment 1; impl — process_exists + the caveat on is_process_alive + wrapper_alive routed + the adjudicated fixes; unit — the empty-table arm resolves to None (never Some(false)), a handle-held corpse classifies as a zombie, and zombie_verdict's existing pure table is extended with the previously-unreachable case (dead root + not adapter-labeled + within grace); int — manufacture the REAL handle-held-corpse condition (broker retains a handle to a killed PTY child) and assert the session classifies zombie + the run dup-guard does NOT refuse over it; Windows-only if it cannot be made on Linux, and the test NAME says so.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4696842Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4697099Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4697347Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4697599Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4697847Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4698095Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4698344Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4698596Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4698877Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4699243Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4699550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4700189Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4700824Z               "line": 835
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4701372Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4701879Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4702379Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4702886Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4703414Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4703972Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4704493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4705148Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4705786Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4706330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4706844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4707411Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4708031Z               "line": 8309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4708570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4709166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4709746Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4710387Z               "line": 564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4710993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4711504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4712096Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4712718Z               "line": 247
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4713259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4713813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4714404Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4715062Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4715621Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4716131Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4716652Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4717166Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4717700Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4718253Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4718782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4719445Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4720108Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4720651Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4721163Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4721663Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4722163Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4722694Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4723249Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4723781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4724349Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4724964Z               "line": 10074
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4725518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4726047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4726611Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4727297Z               "line": 10097
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4727850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4728351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4728916Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4729627Z               "line": 691
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4730162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4730673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4731230Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4731832Z               "line": 731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4732376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4732882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4733497Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4734112Z               "line": 838
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4734646Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4735148Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4735648Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4736149Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4736645Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4737137Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4737691Z       "id": "REQ-LOCK-TOUCHING-LANE-PROCEDURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4745746Z       "title": "A lane that changes `Cargo.lock` follows a written procedure whose review step reads EDGES, not just the package set. (INFRA-REGISTER IR-4 part 2; hertz 2026-08-03.) THE HUMAN HALF of REQ-CI-LOAD-BEARING-PATCH-PIN: the guard catches a pin that lapsed, and this catches the re-resolve that lapses it — a `cargo update` with no `-p` re-resolves the whole graph, so a one-crate intent ships as an unreviewed graph move. THE SPECIMEN IS IN THIS TREE: at acaaa4f the `[[package]]` SET was identical before and after — no block added, none removed, not one `name`/`version` line in the diff — while EIGHT blocks had their `windows-sys` edge moved from 0.61.2 to 0.59.0 (consumer counts 18→10 and 5→13; both version blocks survive, so even a version-presence check reads clean). The commit message states 'changed one package and left 132 dependencies untouched', which is true of the set and false of the edges: the reviewer who counts blocks is told nothing happened. Hence the rule states BOTH reads as separate steps, because the cheap one alone is the one that lies. TOOLCHAIN DRIFT IS THE OTHER READING of a surprising diff — two resolutions of the same manifests that disagree are evidence about the resolvers, not about the dependencies, so the procedure sends the author to the golden toolchain-version print (REQ-CI-TOOLCHAIN-VERSION-PRINT) before shipping either lock rather than picking the diff they like. A HAND-EDITED LOCK IS ALLOWED and given a mechanical acceptance test — `cargo check --workspace --locked` — where `--locked` is the load-bearing half: without it cargo silently repairs the file it was asked to verify, which is the same class as running `cargo run` against a build-file mutation you are trying to measure. Gate: doc = the `Lock-touching lanes` section of docs/GOLDEN-CI.md (targeted update, the two-read review with its specimen, the drift stop-condition, the `--locked` acceptance test, and the `xtask check` pin guard as the lane's own preflight). Kin REQ-CI-LOAD-BEARING-PATCH-PIN (mechanical half), REQ-CI-TOOLCHAIN-VERSION-PRINT (the comparison this procedure sends you to).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4753237Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4753776Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4754283Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4754839Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4755391Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4755920Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4756467Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4756997Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4757540Z               "path": "docs/GOLDEN-CI.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4758142Z               "line": 99
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4758672Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4759253Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4759751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4760254Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4760793Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4761351Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4761889Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4762391Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4762997Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4763564Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4764098Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4764591Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4765124Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4765692Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4766237Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4766731Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4767218Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4767715Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4768240Z       "id": "REQ-MANIFEST-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4769032Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4769823Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4770382Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4770904Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4771425Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4771935Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4772440Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4772965Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4773495Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4774048Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4774587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4775136Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4775728Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4776262Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4776782Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4777287Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4777797Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4778328Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4778885Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4779548Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4780125Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4780769Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4781304Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4781817Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4782314Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4782820Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4783352Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4783979Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4784513Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4785024Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4785566Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4786119Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4786648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4787217Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4787851Z               "line": 1802
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4788400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4788912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4789570Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4790304Z               "line": 2277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4790844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4791348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4791934Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4792564Z               "line": 2289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4793103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4793607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4794179Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4794810Z               "line": 2300
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4795355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4795869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4796441Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4797075Z               "line": 2317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4797616Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4798131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4798712Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4799458Z               "line": 2331
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4799996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4800507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4801070Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4801686Z               "line": 2447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4802223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4802723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4803282Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4803891Z               "line": 2462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4804420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4804920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4805542Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4806163Z               "line": 2613
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4806696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4807198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4807758Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4808366Z               "line": 2624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4808886Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4809477Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4809970Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4810457Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4810938Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4811424Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4811931Z       "id": "REQ-MANIFEST-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4813054Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4814055Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4814604Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4815115Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4815625Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4816141Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4816641Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4817156Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4817686Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4818233Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4818756Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4819394Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4819990Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4820525Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4821031Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4821537Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4822036Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4822576Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4823135Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4823671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4824277Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4824911Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4825436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4826016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4826595Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4827225Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4827774Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4828280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4828850Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4829554Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4830087Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4830602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4831166Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4831859Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4832397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4832907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4833484Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4834108Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4834661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4835166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4835729Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4836362Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4836903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4837412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4837976Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4838600Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4839221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4839722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4840294Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4840924Z               "line": 785
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4841449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4841952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4842513Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4843138Z               "line": 810
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4843663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4844167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4844734Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4845354Z               "line": 833
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4845889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4846393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4847012Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4847639Z               "line": 848
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4848174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4848674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4849323Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4849922Z               "line": 20919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4850459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4850955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4851488Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4852084Z               "line": 20933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4852618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4853116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4853726Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4854327Z               "line": 20967
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4854876Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4855394Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4855900Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4856396Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4856930Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4857492Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4858023Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4858547Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4859162Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4859744Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4860270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4860852Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4861481Z               "line": 2113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4862020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4862541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4863115Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4863748Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4864296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4864806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4865375Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4866007Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4866540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4867118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4867686Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4868309Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4868845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4869571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4870148Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4870768Z               "line": 342
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4871297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4871804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4872361Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4873034Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4873562Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4874070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4874642Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4875257Z               "line": 362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4875747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4876120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4876552Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4877020Z               "line": 378
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4882621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4883003Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4883402Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4883846Z               "line": 461
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4884197Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4884519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4884912Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4885331Z               "line": 1253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4885635Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4885912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4886250Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4886641Z               "line": 1277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4886941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4887214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4887537Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4887923Z               "line": 1303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4888223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4888505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4889035Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4889438Z               "line": 1322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4889742Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4890014Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4890347Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4890724Z               "line": 1353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4891020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4891287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4891611Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4891988Z               "line": 592
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4892277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4892609Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4892919Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4893272Z               "line": 1082
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4893563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4893830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4894130Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4894488Z               "line": 32143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4894796Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4895069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4895370Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4895728Z               "line": 33229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4896023Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4896290Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4896558Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4896815Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4897074Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4897332Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4897610Z       "id": "REQ-MANIFEST-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4898588Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4899652Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4899946Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4900225Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4900491Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4900835Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4901097Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4901365Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4901660Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4901965Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4902243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4902529Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4902841Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4903116Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4903373Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4903631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4903884Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4904227Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4904517Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4904795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4905105Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4905474Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4905750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4906002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4906312Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4906675Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4906947Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4907213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4907523Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4907872Z               "line": 149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4908151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4908404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4908705Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4909153Z               "line": 655
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4909424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4909687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4909992Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4910349Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4910628Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4910881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4911162Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4911496Z               "line": 20982
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4911778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4912039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4912349Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4912746Z               "line": 21032
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4913032Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4913277Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4913519Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4913772Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4914044Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4914339Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4914610Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4914858Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4915130Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4915430Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4915694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4916053Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4916400Z               "line": 388
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4916672Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4916926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4917226Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4917565Z               "line": 446
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4917831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4918083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4918384Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4918720Z               "line": 1377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4919078Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4919326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4919599Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4919918Z               "line": 32236
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4920194Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4920453Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4920705Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4920942Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4921174Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4921407Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4921664Z       "id": "REQ-MANIFEST-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4922565Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4923433Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4923706Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4923957Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4924207Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4924455Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4924699Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4924943Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4925195Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4925480Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4925737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4925999Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4926357Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4926617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4926860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4927147Z               "path": "docs-site/src/shells/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4927495Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4927752Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4927995Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4928234Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4928477Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4928735Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4929098Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4929357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4929648Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4929982Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4930244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4930483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4930769Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4931102Z               "line": 305
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4931360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4931607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4931890Z               "path": "crates/spt-store/src/matchrule.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4932215Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4932476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4932716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4932997Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4933307Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4933565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4933808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4934157Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4934498Z               "line": 1041
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4934772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4935015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4935297Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4935626Z               "line": 1066
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4935892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4936132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4936413Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4936738Z               "line": 1152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4937002Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4937300Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4937548Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4937792Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4938055Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4938336Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4938597Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4938840Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4939199Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4939513Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4939774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4940065Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4940399Z               "line": 2397
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4940662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4940915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4941201Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4941540Z               "line": 2430
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4941796Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4942048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4942332Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4942666Z               "line": 2159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4942933Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4943176Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4943419Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4943657Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4943891Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4944130Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4944558Z       "id": "REQ-MANIFEST-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4947714Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4950482Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4950773Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4951021Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4951274Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4951512Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4951751Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4951884Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952027Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952161Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952429Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952566Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952689Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952812Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4952944Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953069Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953211Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953349Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953659Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953798Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4953930Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954113Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954250Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954375Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954518Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954657Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954780Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4954914Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955052Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955181Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955494Z               "path": "crates/spt-runtime/src/profile.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955623Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955806Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4955936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956107Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956246Z               "line": 1450
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956670Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956817Z               "line": 1479
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4956956Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957257Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957390Z               "line": 1614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957815Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4957953Z               "line": 1629
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958084Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958213Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958339Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958464Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958584Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958711Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4958856Z       "id": "REQ-MANIFEST-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4961114Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4961376Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4961510Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4961638Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4961762Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4961886Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962021Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962158Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962292Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962568Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962702Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962825Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4962955Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963073Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963206Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963339Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963476Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963729Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4963861Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964010Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964133Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964259Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964405Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964534Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964834Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4964973Z               "line": 1651
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965102Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965227Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965349Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965527Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965654Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965774Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4965918Z       "id": "REQ-MANIFEST-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969034Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969205Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969329Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969458Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969581Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969706Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969830Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4969958Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970101Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970244Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970535Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970675Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970792Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4970922Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971042Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971169Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971361Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971493Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971631Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971797Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4971941Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972061Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972188Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972308Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972436Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972576Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972714Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4972881Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973014Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973152Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973291Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973414Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973591Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973728Z               "line": 2630
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973852Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4973983Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4974111Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4974237Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4974374Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4974498Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4974646Z       "id": "REQ-MANIFEST-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4976869Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977017Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977161Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977288Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977418Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977612Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977733Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4977870Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978000Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978142Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978276Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978543Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978682Z               "line": 223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4978819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979171Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979399Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979579Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979699Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979826Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4979957Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980094Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980238Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980553Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980685Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4980944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981114Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981249Z               "line": 456
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981377Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981502Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981625Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981763Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4981903Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982357Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982487Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982616Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982743Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4982926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983054Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983193Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983330Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983635Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983770Z               "line": 2648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4983897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984198Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984335Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984816Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4984953Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985379Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985516Z               "line": 351
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4985940Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986074Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986498Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986633Z               "line": 597
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986769Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4986909Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4987052Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4987197Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4987331Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4987463Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4987625Z       "id": "REQ-MANIFEST-NODE-KEY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992129Z       "title": "A new session-scoped manifest fill key `{node}` resolves to THIS node's advertised label — available wherever the session-scoped keys ({id}/{session_id}/{session_name}) populate: BOTH topologies' spawn-prep catalogs (harnesshost.rs:111-118 self-spawn guaranteed-fill + lifecycle.rs:280 base lifecycle keys, at minimum [session.self] and [session.resume]) AND lazy [strings] eligibility (ADR-0029 family). VALUE (design-true per CONTEXT §node label / REQ-SUBNET-3): the node's ADVERTISED LABEL — the same value node_label_display renders — read from the label store (NodeLabel, registry.rs:118/220, OS-hostname default re-checked at daemon startup), NOT the pubkey and NOT a fresh gethostname at fill time when the store already holds the refreshed label; fall back to the OS hostname only if no label is known. perri's concrete use: templating `--remote-control {id}--{node}` in the claude-spt launch/resume commands. CAVEAT (documented in the manifest.md key-table row AND here): SINGLE-TOKEN fills only — tokenize-then-fill (REQ post-F-009) cannot produce a space-carrying argv element, so composite display names like `<id> @ <node>` remain adapter-shim territory (claude-spt v0.10.3's launch shim stays the reference for those); {node} COMPLEMENTS the shim for tokenizable args, it does not replace it. Origin: perri fill-catalog-gap finding 2026-07-02, operator-promoted into BUILD-F023-WANIDLE (additive, independent of the delivery legs). (NODEKEY-FOLD)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992308Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992443Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992570Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992703Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992829Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4992961Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993095Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993232Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993381Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993672Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993805Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4993933Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994063Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994186Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994316Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994510Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994650Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4994967Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995099Z               "line": 698
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995226Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995527Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995662Z               "line": 487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995785Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4995914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4996133Z               "path": "crates/spt-store/src/hostlabel.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4996282Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4996409Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4996539Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.4996667Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5001309Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5001486Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5001629Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5001768Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5001895Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002035Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002168Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002482Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002612Z               "line": 489
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002736Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5002859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003046Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003178Z               "line": 514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003607Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003741Z               "line": 2384
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5003989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5004159Z               "path": "crates/spt-store/src/hostlabel.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5004299Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5004426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5004642Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5004775Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5004895Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5005017Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5005142Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5005295Z       "id": "REQ-MANIFEST-SUBST",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008144Z       "title": "Manifest substitution primitives for resolve-not-execute (ADR-0029, supersedes a rejected `spt api run-hook`): (1) two adapter-static substitution keys `{adapter_dir}` (the registry record's precise source_dir — install dir, survives updates, the dir bare-program resolution uses) and `{adapter_name}`, available wherever command/string substitution runs; (2) lazy substitution INSIDE `[strings]` values at `get-string` read time, scoped to those adapter-static keys ONLY (session-scoped {id}/{session_id}/… are NOT available — get-string carries no session; a get-string --session-id is a deferred larger change). Invariant preserved: spt-core never executes a string — it substitutes and returns; the adapter's own wrapper executes the result (e.g. a CC hook dispatcher get-strings its packed binary once per session into an env var, then runs it per-hook, so hook logic rides `spt adapter update`). (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008299Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008428Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008554Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008668Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008793Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5008921Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009136Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009288Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009423Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009709Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009837Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5009966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5010090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5010237Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5010433Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5010552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5010682Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5010918Z               "path": "docs/adr/0029-adapter-update-arc-resolve-not-execute.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011046Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011173Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011297Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011422Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011545Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011684Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011812Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5011984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012150Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012290Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012709Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012837Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5012967Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013263Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013396Z               "line": 673
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013819Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5013954Z               "line": 686
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014376Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014516Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5014934Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015077Z               "line": 374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015202Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015503Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015630Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5015949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016121Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016266Z               "line": 729
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016700Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016834Z               "line": 792
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5016967Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017096Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017229Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017407Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017553Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017688Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017816Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5017944Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018083Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018221Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018536Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018671Z               "line": 1564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018798Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5018921Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5019133Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5019257Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5019391Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5019528Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5019696Z       "id": "REQ-MANIFEST-UNKNOWN-KEY-WARN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5024369Z       "title": "AN UNKNOWN MANIFEST KEY IS NAMED ON STDERR AND REGISTRATION PROCEEDS (WEBSERVE W0 rider, doyle-ruled 2026-09-06 18:15Z from hertz W3 RED, releases#272/#265). manifest.rs carries NO deny_unknown_fields anywhere BY DESIGN (forward-compat for adapters built blind against a newer core), so refusal is out -- and that makes a misspelled OPTIONAL key visible only by its ABSENCE: web_short_pth registers with no alias and no error, docs_dir follows in W3. The tolerant branch that KEEPS the invariant: at adapter add (the register choke point, which adapter update also passes) every key not in its table's known set emits ONE stderr line `manifest: unknown key [<table>].<key> (ignored)` and registration PROCEEDS. Shape: a generic walk of the parsed toml::Value against the schemars-derived schema (the same derives the parser reads, so the known set cannot drift): $refs resolve through $defs, anyOf/oneOf/allOf branches union their properties, [[arrays]] descend through items, a map table (additionalProperties = a schema, e.g. [env.<VAR>]) admits every key and sweeps each value, a free-form table (additionalProperties true -- [profiles.*], [strings]) is the adapter's own vocabulary and is not judged, an unparseable document yields nothing because the parse error already speaks. Gate: doc -- one paragraph in harness-contract/manifest.md (unknown keys are ignored; the diagnostic names them); impl -- Manifest::unknown_keys + the register-site emission; unit -- a web_short_pth typo parses AND registers AND is named table-qualified, a known key emits nothing, the full fixtures sweep clean (no false positive across refs, options, maps, arrays), depth naming ([adaptor], [session].comune_dir, [env.HOME].direktion, [hints].keyword, a root scalar), free-form tables silent, unparseable silent.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5024626Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5024756Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5024884Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025013Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025137Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025265Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025400Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025542Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025681Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5025804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026006Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026137Z               "line": 84
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026267Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026397Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026519Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026652Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026860Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5026998Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027294Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027432Z               "line": 1169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027555Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027851Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5027990Z               "line": 1534
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5028118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5028248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5028481Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5028624Z               "line": 326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5028757Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5028887Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029096Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029226Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029372Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029504Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029637Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029769Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5029909Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030046Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030346Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030476Z               "line": 1660
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5030904Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031037Z               "line": 1673
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031473Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031609Z               "line": 1682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5031920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032091Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032232Z               "line": 1705
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032660Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032790Z               "line": 925
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5032918Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5033043Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5033171Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5033294Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5033419Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5033599Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5033739Z       "id": "REQ-MESH-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5035912Z       "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).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036064Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036188Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036318Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036445Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036580Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036712Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036841Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5036989Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5037126Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5037255Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5037386Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5037524Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5037644Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5037781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038011Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038154Z               "line": 1701
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038578Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038721Z               "line": 38
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5038846Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039217Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039355Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039486Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039661Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039842Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5039970Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040098Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040396Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040535Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5040982Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041112Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041240Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041541Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041670Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5041917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042099Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042227Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042353Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042475Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042598Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042726Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5042857Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043369Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043501Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5043923Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044055Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044522Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044656Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5044914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045090Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045220Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045342Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045465Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045590Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045713Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045852Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5045977Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046276Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046399Z               "line": 626
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046835Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5046968Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047401Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047535Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5047951Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048089Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048209Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048566Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048685Z               "line": 438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048809Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5048933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5049200Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5049324Z               "line": 449
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5049453Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5049577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5049806Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5049939Z               "line": 460
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050365Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050496Z               "line": 496
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5050923Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051048Z               "line": 519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051471Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051601Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051725Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051847Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5051968Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5052101Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5052220Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5052344Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5052482Z       "id": "REQ-MESH-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055034Z       "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).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055302Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055437Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055568Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055693Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055823Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5055949Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056083Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056222Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056363Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056488Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056626Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056770Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5056898Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057204Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057337Z               "line": 1429
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057776Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5057913Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058346Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058482Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5058901Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5059126Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5059313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5059502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5059698Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5059827Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5059957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060253Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060384Z               "line": 834
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060858Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5060995Z               "line": 849
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5061122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5061247Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5061421Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5061574Z               "line": 883
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5061702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5061836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062017Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062146Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062570Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062699Z               "line": 868
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5062956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063125Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063266Z               "line": 929
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063689Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063823Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5063950Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064074Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064306Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064441Z               "line": 1085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064865Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5064994Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5065133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5065256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5065419Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5065557Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5065748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5065876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066044Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066176Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066590Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066724Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066852Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5066977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067148Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067282Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067697Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067829Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5067955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5068083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5068241Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5068378Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5068512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5068646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5068806Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069028Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069286Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069452Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069649Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069776Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5069901Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070024Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070154Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070297Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070430Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070740Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5070874Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071374Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071513Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071645Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071769Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5071891Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072028Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072163Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072300Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072601Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072731Z               "line": 1310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5072977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073149Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073283Z               "line": 1327
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073530Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073709Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073845Z               "line": 1335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5073975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5074089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5074259Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5074388Z               "line": 1359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5074571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5074691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5074876Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075006Z               "line": 1727
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075139Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075430Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075564Z               "line": 370
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5075984Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076169Z               "line": 393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076604Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076736Z               "line": 430
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5076989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077145Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077280Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077703Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077838Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5077961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5078094Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5078252Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5078389Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5078510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5078643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5078806Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079038Z               "line": 568
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079457Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079589Z               "line": 585
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079716Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079841Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5079969Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5080098Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5080284Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5080409Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5080547Z       "id": "REQ-MESH-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5082271Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5082423Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5082546Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5082675Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5082803Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5082927Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083056Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083194Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083329Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083461Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083586Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083714Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083847Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5083977Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084273Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084419Z               "line": 1181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084540Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084663Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084790Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5084915Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085051Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085179Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085470Z               "path": "crates/spt-daemon/tests/mesh.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085657Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5085909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086075Z               "path": "crates/spt-daemon/tests/mesh.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086205Z               "line": 466
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086329Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086448Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086572Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086696Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086835Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5086962Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087311Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087446Z               "line": 1758
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087568Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087691Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087811Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5087935Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5088068Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5088187Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5088330Z       "id": "REQ-MESH-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5091422Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only; COMPOSED-WITH milestone-A FF: REQ-SUBNET-REVOKE-ADMIN-GATE adds the admin-TOTP gate BEFORE any write — elevation alone no longer authorizes — and REQ-SUBNET-ADMIN-RESURFACE rides the same coalescing window for the parked ADMIN key; this REQ keeps the revoke mechanics + MEMBER-seed rotation) 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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5091646Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5091774Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5091899Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092022Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092146Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092276Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092403Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092538Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092671Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092793Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5092922Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093068Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093196Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093564Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093701Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5093950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094141Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094274Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094713Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094843Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5094970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095280Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095417Z               "line": 528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095850Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5095982Z               "line": 824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5096107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5096236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5096413Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5096607Z               "line": 838
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5096737Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5096860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097037Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097170Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097589Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097729Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5097977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5098151Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5098342Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5098466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5098599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5098762Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5098894Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5099176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5099306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5099524Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5099659Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5099787Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5099912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100077Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100216Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100341Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100630Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100765Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5100894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101185Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101324Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101738Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5101873Z               "line": 14912
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102006Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102129Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102321Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102454Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102596Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102730Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5102850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103030Z               "path": "crates/spt-daemon/tests/reseed.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103161Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103585Z               "path": "crates/spt-daemon/tests/reseed.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103713Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5103895Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104023Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104148Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104281Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104416Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104548Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104863Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5104996Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105130Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105421Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105559Z               "line": 573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5105982Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106128Z               "line": 1475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106556Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106691Z               "line": 1505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106819Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5106938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5107115Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5107320Z               "line": 1525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5107449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5107577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5107759Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5107892Z               "line": 602
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108312Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108450Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5108926Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109140Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109603Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109736Z               "line": 223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5109989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5110162Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5110294Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5110418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5110543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5110708Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5114741Z               "line": 727
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5114889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115194Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115338Z               "line": 915
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115465Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115756Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5115891Z               "line": 34167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116019Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116143Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116273Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116395Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116523Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116642Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5116874Z       "id": "REQ-MESH-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5118395Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5118548Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5118743Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5118872Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119087Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119220Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119347Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119496Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119638Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119768Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5119897Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120048Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120187Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120492Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120625Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5120883Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121056Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121192Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121625Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121754Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5121885Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122186Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122378Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122811Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5122945Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5123068Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5123201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5123383Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5123516Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5123646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5123826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124008Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124136Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124266Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124564Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124701Z               "line": 1158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5124953Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125134Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125268Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125381Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125678Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125807Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5125940Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126064Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126231Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126369Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126494Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126621Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5126880Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127016Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127155Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127405Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127544Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127676Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5127854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128039Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128173Z               "line": 1578
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128606Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128742Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5128864Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5129084Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5129212Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5129337Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5129460Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5129638Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5129780Z       "id": "REQ-MESH-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131067Z       "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.)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131218Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131343Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131472Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131597Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131724Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131848Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5131987Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132133Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132252Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132384Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132521Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132656Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5132938Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133070Z               "line": 14149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133548Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133686Z               "line": 14171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133809Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5133938Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134062Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134187Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134324Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134454Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134578Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134701Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5134836Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135020Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135308Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135441Z               "line": 38436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135856Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5135989Z               "line": 38463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136120Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136386Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136524Z               "line": 38505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136653Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136782Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5136910Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137035Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137158Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137282Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137421Z       "id": "REQ-MIGRATE-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137648Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137794Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5137922Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138051Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138189Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138328Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138447Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138580Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138719Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5138857Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139248Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139410Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139582Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139705Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139834Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5139974Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5140106Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5140226Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5140354Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5140481Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5140611Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5140772Z       "id": "REQ-MONIC-DELIVERY-TRIGGER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5159600Z       "title": "The monics a receiving agent holds that MATCH an arriving message RIDE THAT MESSAGE'S ENVELOPE as a `mnemonics-json` attribute carrying a JSON array of the matched records, so the agent reads its own standing judgement about the sender in the same breath as the message rather than having to go and look it up. THE MATCH IS EVALUATED AT THE ENVELOPE RENDERERS, NOT AT THE WAN EDGE (ruled 2026-07-31): a classification that fires only when the peer happens to be REMOTE is one the agent cannot rely on, and the trust warning's edge is the wrong home for it because that edge exists to consume the ACCESS GATE's verdict — the two are different concerns that happen to read the same register. THERE IS EXACTLY ONE EVALUATION PRIMITIVE and every delivery surface calls it: a match rule copied per surface is a classification that fires on one channel and not another, which is worse than none because the agent cannot tell which it is looking at. The renderers therefore take the RECIPIENT's id as well as the structural sender/body pair, and NO OWNER-LESS RENDERER REMAINS — a renderer that did not need the recipient is the shape a future delivery surface reaches for by habit, arriving attr-less with nothing failing. THE ATTR IS PRESENT IF AND ONLY IF SOMETHING MATCHED: an empty array would say 'evaluated, no match' where absence says 'not evaluated', a distinction no consumer has a use for and a second shape every consumer would have to handle. THE TRIGGER VOCABULARY IS RATIFIED (operator ruling 2026-08-03, superseding W5's sender-match-only limit) AND IT BINDS BOTH CONSUMERS — this edge and the now-signal MONICS surface — precisely so that the second consumer adds a CONSUMER and never a record migration. Triggers are a JSON array of matchers over five kinds: `sender` (identity match on the PROVEN sender id, which is the trust warning's classification question and the only kind that answers it), `content` (the incoming message body), `json` (a custom payload), `user_input` and `agent_output`. MATCHING COPIES THE KEYWORD-HINTS RULE VERBATIM — a literal CASE-INSENSITIVE SUBSTRING by default, a REGEX when `regex` is set, and an INVALID REGEX NEVER MATCHES (a bad pattern silences its own trigger and never panics) — and it copies it BY CALLING IT: the rule lives in one place with two consumers, because a rule copied verbatim into a second place is two rules that merely agree today. Literal-by-default is what lets a trigger carry arbitrary symbols with no escaping burden. WHICH KINDS HAVE A LIVE CONSUMER IS A SEPARATE QUESTION FROM WHICH ARE RATIFIED: `sender`, `content` and `json` evaluate at this edge, which exists; `user_input` and `agent_output` are RATIFIED BUT INERT until the now-signal / IO-parser funnel is built, and a record carrying one is not malformed — it is waiting for its consumer. Reading 'ratified' as 'has a live consumer' is the error this clause exists to prevent, and any surface that lists a trigger must say which it is looking at. THE TWO EDGE QUESTIONS ARE DELIBERATELY ASYMMETRIC AFTER THE RE-KEY: a content-triggered monic rides a message it matched WITHOUT classifying its sender, because classification is a `sender` question — so the delivery attr can be present where the trust warning still treats the peer as a stranger. The direction that must hold is the one that protects the agent: anything that classifies the sender ALSO matches the delivery, so an agent is never warned about a stranger whose monic it was handed in the same envelope. The ARRAY shape is not premature generality but the ratified envelope contract, and it is what lets a trigger kind matching several records ride with no envelope change. THE READ IS STORE-FREE AND PURE-PATH, off the tracked root, for the reason the trust warning's is: it happens on the inbound message path, where the store's ensure-worktree spawns git per message. A RECIPIENT WITH NO MIND — a shell link, an agent that has classified nobody — READS NOTHING AND GETS NO ATTR, and that is the primitive telling the truth rather than a case to special-case; it costs one sentence in the module doc, not a branch. An UNREADABLE record rides nothing, the same fail-safe reading the trust warning takes, and the two consumers are asserted to agree over every state a record can be in — an agent must never be warned about a stranger whose monic it was handed in the same envelope. The attr KEY is a compile-time constant and its VALUE is attr-escaped by the one composer, so monic text carrying quotes or angle brackets cannot forge an attribute or terminate the envelope. STATED LIMIT, NAMING ITS ONE PEER-TRAFFIC CASE: a body that is ALREADY a typed envelope passes through verbatim and carries no attr — splicing an attribute into a finished envelope means re-hand-rolling the grammar this codebase consolidated into one composer, and typed envelopes are otherwise machinery (notify, file-drop, echo-commune) that is not peer chatter. THE ONE CASE WHERE IT BITES PEER TRAFFIC IS `restamp_wan_user_msg` IN THE WAN EDGE, named here exactly so a later wave can lift it without re-deriving which path is meant: a FORGED `user-msg` — one whose sender the daemon could not prove — is re-stamped into a typed plain-`msg` envelope, which then rides as a typed body and gets no attr. What is lost there is the MONIC RIDE, never the caution: the trust warning is composed at that same edge from the gate's verdict and is untouched by this leg, and an unprovable sender is warned about unsuppressibly in any case. Lifting the limit means re-composing the restamp through the owner-aware renderer, which requires threading the RECIPIENT into `restamp_*` — real work on adversarial-path code, deliberately not taken in this wave, and to be requested through the board rather than bled into a neighbouring change. A SENDER-SUPPLIED TYPED ENVELOPE CANNOT CLAIM THE RECEIVER'S JUDGEMENT: every inbound `mnemonics-json` attribute is stripped at `receive_wan` before delivery, while the peer's body remains unchanged; the forged value is inert. Gate: impl — the one match primitive over the tracked root, the msg composer's extra-attribute form, the owner-aware renderers on both delivery edges, and every production render site converted to hand over its recipient; unit — a sender-matched monic rides as a JSON array carrying the record verbatim with `from` still first and BOTH edges composing identically, an unclassified sender and a mindless recipient get no attr at all, a husk rides nothing AND reads identically to the warning predicate over every state, a typed body carries no attr even when a monic matches, monic text full of envelope metacharacters cannot break out of the attr, and the attr survives the listener's chunk/reassemble round trip.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160049Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160177Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160301Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160431Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160554Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160678Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160816Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5160950Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161094Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161356Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161488Z               "line": 1174
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5161916Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162094Z               "line": 405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162217Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162342Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162461Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162589Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162723Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162856Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5162976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163133Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163267Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163719Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163856Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5163980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164259Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164388Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164802Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5164932Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165327Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165456Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165586Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165709Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165862Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5165999Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166410Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166549Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166671Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5166997Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167122Z               "line": 406
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167556Z               "path": "crates/spt-store/src/matchrule.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167689Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5167937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168095Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168228Z               "line": 715
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168514Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168676Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168810Z               "line": 820
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5168933Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169304Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169433Z               "line": 1247
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169855Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5169984Z               "line": 126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170389Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170522Z               "line": 12030
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170643Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5170918Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171057Z               "line": 12178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171176Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171306Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171438Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171558Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171705Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171834Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5171959Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172086Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172219Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172344Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172692Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172824Z               "line": 1946
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5172954Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173231Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173359Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173768Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5173955Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174078Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174368Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174502Z               "line": 539
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5174921Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175052Z               "line": 567
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175473Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175611Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5175873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176026Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176164Z               "line": 624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176584Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176718Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5176975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5177128Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5177321Z               "line": 660
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5177454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5177576Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5177740Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5177876Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178307Z               "path": "crates/spt-store/src/matchrule.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178435Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178693Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5178916Z               "path": "crates/spt-store/src/matchrule.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179131Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179585Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179727Z               "line": 1541
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179849Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5179988Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5180110Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5180239Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5180364Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5180496Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5180645Z       "id": "REQ-MONIC-HUSK-PRESENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5189167Z       "title": "A PRESENT-BUT-UNREADABLE monic record — a HUSK — COUNTS AS PRESENT when `add` and `update` classify what they found (ratified 2026-08-04, bag grill; this REVERSES the reading that shipped in W5 and was deliberately preserved through the releases#70 re-key). The question the two verbs ask is whether the monic id is already SPOKEN FOR, and a file filed under that id speaks for it whether or not anything can parse the bytes. So `add` REFUSES a husk, naming it as unreadable and pointing at `update` and `remove`, and `update` PROCEEDS over one, announcing the replacement out loud. The superseded polarity was not dishonest — both arms said what they saw — but it made `add`, the verb whose entire job is refusing to clobber what is already filed, the one that destroyed content, and `update`, the verb whose job IS replacement, the one that refused to perform it; it then instructed the caller to reach for the destructive verb in order to replace a record, teaching precisely the reflex the add/update split exists to prevent, in the ONE case where the operator cannot read the old content to judge what the replacement costs. THE ESCAPE HATCH IS VERIFIED, NOT BUILT: making `add` refuse a husk would strand a caller only if nothing else could clear a corrupt record, and `remove` decides on FILE EXISTENCE rather than readability, so it already withdraws a husk by construction — no `--force` flag is minted, and that shipped property is asserted by a test rather than trusted. THE POLARITY IS ONE FACT AND MUST BE SPELLED THE SAME EVERYWHERE IT IS ENCODED: the CLI's classify call, the store's own add/update primitive, and every printed line that names a verb for an unreadable record — a listing hint still pointing at `add` would be a surface instructing the caller to run the arm that now refuses. UNCHANGED, deliberately: the DELIVERY EDGE still reads a husk as never-classified (it fails safe — it warns more, never less), and the LISTING still shows a husk under its own id marked unreadable. Gate: doc — the CONTEXT.md mnemonics entry states the ratified polarity, the reason the previous reading was reversed, the verified escape hatch, and what stayed unchanged; impl — the classification input counts a husk as present at BOTH encoding sites (the CLI verb path and the store's write primitive, which classifies on the FILE question rather than on a successful parse), the `add` arm refuses with the unreadable diagnosis naming `update` and `remove`, the `update` arm proceeds and keeps the announced-replacement line, and the listing's advice names the verb that now replaces; unit — a husk REFUSES `add` as Exists AND SURVIVES THE REFUSAL UNREAD (the refusal is not a partial write, which is the whole point of refusing over content nobody can read), a husk is REPAIRED IN PLACE by `update` (the caller has no other route to repair), and `remove` withdraws a husk and stays idempotent over the cleared id, proving the escape hatch that made the `add` refusal safe to ship.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5189429Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5189559Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5189686Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5189816Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5189935Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190068Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190193Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190334Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190803Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5190942Z               "line": 1172
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191070Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191195Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191328Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191453Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191595Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191729Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5191857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192038Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192167Z               "line": 545
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192577Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192712Z               "line": 5735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5192969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193121Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193263Z               "line": 5997
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193387Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193516Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193639Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193769Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5193906Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194041Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194169Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194298Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194436Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194569Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194770Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5194937Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195080Z               "line": 1426
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195498Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195636Z               "line": 1503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5195891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196055Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196225Z               "line": 24909
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196359Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196482Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196608Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196731Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196860Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5196989Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5197131Z       "id": "REQ-MONIC-STORE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5211795Z       "title": "A monic — a REACTIONARY STRING: a trigger set plus a body revealed when something in the endpoint's session matches — is stored IN THAT AGENT'S OWN MIND TIER, ONE FILE PER RECORD, at `tracked/agents/<id>/monics/<monic-id>`. A MONIC IS NOT INHERENTLY ABOUT A PEER: classifying a peer is one use of ONE trigger kind, not the definition, and identity is the MONIC ID, which is not necessarily any of its triggers. Two properties are load-bearing and neither is a layout preference. FIRST, it is mind, so it replicates with the mind: same branch, same commits, same sync path, no second store to keep in step and no chance of an agent's instances disagreeing about what the agent decided because a side-store did not travel. SECOND, ONE FILE PER RECORD, because the mind's merge driver resolves PER FILE PATH and never merges contents — so the path granularity IS the conflict granularity. With every monic in one file, two instances of the same agent writing DIFFERENT monics concurrently would collide on that single path and surface a whole-file conflict — a conflict about nothing, between two facts that never disagreed, which the agent must then resolve by hand. Per-record files make those writes invisible to each other and confine a genuine conflict to the one record both instances actually wrote. Per-record is strictly finer-grained than per-peer, so this addressing IMPROVES conflict behaviour rather than trading it away. A SINGLE-FILE STORE IN THE MIND TIER IS REFUSED — sqlite or one json — for that same reason plus the sidecar problem: WAL/SHM files would materialise as untracked artifacts inside a git-replicated worktree. Lookup cost is a SEPARATE OBJECT from the record: if the delivery edge's scan is ever MEASURED to matter the answer is a node-local derived index outside the mind tier, rebuildable from the files, and NO INDEX IS MINTED UNTIL A MEASUREMENT ASKS FOR ONE. The record carries its own id as a field as well as in its filename, so a record recovered from a conflict artifact, a bundle or a copy still knows what it is and a filename/field disagreement is detectable rather than silently resolved. W5 RECORDS DO NEED A MIGRATION (operator-ruled 2026-08-03, superseding the previous never-migrated commitment, which covered ADDING A FIELD to a peer-keyed record and never covered a RE-KEY): a W5 record maps to id = the old peer-id, triggers = one sender trigger on that peer-id, body unchanged. The mapping is applied AT READ so every reader is correct immediately — including the store-free readers on the inbound message path, which cannot write anything back — and an in-place rewrite makes the stored bytes say what the record means; the rewrite is IDEMPOTENT, because every write here is a commit that replicates. A monic id is charset-validated as an endpoint id before it becomes a path component or a tracked filename — an unvalidated one is a traversal out of the mind — while a TRIGGER PATTERN is deliberately NOT so constrained, since it never touches the filesystem and must be able to carry arbitrary symbols. The store answers the trust warning's question as a NAMED PREDICATE — does this endpoint hold any monic whose SENDER trigger matches this peer, a scan of the monic directory rather than one path-addressed read — so the warning path never decides on its own what an absent-versus-unreadable record means; classification is monic-only, and an access-rule entry naming a peer is not a classification. Removal is idempotent and tracked — a withdrawn monic must not survive at the branch tip. Gate: impl — the monic-id-keyed record with its trigger set and origin provenance, the CRUD over the mind worktree with a checkpoint per mutation, the read-side legacy upgrade and the idempotent in-place migration, the classification predicate as a sender-trigger scan, and monic-id validation on every path-forming call; unit — the CRUD round trip (a rewrite REPLACES rather than accumulating, removal idempotent, an agent holding nothing lists nothing rather than erroring on an absent directory, monics are per-owner), a write and a removal are both visible at the mind's own branch tip, an illegal monic id is refused rather than written WHILE a trigger pattern full of metacharacters is accepted and matches literally, THE RE-KEY ROW — a monic's id is INDEPENDENT of the peers it classifies, proven by a record whose id is not the peer it classifies, one record classifying several peers, and several records classifying one peer, none of which is expressible under peer-keying — THE MIGRATION ROW — a planted W5 record reads correctly through every path before any rewrite, then rewrites in place to the current shape, idempotently, with a husk left as a husk rather than repaired into an invented record — and THE STORAGE-SHAPE ROW — two instances of the same agent writing DIFFERENT MONICS concurrently merge through the REAL sync path with ZERO conflicts and neither side clobbered, WITH a SAME-MONIC control proving the same path does surface a real disagreement (without the control the row would pass on a merge path that never conflicts about anything).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212171Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212315Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212438Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212568Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212692Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212824Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5212954Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213096Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213236Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213512Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213688Z               "line": 1163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5213941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214133Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214265Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214392Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214517Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214640Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214784Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5214918Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215059Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215185Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215351Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215490Z               "line": 470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5215904Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216038Z               "line": 594
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216449Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216585Z               "line": 782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5216841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217002Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217136Z               "line": 793
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217593Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217723Z               "line": 815
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5217975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5218137Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5218271Z               "line": 843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5218400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5218528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5218686Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5218829Z               "line": 875
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219044Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219167Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219349Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219476Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219624Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219750Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5219883Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220013Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220155Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220285Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220590Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220723Z               "line": 1119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5220971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221138Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221272Z               "line": 1173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221685Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221821Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5221944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222224Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222364Z               "line": 1296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222823Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5222961Z               "line": 1709
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223084Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223375Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223500Z               "line": 1961
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223628Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223748Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5223880Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5224005Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5224125Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5224300Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5224440Z       "id": "REQ-MONIC-VERBS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5237687Z       "title": "An agent edits its own monics through `spt endpoint monic <list|add|update|remove> [--owner <id>]` and copies another endpoint's through `spt endpoint monic clone <monic-id>|--all --from <src> [--to <dst>] [--overwrite]`. ADD, UPDATE AND REMOVE REQUIRE `--target <monic-id>`; ADD AND UPDATE REQUIRE `--triggers <triggers-json>`; AND THE BODY ARRIVES ON STDIN, because a monic body is prose carrying newlines, quotes and shell metacharacters, which an argv-borne body hands to whatever shell is in the middle to mangle. ONE STDIN PAYLOAD MAY CARRY SEVERAL MONICS: the multi-record form takes whole records from stdin as a JSON array, each with its own id, triggers and body, and it is a DISTINCT INPUT SHAPE from the single-record form rather than a reinterpretation of it — the flags name the record and stdin is its body, so a payload that also had to carry ids would be two sources for one fact, and the surface refuses the two spellings together so neither is ever ambiguous. A multi-record write applies RECORD BY RECORD and does not roll back what already landed, because each record is an independent fact and a partial application that names exactly which ids landed is more recoverable than an all-or-nothing failure the operator must then diagnose; the exit code is non-zero if ANY record was refused, so a script cannot read a partial application as success. NO MONIC VERB IS EVER ELEVATION-GATED (ratified): a monic is the agent's own judgement, written by the agent, and an agent holds no OS privilege to prove — gating one would make an agent's own mind editable only by the human standing at the machine, which is the opposite of what the register is for. That invariant is a CHECKED PROPERTY, not a comment: the verbs' one decision point TAKES the process's real elevation and ignores it, so a gate added later in either direction fails a test rather than passing unnoticed as a filled-in absence. ADD AND UPDATE ARE SEPARATE VERBS because they refuse opposite states — add refuses to replace a monic that already exists, update refuses to invent one that does not — so a typo'd id or a re-run script cannot quietly change a record; the refusal names the other verb. THE LISTING SHOWS UNREADABLE RECORDS AS UNREADABLE. A record that is present and unparseable reads as never having matched at the delivery edge, which is correct there because it fails safe (it warns more, never less) — but a husk that also vanishes from the listing is a file the agent can neither act on nor discover, the erased-distinction class. So the list names it UNDER ITS OWN MONIC ID, marks it unreadable, and points at the verb that rewrites it. The listing also states a trigger kind that is RATIFIED BUT INERT as such, since a trigger that cannot fire today must not be presented as working. CLONE COPIES THROUGH THE FORK'S COPY SEAM (REQ-FORK-MIND-COMPLETE), not a second copy path, and copies the source's mind AT ITS TIP; a record the destination already holds under that id is KEPT and reported rather than silently replaced (--overwrite is the deliberate replacement), and every copied record is re-stamped as inherited so the destination can tell its own monics from the ones it was handed. A husk in the source travels as a husk — visible in the destination's listing, never dropped and never invented. A clone that copies nothing mints nothing: no branch, no worktree, no empty commit. Gate: impl — the five verbs over the monic store with owner defaulting to the session's own endpoint, the stdin body read, the trigger-set parse with an unparseable set REFUSED rather than defaulted to empty, the multi-record payload form, the elevation-taking decision function, the add/update preconditions, the unreadable-record row in the listing, and the clone routed through the shared copy seam; unit — the elevation table (every verb x record-present/absent yields the SAME outcome under elevated, not-elevated and undeterminable), the add/update split including the husk reading ratified 2026-08-04 (a husk is PRESENT for these verbs, so add refuses it with the unreadable diagnosis and update replaces it while announcing that it did — see REQ-MONIC-HUSK-PRESENT, which owns that polarity and its escape hatch), the clap surface (bare `monic` lists, --target and --triggers required without the multi-record flag and refused with it, clone takes exactly one selector), the two-part husk row (delivery edge says never-matched, list path names it unreadable under its id), and the clone rows (existing destination record kept and reported, --overwrite replaces, copies stamped inherited, source untouched, self-clone refused, nothing-to-copy mints no mind).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238027Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238156Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238285Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238412Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238538Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238670Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5238800Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239032Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239172Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239463Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239591Z               "line": 1171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5239844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240020Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240159Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240283Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240469Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240596Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240725Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240861Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5240999Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5241119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5241289Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5241419Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5241542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5241667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5241825Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242006Z               "line": 776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242420Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242558Z               "line": 794
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5242965Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243097Z               "line": 844
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243508Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243637Z               "line": 973
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5243890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244038Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244176Z               "line": 5662
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244577Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244710Z               "line": 5902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5244959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245105Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245292Z               "line": 5969
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245415Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245702Z               "path": "crates/spt/src/monicverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245832Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5245959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246235Z               "path": "crates/spt/src/monicverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246368Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246492Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246617Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246739Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5246922Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247054Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247193Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247317Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247442Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247579Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247708Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5247994Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248129Z               "line": 1364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248544Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248672Z               "line": 1421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5248921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249164Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249297Z               "line": 1845
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249427Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249713Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249841Z               "line": 1944
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5249965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250246Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250385Z               "line": 30924
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250857Z               "path": "crates/spt/src/monicverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5250982Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251402Z               "path": "crates/spt/src/monicverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251530Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251660Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251783Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5251912Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5252041Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5252159Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5252280Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5252413Z       "id": "REQ-MSG-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5252952Z       "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__)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253089Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253224Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253346Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253476Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253615Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253742Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5253875Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254011Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254145Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254270Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254407Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254541Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254673Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5254975Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255109Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255523Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255665Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5255975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256139Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256271Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256401Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256695Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256825Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5256952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257243Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257373Z               "line": 196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257849Z               "path": "crates/spt-msg/src/listener.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5257983Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5258106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5258235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5258393Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5258530Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5258656Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5258783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259030Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259162Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259600Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259734Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259861Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5259987Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260110Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260245Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260382Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260520Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260835Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5260964Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5261092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5261227Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5261407Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5261599Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5261730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5261859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262038Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262177Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262301Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262429Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262549Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262682Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262821Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5262954Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5263082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5263297Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5263436Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5263559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5263688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5263851Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5267899Z               "line": 373
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5268037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5268179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5268361Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5268504Z               "line": 418
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5268647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5268771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269038Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269172Z               "line": 441
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269594Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269726Z               "line": 466
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5269983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5270155Z               "path": "crates/spt-msg/src/listener.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5270289Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5270412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5270632Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5270800Z               "path": "crates/spt-msg/src/listener.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5270937Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271357Z               "path": "crates/spt-msg/src/listener.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271491Z               "line": 251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271619Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5271914Z               "path": "crates/spt-msg/src/listener.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272044Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272527Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272664Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5272913Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273066Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273204Z               "line": 792
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273613Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273753Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5273881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274156Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274286Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274415Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274539Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274673Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274800Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5274923Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5275052Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5275188Z       "id": "REQ-MSG-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5275517Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5275657Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5275789Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5275919Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276047Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276180Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276361Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276505Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276634Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5276887Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277028Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277158Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277449Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277579Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5277925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278086Z               "path": "crates/spt/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278211Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278348Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278473Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278602Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278739Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5278878Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279093Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279217Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279345Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279485Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279622Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5279907Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280045Z               "line": 28683
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280448Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280587Z               "line": 28881
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5280991Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281126Z               "line": 28935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281602Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281736Z               "line": 29040
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5281989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282136Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282265Z               "line": 33727
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282394Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282667Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282799Z               "line": 33816
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5282979Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5283106Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5283229Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5283359Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5283477Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5283597Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5283736Z       "id": "REQ-MSG-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284158Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284303Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284426Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284551Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284674Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284798Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5284918Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285045Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285181Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285314Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285436Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285565Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285705Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285835Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5285964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286130Z               "path": "crates/spt-msg/src/listener.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286264Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286669Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286808Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5286931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287055Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287275Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287403Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287810Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5287942Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288067Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288190Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288308Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288442Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288575Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288757Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5288885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289157Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289290Z               "line": 10
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289533Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289711Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289848Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5289973Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290092Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290215Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290341Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290477Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290610Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5290888Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291028Z               "line": 264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291442Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291571Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5291972Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292157Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292282Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292410Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292535Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292658Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292777Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5292903Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5293039Z       "id": "REQ-MSG-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5293933Z       "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",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294128Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294262Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294385Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294510Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294634Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294763Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5294891Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295024Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295173Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295296Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295436Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295582Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295721Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5295855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296015Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296149Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296562Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296699Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296833Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5296966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297139Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297271Z               "line": 1245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297401Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297678Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297825Z               "line": 12176
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5297949Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5298134Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5298259Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5298389Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5298521Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5298656Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5298783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5299045Z               "path": "crates/spt/tests/quickstart_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5299187Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5299346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5299521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5299688Z               "path": "crates/spt/tests/quickstart_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5299884Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300008Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300136Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300261Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300394Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300533Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5300962Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301094Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301497Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301627Z               "line": 439
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5301884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302040Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302175Z               "line": 451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302303Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302584Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302717Z               "line": 524
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302842Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5302970Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5303090Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5303275Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5303395Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5303519Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5303657Z       "id": "REQ-MSG-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5304450Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5304588Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5304717Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5304846Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305022Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305156Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305283Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305418Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305556Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305691Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5305966Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306109Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306237Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306372Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306504Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306637Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306769Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5306897Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307192Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307322Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307742Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5307879Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308295Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308428Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308553Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5308843Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309086Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309343Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309509Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309644Z               "line": 418
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5309892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310043Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310182Z               "line": 11103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310311Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310439Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310563Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310744Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5310888Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311020Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311316Z               "path": "crates/spt/tests/gateway_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311461Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311583Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311710Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311839Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5311966Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312105Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312238Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312529Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312666Z               "line": 1399
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5312919Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313101Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313239Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313369Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313660Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313792Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5313926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314270Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314413Z               "line": 767
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314535Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314829Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5314962Z               "line": 816
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315087Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315373Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315505Z               "line": 832
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5315969Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316106Z               "line": 851
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316512Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316655Z               "line": 28594
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316774Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5316899Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5317026Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5317154Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5317283Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5317400Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5317543Z       "id": "REQ-MSG-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5319303Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5319451Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5319583Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5319704Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5319842Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5319964Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320098Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320293Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320432Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320565Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320837Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5320970Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321095Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321214Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321338Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321466Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321609Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321735Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5321929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322115Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322242Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322371Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322670Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322798Z               "line": 566
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5322927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323217Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323352Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323605Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323761Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5323890Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324315Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324448Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324568Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324690Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324815Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5324940Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325081Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325266Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325394Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325522Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325665Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325798Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5325923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326098Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326228Z               "line": 2649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326356Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326638Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326825Z               "line": 1426
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5326943Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5327077Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5327197Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5327320Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5327440Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5327563Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5327709Z       "id": "REQ-MSG-CLI-ORIGIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5329673Z       "title": "A bare non-perch CLI `spt send` (no owning perch to name as origin) stamps from = `cli@<node-label>` at compose time (bare `cli` when no node label is known — never a dangling `cli@`), and WAN ingress renders an EMPTY from as the origin node DISPLAY (`node_label_display(origin_node, None)` = the QUIC-proven origin node's key-prefix; never blank) — a delivered message NEVER shows a blank sender. Scoped to `spt send`: a from-less send is LEGAL (stamped, never refused), while `spt ring` keeps its NO_SELF refusal (a ring needs a routable self for the reply leg; `cli@<node>` is a display origin, not a perch address). (F-024C item 3, doyle ruled)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5329824Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5329954Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330087Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330206Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330340Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330468Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330600Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330735Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330867Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5330992Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331191Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331326Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331612Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331745Z               "line": 714
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5331989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332145Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332280Z               "line": 983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332731Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332869Z               "line": 11414
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5332997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333115Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333363Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333506Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333635Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333763Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5333893Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334025Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334160Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334435Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334569Z               "line": 1354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5334970Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335104Z               "line": 25572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335232Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335361Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335486Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335613Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335736Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5335868Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5336015Z       "id": "REQ-MSG-DELIVERY-AXES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5342835Z       "title": "Activity-gated inbound delivery + per-message send control as THREE ORTHOGONAL AXES plus opaque metadata (ADR-0028; grilled w/ operator 2026-06-23). SUBSTRATE (the legacy-SPT parity gap, scaffolded-but-unwired today: `delivery::is_idle` + `resolve_inject_methods` exist but the result is discarded `let _methods`, and `broker::dispatch_endpoint_input` injects unconditionally — its comment calls activity-gating 'a deferred follow wave'): an inbound message has an ACTIVE window (endpoint active → spool for the receiver's hook-poll, non-disruptive) and an IDLE window (idle/idle-transition → deliver immediately: translation binary spt-hosted → relay-poll either topology → spool, in fallback order). AXES (each composes; each defaults to its unrestricted value): (1) DELIVERY WINDOW — default (both, first-to-fire) | `--idle-only` (idle window; immediate if already idle) | `--active-only` (active window only, never wakes; the RENAMED `--deferred` — `deferred=1` spool column + `api poll --include-deferred` keep their names). (2) CHANNEL RESTRICTION — unrestricted | `--prefer-native` (translation binary if running else fall back) | `--force-native` (binary ONLY, no fallback/no spool-to-other-method). Native flags do NOT respect the binary's idle-gating: the WINDOW says when, the native flag says through-what (so `--force-native --active-only` = binary injects during the active window, mid-turn-safe via the existing InjectFloor). (3) PERSISTENCE — durable (default; spool until delivered or TTL) | `--ephemeral` (drop if undeliverable in the accepted window — at window-open with no live carrier, or at TTL, whichever first). METADATA (orthogonal): `--json-payload '<json>'` → a single attr-escaped `json=\"…\"` envelope attr ALONGSIDE (not replacing) the body, pure verbatim passthrough across spool/TCP/WAN/EVENT-PART, parsed only by the receiving adapter; collision-proof by construction (structured data lives INSIDE the one `json` value, can never forge `from`/`type`); available to ANY sender (confers no spt-core authority). HAZARD: `--ephemeral` is the ONLY path permitted to drop silently — the sender-opted-in carve-out to REQ-HAZARD-IDLE-SILENT-NONDELIVERY (that hazard gains a '…unless --ephemeral' clause in v0.15.0). (v0.15.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343121Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343253Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343381Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343510Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343637Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343765Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5343895Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5344022Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5344171Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5344304Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5344429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5344744Z               "path": "docs/adr/0028-activity-gated-delivery-and-send-modifier-axes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5344881Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345005Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345134Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345253Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345398Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345539Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345679Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5345979Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346116Z               "line": 2207
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346238Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346537Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346671Z               "line": 4904
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346804Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5346938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347110Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347238Z               "line": 5129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347658Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347801Z               "line": 5143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5347968Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5348096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5348269Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5348401Z               "line": 8887
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5348522Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5348655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5348820Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349033Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349447Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349705Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5349958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350124Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350254Z               "line": 704
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350673Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350808Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5350935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351064Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351226Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351364Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351778Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5351912Z               "line": 650
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352340Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352470Z               "line": 732
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5352885Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353023Z               "line": 801
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353489Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353628Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5353885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354037Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354168Z               "line": 11151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354302Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354578Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354717Z               "line": 11660
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5354845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355183Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355318Z               "line": 11736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355437Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355560Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355685Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355818Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5355958Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5356095Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5356220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5356423Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5356563Z               "line": 1747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5356685Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5356813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357007Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357144Z               "line": 1814
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357599Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357731Z               "line": 2118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357871Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5357994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5358190Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5358375Z               "line": 2166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5358505Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5358628Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5358757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5358886Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359101Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359238Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359513Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359645Z               "line": 2166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5359898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360113Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360251Z               "line": 1426
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360370Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360660Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360799Z               "line": 1459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5360927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361219Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361358Z               "line": 1490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361486Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361767Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5361891Z               "line": 1557
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362143Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362304Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362435Z               "line": 1594
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362682Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362843Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5362973Z               "line": 1624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363373Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363510Z               "line": 28651
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363631Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363754Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5363955Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5364078Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5364198Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5364318Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5364464Z       "id": "REQ-MSG-ENVELOPE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368092Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368267Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368392Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368526Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368658Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368783Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5368911Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5369126Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5369255Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5369385Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5369579Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5369700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5369992Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370125Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370252Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370372Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370501Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370624Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370758Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5370886Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371235Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371364Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371784Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5371918Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372041Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372327Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372460Z               "line": 196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5372898Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373032Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373441Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373566Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5373980Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5374114Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5374239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5374366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5374520Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5374652Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5374777Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5378851Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5379228Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5379381Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5379582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5379710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5379882Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380020Z               "line": 649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380274Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380438Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380572Z               "line": 819
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5380879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381056Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381184Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381314Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381605Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381733Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5381990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382143Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382277Z               "line": 12177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382400Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382530Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382653Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382783Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5382920Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383049Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383367Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383497Z               "line": 15
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383620Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383744Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383868Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5383996Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384131Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384320Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384607Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384741Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384859Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5384989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385151Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385279Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385531Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385684Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385867Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5385996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386277Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386411Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386821Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5386951Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387360Z               "path": "crates/spt-msg/src/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387488Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387614Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387736Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387861Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5387986Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5388108Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5388233Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5388394Z       "id": "REQ-MSG-IDLE-EDGE-DRAIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5392752Z       "title": "On an endpoint's ACTIVE→IDLE transition the daemon DRAINS its pending spool (NON-DEFERRED ONLY — AMENDED 2026-07-26) through the same shared spt-hosted inject leg — closing the SECOND F-023 gap for the classes an inject may carry: an spt-hosted endpoint (no api-listen relay to wake it) strands its 'IDLE+no-binary → non-deferred for a relay that does not exist' class without this drain. AMENDMENT 2026-07-26 (FIELD-TRUTH W1 roll-in, operator ruling; doyle spool-audit RCA — spt-shells shell-context rows on a LIVE-AGENT perch showed taken_leg=idle-inject ~200ms after boundary spooling, each injection STARTING A TURN): the deferred (active_only) class is EXCLUDED from the idle-edge and parked-re-offer claims UNCONDITIONALLY. active_only means what ADR-0028 says — 'active hook window only; never wakes an idle agent' — so the hook poll is its SOLE carrier on every endpoint class; a deferred row with no hook cadence WAITS (starves-by-design), it is never injected. This knowingly revokes the original F-023 leg-2 rescue of the deferred class (that rescue was the operator-visible defect: background context starting turns). Mechanics unchanged for non-deferred: shared inject leg, REUSE of the hook-poll take/ack (ONE drain path, TWO triggers), v0.14.3 LAW on both triggers (translation-binary-ONLY, no-binary drain SPOOLS LOUD, never writes the PTY). (F-023 as amended; kin REQ-SEND-WINDOW-DRAIN-HONOR)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5392937Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393076Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393203Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393333Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393461Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393585Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393710Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393856Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5393989Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394110Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394237Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394377Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394509Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394815Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5394953Z               "line": 785
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395373Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395558Z               "line": 828
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5395984Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396115Z               "line": 799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396239Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396367Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396489Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396614Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396751Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5396890Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397249Z               "path": "crates/spt/tests/idle_edge_drain_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397386Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397511Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397791Z               "path": "docs/F-035-CONFLICT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5397921Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398043Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398178Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398301Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398430Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398574Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398702Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5398832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399077Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399215Z               "line": 1531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399676Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399815Z               "line": 1574
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5399942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400234Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400368Z               "line": 1610
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400491Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400615Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400745Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400863Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5400992Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5401117Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5401341Z       "id": "REQ-MSG-IDLE-TRANSLATION-BINARY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5407354Z       "title": "spt-hosted idle message delivery via an adapter TRANSLATION BINARY (ADR-0022). New opt-in manifest section `[message-idle-translation-binary]` = a TABLE carrying a `path` scalar (doyle OPT-B ruling: modeled as a table, not a bare top-level scalar, so a preceding section cannot silently absorb it + N+1 extensible; spt-core does NOT deny_unknown_fields, so a future key degrades gracefully); spt-core LIFECYCLE-manages it (spawn when the endpoint comes up, terminate when it goes down). The binary is a PURE stdin→stdout filter; spt-core owns EVERY PTY write. stdin (JSON-lines): `{type:\"init\",endpoint_id,node}` first · `{type:\"event\",envelope:\"<EVENT…>\"}` per inbound message (ADR-0020 envelope) · `{type:\"input\"}` content-free ping on each operator keystroke (binary tracks user-idle for its own idle-gated buffering; PTY input content NOT duplicated). stdout (JSON-lines): keystroke-commands `{key:…}`/`{delay_ms:…}`/`{text:…}` (extensible). spt-core applies the emitted sequence to the broker PTY ATOMICALLY (the W1 coordination — REQ-HAZARD-INJECT-CONTROL-COEXIST). The daemon poll feed is the ONE idle substrate for both topologies (Q1=A): harness-hosted consumer = the Monitor child, spt-hosted consumer = this binary; spt-core PREFERS a perch's poll listener if one exists (so spt-hosted can run a listener AND keep `spt rc`). Idle-only; busy/mid-turn = adapter hook-injection. Closes the current grounding gap: `api bind` registers no listener port → a listener-less spt-hosted perch SPOOLS inbound (only spooling+adapter-poll works today) → this delivers real inbound into the PTY. AMENDED v0.14.3 (ADR-0022 amendment, raw-inject removal): idle delivery is translation-binary-ONLY — the v0.11.0 raw `{text:payload}{key:enter}` inject is NO LONGER a delivery path; with no working binary (absent/spawn-failed/faulted/worker-gone) the inbound SPOOLS (delivered=false, poll-fed, LOUD), never a raw PTY pseudo-write (which did not submit on a modern TUI — the silent degrade that masked F-019). See REQ-HAZARD-IDLE-SILENT-NONDELIVERY. (v0.13.0, amended v0.14.3)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5407579Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5407707Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5407832Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5407960Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408080Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408203Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408332Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408457Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408671Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408800Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5408923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5409209Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5409339Z               "line": 505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5409463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5409590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5409738Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5409878Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410002Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410132Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410255Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410380Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410517Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410647Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5410937Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411070Z               "line": 4584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411495Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411630Z               "line": 4902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5411882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412043Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412185Z               "line": 8837
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412656Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412793Z               "line": 8917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5412922Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413219Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413351Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413775Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5413909Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414038Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414381Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414511Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414633Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5414924Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415057Z               "line": 308
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415472Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415606Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415729Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5415849Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416020Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416149Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416574Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416703Z               "line": 1334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416827Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5416950Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417070Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417193Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417325Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417515Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417806Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5417933Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5418059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5418182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5418373Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5418506Z               "line": 1411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5418631Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5418754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419087Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419226Z               "line": 1562
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419356Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419666Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419798Z               "line": 1639
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5419918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420245Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420382Z               "line": 1731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420634Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420748Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5420873Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421012Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421144Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421444Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421579Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5421836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422007Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422146Z               "line": 371
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422566Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422707Z               "line": 425
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5422939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423282Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423415Z               "line": 455
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423845Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5423978Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424460Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424598Z               "line": 1992
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424723Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424855Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5424979Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5425109Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5425227Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5425357Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5425532Z       "id": "REQ-MSG-INJECT-LEG-DROP-VISIBLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5430578Z       "title": "SEED (inactive — observability): a silently-dropped delivery leg must be DISTINGUISHABLE from an honestly-offline endpoint on a status surface. The spt-hosted inject leg (spt-daemon inject.rs `try_spt_hosted_inject` — the ONE shared implementation behind local cmd_send, the WAN ingress, the idle-edge drain, and the parked-idle/pulse re-offer belts) gates on `is_spt_hosted_no_relay` → `deliver::is_online` → `liveness::is_perch_alive`: a perch PINNED TO A DEAD SESSION (the KH 7.25 wedge class — dead owner, record not yet healed by the next auth touch) makes EVERY belt on that leg silently return None → messages spool as if the endpoint were ordinarily offline, while the operator-facing view can keep reading the recorded state. Nothing anywhere surfaces 'the inject leg stopped firing for this endpoint' — the idle-window injections just stop, which from the outside is indistinguishable from 'no messages arrived' (field shape: IDLE-EDGE W1 field-verify, perri's killed-resident rig — their 'so it did not repeat' conclusion was exactly this invisibility, self-corrected only by re-rigging with a live resident). Shape at activation: a status/list surface DERIVES and reports the inject-leg verdict per endpoint (inject-target / not-a-target + WHY: no perch, dead session pin, no relay, not controllable) so a dropped leg is a READABLE state, never an inferred one; additive-evolution posture on any --json surface. Kin: REQ-SHELL-LIST-DERIVED-PROVENANCE (view-vs-truth, same class), KH 7.25 (`REQ-HAZARD-SESSION-PIN-WEDGE`, the pin that drops the leg), KH 2.5 (liveness authority lives in ONE resolver — the verdict here REPORTS through it, never re-derives beside it).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5430867Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5430994Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431127Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431266Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431408Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431533Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431656Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431805Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5431933Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432057Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432185Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432310Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432445Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432572Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432697Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432834Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5432977Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5433102Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5433224Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5433353Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5433475Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5433636Z       "id": "REQ-MSG-SELF-DETECT-ANCESTRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437078Z       "title": "#9 (F026, operator field bug): a perch-owned `spt send` from an endpoint's OWN session must self-identify, not mis-stamp `cli@<node>` (whose replies bounce NO_PERCH). ROOT: roster::detect_self_id (roster.rs) was ENV-ONLY — OWL_SESSION_ID matched to info.session_id, else SPT_AGENT_ID — but an agent-session Bash child often carries NEITHER (the env export is spawn-path-dependent), so a perch-owned sender was classified bare-CLI and REQ-MSG-CLI-ORIGIN stamped it cli@<node> (the stamp works as designed on a wrong premise; that REQ's evidence stays intact). FIX: detect_self_id gains leg (c) PID-ANCESTRY fallback AFTER the env legs — walk THIS process's ancestry, match a live non-corrupt roster perch's recorded harness pid (info.json.pid Numeric, alive-gated via is_process_alive, corrupt/BUSY skipped), first match = self. from-LABEL / routing default ONLY, NOT authentication — authenticate() is untouched (pid-ancestry-for-AUTH stays parked per F-024 with its Windows pid-spoof caveats; a display/routing stamp has no such bar). Best-effort: a broken ancestry walk degrades to None → cli-stamp, never errors the send.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437251Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437393Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437518Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437665Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437789Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5437918Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438046Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438190Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438322Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438445Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438579Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438720Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5438854Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439250Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439397Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439822Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5439960Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440433Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440565Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5440971Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441101Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441222Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441356Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441474Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441601Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441793Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5441916Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442183Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442312Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442708Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442846Z               "line": 616
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5442971Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443094Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443218Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443343Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443480Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443605Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5443874Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444008Z               "line": 470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444135Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444254Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444378Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444496Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444626Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444745Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5444899Z       "id": "REQ-MSG-SENDER-STAMP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5455390Z       "title": "Daemon-stamped authenticated sender: a NEW additive `WanMessage.sender_proven` field (serde-default) carrying the SESSION-PROVEN sender endpoint id, which lights up the REQ-ACL-SUBJECT-CHAIN tier-1 sender-endpoint rule that shipped schema-real but unfed in W1. The stamp is sourced from the session-proven path (`roster::detect_self_id` / the bound perch), NEVER from the caller-supplied `--from`: cli.rs `resolve_from` lets an explicit `--from` win over session detection, which is exactly why KNOWN-HAZARDS 7.5 binds `from` as reply-routing metadata and never an authorization subject. `from` is untouched and keeps its meaning; this is an addition, never a repurposing. TRUST BOUNDARY, stated so no later reader inflates \"authenticated sender\": the stamp proves the origin NODE cryptographically (QUIC handshake); the endpoint WITHIN that node is asserted by the sending daemon; strength therefore equals REQ-MSG-6's ratified boundary (trust = subnet membership, node = human-proxy). It DEFEATS agents forging `--from` on a box — the adversary milestone A's threat model actually names — and does NOT defend against a malicious member node. Same-node delivery is strictly stronger (the daemon knows the authenticated perch directly). Tier 1 ABSTAINS on absence (no stamp -> None -> the chain continues to the node tier), so N-1 senders, older daemons, and the five gate families that carry no sender endpoint keep today's behavior byte-for-byte. Adapter-invisible: a decision INPUT only, never entering the EVENT envelope, so no published adapter contract changes. Gate: doc — ADR-0009 amended (its \"not the sender endpoint's identity\" sentence becomes false the moment tier 1 fires) plus the wanmsg.rs module-doc carve-out stating that sender_proven IS decoded-and-acted-on, what bounds it, and that it never becomes the node subject (the origin-node paragraph stays verbatim — origin_node remains never-read-from-bytes, and `forged_origin_field_is_inert` stays untouched); impl — the additive field, the session-proven stamp at the send path, the receive-side threading into `AccessRequest.sender_endpoint`; unit — additive round-trip both directions (new field decodes, absent field defaults), a `--from` that disagrees with the stamp never becomes the subject, tier 1 fires on a proven stamp and abstains without one, and the W1 inertness guards REPLACED by their positive counterparts (the deliberate flip is the record). LATENT-RULE SCAN: REMOVED, AND NO LONGER REQUIRED BY THIS REQUIREMENT (releases#167, operator-ruled 2026-08-19: 'i never asked for it to be added, and never approved of its addition'). It was ruled in on 2026-07-29 as mechanism-not-memory — on the load where the tier went live, count existing SenderEndpoint rules and say loudly, once, that they were inert and are now live — and it found ZERO by construction in the coupled release, since no shipped version accepts a v2 store while the tier is inert. releases#155 asked for that unverifiable history claim to be made honest; the removal DISCHARGES it, because a banner that does not exist cannot claim a node's past or re-fire every boot. THE STAMP ITSELF IS UNTOUCHED: this strikes the announcement, not the tier — the additive wire field, the session-proven stamp, the receive-side threading and every tier-1 decision keep their evidence. The population accessor the scan used (`sender_endpoint_rule_ids`) survives with its other consumer under REQ-UNLISTED-EVIDENCE, which is where its unit now lives. If the DECOUPLING scenario this was written for ever becomes real, it returns as its own item with its own operator decision, never as a residue of this one.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5455705Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5455825Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5455953Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456083Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456206Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456330Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456464Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456602Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456732Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5456999Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457136Z               "line": 1133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457592Z               "path": "docs/FAULT-MATRIX.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457727Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5457974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5458179Z               "path": "docs/adr/0009-endpoint-access-control-model.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5458308Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5458433Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5458551Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5458676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5458804Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459090Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459287Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459570Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459703Z               "line": 896
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5459945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460121Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460251Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460379Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460661Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460798Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5460918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461195Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461328Z               "line": 11069
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461742Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461873Z               "line": 457
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5461999Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462125Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462258Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462381Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462519Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462707Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462836Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5462965Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463093Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463237Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463546Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463679Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5463933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464096Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464290Z               "line": 1492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464415Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464706Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464843Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5464966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465264Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465398Z               "line": 4068
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465526Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465651Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465775Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5465893Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5466014Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5466133Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5466280Z       "id": "REQ-MSG-SHORT-ID",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472179Z       "title": "EVERY MESSAGE GETS AN 8-CHARACTER NODE-SCOPED SHORT-ID AT COMMIT, AND THAT SAME TOKEN IS ITS URL (ADR-0061, releases#272/#147). The id is base32 over a CONTENT DIGEST of the message (minted for this purpose -- there is no pre-W2 message hash to re-use; the preimage is length-prefixed over from_id, body, created_at and a salt): nothing mints a second identifier, and nothing is coordinated across nodes, because the node prefix (ADR-0056) already makes the URL global. IT IS MINTED AT COMMIT AND NOT AT RENDER, so the id exists before the envelope is built and the SAME token appears in the delivery envelope, in the `MSG_IN` and `MSG_OUT` io-event rows, and at `/<node>/m/<short-id>` -- an adapter never derives it, and two readers can never disagree about what a message is called. A COLLISION ON ONE NODE IS DETECTED AT MINT TIME AND RESOLVED BY LENGTHENING THAT ONE ID (nine characters, then ten), never by rejecting the message and NEVER by re-minting an id that has already been handed out; readers treat the id as OPAQUE, which is precisely what makes a variable length safe to ship. `spt msg show <id>` renders one message with its attachment URLs, `--json` is the machine twin. `spt send --reply-to <id>` carries the parent id in the envelope as an ADDITIVE key so an adapter MAY render a thread; AN UNKNOWN PARENT IS CARRIED AND NOT REFUSED, because the parent may live on a node we cannot ask, and refusing would make a thread across a partition impossible rather than merely unrendered. The `m/` facet renders HTML with a `?json` twin like every other facet (REQ-WEB-URL-NODE-PREFIX reserved it in W0). Gate: doc -- the messaging page's short-ID and reply-to sections; impl -- the mint at commit with collision lengthening, the envelope and io-event fields, the `m/` facet renderer, `spt msg show`, `--reply-to`; unit -- the id is eight base32 characters derived from the content digest and STABLE across a re-read, a forced collision lengthens exactly one id and leaves the incumbent alone, the same token appears in the envelope and in BOTH io-event rows, an unknown `--reply-to` parent is carried rather than refused, and the `m/` render answers with its json twin; int -- a real send whose short-ID is readable from the io-events poll and fetchable at its URL.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472341Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472475Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472599Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472728Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472851Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5472978Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473103Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473234Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473411Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473544Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473854Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5473988Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474412Z               "path": "docs-site/src/serving/attachments.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474545Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474675Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474850Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5474975Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475107Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475247Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475380Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475674Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475805Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5475939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476230Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476359Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476782Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5476917Z               "line": 507
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477331Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477469Z               "line": 671
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477594Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5477890Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478027Z               "line": 860
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478436Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478571Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5478866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479104Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479238Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479662Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479796Z               "line": 290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5479924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480219Z               "path": "crates/spt-store/src/iolog.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480407Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480837Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5480964Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481394Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481523Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481656Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5481947Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482086Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482209Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482491Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482635Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5482886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483049Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483182Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483596Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483784Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5483913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484203Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484333Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484747Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5484882Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485352Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485492Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485625Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5485907Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486039Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486461Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486600Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5486857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487013Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487148Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487562Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487705Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5487958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488121Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488254Z               "line": 325
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488669Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488802Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5488930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5489192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5489364Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5489498Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5489620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5489750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5489912Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490046Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490470Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490662Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5490918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491089Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491222Z               "line": 443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491644Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491788Z               "line": 772
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5491911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492202Z               "path": "crates/spt/src/api/ioevents.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492341Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492760Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5492894Z               "line": 11130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493151Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493313Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493446Z               "line": 11214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5493853Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494046Z               "line": 11258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494170Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494449Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494583Z               "line": 11573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5494997Z               "path": "crates/spt/src/msgverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495132Z               "line": 7
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495546Z               "path": "crates/spt/src/msgverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495732Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5495989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496143Z               "path": "crates/spt/src/msgverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496276Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496401Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496528Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496785Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5496916Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497384Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497512Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5497950Z               "path": "crates/spt/tests/webserve_attachment_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498084Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498212Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498338Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498461Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498594Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498728Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5498861Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5499080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5499258Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5499471Z               "line": 1403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5499614Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5499809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5499972Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500114Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500534Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500663Z               "line": 987
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5500916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501092Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501222Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501697Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501834Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5501953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502243Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502380Z               "line": 570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502791Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5502924Z               "line": 582
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503047Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503348Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503478Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503611Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5503906Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504036Z               "line": 627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504288Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504446Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504635Z               "line": 643
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5504886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5505048Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5505177Z               "line": 651
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5509344Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5509494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5509673Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5509814Z               "line": 1063
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5509946Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5510073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5510336Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5510479Z               "line": 840
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5510613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5510745Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5510908Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511041Z               "line": 33771
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511462Z               "path": "crates/spt/src/msgverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511609Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511734Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511857Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5511976Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5512106Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5512228Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5512351Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5512489Z       "id": "REQ-NET-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5512726Z       "title": "WAN messaging first-class, behind default-on net feature flag",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5512874Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513003Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513132Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513260Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513389Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513513Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513642Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513790Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5513922Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514047Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514180Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514315Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514510Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514814Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5514949Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515375Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515507Z               "line": 2173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515631Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515760Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5515932Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516117Z               "line": 706
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516552Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516689Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5516943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517114Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517249Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517671Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517804Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5517928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518223Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518360Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518494Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518795Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5518928Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5519124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5519256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5519477Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5519619Z               "line": 505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5519744Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5519876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520044Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520172Z               "line": 511
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520591Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520719Z               "line": 517
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5520896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521196Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521330Z               "line": 533
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521745Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5521878Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522008Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522308Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522441Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522859Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5522988Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523406Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523548Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5523954Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524092Z               "line": 11821
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524507Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524641Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524826Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5524956Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525084Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525209Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525351Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525480Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525609Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525783Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5525921Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526052Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526401Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526536Z               "line": 1140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5526955Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527092Z               "line": 2100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527217Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527350Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527475Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527607Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527747Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5527884Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528181Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528312Z               "line": 2252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528739Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5528873Z               "line": 2339
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529374Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529512Z               "line": 1133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5529998Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530136Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530551Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530686Z               "line": 707
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5530939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531108Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531241Z               "line": 721
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531719Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531851Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5531981Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532272Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532400Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532815Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5532949Z               "line": 417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533368Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533500Z               "line": 1377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5533904Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534042Z               "line": 2075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534452Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534591Z               "line": 2769
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534718Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534843Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5534967Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5535091Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5535215Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5535406Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5535548Z       "id": "REQ-NET-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5535779Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5535915Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536040Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536160Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536291Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536416Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536561Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536694Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536814Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5536990Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537129Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537261Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537552Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537682Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5537934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538106Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538234Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538650Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538782Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5538900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539285Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539419Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539833Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5539963Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540086Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540263Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540429Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540563Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540686Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540806Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5540931Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541063Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541198Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541330Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541450Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541575Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541711Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5541902Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542198Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542330Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542450Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542584Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542693Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542823Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5542941Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543079Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543222Z       "id": "REQ-NET-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543448Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543589Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543713Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543847Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5543970Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544104Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544225Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544368Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544507Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544630Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544764Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5544897Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545036Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545331Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545460Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5545880Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546071Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546485Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546624Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5546879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547041Z               "path": "crates/spt-net/src/net/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547163Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547646Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547783Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5547908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548208Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548351Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548474Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548605Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548780Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5548919Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549128Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549428Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549556Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549692Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5549989Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550111Z               "line": 443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550542Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550674Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5550989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551157Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551299Z               "line": 526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551724Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551857Z               "line": 541
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5551986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5552106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5552280Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5552462Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5552590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5552714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5552890Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553020Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553444Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553586Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553707Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553840Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5553969Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554097Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554240Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554370Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554497Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554625Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554767Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5554904Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555204Z               "path": "crates/spt-daemon/tests/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555334Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555758Z               "path": "crates/spt-daemon/tests/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5555887Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556307Z               "path": "crates/spt-daemon/tests/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556496Z               "line": 514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5556913Z               "path": "crates/spt-net/src/net/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557040Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557459Z               "path": "crates/spt-net/src/net/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557587Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557719Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5557843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558066Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558201Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558458Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558621Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558763Z               "line": 355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5558892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559263Z               "path": "crates/spt-store/src/syncmerge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559398Z               "line": 494
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559522Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559650Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559775Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5559898Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5560025Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5560145Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5560299Z       "id": "REQ-NET-FAMILY-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5562878Z       "title": "spt-core binds only IP families that are actually REACHABLE (ADR-0030), so a half-broken family (e.g. IPv6 whose AAAA resolves but whose path is dead) never silently consumes connection/discovery time. At NetEndpoint::bind (endpoint.rs), probe each family's reachability ONCE and bind only the working ones: dual-stack when both healthy; IPv4-only when IPv6 is dead; IPv6-only when IPv4 is dead (drop the DEAD family — NOT a fixed prefer-IPv4; IPv6-only networks must keep working). Re-evaluated on daemon restart (once-at-bind, no live re-eval in v1). Explicit overrides SPT_DISABLE_IPV6 / SPT_DISABLE_IPV4 force a family off (escape hatch + determinism + testing, mirroring SPT_NTP_SERVER); a forced-off family is never bound regardless of the probe. Reusable beyond join — every spt connection benefits. (next milestone)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563085Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563221Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563351Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563531Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563661Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563784Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5563923Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564061Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564194Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564509Z               "path": "docs/adr/0030-robust-wan-subnet-join.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564648Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564771Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5564897Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565024Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565151Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565285Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565417Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565717Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565851Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5565970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566280Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566422Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566547Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566666Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566785Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5566914Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567052Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567182Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567310Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567435Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567754Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5567882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568052Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568185Z               "line": 641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568598Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568728Z               "line": 691
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5568857Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5569052Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5569176Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5569357Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5569485Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5569609Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5569767Z       "id": "REQ-NET-PINNED-UDP-PORT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5571690Z       "title": "Seed (releases#54, doyle L3 ruling 2026-07-31): a pinned UDP port for the production QUIC endpoint, so a host-firewall rule can be written once and stay true across restarts. Today BindScope::All binds ephemeral and BindScope::Port exists only in test scope (pairhost maps it back to All), which is why REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY ships verify-only — the repair half has nothing durable to allow. Not a rider on the verify wave: pinning a port is a transport-config AND security-posture decision with pairing/ticket/two-host ripple, and it is operator-visible, so it takes its own wave and its own gate.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5571837Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5571967Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572095Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572234Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572366Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572486Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572616Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572748Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5572878Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573184Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573316Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573457Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573582Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573715Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573853Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5573987Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5574110Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5574231Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5574353Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5574474Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5574616Z       "id": "REQ-NODE-IDENTITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5574960Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575099Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575227Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575355Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575476Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575603Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575731Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5575863Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576000Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576125Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576253Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576391Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576526Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576821Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5576949Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577370Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577503Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577631Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577760Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5577927Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578061Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578465Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578603Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5578905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579163Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579293Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579421Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579707Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579835Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5579960Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580308Z               "path": "crates/spt-store/src/nodeid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580441Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580567Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580689Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580813Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5580938Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581069Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581208Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581335Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581463Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581597Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581725Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5581854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582016Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582155Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582574Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582697Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5582956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5583137Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5583279Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5583414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5583552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5583739Z               "path": "crates/spt-proto/src/identity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5583936Z               "line": 256
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584351Z               "path": "crates/spt-store/src/nodeid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584485Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5584909Z               "path": "crates/spt-store/src/nodeid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585038Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585515Z               "path": "crates/spt-store/src/nodeid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585654Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585777Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5585901Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5586036Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5586163Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5586281Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5586414Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5586555Z       "id": "REQ-NOTIF-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5586976Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587113Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587242Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587367Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587500Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587625Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587748Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5587881Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588015Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588158Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588278Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588410Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588545Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588682Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5588811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589054Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589191Z               "line": 1486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589319Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589676Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589814Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5589938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590229Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590357Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590782Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5590920Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591398Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591531Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591653Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5591947Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592085Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592505Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592637Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5592896Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593063Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593196Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593620Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593764Z               "line": 589
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5593887Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594183Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594318Z               "line": 715
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594811Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5594950Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595379Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595512Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5595933Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596117Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596548Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596680Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5596932Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597102Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597240Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597368Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597669Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597797Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5597922Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598227Z               "path": "crates/spt-daemon/src/pump/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598355Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598785Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5598918Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5599115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5599242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5599468Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5599600Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5599728Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5599855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600088Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600222Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600626Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600756Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5600884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601175Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601313Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601786Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5601918Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602039Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602318Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602455Z               "line": 475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602859Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5602989Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603389Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603522Z               "line": 527
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5603929Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604061Z               "line": 550
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604481Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604616Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604805Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5604925Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605052Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605176Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605316Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605443Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605743Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605873Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5605997Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5606120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5606282Z               "path": "crates/spt-daemon/tests/pump.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5610306Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5610457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5610585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5610777Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5610910Z               "line": 1251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611335Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611472Z               "line": 2251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611592Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611716Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611839Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5611969Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612107Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612237Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612527Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612656Z               "line": 825
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5612907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613071Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613205Z               "line": 1107
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613616Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613757Z               "line": 1217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5613878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614250Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614387Z               "line": 1249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614804Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5614936Z               "line": 1317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615350Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615485Z               "line": 1375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5615941Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616075Z               "line": 1833
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616317Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616490Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616627Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5616871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617043Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617171Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617586Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617716Z               "line": 317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5617976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5618141Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5618273Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5618394Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5618517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5618680Z               "path": "crates/spt-daemon/src/psyrelay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5618884Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619404Z               "path": "crates/spt-daemon/tests/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619533Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5619949Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620076Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620540Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620672Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5620924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621079Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621208Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621332Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621609Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621737Z               "line": 719
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5621995Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622157Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622286Z               "line": 807
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622705Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622830Z               "line": 846
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5622962Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623258Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623395Z               "line": 863
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623803Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5623937Z               "line": 891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624410Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624543Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624671Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5624961Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625096Z               "line": 1754
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625220Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625349Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625477Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625605Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625726Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5625848Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5626045Z       "id": "REQ-NOTIF-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5626378Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5626524Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5626649Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5626783Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5626906Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627036Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627159Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627293Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627416Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627555Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627689Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627812Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5627956Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628088Z               "line": 672
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628488Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628622Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628748Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5628877Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629077Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629211Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629846Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5629984Z               "line": 495
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630398Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630533Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5630941Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631134Z               "line": 534
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631568Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631696Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5631949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632121Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632259Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632669Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632794Z               "line": 8929
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5632927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633203Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633337Z               "line": 8982
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633461Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633747Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5633884Z               "line": 9094
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634287Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634416Z               "line": 9150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634544Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634674Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634802Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5634930Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635127Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635265Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635565Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635694Z               "line": 1377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5635952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636123Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636262Z               "line": 2488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636389Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636510Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636685Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636818Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5636957Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637089Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637381Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637515Z               "line": 1510
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5637934Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638066Z               "line": 1582
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638192Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638469Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638606Z               "line": 31353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5638855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639091Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639224Z               "line": 31421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639351Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639471Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639599Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639723Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639848Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5639971Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5640120Z       "id": "REQ-NOTIF-COALESCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5641426Z       "title": "Coalesce-key supersession: producer-stamped key REQUIRED in namespaced form <owner>:<key> (e.g. spt-core:update-staged) — the produce front door rejects un-namespaced keys; producing a new row with the same (scope-target, kind, key) auto-dismisses the prior rows, latest-wins; supersession expresses through the existing dismissed one-way latch (semilattice unchanged)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5641568Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5641699Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5641820Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642006Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642133Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642260Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642395Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642528Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642668Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5642791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643029Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643167Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643292Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643410Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643539Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643668Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643801Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5643931Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644222Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644350Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644761Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5644895Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645305Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645437Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5645854Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646034Z               "line": 453
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646449Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646569Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646697Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5646983Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647113Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647570Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647707Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5647959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648118Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648260Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648670Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648795Z               "line": 264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5648923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649295Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649429Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649551Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649675Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649798Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5649930Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650069Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650211Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650336Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650465Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650597Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650727Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5650850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651065Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651198Z               "line": 1428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651610Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651742Z               "line": 1471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5651996Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5652167Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5652297Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5652475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5652595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5652764Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5652898Z               "line": 945
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653022Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653298Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653431Z               "line": 973
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653842Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5653975Z               "line": 1006
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654094Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654214Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654337Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654457Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654581Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654705Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5654863Z       "id": "REQ-NOTIF-DRAIN-ROW-VALIDITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5660800Z       "title": "A spooled notify envelope is validated against its notif row at DELIVERY time — a copy outliving its row must not deliver. (ADR-0046 Amendment 1 + KNOWN-HAZARDS 7.53; operator field regression from perri's node 2026-07-22, doyle root-caused same day — DAEMON-LIFECYCLE W1 RIDER.) TODAY: quiet delivery (REQ-NOTIF-QUIET-DELIVERY) makes every surface an active_only SPOOL write per endpoint, and every row-lifecycle mechanism (apply-seam dismissal REQ-NOTIF-SEAM-DISMISS, coalesce supersession, TTL, the one-shot migration) touches ROWS only — so a copy spooled while the endpoint was busy/offline is a detached snapshot no dismissal can recall, delivering 'update available' on an already-updated node at the next drain, once per qualifying surface event (perri: twice; doyle's own session: four stale 0.39.x drains post-upgrade). FIX: at the safe-point drain choke point (api poll deferred presentation, spt/src/api/delivery.rs cmd_poll), a notify-kind envelope delivers ONLY if its notif_id resolves to a live UNDISMISSED row in the local notif store; dismissed/superseded/TTL-expired/unknown -> dropped silently; N copies of one notif_id in a drain dedupe to ONE delivery. Non-notify spool content is untouched (ordinary messages are not revocable and MUST deliver). Legacy pre-0.40.0 plain-message copies carry no notif_id, cannot be validated, and self-clear by their one drain — no machinery. Rejected: recall-on-dismiss spool sweeps (race the drain, span every perch, miss in-flight copies); live-only notify delivery (the spool IS quiet delivery's safe-point mechanism). Gate: impl — the validity gate + dedupe at cmd_poll's deferred presentation; unit — the gate predicate cells (live row delivers / dismissed drops / unknown drops / dedupe collapses / non-notify passes untouched); int — the perri rig RED-first: surface an update notif to a non-draining endpoint (copy spools), dismiss the row via the apply seam, drain -> NOTHING delivers; control leg: undismissed row's copy delivers exactly once.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5660986Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661124Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661250Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661386Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661511Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661640Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661768Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5661903Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5662040Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5662160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5662388Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5662518Z               "line": 860
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5662655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5662780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663017Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663150Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663281Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663410Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663530Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663658Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663797Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5663982Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664287Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664417Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664831Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5664973Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665404Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665536Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5665957Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666092Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666510Z               "path": "crates/spt-daemon/src/relay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666655Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5666906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667069Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667206Z               "line": 743
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667327Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667460Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667584Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667712Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5667894Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668027Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668351Z               "path": "crates/spt-daemon/tests/notif_drain_validity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668483Z               "line": 99
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5668928Z               "path": "crates/spt-daemon/tests/notif_drain_validity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5669146Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5669276Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5669451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5669651Z               "path": "crates/spt-daemon/tests/notif_drain_validity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5669785Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5669910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670239Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670376Z               "line": 920
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670502Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670629Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5670881Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671012Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671146Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671451Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671590Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5671842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672018Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672157Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672280Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672581Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672773Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5672901Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673200Z               "path": "crates/spt-daemon/src/notifgate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673336Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673753Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5673884Z               "line": 1326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674018Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674146Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674318Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674443Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674566Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674691Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5674837Z       "id": "REQ-NOTIF-MIGRATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5675997Z       "title": "One-shot field migration: on first run the new binary auto-dismisses existing rows with from_id = spt-update (kinds consent/rollback) — the known-stale class; idempotent; the dismissals replicate so cleanup reaches not-yet-upgraded peers; agent/psyche rows untouched; the update worker re-produces any genuinely-current update notif within one check cadence",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676138Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676267Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676398Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676522Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676647Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676770Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5676900Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677024Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677161Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677300Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677671Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677805Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5677929Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5678058Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5678183Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5678315Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5678454Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5678587Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5678769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679029Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679163Z               "line": 1336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679593Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679725Z               "line": 417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679850Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5679978Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680103Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680231Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680422Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680555Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680860Z               "path": "crates/spt-daemon/tests/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5680994Z               "line": 328
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681123Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681246Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681506Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681638Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681773Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5681891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682055Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682192Z               "line": 1082
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682312Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682440Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682559Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682684Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682808Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5682931Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5683083Z       "id": "REQ-NOTIF-QUIET-DELIVERY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5684246Z       "title": "The notify kind rides the active_only window UNCONDITIONALLY, rollback included: spool-only, never live TCP, never a wake, for EVERY producer; loudness = resurface-until-dismissed persistence, never PTY interruption; boundary resurface (clear/compact/new-session/wake) + the adapter safe-point drain are the surfacing paths; a future interrupting alert needs a new kind + its own ADR, not an exception here",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5684435Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5684558Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5684688Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5684811Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5684936Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685059Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685184Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685312Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685445Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685631Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5685993Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686123Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686247Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686371Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686496Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686627Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686765Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5686898Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687202Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687330Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687455Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687579Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687707Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687836Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5687964Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688099Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688423Z               "path": "crates/spt-daemon/tests/notif_quiet_delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688556Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688680Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688799Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5688923Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5689128Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5689262Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5689396Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5689518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5689748Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5689880Z               "line": 1669
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690005Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690129Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690247Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690372Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690491Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690614Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5690753Z       "id": "REQ-NOTIF-SCOPE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5692400Z       "title": "Notif scope is a per-row producer-chosen attribute node|subnet: node-scoped rows (update/consent/rollback kinds) live and die on their node and NEVER enter a replication feed; subnet-scoped rows keep the full ADR-0007 machinery (replication, cross-node dismiss, semilattice join); scope determines the first-fire candidate set (node-scoped targets the most-recently-active endpoint ON that node). New row fields additive serde-defaulted (host_binaries pattern) — old peers parse clean, schema regen drift-gated",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5692552Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5692676Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5692799Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5692920Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693043Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693167Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693291Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693419Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693554Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693687Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5693811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694044Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694179Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694311Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694431Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694560Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694687Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694825Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5694956Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695304Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695438Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695568Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695853Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5695986Z               "line": 452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5696107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5696235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5696402Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5696539Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5696717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5696854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697022Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697155Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697286Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697571Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697705Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5697947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698115Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698247Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698659Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698787Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5698915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699289Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699416Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699584Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699712Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699840Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5699965Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5700102Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5700235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5700370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5700540Z               "path": "crates/spt-daemon/tests/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5700750Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5700875Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701003Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701131Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701256Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701389Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701514Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701800Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5701938Z               "line": 1428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702404Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702542Z               "line": 1471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5702955Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703088Z               "line": 1702
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703555Z               "path": "crates/spt-daemon/src/notifsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703698Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5703956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704119Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704252Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704676Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704810Z               "line": 940
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5704933Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705223Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705357Z               "line": 1143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705484Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705660Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705784Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5705907Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5706033Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5706160Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5706308Z       "id": "REQ-NOTIF-SEAM-DISMISS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5707601Z       "title": "Staleness is dismissed at the seam that knows, never evaluated at surface: a successful update apply dismisses spt-core:update-staged; the update worker's next check, seeing running >= staged, dismisses it too (covers out-of-band installs); a later successful update dismisses a rollback row; the primitive stores rows and latches — NO relevance predicates, nothing evaluated at surface time",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5707800Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5707928Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708060Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708187Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708313Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708436Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708565Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708694Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5708836Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709051Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709413Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709544Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709671Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709795Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5709924Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710048Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710187Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710329Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710633Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710762Z               "line": 767
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5710891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711197Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711329Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711802Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5711940Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712064Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712193Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712316Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712446Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712578Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712713Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5712836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5713011Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5713154Z               "line": 845
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5713328Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5713458Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5713581Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5713710Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5717678Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5717832Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5717969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5718166Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5718307Z               "line": 402
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5718435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5718559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5718733Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5718873Z               "line": 1108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719092Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719221Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719344Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719469Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719592Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719726Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5719878Z       "id": "REQ-NOTIF-TTL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5720965Z       "title": "Producer-optional TTL for informational kinds with no dismissal seam (node-paired, agent-issued): expired row auto-dismissed instead of surfaced — a timestamp compare, not a predicate; expiry IGNORES seen-state (TTL means stale-after-this; a producer that cannot accept silent expiry must not set one); no global default",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721208Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721331Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721471Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721598Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721728Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721851Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5721980Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5722119Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5722246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5722372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5722600Z               "path": "docs/adr/0046-notif-scope-supersession-quiet-delivery.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5722800Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5722920Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723058Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723177Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723302Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723443Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723571Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5723865Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724004Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724251Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724414Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724542Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724675Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5724957Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725085Z               "line": 729
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725496Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725629Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5725878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726035Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726169Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726632Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726775Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5726899Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727172Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727299Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727424Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727547Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727671Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727796Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5727943Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728077Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728253Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728383Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728515Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728649Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728770Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5728934Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729166Z               "line": 1762
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729293Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729418Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729575Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729710Z               "line": 1798
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5729951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730119Z               "path": "crates/spt-net/src/net/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730252Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730669Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730805Z               "line": 945
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5730930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731210Z               "path": "crates/spt-store/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731336Z               "line": 1051
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731463Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731641Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731763Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5731887Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5732007Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5732134Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5732302Z       "id": "REQ-NOTIF-UPDATE-ROW-VERSION-RETIRE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5741418Z       "title": "An update-available notif row minted by a node running PRE-0.40.0 spt is retired on the version the running node has ALREADY reached — because the keyed catch-up dismissal is structurally blind to it. (DAEMON-LIFECYCLE W2 RIDER, operator-ordered; doyle root-caused end to end 2026-07-22 on the live box.) FIELD CHAIN, verified: GRAVITY-NVDA-PC (f15d837b, BIGNET) runs pre-0.40.0 spt, whose legacy producer mints the update notice SUBNET-scoped with NO coalesce key (the scoped+keyed producer shipped in 0.40.0). The row replicated fleet-wide. The modern catch-up dismissal (REQ-NOTIF-SEAM-DISMISS, pump/update.rs dismiss_staged_notif_if_caught_up) dismisses ONLY by coalesce key, so a keyless row can never be retired by it: a FULLY-UPDATED node holds a live 'v0.41.0 available' row forever, surfacing once per endpoint at every boundary (observed: todlando ~19:54 + Librarian/Athenaeum-Library; store showed seen=2, undismissed, the only undismissed update row in the whole history). FIX: a version-grounded retirement sweep at the EXISTING catch-up site, same per-tick per-subnet cadence, running ALONGSIDE the key path (which stays PRIMARY — belt-and-braces, not a replacement): dismiss any UNDISMISSED row whose from_id == 'spt-update' AND whose body advertises a version that PARSES AND is <= the running image's own env!(CARGO_PKG_VERSION) (the same running-image self-truth the existing out-of-band leg reads). CONSERVATISM INHERITED VERBATIM from version_ge: an unparseable advertised version NEVER dismisses (the ancient 'update-available 5' counter-shape stays untouched), and advertised > running STAYS LIVE (a genuinely pending notice must survive the sweep). MUST NOT KEY ON kind ALONE: kind=consent is SHARED with the grants act-gate asks (grants.rs mints consent-kind through the plain front door with from_id = the asking agent), so from_id == 'spt-update' PLUS the body version-parse is the discriminator. The relevance predicate stays DAEMON-side (ADR-0046: the notif primitive evaluates no relevance predicate) — the store keeps only its existing undismissed()/dismiss() primitives. KNOWN LIMIT, stated not hidden: the ORIGIN node's one-time cross-node wake at mint is a plain live send from old code and is not preventable from our side; retiring/updating the legacy node is the operator's lever. This fix kills the row's AFTERLIFE (undismissable + boundary-resurfaces at every endpoint forever), which is the repeating harm. Gate: impl — the sweep + the pure advertised-version extractor at the catch-up site; unit — the extractor cells (dotted token found / v-prefixed / counter-shape and garbage refused) and the retire predicate; int — RED-first four legs: (1) legacy-shaped row (subnet scope, NULL key, from_id spt-update, advertised <= running) SURVIVES pre-fix ticks and is DISMISSED post-fix; (2) sibling advertising > running stays live; (3) sibling with a garbage/counter-shape body stays live; (4) regression: a modern Node-scoped KEYED row still dismisses via the key path; plus an asserted (not assumed) replication leg — a sweep-minted dismissal merges as dismissed through notifsync, since the fleet-wide kill is the point.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5741670Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5741795Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5741928Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742052Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742182Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742313Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742437Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742586Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742723Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742848Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5742976Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5743115Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5743253Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5743439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5743634Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5743769Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5743896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744197Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744330Z               "line": 176
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744455Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744587Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744715Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5744843Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745038Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745172Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745500Z               "path": "crates/spt-daemon/tests/notif_update_row_retire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745633Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5745886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746092Z               "path": "crates/spt-daemon/tests/notif_update_row_retire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746224Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746354Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746483Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746601Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746735Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5746868Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747003Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747308Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747444Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5747880Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748010Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748138Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748263Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748391Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748514Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748649Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748767Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5748931Z       "id": "REQ-NOW-SIGNAL-CATEGORIES-V1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753146Z       "title": "THE v1 CATEGORY SET IS CLOSED AND EACH CATEGORY ANSWERS ONE QUESTION (ratified 2026-07-29 + operator ruling 10). HINTS carries the keyword-hint payload the alias verb used to. ENDPOINT_MENTIONS fires when the author's words exactly match a known endpoint name and answers existence, online status, node, shared subnets, and the description ONCE PER SESSION. MONICS surfaces the standing judgements a matched trigger raised — the second ratified consumer of the trigger vocabulary, which is why that vocabulary was ratified whole rather than sender-only. SHELLS reports shell instances and adapters, and SUBSUMES AND DEPRECATES the session-start spt-shells message, because the same datum arriving through two channels is the ambiguity this funnel exists to end. LAST_MSGS reports the last outgoing and incoming message as time, relative-to-now, peer, and a short excerpt — enough to re-ground after a reset without re-reading a transcript. EDGE_TRANSITIONS reports endpoint and node on/offline edges and subnet joins. DISPATCH_RESULTS renders the accumulated shortform per-target delivered/no-perch rows and the seal-mint outcomes and refusals, and IS THE ONLY CONFIRMATION SURFACE FOR THEM (ruling 10) — the reader the W3 and W4 accumulators were built to cost a registration rather than a rework. EACH CATEGORY OBEYS THE DELTA DISCIPLINE; none may render an unconditional static payload.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753307Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753442Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753565Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753690Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753823Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5753946Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754075Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754199Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754334Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754466Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754809Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5754948Z               "line": 806
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755076Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755199Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755328Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755450Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755583Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755718Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5755840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756008Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756136Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756609Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756737Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5756985Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757142Z               "path": "crates/spt-daemon/src/iobus.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757281Z               "line": 387
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757690Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757820Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5757949Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758238Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758364Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758779Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5758908Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759399Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759528Z               "line": 754
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5759938Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760130Z               "line": 430
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760547Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760675Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760800Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5760917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761079Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761207Z               "line": 555
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761670Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761809Z               "line": 640
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5761932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762213Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762353Z               "line": 656
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762762Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5762895Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763302Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763433Z               "line": 870
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763847Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5763982Z               "line": 1086
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764230Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764388Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764521Z               "line": 299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764640Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764835Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5764955Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765088Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765227Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765359Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765684Z               "path": "crates/spt/tests/io_events_undriven_kinds_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765816Z               "line": 612
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5765935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766239Z               "path": "crates/spt/tests/now_signal_delta_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766424Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766549Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766672Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766802Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5766925Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767063Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767188Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767474Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767612Z               "line": 207
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5767865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768032Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768156Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768574Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768707Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5768830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769211Z               "path": "crates/spt-store/src/lastmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769354Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769769Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5769906Z               "line": 1467
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770041Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770394Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770584Z               "line": 1667
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770714Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770841Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5770966Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5771089Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5771212Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5771331Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5771505Z       "id": "REQ-NOW-SIGNAL-DEFERRED-CATEGORIES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5772884Z       "title": "PROJECTS (spt-bs-releases#16) AND FILE_ACCESS_HELPER (#17) ARE MINTED AS DEFERRED NOW-SIGNAL CATEGORIES SO THEY ARE NOT LOST (ratified 2026-07-29). They are NAMED, NOT BUILT: v1 ships without them deliberately, and this requirement exists so that the decision is on the record as a deferral with an issue behind it rather than as an omission a later reader mistakes for an oversight. Activating this requirement is what the lane that builds them does; until then it carries no stages and fails nothing.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773036Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773170Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773298Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773437Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773576Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773828Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5773965Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774102Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774223Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774356Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774494Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774628Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774766Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5774885Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775023Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775153Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775281Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775405Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775591Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775710Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5775863Z       "id": "REQ-NOW-SIGNAL-DELTA",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5779551Z       "title": "EVERY NOW-SIGNAL CATEGORY IS DELTA-ONLY, ON PER-SESSION SEEN-SETS, AND A POLL WITH NOTHING NEW EMITS NOTHING (ratified 2026-07-29). This is the keyword-hint mechanism GENERALIZED rather than re-invented per category: each category records what this session has already been shown and reports only what it has not. THE EMPTINESS IS THE CONTRACT, NOT AN ACCIDENT OF THERE BEING NO DATA — the adapter guidance is to inject on every UserPromptSubmit- and PreToolUse-equivalent, which is only affordable if a quiet poll costs zero context, so a category that re-emits an already-shown datum is a defect even though its output is TRUE. THE SEEN-SET IS PER SESSION, not per endpoint and not global: a new session has seen nothing and is entitled to the current picture once, which is what makes the first poll of a session useful without making every later poll noisy. A DESCRIPTION-CLASS DATUM IS SHOWN ONCE PER SESSION by the same mechanism rather than by a bespoke flag. Proving this needs a NON-VACUOUS FIRST POLL BESIDE THE EMPTY SECOND ONE: an assertion that the second poll is empty, standing alone, passes just as well against a verb that emits nothing ever, so the two polls are asserted together as one test.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5779761Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5779889Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780019Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780147Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780272Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780405Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780533Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780662Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780800Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5780940Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781231Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781367Z               "line": 784
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781493Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781621Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5781929Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782070Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782204Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782500Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782633Z               "line": 221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5782886Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783047Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783187Z               "line": 1131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783310Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783483Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783610Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783730Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5783872Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784002Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784311Z               "path": "crates/spt/tests/now_signal_delta_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784446Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784582Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784706Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784831Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5784954Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785088Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785221Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785512Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785651Z               "line": 1215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5785903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786070Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786203Z               "line": 1268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786623Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786751Z               "line": 1288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5786951Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5787083Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5787210Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5787335Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5787459Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5787582Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5787750Z       "id": "REQ-NOW-SIGNAL-EDGE-SUBJECT-NAMING",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5790735Z       "title": "THE EDGE_TRANSITIONS SUBNET-JOIN LINE NAMES ITS SUBJECT AS A NODE AND LABELS ITS FALLBACK AS A PUBKEY (releases#11b render rider, ruled 2026-08-30). The join arm reads `RosterEntry`, which is a NODE record (node pubkey, subnet, and a `label` that is the member's OS hostname) -- so the arm is NODE-LEVEL ONLY: there is no endpoint-level join here to distinguish, and a node does not join a subnet FROM another node. THE TICKET'S `z joined <subnet> from <node>` WORDING NAMES AN UNBUILT DATA SOURCE, NOT A MIS-RENDER, and the from-node half went back to the board as its own request rather than being invented here or silently dropped -- that distinction is the whole reason this requirement exists, because the next reader of the ticket would otherwise re-derive it. WHAT IS FIXABLE IN THE RENDER, AND IS FIXED: the line says `node <label> joined subnet <x>` so it states what its subject is, and the unlabeled fallback renders as `pubkey <12hex>...` rather than as a bare hex prefix standing where a name goes, because a bare prefix reads as an endpoint id to every reader who has not opened the function.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5790947Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791079Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791204Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791336Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791462Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791584Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791723Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791857Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5791975Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792101Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792232Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792365Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792702Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792837Z               "line": 853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5792954Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793080Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793203Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793326Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793484Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793617Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793870Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5793999Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794132Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794461Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794590Z               "line": 1892
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794701Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794799Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794900Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5794997Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5795099Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5795194Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5795343Z       "id": "REQ-NOW-SIGNAL-FILE-ACCESS-HELPER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5802259Z       "title": "THE FILE_ACCESS_HELPER CATEGORY HANDS AN AGENT THE EXACT `spt fetch` LINE FOR A FILE IT WAS GIVEN, AND NEVER MORE THAN ONCE PER (MESSAGE, PATH) (releases#17, ADR-0058 Amendment 1, operator directive 2026-09-06 widening the category from carries-attachments to user-quoted-a-path). TWO TRIGGERS, ONE OUTPUT SHAPE. (a) A DELIVERED MESSAGE CARRIES ATTACHMENTS: the signal emits one `spt fetch <url>` line per attachment, taken VERBATIM from the envelope rather than rebuilt, so the line an agent runs is the link the sender minted. (b) A USER'S MESSAGE QUOTES A FILEPATH THAT EXISTS ON THE USER'S NODE: core AUTO-REGISTERS that path as a REFERENCE-SERVED entry -- a file or dir entry, NEVER a snapshot, because the user said look at this and not keep this as it was, and a live reference costs no copy -- with ttl 24h, origin = the message short-ID, and audience = THE ONE ENDPOINT THAT RECEIVED THE MESSAGE (REQ-WEB-ENTRY-AUDIENCE), then hands that endpoint the fetch line. SAME-NODE USER AND AGENT REGISTER NOTHING: the signal says the path is local and readable, because serving a file to a process that can already open it buys an audit entry and no access. A REMOTE USER -- the case #17 was minted for -- has the file on THEIR node, so registration happens THERE on the agent's behalf: a cross-node serve-this-path-for-endpoint-X request authorized by the user's attach session, riding the stream family of REQ-WEB-CROSS-NODE-PROXY, which is why this rider lands after W1. GUARDS, EACH ITS OWN CELL: the path must EXIST on the owning node at signal time (a quoted path that is not there emits NOTHING rather than a dead link); ABSOLUTE OR ~-ROOTED PATHS ONLY, because a relative path has no anchor and would silently name a different file on the other node; AT MOST 5 PER MESSAGE; a directory registers a dir entry under the same ttl and audience. EVERY ENTRY IT MINTS IS ENUMERABLE IN `spt serve list` WITH ITS ORIGIN, so an automatic exposure is exactly as visible as a deliberate one and what-am-I-exposing keeps its single answer. DELTA DISCIPLINE on the standing now-signal rule: once per (message, path), so a re-poll in the same session emits nothing. Gate: doc -- the shells/frames.md now-signal category table and the attachments page's helper section; impl -- the category, the attachment trigger, the quoted-path detector, the auto-registration carrying ttl and audience and origin, the cross-node register-on-my-behalf request; unit -- the attachment trigger's exact emitted line, the quoted-path trigger registering with a 24h ttl and the receiving endpoint as audience, each guard as its own cell (missing path silent, relative path skipped, the cap of 5, a directory registering a dir entry), the same-node case saying local and registering nothing, and the once-per-(message,path) delta holding across a re-poll; int -- a remote user's quoted path served to the named endpoint end to end.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5802492Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5802593Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5802746Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5802864Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5802973Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803082Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803195Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803310Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803434Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803547Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803790Z               "path": "docs-site/src/serving/attachments.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803896Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5803997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804143Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804245Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804344Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804453Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804555Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804792Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804894Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5804997Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805233Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805330Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805664Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805768Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805879Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5805979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806107Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806218Z               "line": 1038
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806542Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806689Z               "line": 1055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5806894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807032Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807134Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807463Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807562Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5807895Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808042Z               "line": 449
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808369Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808470Z               "line": 455
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808569Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808804Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5808908Z               "line": 712
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809313Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809414Z               "line": 761
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809748Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809852Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5809952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810181Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810286Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810382Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810620Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810730Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5810923Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811122Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811226Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811565Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811671Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5811865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812000Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812099Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812480Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812591Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5812925Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813033Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813362Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813466Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813562Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813788Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813894Z               "line": 429
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5813994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814223Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814332Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814432Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814661Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814819Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5814923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815163Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815267Z               "line": 704
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815595Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815701Z               "line": 776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815797Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5815900Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816045Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816155Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816262Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816372Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816620Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816730Z               "line": 474
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816835Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5816934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817079Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817188Z               "line": 822
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817540Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817645Z               "line": 735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817746Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817845Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5817945Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818047Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818155Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818260Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818507Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818612Z               "line": 2686
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5818810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819040Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819144Z               "line": 557
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819539Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819645Z               "line": 2301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5819964Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820074Z               "line": 2348
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820403Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820571Z               "line": 2384
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820674Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5820918Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821022Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821365Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821469Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821796Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5821902Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822231Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822349Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822692Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822793Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5822988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823246Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823350Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823561Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823704Z               "path": "crates/spt-store/src/helperline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823805Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5823984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824107Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824202Z               "line": 685
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824554Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824644Z               "line": 713
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5824930Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825016Z               "line": 776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825307Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825403Z               "line": 786
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825689Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825788Z               "line": 796
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5825965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826080Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826175Z               "line": 814
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826470Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826561Z               "line": 825
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826653Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826865Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5826960Z               "line": 1450
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827304Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827400Z               "line": 1483
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827700Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827790Z               "line": 1547
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5827968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828119Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828210Z               "line": 1571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828510Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828611Z               "line": 1586
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828787Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5828903Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829067Z               "line": 1597
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829365Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829460Z               "line": 1625
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829552Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829638Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829732Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5829818Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5833796Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5833905Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5834035Z       "id": "REQ-NOW-SIGNAL-SEAL-BRIEF",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5836840Z       "title": "THE SEAL_BRIEF CATEGORY TEACHES SEALING IN AT MOST TWO SHORT SENTENCES, ONCE PER SESSION (releases#18, ruled by the operator at the access-control grill follow-up 2026-07-29; the two-sentence bound is the operator constraint verbatim and is not ours to relax). IT ANSWERS EXACTLY TWO THINGS, in that order: what sealing IS and its significance as a PROVEN USER DIRECTIVE, and how the agent EXECUTES the proof. THE COMMAND IT NAMES MUST BE THE REAL ONE -- a payload whose entire purpose is telling an agent how to act is the worst possible place for an invented verb, and the first draft of this text cited a `spt seal verify` that does not exist; the shipped surface is `spt api seal verify <token>` with the content on stdin, mint via the `;;text;;` shortform. THE TEXT IS A CONSTANT, so the wording has ONE home and the two-sentence bound is auditable at a glance rather than reconstructed from a formatter. ONCE PER SESSION on the standing delta discipline: an agent that has been told does not need telling again, and a brief repeating every turn is precisely the noise that discipline exists to prevent. The category is POST-v1, appended by operator ruling rather than by widening the ratified set.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837087Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837184Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837270Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837363Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837448Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837535Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837627Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837720Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837811Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5837893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838025Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838111Z               "line": 863
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838203Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838284Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838465Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838555Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838651Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5838856Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839037Z               "line": 1055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839394Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839491Z               "line": 1065
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839570Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839655Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839741Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839827Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5839925Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840025Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840107Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840198Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840297Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840383Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840522Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840635Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840727Z               "line": 1843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840817Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5840983Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5841070Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5841156Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5841236Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5841346Z       "id": "REQ-NOW-SIGNAL-SPEC",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5843727Z       "title": "THE HARNESS ADAPTER CAN PRESCRIBE AND TUNE CATEGORIES AT POLL TIME VIA --spec-manifest and --spec-file (ratified 2026-07-29). An adapter knows things core cannot: which categories its harness can render, which are noise in its surface, and what its injection budget is. --spec-manifest reads the tuning the runtime manifest already carries; --spec-file takes the same shape as JSON on disk for an adapter that composes it per poll. A SPEC NARROWS AND TUNES; IT DOES NOT INVENT — a category not in the v1 vocabulary cannot be conjured by a spec, so the vocabulary stays the one closed list every consumer reads. AN ABSENT, UNREADABLE OR MALFORMED SPEC IS THE DEFAULT PICTURE, NEVER A REFUSAL: this verb runs on a hook at every turn boundary, and a poll that fails hard on a bad config file is a hook that breaks a working session over a typo.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5843898Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5843995Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844080Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844170Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844252Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844342Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844428Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844538Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844624Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5844877Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845024Z               "line": 473
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845317Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845411Z               "line": 872
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845492Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845684Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845773Z               "line": 407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845855Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5845945Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846026Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846121Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846218Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846304Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846514Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846603Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846775Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846890Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5846990Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847275Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847366Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847458Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847701Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847792Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5847961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848080Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848177Z               "line": 1102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848262Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848342Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848429Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848515Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848609Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848706Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848834Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5848924Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849092Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849182Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849384Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849482Z               "line": 1370
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849778Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849868Z               "line": 1391
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5849959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850159Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850249Z               "line": 1403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850340Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850424Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850509Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850599Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850681Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850772Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5850880Z       "id": "REQ-NOW-SIGNAL-UPDATES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5854793Z       "title": "THE UPDATES CATEGORY SURFACES RUNNING VERSIONS FOR THREE SUBJECTS, AND THE DELTA DISCIPLINE IS ITS EVENT DETECTOR (releases#245, operator-linked at the #23 intake). The subjects are the ticket's three: spt-core itself, the endpoint's current harness adapter, and the adapter of every shell currently registered to the endpoint -- keyed PER SHELL, not per adapter, because an agent acts on the shell and a version that moved under one instance is the fact it needs. NO EVENT JOURNAL IS BUILT, and that is the design rather than an omission: each subject's seen-set key CARRIES its version, so a session is told once at the version it first observed and hears nothing again until that version CHANGES, at which point the key is new and the line fires. An update event IS a version that differs from the one this session was told about, and the seen-set already answers that question exactly; a separate journal would be a second source for one fact. THE PRODUCT VERSION LEADS FOR spt-core, never the applied-update counter: the counter is a different axis (update-set sequence) from the version an operator speaks, and an agent can only act on the version it is running. ABSENCE IS SILENCE: an endpoint with no update history emits nothing, because no-updates is not an update, and a shell whose adapter is deregistered or unreadable contributes NOTHING rather than an error line -- this rides a turn-boundary hook, where a diagnostic in the payload is noise the author cannot act on. The category is POST-v1: it does not widen the ratified v1 set on our own authority, it is appended after it by operator ruling, and render order is declaration order so the ratified order is untouched.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5854993Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855083Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855165Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855255Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855340Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855433Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855513Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855611Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855702Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855787Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855910Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5855995Z               "line": 844
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856149Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856244Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856333Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856420Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856515Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856614Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856820Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5856911Z               "line": 921
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857001Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857083Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857168Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857307Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857408Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857502Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857583Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857670Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857765Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857860Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5857941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858061Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858154Z               "line": 1700
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858241Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858323Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858400Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858474Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858559Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858650Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5858752Z       "id": "REQ-NOW-SIGNAL-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5861760Z       "title": "spt api now-signal IS THE ONE SITUATIONAL-AWARENESS FUNNEL (ratified 2026-07-29, access-control grill; releases#233). One verb answers the question an agent asks at the top of every turn — what changed that I should know about — and it renders per-category XML tags nested under a single SPT-NOW-SIGNAL root. The hint verb SURVIVES AS A THIN ALIAS over the HINTS category and gains no independent behaviour, because two verbs answering the same question is how an adapter ends up injecting both and an agent ends up trusting whichever it happened to read. NO SECOND INJECTION FUNNEL MAY BE ADDED BESIDE IT (the design of record names this as the thing to avoid): a surface that wants to reach an agent at turn boundaries registers a CATEGORY here rather than growing its own injection point. The render is composed by ONE composer over a category list, so a category cannot invent its own envelope grammar, and an EMPTY render emits NOTHING AT ALL — not an empty root, because an empty root is a payload that costs context on every poll and says nothing.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5861989Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862084Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862172Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862271Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862356Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862447Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862533Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862624Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862719Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862820Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5862919Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863052Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863149Z               "line": 405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863243Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863474Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863567Z               "line": 752
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863647Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863743Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863828Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5863917Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864021Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864108Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864312Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864409Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864495Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864689Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864781Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5864923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865009Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865138Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865228Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865314Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865518Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865614Z               "line": 1130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865701Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865791Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5865872Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866007Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866102Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866195Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866419Z               "path": "crates/spt/tests/now_signal_delta_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866517Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866602Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866689Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866780Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866869Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5866966Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867056Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867261Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867357Z               "line": 1314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867643Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867742Z               "line": 1355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5867915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868033Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868124Z               "line": 1423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868457Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868550Z               "line": 1911
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868640Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868724Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868811Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5868898Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5869062Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5869147Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5869263Z       "id": "REQ-ONEWAY-STREAM-TERMINAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871369Z       "title": "REGISTRY-LIFECYCLE W1 (ADR-0040 decision 1, hertz defect B leg 1): a one-way fire-and-forget stream family is TERMINAL at successful FIN, sender-side — the registry pump retires its OWN feed row after write+FIN via the existing net-stream-retire verb (best-effort on N-1 brokers per ADR-0038 A). Sender history on the long-lived pump conn stops accumulating: steady-state row population is O(active exchanges), not O(feeds since conn start). Gate: impl — pump push_feed retire-after-FIN; unit — successful feed retires its row, failed/unFINed feed does not, retire failure is best-effort non-fatal; int — rides REQ-HAZARD-REGISTRY-STALL plateau seam (eligible rows plateau O(active) over N rounds); doc — ADR-0040.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871544Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871629Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871719Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871806Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871892Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5871977Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872072Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872154Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872254Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872353Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872649Z               "path": "docs/adr/0040-bounded-stream-seat-lifecycle-one-way-terminal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872736Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872821Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872902Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5872988Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873089Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873179Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873274Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873541Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873627Z               "line": 2080
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5873909Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874000Z               "line": 9600
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874298Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874440Z               "line": 2051
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874745Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874835Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5874925Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875126Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875215Z               "line": 1553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875493Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875578Z               "line": 357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875675Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875760Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875840Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5875933Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876027Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876117Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876351Z               "path": "crates/spt-daemon/tests/registry_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876437Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876523Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876610Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876750Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876841Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5876931Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877025Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877234Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877322Z               "line": 3307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877616Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877711Z               "line": 2712
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877841Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5877931Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5878017Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5878107Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5878189Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5878279Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5878393Z       "id": "REQ-OPID-MINTER-NAMESPACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885056Z       "title": "A-4a (REMOTE-TRUTH triage §A + ADR-0034 Decision 1 + Amendments 1 & 2): the broker effect journal's dedup key gains a minter dimension so ops minted by independent counters can never collide. ROOT (high, ground-truthed vs HEAD): the journaled-op producers key into ONE journal namespace (NET_EFFECT_SESSION|shell_sid, op) at broker.rs (EffectKey=(u64,u64)); a CLI wake op colliding with an already-journaled daemon op reproduces the typed 'already applied … retry with a fresh op_id' with NO broker restart (field-hit: spt endpoint wake id@node WOKE_FAIL). Same latent class: nethost dial_ops/stream_ops HashMap<u64,u64> ('Shares the one net op-id namespace') would re-clobber even after the journal separates them; AND shellchan::deliver_stdin_pending journals (shell_sid, row_id) so an rc operator's ops on the same shell_sid collide with spool row ids (dropped keystroke OR dropped spool row). Amendment 2 corrected the minter set: the REAL journal minters are {cli, pump, rc, shell} + legacy — psyche/epoch are the EpochSource notif/lease counter domain, NEVER submit to apply_once, DROPPED from the journal enum (a tag with no stamp site = doc'd-but-dead knob). FIX (Decision 1 + Amdt 2): ONE canonical Minter enum {Legacy, Cli, Pump, Rc, Shell, Wake} — Legacy reserved for pre-upgrade lines + untagged wire, monotonically shrinks; enum is the single source for the TEXTUAL journal-line token (self-describing during recovery). EffectKey becomes (effect-class, minter, op); recover() DUAL-PARSES (old shorter line → minter=Legacy, new longer line → parsed tag) so old journals need no migration and old-shape keys can never equal new-shape (migration-free). A MintedOp{minter, seq} newtype REPLACES bare op_id:u64 through the brain/daemon THREADING paths so forgot-to-stamp is UNCOMPILABLE (row_id stays the shell seq — never re-minted, the durable spool exactly-once identity). Wire keeps an additive optional minter field (serde default absent ⇒ Legacy materialized at broker decode; serde_json no deny_unknown_fields ⇒ NO wire version bump); the newtype is NOT forced into wire structs. nethost op-maps re-key by (minter, op). Red-first: mint an rc op == a journaled shell/pump/daemon op int on the same session → pre-fix the second dedups/clobbers (WOKE_FAIL class); post-fix both are distinct keys, both Applied.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885209Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885300Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885385Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885471Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885557Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885638Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885728Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885819Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5885906Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886168Z               "path": "docs/adr/0034-per-minter-op-id-namespacing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886258Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886339Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886425Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886507Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886596Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886692Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886836Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5886921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887044Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887132Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887217Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887310Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887391Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887482Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887576Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887665Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887752Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887905Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5887994Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888081Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888285Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888381Z               "line": 1010
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888672Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888763Z               "line": 1039
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888853Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5888938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889144Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889235Z               "line": 1109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889316Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889520Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889616Z               "line": 1163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889902Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5889999Z               "line": 2282
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890084Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890163Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890282Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890374Z               "line": 2362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890464Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890544Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890689Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890770Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890854Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5890941Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5891046Z       "id": "REQ-OPID-TRACING-RETRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895196Z       "title": "A-4b (REMOTE-TRUTH triage §A + ADR-0034 Decision 2): the tracing-only op families auto-retry ONCE with a fresh op on the typed no-longer-held error, so a broker-restart-dropped conn/stream self-heals instead of surfacing core lingo to the user. ROOT: net/rest.rs declares rest op-ids 'tracing/correlation only … redelivery needs reporting, not dedup', yet the journal enforced exactly-once on them — a rest/attach op whose conn the broker no longer holds (post-restart) returned the typed 'already applied … no longer held … retry with a fresh op_id' (broker.rs:2796 net-dial / 3047 stream-open) straight to the user (WOKE_FAIL / rc attach fail). FIX (Decision 2, scoped): the rest family (request_rest) + rc attach stream-open (request_attach_endpoint) — and ONLY those — catch the typed no-longer-held error INTERNALLY and re-issue ONCE with a FRESH op minted from the SAME minter (A-4a MintedOp; same producer, new seq). sync/update pull families (request_sync/request_update, durable open_op) are NOT wrapped — their exactly-once dedup is load-bearing (negative control). The typed op error becomes internal-only; if the retry ALSO fails, the user-facing line names the observable situation + next action in operator language, ZERO journal/op/brain lingo (F-1 public-error rule applies early — this string is user-facing). Red-first: mint a colliding op → assert the retry succeeds + the user sees NOTHING; NEGATIVE CONTROL — a durable family's no-longer-held stays a hard error, no silent retry.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895328Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895413Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895499Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895588Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895726Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895817Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5895903Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896006Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896099Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896335Z               "path": "docs/adr/0034-per-minter-op-id-namespacing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896437Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896527Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896613Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896780Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5896932Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897009Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897218Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897314Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897604Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897692Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5897975Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898066Z               "line": 227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898150Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898350Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898437Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898732Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898827Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5898912Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899203Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899290Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899385Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899466Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899700Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899795Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899881Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5899962Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900052Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900138Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900235Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900329Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900409Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900496Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900592Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900686Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5900948Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901038Z               "line": 1213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901330Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901424Z               "line": 1255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901511Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901715Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901806Z               "line": 1277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5901972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902087Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902178Z               "line": 1299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902268Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902479Z               "path": "crates/spt-daemon/src/effect.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902574Z               "line": 1327
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902659Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902741Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902828Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5902917Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903002Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903082Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903271Z       "id": "REQ-PAIR-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903399Z       "title": "TOTP-seeded SPAKE2 pairing",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903500Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903586Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903676Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903762Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903849Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5903938Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904033Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904130Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904230Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904315Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904454Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904549Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904644Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904869Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5904959Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905274Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905365Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905455Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905675Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905770Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5905944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906078Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906172Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906481Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906576Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906886Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5906979Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907350Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907440Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907726Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907817Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5907984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908107Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908332Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908640Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908739Z               "line": 461
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908833Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5908915Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909081Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909172Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909273Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909363Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909453Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909578Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909673Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5909978Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910073Z               "line": 1935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910160Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910245Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910336Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910421Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910522Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910612Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910894Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5910984Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911071Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911288Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911379Z               "line": 467
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911465Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911684Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911775Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5911914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912138Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912233Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912532Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912627Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5912928Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913020Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913324Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913416Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913724Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913822Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5913998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914123Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914212Z               "line": 316
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914584Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914676Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5914981Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915076Z               "line": 1195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915366Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915466Z               "line": 1278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915819Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915911Z               "line": 1348
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5915996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916212Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916302Z               "line": 1409
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916605Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916694Z               "line": 1465
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5916999Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917094Z               "line": 1684
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917184Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917276Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917366Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917451Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917548Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917633Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917733Z       "id": "REQ-PAIR-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917872Z       "title": "Local trust store with TOFU + warn-on-change",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5917971Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918119Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918210Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918314Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918405Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918488Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918577Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918672Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918764Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5918864Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919038Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919139Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919237Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919374Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919465Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919557Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919660Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919746Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919833Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5919919Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920008Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920100Z       "id": "REQ-PAIR-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920252Z       "title": "Fetch current pairing code from any paired node",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920352Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920438Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920528Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920614Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920705Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920787Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920882Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5920977Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921068Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921158Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921253Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921345Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921544Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921635Z               "line": 12716
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921726Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5921924Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922020Z               "line": 12867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922344Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922445Z               "line": 13554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922717Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922807Z               "line": 15487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922892Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5922974Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5926844Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5926956Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927069Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927249Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927344Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927430Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927531Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927621Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927826Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5927926Z               "line": 34057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928212Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928297Z               "line": 34359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928570Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928665Z               "line": 38923
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5928841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929033Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929128Z               "line": 38942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929396Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929490Z               "line": 38966
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929830Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5929924Z               "line": 38985
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930011Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930197Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930283Z               "line": 38998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930369Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930563Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930651Z               "line": 39007
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930788Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930873Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5930961Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931046Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931132Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931217Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931309Z       "id": "REQ-PAIR-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931427Z       "title": "Subnet naming on first pairing",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931532Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931623Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931713Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931799Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931890Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5931972Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932070Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932161Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932249Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932343Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932446Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932537Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932742Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932828Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5932924Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933005Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933094Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933181Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933277Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933367Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933457Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933544Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933634Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933781Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5933863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934001Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934096Z               "line": 1521
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934178Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934263Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934349Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934435Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934517Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934606Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5934701Z       "id": "REQ-PAIR-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935037Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935132Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935224Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935318Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935404Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935495Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935586Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935671Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935767Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935862Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5935947Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936038Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936130Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936220Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936435Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936529Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936849Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5936939Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937235Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937365Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937455Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937663Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937753Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937842Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5937927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938048Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938143Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938481Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938571Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5938862Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939035Z               "line": 251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939130Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939340Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939434Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939744Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939831Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5939917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940003Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940134Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940234Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940320Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940537Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940624Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940719Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5940929Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941081Z               "line": 461
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941162Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941253Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941334Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941429Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941521Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941611Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941820Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5941911Z               "line": 1935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942002Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942268Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942364Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942450Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942541Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942626Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942716Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942818Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5942908Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943126Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943217Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943550Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943645Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943731Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5943946Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944036Z               "line": 424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944128Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944360Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944462Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944833Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5944923Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945009Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945232Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945322Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945409Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945634Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945774Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5945954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946089Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946183Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946484Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946584Z               "line": 1271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946671Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946756Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946884Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5946976Z               "line": 1337
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947151Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947281Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947371Z               "line": 1584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947461Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947547Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947639Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947718Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947809Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947897Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5947992Z       "id": "REQ-PAIR-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948261Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948360Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948454Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948584Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948675Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948764Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5948855Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949046Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949140Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949228Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949318Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949413Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949504Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949704Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949867Z               "line": 12867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5949961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950153Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950243Z               "line": 13554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950544Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950633Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950809Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5950917Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951011Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951288Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951393Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951475Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951565Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951741Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951842Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5951932Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952017Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952105Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952261Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952352Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952557Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952647Z               "line": 39020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5952933Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953020Z               "line": 39037
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953359Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953454Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953739Z               "path": "crates/spt/src/elevation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953829Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5953914Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954006Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954091Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954177Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954262Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954349Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954444Z       "id": "REQ-PAIR-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954601Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954702Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954787Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954872Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5954969Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955059Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955145Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955236Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955332Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955430Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955516Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955604Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955703Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955792Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955882Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5955973Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956067Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956219Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956305Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956396Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956481Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956567Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5956663Z       "id": "REQ-PAIR-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958002Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958107Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958199Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958292Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958369Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958475Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958556Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958655Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958754Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958841Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5958929Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959101Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959192Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959415Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959506Z               "line": 938
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959592Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959816Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5959921Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960221Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960312Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960460Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960545Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960723Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960822Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960912Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5960994Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961085Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961174Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961264Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961477Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961619Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961701Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961787Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5961910Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962001Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962292Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962383Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962473Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962679Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962764Z               "line": 444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962854Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5962936Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5963022Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5963107Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5963193Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5963280Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5963388Z       "id": "REQ-PAIR-NTP-LOUD-FAIL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5965539Z       "title": "W1/D2 (JOIN-TRUTH): total NTP failure (no server on any family answered) is LOUD, not silent — a node running the ceremony on its raw skewed system clock must be visible. ROOT: current_offset_secs (ntp.rs) does `query_offset_secs().unwrap_or(0)` and eprintln's ONLY on a nonzero success, so an all-servers-unreachable refresh is indistinguishable from 'clock agrees'. Fix: log the TRANSITION into all-servers-failed once per refresh (suggested `NTP_TOTP_UNCORRECTED: all NTP servers unreachable — ceremony clock = raw system clock`) and the recovery transition back to corrected; the OFFSET_TTL already bounds refresh cadence so no per-call spam. Fallback behavior (offset 0 → system clock) is UNCHANGED — this adds observability only.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5965647Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5965738Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5965825Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5965906Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966004Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966086Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966183Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966329Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966419Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966505Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966595Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966684Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5966914Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967007Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967098Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967303Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967394Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967476Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967566Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967646Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967728Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967820Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5967919Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968004Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968091Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968190Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968281Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968377Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968496Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968629Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968797Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5968886Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5969045Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5969130Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5969219Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5969329Z       "id": "REQ-PAIR-NTP-MULTIHOME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972005Z       "title": "W1/D1 (JOIN-TRUTH): the ceremony NTP query reaches a server on EITHER IP family — `query_unix_secs` (ntp.rs) must iterate every address `to_socket_addrs()` resolves (not just the first) and bind a socket of the matching family per candidate (IPv4 addr → bind 0.0.0.0:0; IPv6 addr → bind [::]:0), first successful answer wins. ROOT (proven 3/3-FAIL via our exact code on enlyzeam): today `UdpSocket::bind((\"0.0.0.0\",0))` is v4-only and `send_to(&packet, server)` sends ONLY to the FIRST resolved addr — time.google.com resolves 4×AAAA before any A on a v6-first dual-stack box → the primary server is PERMANENTLY unreachable via our code (w32tm reaches it over v6), silently halving NTP redundancy (pool.ntp.org v4 carried everything; a DNS rotation making BOTH v6-first would zero it). Fix keeps the lazy-cache/TTL/fallback contract of REQ-PAIR-8 unchanged — only the socket/resolve leg changes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972164Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972251Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972342Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972423Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972518Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972600Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972695Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972799Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972886Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5972976Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973080Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973176Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973386Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973476Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973786Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973873Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5973958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974169Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974254Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974541Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974634Z               "line": 302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974772Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974864Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5974945Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975029Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975126Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975212Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975302Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975436Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975531Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975621Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975831Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5975922Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976007Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976212Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976298Z               "line": 410
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976390Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976475Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976564Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976656Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976733Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976819Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5976927Z       "id": "REQ-PEER-ABSENCE-VERDICT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5983688Z       "title": "Peer reachability has a THIRD verdict -- peers-absent, rendered `peers unreachable:` -- for the state where the failing peers are simply not there, distinct from healthy and from both degraded verdicts and never a synonym for either. The vocabulary had no way to say that machine is off: PRESENCE_DIAL_FAILED fires for any reason at all including the ordinary powered-down peer, so the word the operator read (degraded) pointed at THEIR OWN node. The discriminator is POSITIVE and INDEPENDENT, two conditions that must both hold and neither of which any peer SUCCESS can supply: every currently-failing target is a node the registry holds rows for and none of those rows is routable, AND last_registry_admit_ms is within the registry own silent-peer eviction window of the instant that offline set was sampled. Silence about a node is not evidence -- a node with no rows keeps the conservative verdict -- and stale gossip is memory rather than observation, so no fresh gossip means no basis to call anyone absent. The independence requirement is the load-bearing one: the tempting inference that a live peer proves this node egress and therefore acquits it of the other peers failures is one peer success testifying about a DIFFERENT peer failure, which is REQ-PEER-HEALTH-PARTIAL-DEGRADE (#41) outvoting logic wearing a new word; egress to X says nothing about the route to Y. The freshness gate is also what preserves the 2026-07-10 sequester fingerprint with no carve-out: a node that can reach nobody admits no inbound feed either, so its stamp goes stale and the verdict falls back to degraded on its own. SCOPE: it replaces a degraded verdict and only ever a degraded verdict -- unreachable with an empty failing set (so healthy is unreachable from it) and never replacing connecting (a round still working through its first dials has established nothing). Additive on the machine surface like degraded-partial before it, for the mirrored reason: an older reader meets an unfamiliar token rather than a degraded that blames the wrong machine. Gate: doc -- the ADR-0039 Decision 5 amendment naming the third word, both halves of the discriminator, the scope, and why the sequester survives; impl -- the verdict variant and its arm ordered ahead of both degraded arms, the registry per-node routability accessor whose three states keep unknown distinct from offline, the pump-side sample taken beside the admit stamp, and both render surfaces; unit -- a failing peer whose node the registry reports offline reads the new word and never healthy, ONE unaccounted failing peer holds the degraded-partial verdict (including a peer the registry merely knows nothing about), stale or never-admitted gossip forces the conservative read at the window boundary, and the arm never displaces connecting nor outlives a departed target.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5983922Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984012Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984104Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984194Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984280Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984366Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984457Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984599Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984690Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5984933Z               "path": "docs/adr/0039-peer-route-resolution-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985029Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985110Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985204Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985289Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985376Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985477Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985566Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985790Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985890Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5985976Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986195Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986286Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986382Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986591Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986683Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986772Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5986983Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987078Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987379Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987515Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987813Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987904Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5987990Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988199Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988291Z               "line": 448
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988634Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988729Z               "line": 456
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988809Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5988901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989095Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989187Z               "line": 508
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989487Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989579Z               "line": 722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989875Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5989963Z               "line": 1146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990141Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990269Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990359Z               "line": 1163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990444Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990666Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990761Z               "line": 871
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5990938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991061Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991158Z               "line": 326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991510Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991601Z               "line": 8459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991691Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5991934Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992034Z               "line": 8521
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992122Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992211Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992297Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992388Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992483Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992578Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992664Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992751Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992840Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5992939Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993025Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993153Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993247Z               "line": 851
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993538Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993628Z               "line": 888
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5993933Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994025Z               "line": 932
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994120Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994316Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994406Z               "line": 979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994697Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994859Z               "line": 1961
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5994940Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995159Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995250Z               "line": 1199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995332Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995531Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995633Z               "line": 35453
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995778Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995868Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5995954Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5996037Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5996126Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5996207Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.5996323Z       "id": "REQ-PEER-COUNT-TARGET-SCOPED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6001451Z       "title": "The rendered peer-reachability fraction counts ONE population at both ends: the live count is the intersection of the pump live connections with the CURRENT fan-out targets, re-derived whenever the targets move. The field specimen was 7/1 -- seven live peer connections over one remaining membership target -- because the numerator came from the connection cache (inserted on every PRESENCE_CONNECTED, is_target computed beside it and not gating the insert, removed only on PRESENCE_DISCONNECTED) while the denominator was roster-derived. Leaving a subnet disconnects NOBODY, so ex-members went on counting while the denominator followed the leave; the state therefore travels a targets change with no presence event anywhere near it, which is why the count cannot be maintained at the presence seam alone and must be re-derivable from a live-connection SET rather than stamped as a number. The fix is an INTERSECTION and explicitly not a teardown at leave: a peer can be justified by a second subnet, so dropping its connection would make the count right for the wrong reason and wrong again the moment the peer is re-justified. Connections to non-targets stay real and stay reported; they are simply not part of the answer to how many of the peers we are trying to reach are up. Consequence, in the honest direction: the sequester test narrows, since a live connection to a node we no longer fan out to used to hold the all-fail window shut while every actual target was failing. Distinguish from REQ-PEER-HEALTH-PARTIAL-DEGRADE, which owns WHICH VERDICT a mix of live and failing peers renders; this owns only the population the counts are taken over. Gate: impl -- the live-connection set on the snapshot, the derivation against targets, the re-derivation on set_targets, and the pump seam handing the whole conns key set rather than a length; unit -- a subnet leave re-derives the numerator with nobody disconnected and the connections still reported, a re-join restores it without a redial, a live non-target never enters the count nor renders green, and the rendered line reads 1/1 where it read 7/1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6001607Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6001699Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6001784Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6001874Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6001960Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002047Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002142Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002237Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002476Z               "path": "docs/adr/0039-peer-route-resolution-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002566Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002648Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002738Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6002914Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003006Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003099Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003307Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003396Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003741Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003835Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6003921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6004008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6004122Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6004203Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6004294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6004375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005014Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005109Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005195Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005404Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005491Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005577Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005781Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005878Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6005967Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006174Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006268Z               "line": 343
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006563Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006653Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6006944Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007029Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007320Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007411Z               "line": 629
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007497Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007587Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007677Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007793Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007893Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6007983Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008075Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008165Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008264Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008389Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008607Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008702Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6008867Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009062Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009159Z               "line": 831
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009444Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009534Z               "line": 35488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009624Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6009711Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6013645Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6013746Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6013837Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6013918Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6014055Z       "id": "REQ-PEER-HEALTH-PARTIAL-DEGRADE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6018335Z       "title": "WAN-TRUTH #41 leg 3: a partial peer outage renders its own verdict (degraded-partial) instead of healthy. The field shape: 2 of 7 peers live and the other 5 failing for days, reported green, because the green test was at-least-one-live-connection and any single dial success also closed the only incident window there was. INSTRUMENT SOUNDNESS is the governing principle and the reason this is a requirement rather than a nicety -- the monitor green must not be producible by the fault it watches, and persistent per-peer dial failure was exactly such a producer. Two changes carry it: the failing set is consulted BEFORE the live count so green requires that nothing is failing rather than that something works, and an ANY-fail window spans the all-fail one so a single peer reconnecting narrows the verdict without erasing the incident measured age. The full-sequester verdict, its window, and the stage attribution are unchanged; this is additive on the machine surface, and an older reader meeting an unfamiliar token is the intended failure mode, since healthy is precisely what it used to be told. Distinguish from REQ-PUMP-STAGE-TRUTH (same ADR-0039 Decision 5 surface): that owns the TOTAL-failure fingerprint and the per-stage attribution, this owns only the partial-failure verdict and the window that survives one peer recovery. Gate: impl -- the verdict variant, the any-fail window recomputed with the all-fail one, the ordering change, and both render surfaces (human line and machine token); unit -- some-failing-while-others-live renders the partial verdict and never healthy, green requires progress on EVERY target, one peer success does not restart the incident clock, and the total-failure fingerprint still renders the unchanged full verdict.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6018501Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6018591Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6018677Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6018763Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6018848Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019035Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019133Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019233Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019324Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019418Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019512Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019603Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019827Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6019918Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020218Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020366Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020667Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020757Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6020972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021109Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021197Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021482Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021578Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021658Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021864Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6021959Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022257Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022346Z               "line": 8520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022431Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022518Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022610Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022694Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022780Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022876Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6022962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023052Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023148Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023258Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023468Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023552Z               "line": 625
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023643Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6023910Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024006Z               "line": 685
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024301Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024393Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024488Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024577Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024667Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024753Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024894Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6024979Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6025099Z       "id": "REQ-PEER-PUMP-CHURN-STALL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027327Z       "title": "B5 (F028, perri F-a; DEFECT daemon, OBSERVED-ONCE, HIGH): the peer pump STALLS under rapid rc attach/EOF-detach/--take churn. Fresh 0.22.0 daemon ~10min after restart, during rapid rc cycling: `peer pump: STALLED (last tick 122s)`; while stalled `spt rc --view` -> `RC_FAIL: attach request: brain IPC read deadline elapsed` (repeatable) and controlled-clear stopped propagating. Daemon restart recovered + endpoints auto-revived. Prior class: REQ-HAZARD-PUMP-IPC-DEADLINE (reader-thread+channel carrier), REQ-broker-QUIC-deadline (bounded_block_on) — something in the rc-churn path can still wedge the pump tick. perri holds exact timestamps + a repro candidate (rapid attach/detach/take against one endpoint) — REQUEST before RCA. See triage B5.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027439Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027539Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027626Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027726Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027815Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6027906Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028003Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028097Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028192Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028274Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028364Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028469Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028565Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028646Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028783Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6028885Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6029051Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6029141Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6029228Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6029318Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6029461Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6029576Z       "id": "REQ-PEER-ROUTE-CHAIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033360Z       "title": "MESH-RECOVERY W1 (ADR-0039, RCA wave 1): dial-address resolution is the ROUTE CHAIN — exact peer-cache entry, then VALIDATED RosterEntry.address (address.id must match the peer key; a poison row never becomes a route), then id-only discovery — always fully consulted in order (no failure-count heuristics gating legs; rotation machinery REJECTED). Retention is NONDESTRUCTIVE: PRESENCE_DIAL_FAILED demotes the cached route to suspect (skipped in favor of the roster leg while suspect, superseded by any validated fresher address from connect write-back or reconcile), never deletes a sole route; removal only via validated-fresher replacement or roster tombstone. Validated roster addresses RECONCILE into the cache at daemon startup and on roster merge (beyond gapfill's fill-only: validated-fresher replaces failed/suspect rows) — recovery is connection-independent. Amends REQ-CONV-1's drop-on-fail mechanism; peeraddrs.rs/pump doc-comment truth rides the same change. Gate: impl — chain + demote + reconcile; unit — chain order incl. id-mismatch roster row resolves nothing + suspect row survives N failures with no replacement + reconcile replaces suspect with validated-fresher; int — rides REQ-HAZARD-MESH-BOOTSTRAP-TRAP D-legs; doc — ADR-0039 + CONTEXT peer-route chain entry. Kin REQ-PEERADDR-INVARIANT, REQ-CONV-1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033484Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033568Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033660Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033803Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033888Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6033974Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034070Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034161Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034256Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034352Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034589Z               "path": "docs/adr/0039-peer-route-resolution-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034686Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034779Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6034924Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035108Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035208Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035299Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035516Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035606Z               "line": 1094
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035907Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6035998Z               "line": 1223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036284Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036375Z               "line": 1485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036469Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036674Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036769Z               "line": 1518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6036937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037070Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037161Z               "line": 999
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037456Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037549Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037776Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037896Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6037985Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038070Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038319Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038413Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038500Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038586Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038757Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6038858Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039038Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039258Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039348Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039440Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039663Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039755Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039840Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6039925Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040016Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040108Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040202Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040282Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040491Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040585Z               "line": 2304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040670Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040876Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6040961Z               "line": 2649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041048Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041314Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041406Z               "line": 1386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041696Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041791Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6041963Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042083Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042220Z               "line": 327
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042307Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042393Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042472Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042558Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042641Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042722Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6042836Z       "id": "REQ-PEERADDR-INVARIANT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6045821Z       "title": "MESH-RECOVERY W1 (ADR-0039, RCA wave 2): the peer-addrs cache INVARIANT — outer peer key == address.id — is ENFORCED on load and on write: invalid rows are repaired from the current roster when possible, rejected (dropped loudly) otherwise; never silently kept, never used as a route. MIGRATION = rebuild invalid rows from roster on first post-upgrade load; bare-deleting peer-addrs.json is REJECTED (cold recovery depends on the id-only path staying BEHIND warm routes — nuking every warm route trades one trap for another). gapfill_peeraddrs and PeerAddrStore::put stop accepting mismatched mappings (the live 5ff…-outer poison-row class on both incident nodes). Absent/corrupt-degrades-empty behavior untouched. Gate: impl — load/write enforcement + repair + migration; unit — mismatch rejected on put, repaired-or-dropped on load, valid rows untouched by migration, gapfill refuses a mismatched roster entry; doc — ADR-0039. Kin REQ-PEER-ROUTE-CHAIN, REQ-MESH-2 (gapfill), REQ-CONV-1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6045944Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046028Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046118Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046215Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046300Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046457Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046544Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046639Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046729Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6046958Z               "path": "docs/adr/0039-peer-route-resolution-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047121Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047206Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047306Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047392Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047484Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047578Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047668Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047873Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6047969Z               "line": 1486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048308Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048399Z               "line": 1000
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048688Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048774Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6048874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049180Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049269Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049551Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049642Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6049922Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050015Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050104Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050185Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050358Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050457Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050543Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050762Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050856Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6050999Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051084Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051168Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051249Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051351Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051431Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051641Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051732Z               "line": 2654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6051908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052032Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052122Z               "line": 1445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052409Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052499Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052789Z               "path": "crates/spt-store/src/peeraddrs.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052882Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6052962Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053153Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053244Z               "line": 2186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053333Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053415Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053501Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053588Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053672Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053752Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6053923Z       "id": "REQ-PERCH-GC-REFUSAL-REPORT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6057790Z       "title": "The perch GC is REPORT-ONLY BY DEFAULT and every refusal is LOUD, distinct and per-path (releases#109, doyle-ruled 2026-08-04 — 3.4's own doctrine transplanted: loudness, not a self-heal, is what keeps a PERMANENT refusal from being a silent one). Bare `spt endpoint gc` classifies every perch directory and deletes NOTHING; `--reap` removes exactly the ruled population. There is deliberately NO `--dry-run`: when the default deletes nothing, a dry-run flag is a synonym that implies the default is dangerous. The classification pass completes BEFORE any removal, so the census prints IDENTICALLY with and without `--reap` (same subjects, same tokens, same order) and the two runs compare line for line — a bare run is a faithful preview. Each refused row names its own token (RESIDUE-WITH-SPOOL, RESIDUE-EMPTY, OCCUPIED-RECORD, OCCUPIED-CORRUPT-RECORD, OCCUPIED-UNREADABLE-RECORD, OCCUPIED-UNREADABLE-DIR, OCCUPIED-REPARSE-POINT, OCCUPIED-WRITE-IN-FLIGHT, OCCUPIED-CHILD-HELD) rather than one lumped 'skipped', and each PERMANENTLY-refused residue row carries the manual remedy that is the operator's only remaining handle. A removal that fails is reported by path with its error and exits non-zero; an unreadable owlery root exits non-zero having classified and removed nothing. The report is the evidence layer the daemon-fired sweep (releases#158) must earn its automation from.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058010Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058100Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058190Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058271Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058359Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058443Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058529Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058630Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058715Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6058906Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059086Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059176Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059253Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059329Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059420Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059519Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059606Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059877Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6059973Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060265Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060355Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060440Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060631Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060721Z               "line": 719
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060811Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6060885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061045Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061136Z               "line": 24688
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061411Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061507Z               "line": 24747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061593Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061677Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061766Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061853Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6061949Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062039Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062134Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062216Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062311Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062405Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062616Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062710Z               "line": 915
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6062993Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063078Z               "line": 932
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063407Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063527Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063622Z               "line": 966
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6063912Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064003Z               "line": 993
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064090Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064176Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064283Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064374Z               "line": 24841
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064511Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064596Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064681Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064768Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064854Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6064939Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6065059Z       "id": "REQ-PERCH-GC-RESIDUE-PREDICATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6072476Z       "title": "A perch directory is RESIDUE only on a POSITIVE record-absence predicate, and the store that answers it is the owlery tree itself (3.4 extension; releases#109, doyle-ruled 2026-08-04). There is NO independent endpoint-existence store on a node: `spt::roster::enumerate`, the daemon's `projwriter::enumerate_perches` and `perch::list_self_perch_ids_checked` all derive the endpoint set from `read_dir(owlery)`, and a dir with no `info.json` is not a perch — so THE PERCH DIRECTORY PLUS ITS PARSEABLE RECORD IS THE ENDPOINT RECORD. The local registry is NOT that store and must never be asked: KNOWN-HAZARDS 4.3 has `clean_stale_entries` DELETE dead-pid rows and `unregister_address` fire on an ordinary stop, so registry-absence is the normal steady state of every OFFLINE endpoint (measured HFENDULEAM 2026-08-04: 6 of 14). PREDICATE: residue iff no `info.json` is present on ANY read attempt. Positive, present-tense, one read, and NEVER an age/mtime heuristic — a dormant endpoint, a suspended session and a long-idle live agent are indistinguishable from 'old' by mtime. Absent is the ONLY answer that authorizes deletion, so the read keeps NotFound distinct from every other I/O error: unreadable ⇒ occupied, corrupt (present, unparseable) ⇒ occupied (a destroyed record belongs to an endpoint that exists). REAP POPULATION IS NARROWER THAN RESIDUE: recordless AND spool-less AND non-empty AND no record-write in flight (`.info.lock` held ⇒ a bringup mid-create) AND every nested/shells child independently reapable (deepest-first; a recordless parent holding ANY non-reaped child is itself refused). A REFUSED DIRECTORY SHIELDS ITS WHOLE SUBTREE (doyle, ruled 2026-08-04): a descendant that would qualify on its own is reported SHIELDED-BY-REFUSED-PARENT and left alone, because refusing a directory must mean not modifying its CONTENTS either — carving a child out destroys part of what the refusal report just asked the operator to look at, and can move the parent's own classification on the next pass, and a sweep whose refusals are unstable across its own runs is untrustworthy. A recordless dir carrying a SPOOL is refused permanently — undeliverable-by-construction settles deliverability, not VALUE, and that spool is the only surviving copy of what was queued. An EMPTY dir is refused permanently — the mid-create race 3.4 protects exists here identically and no positive discriminator for 'not mid-create' exists for an empty dir. A reparse point anywhere in the subtree is refused. Store unavailable (`read_dir` on the root fails) ⇒ DO NOTHING and say so, reported distinctly from an empty owlery.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6072631Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6072723Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6072823Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6072913Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6072999Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073100Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073186Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073280Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073372Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073458Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073571Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073725Z               "line": 129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073815Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073909Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6073997Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074082Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074177Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074273Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074355Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074481Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074568Z               "line": 280
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6074910Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075005Z               "line": 24748
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075090Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075179Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075271Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075357Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075452Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075547Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075634Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075724Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075818Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6075915Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076119Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076214Z               "line": 623
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076496Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076592Z               "line": 692
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076892Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6076987Z               "line": 721
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077274Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077377Z               "line": 735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077713Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077808Z               "line": 754
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077890Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6077971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078090Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078181Z               "line": 792
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078266Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078472Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078615Z               "line": 818
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6078905Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079062Z               "line": 862
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079353Z               "path": "crates/spt-store/src/perchgc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079450Z               "line": 885
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079530Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079611Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079697Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079779Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079863Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6079949Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6080070Z       "id": "REQ-PICK-FIDELITY-AUDIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6085650Z       "title": "AN ASSEMBLY PICK MUST BE AUDITED FOR FIDELITY ON ITS CHANGED-LINE SET, AND THE COUNT AND DIGEST ARMS MUST BE REPORTED AS SEPARATE VERDICTS BECAUSE THEY FAIL IN OPPOSITE DIRECTIONS. MEASURED on the TURNKEY #212 assembly (IR-57): a cherry-pick's conflict resolution silently dropped exactly two lines and the assembled head did not compile, while every instrument in the assembly path reported success -- the pick completed with no conflict remaining, traceable-reqs check returned 797/797 exit 0 because it parses tags and never invokes the compiler, and the lanes themselves were green and stayed provably clean. Lane-green plus conflict-free is not a claim about the assembled head. The audit compares ONLY the + and - lines of git show --format= for the lane source and for its pick, excluding the +++ and --- file headers: hunk headers and context lines legitimately drift once the head's copy of a file has moved, so a whole-diff comparison returns a confident wrong answer. Of 24 picks on that chain two did not match and they were DIFFERENT CLASSES -- one differed in COUNT (302 lane against 300 pick by the prescribed header-excluding pipeline; the register originally cited 310/308, which is the raw count including the 8 file-header lines of its 4 files, and the delta is 2 either way), the real defect; the other had the SAME count and a different digest, a paragraph the head had already amended for another lane whose merged result correctly carries both lanes' sentences. A count check MISSES the first class entirely and a digest check FLAGS the second as if it were a defect, so neither alone classifies a pick: the verb reports both arms per pick, fails the run on a count mismatch only, and prints the digest-only class loudly as a human read rather than reddening on it, because a check that reds on the measured benign class gets disabled and takes the count arm with it. A pick the audit cannot pair to a lane source is UNAUDITED and exits non-zero in its own class rather than reading as a pass, since a silent skip is the same failure the entry documents wearing a green. Both sides of every comparison are read at ONE layer -- git's own diff output for two commits in one repository -- because a comparison taking one side from the working tree and the other from git's normalized view lies toward MISMATCH in a checkout that carries CRLF against LF blobs, which this one does.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6085854Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6085940Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086035Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086121Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086208Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086294Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086440Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086537Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086623Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086832Z               "path": "docs/instruments/ir57/STATUS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6086922Z               "line": 1
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087008Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087089Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087181Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087274Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087371Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087510Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087724Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087815Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087899Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6087980Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088066Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088156Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088254Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088349Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088431Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088513Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088602Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088688Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088775Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6088884Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089051Z               "line": 516
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089337Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089428Z               "line": 532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089710Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089799Z               "line": 562
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6089942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090146Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090238Z               "line": 584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090519Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090611Z               "line": 638
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6090908Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091048Z               "line": 666
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091133Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091339Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091424Z               "line": 735
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091710Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091800Z               "line": 824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091887Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6091973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092087Z               "path": "crates/xtask/src/pickaudit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092172Z               "line": 877
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092259Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092430Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092516Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092607Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092687Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6092788Z       "id": "REQ-PICKER-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096304Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096419Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096510Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096600Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096686Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096787Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096873Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6096981Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097073Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097153Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097244Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097344Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097426Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097626Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097717Z               "line": 689
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6097897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098027Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098112Z               "line": 654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098198Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098289Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098371Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098459Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098554Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098692Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098781Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6098866Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099048Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099143Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099353Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099448Z               "line": 1187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099777Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6099935Z               "line": 1993
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100236Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100326Z               "line": 2113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100608Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100697Z               "line": 919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100788Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100870Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6100956Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6101045Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6101127Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6101219Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6101313Z       "id": "REQ-PICKER-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103105Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103261Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103357Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103510Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103600Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103695Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103776Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103879Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6103973Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104059Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104146Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104241Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104335Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104560Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104713Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104799Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104884Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6104969Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105057Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105152Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105251Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105333Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105424Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105519Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105613Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105824Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6105919Z               "line": 913
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106002Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106087Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106171Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106258Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106340Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106434Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6106528Z       "id": "REQ-PICKER-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6108931Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109176Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109318Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109403Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109498Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109599Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109689Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109784Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109876Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6109961Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110046Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110152Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110242Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110467Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110557Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110643Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110728Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110815Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110900Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6110995Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111086Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111173Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111262Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111363Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111454Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111658Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111745Z               "line": 1003
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111831Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6111914Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6112005Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6112091Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6112178Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6112333Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6112435Z       "id": "REQ-PICKER-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114341Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114444Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114534Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114624Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114711Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114801Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114886Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6114982Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115073Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115163Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115254Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115350Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115440Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115655Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115745Z               "line": 575
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6115912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116036Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116131Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116212Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116294Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116379Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116513Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6116599Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6120606Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6120712Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6120807Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6120902Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6120997Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121235Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121331Z               "line": 1950
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121738Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121841Z               "line": 1410
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6121923Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6122009Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6122090Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6122180Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6122257Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6122348Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6122447Z       "id": "REQ-PICKER-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125361Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125470Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125624Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125713Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125804Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125891Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6125981Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126076Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126168Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126258Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126343Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126434Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126529Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126777Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126873Z               "line": 7241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6126958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127150Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127244Z               "line": 7313
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127335Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127417Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127508Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127592Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127691Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127782Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127867Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6127961Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128046Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128143Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128332Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128424Z               "line": 27054
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128705Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128796Z               "line": 27407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6128882Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6129049Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6129186Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6129272Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6129359Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6129440Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6129568Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6130913Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131076Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131161Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131257Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131358Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131448Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131538Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131625Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131719Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131810Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131901Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6131983Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132078Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132173Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132255Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132344Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132435Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132526Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132613Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132696Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132783Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132870Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6132974Z       "id": "REQ-PICKER-BACK-NAV",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6135583Z       "title": "C-4 (REMOTE-TRUTH triage §C-4 #9): Backspace is a back() ALIAS across the picker — one keypress backs out one screen along the SAME reverse map Esc walks (model back(), complete for all screens incl. the C-3 ConfirmPurge), and from the kind layer it cancels the picker (Esc parity) — EXCEPT the two text-edit contexts, where Backspace stays CHAR-DELETE: CreateId entry (id_backspace) and the pick-list filter mode (filter_backspace). DELIBERATE: no empty-buffer fallthrough to back() in the text contexts — mixing delete and nav on one key invites miskeys mid-typing; Esc already backs out (the triage's optional extra, declined). Pure key routing in handle_key (picker/mod.rs) ahead of the per-screen arms; zero model change (the reverse map pre-existed). Red-first: Backspace on Confirm → PickExisting (pre-fix: dead key); on CreateId with a buffer → buffer shortens, screen unchanged; empty buffer → STILL no nav.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6135696Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6135831Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6135916Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136006Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136088Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136179Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136273Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136359Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136441Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136527Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136626Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136713Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6136917Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137013Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137099Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137185Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137266Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137357Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137456Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137547Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137638Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137719Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137823Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137905Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6137991Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138105Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138241Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138530Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138621Z               "line": 712
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138708Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138793Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6138873Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6139060Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6139145Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6139226Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6139347Z       "id": "REQ-PICKER-CHANGE-ADAPTER-FLOW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6141755Z       "title": "B-2 (F029, operator; LARGEST item): `ConfirmOption::ChangeAdapter` wrongly routes into the CREATE flow (Screen::CreateAdapter → CreateId → CreateHome → START, reenter_create(true)) — it re-prompts id + home and then STARTS the endpoint. Required: prompt ONLY the harness-adapter pick, apply the change to the perch record (update info.json.adapter via the existing write seam; an `<adapter>:<profile>` pick stamps the full option, composing with A-4), then RETURN to the endpoint's Confirm menu — NO id prompt, NO home prompt, NO start. FIX: a return-to-Confirm mode on the adapter-pick screen (flag or dedicated Screen::ChangeAdapterPick) skipping CreateId/CreateHome + the launch outcome. Unit the flow-state transitions + the record write. Shared-seam: touches picker flow state — run the full picker cluster. See triage B-2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6141856Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6141946Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142032Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142127Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142219Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142313Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142413Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142514Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142685Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142776Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142877Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6142971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143086Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143257Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143562Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143685Z               "line": 1610
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143776Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6143990Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144091Z               "line": 1628
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144177Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144435Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144530Z               "line": 1638
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144619Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144706Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144797Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144887Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6144986Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145084Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145173Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145263Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145355Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145450Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145665Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145760Z               "line": 1937
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6145939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146059Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146152Z               "line": 1184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146237Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146328Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146415Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146510Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146600Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146682Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6146800Z       "id": "REQ-PICKER-CHOOSE-DEDUP-ALL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148251Z       "title": "A4 (F028, operator #5): choose-project duplicate rows. model.rs:314-337 build_project_choices dedups the `Here: <run_cwd>` row only against the HEAD ref's dir (line 324) — an OLDER history ref with the SAME dir still renders, giving `Here: C:\\...\\projects` + `projects` as two rows for one project (operator screenshot). FIX: dedupe `Here` against ALL history dirs, and skip rest-rows whose dir == run_cwd when Here is present. Extend the model.rs:1847 choose-project test. See triage A4.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148355Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148503Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148590Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148679Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148768Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6148854Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149033Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149128Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149215Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149310Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149410Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149500Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149705Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149801Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149883Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6149973Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150149Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150245Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150335Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150426Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150512Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150612Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150702Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150903Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6150998Z               "line": 2579
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151089Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151175Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151265Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151350Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151435Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151568Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6151705Z       "id": "REQ-PICKER-CONTROL-LINE-STATUS-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153103Z       "title": "A2 (F028, operator #2): the picker confirm-panel 'controlled locally' line renders for OFFLINE endpoints. view.rs:425-436 builds control_line from ep.controlled with NO status gate; an offline endpoint with a stale controlled stamp shows 'controlled locally' (operator screenshot: hall-a offline + controlled locally). RENDER HALF (this REQ): control_line MUST be empty when status != Online. The upstream STICKY-stamp half (stamp survives client SIGKILL >=5min) is B3/REQ-PRESENCE-CONTROL-REAP-ON-EXIT. FIX: gate the render. See triage A2(a).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153207Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153298Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153384Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153474Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153564Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153656Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153756Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153850Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6153937Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154023Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154122Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154212Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154423Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154512Z               "line": 612
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154598Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154685Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154771Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154855Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6154947Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155037Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155123Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155213Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155305Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155452Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155658Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155747Z               "line": 1011
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155833Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155910Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6155996Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6156085Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6156167Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6156254Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6156366Z       "id": "REQ-PICKER-CONTROLLED-LOCAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159324Z       "title": "#3 local half: a LOCALLY-controlled endpoint renders CONTROLLED in its own node's picker. display_status() (crates/spt/src/picker/model.rs:415) derives Controlled ONLY from driven_by.is_some(), but the legacy LOCAL attach path left driven_by=None (the remote-only reading stated here was falsified by doyle ruling v3 2026-07-19 — driven_by names the controlling node, own included; KH 7.15 governs CLEARING it, not who may latch it) — so a locally-controlled endpoint of that era has driven_by=None + controlled=true, and local_rows (data.rs:220) never threads controlled into EndpointRow, so a locally-RC'd endpoint shows plain ONLINE in its own picker (remote rows are fine — gossip stamps controller_node=self, REQ-GOSSIP-CONTROLLED-ANY; the asymmetry is the bug). Fix: EndpointRow gains controlled:bool (local: rec.controlled; remote: controller_node.is_some()); display_status -> Controlled when driven_by.is_some()||controlled; desc pane says 'controlled locally' when the driver is unnamed. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159486Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159575Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159660Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159741Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159833Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6159918Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160003Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160100Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160180Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160270Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160361Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160505Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160704Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160791Z               "line": 7151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6160971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161082Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161181Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161468Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161605Z               "line": 623
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161895Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6161986Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162076Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162156Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162236Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162318Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162413Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162508Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162589Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162676Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162766Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162860Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6162942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163061Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163156Z               "line": 2086
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163242Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163448Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163538Z               "line": 955
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163814Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6163973Z               "line": 972
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164057Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164143Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164226Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164312Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164391Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164472Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6164588Z       "id": "REQ-PICKER-CURRENT-DIR-LABEL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6166804Z       "title": "A-2/A-3 (F029, operator, semantic pair): the Choose-project rows must self-identify the CURRENT DIR. build_project_choices (picker/model.rs:322-352). A-2: when the run cwd IS already a history dir the `Here:` row is (correctly) suppressed by the dedup (REQ-PICKER-CHOOSE-DEDUP-ALL), but the matching history row rendered bare `r.display` with no cwd affordance — mark it `<display> (CURRENT DIR)`. A-3: the not-in-history current-dir row changes from `Here: <run_cwd>` to `CURRENT DIR --> <project>`, deriving the display the SAME way the history refs do (folder tail; honest fallback to the raw path when underivable). `cwd` payload unchanged. Grep-tests rule: 3 `starts_with(\"Here: \")` asserts (model.rs) + a `Here: /here` render assert (view.rs) are behavior assertions on the OLD label. See triage A-2/A-3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6166946Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167040Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167126Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167216Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167310Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167386Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167487Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167578Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167668Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167753Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167850Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6167939Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168140Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168230Z               "line": 385
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168316Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168517Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168640Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168722Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168812Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6168893Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169047Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169141Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169237Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169313Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169400Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169493Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169580Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169666Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169832Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6169926Z               "line": 2552
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170008Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170097Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170177Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170267Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170359Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170435Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6170548Z       "id": "REQ-PICKER-FORK-LABEL-CWD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6171479Z       "title": "B-3 (F029, operator): the confirm-panel `Fork endpoint` option label is static and says nothing about WHERE the fork lands. A fork runs in the picker's launch cwd (run_cwd); the label must state that dir honestly: `Fork endpoint here --> <current dir>`. Anchor picker/view.rs confirm_option_label (was `fn(opt)->&'static str`). Make the label model-aware for the dir-relative options. See triage B-3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6171574Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6171670Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6171755Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6171841Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6171929Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172018Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172108Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172200Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172286Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172375Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172517Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172608Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172810Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172906Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6172998Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173087Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173177Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173279Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173374Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173478Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173612Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173698Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173793Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173879Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6173974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174088Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174190Z               "line": 1231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174279Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174374Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174471Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174561Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174656Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174737Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6174848Z       "id": "REQ-PICKER-HISTORY-FRESH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6175956Z       "title": "The `spt endpoint run` picker shows project history for FRESH endpoints (operator-raised v0.12.0 real-harness finding). Symptom: a fresh endpoint shows no project history in the picker. ROOT TBD — investigate the project-history loader (v0.10.0 PICKER-2, picker/data.rs) before fixing: distinguish a real loader bug from 'fresh = no history yet' semantics. (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176062Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176157Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176243Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176319Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176405Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176495Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176590Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176686Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176778Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6176867Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177021Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177111Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177330Z               "path": "crates/spt-store/src/projderive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177422Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177506Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177595Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177681Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177762Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177856Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6177946Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178037Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178161Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178256Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178347Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178433Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178552Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178643Z               "line": 1344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178729Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178809Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6178899Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6179072Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6179157Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6179238Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6179367Z       "id": "REQ-PICKER-KEY-GATE-LAUNCH-CAPABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6180861Z       "title": "B-1 (F029, operator): the `h` (headless start) / `s` (shortcut) keybinds fire from broad picker contexts (mod.rs handle_confirm_key / ChooseProject / Resume) regardless of whether the highlighted row would LAUNCH the endpoint. Restrict both to launch-capable highlights: (a) `Start now` in the immediate-start case (should_offer_project_choice == false), (b) a Choose-project row, (c) a Resume-from-history row. The footer hint line must render `h`/`s` ONLY when actually live (hint truth = availability truth). FIX: gate the key handlers on (screen, highlighted-option), unit the gate as a pure matrix. See triage B-1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181028Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181113Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181200Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181286Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181371Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181456Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181553Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181644Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181734Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181815Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6181916Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182011Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182282Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182373Z               "line": 1330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182545Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182668Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182755Z               "line": 1510
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182836Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6182926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183053Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183153Z               "line": 1525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183238Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183351Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183442Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183548Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183642Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183737Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183820Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6183910Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184004Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184096Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184309Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184402Z               "line": 1860
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184487Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184691Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184783Z               "line": 1203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6184868Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6185006Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6185098Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6185182Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6185268Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6185356Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6185464Z       "id": "REQ-PICKER-LIST-SCROLL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194179Z       "title": "EVERY LIST VIEW IN THE ENDPOINT PICKER SCROLLS TO KEEP THE CARET VISIBLE. A selection the operator cannot see is a selection they cannot make: when a list is longer than the terminal, moving the caret past the last drawn row currently walks it off the bottom of the screen, leaving the highlighted row unrendered while the keys still move it — so the picker is taking input about a choice it is not showing (releases#65, reported from the field with a screenshot). THE REQUIREMENT IS ON ALL LIST VIEWS, NOT THE ONE THAT WAS REPORTED. Stated that way at mint because the reporter's own words ask for it and because the failure is structural rather than incidental: every view that draws a bounded window over an unbounded list has the same gap, so fixing the reported view alone leaves the identical defect behind every other list a later operator happens to fill up, with nothing failing until they do. A SCROLLED VIEW IS ONE CONCERN AND BELONGS IN ONE PLACE — a single primitive every list view draws through, never a per-view calculation repeated until one of them is subtly different. THE MECHANISM IS STATED BY REPLACEMENT AFTER RECON (this sentence previously described a hand-rolled offset derivation over (caret index, item count, visible rows), which was written before the render path was read and is NOT what the picker's shape calls for): the views render with ratatui, and a plain stateless list widget has no offset at all — it draws from the first item and stops at the bottom of the area, which is exactly why a caret below that line is never drawn while the keys keep moving it. The primitive therefore HANDS THE CARET OVER AS LIST STATE and lets the widget scroll to keep it visible; re-deriving the offset by hand beside a widget that already does it correctly would be a second implementation to keep in agreement, which is the drift this requirement exists to prevent rather than an instance of preventing it. WHAT THE PRIMITIVE MUST BE GIVEN IS THE CARET'S ROW AMONG THE RENDERED ITEMS, NOT A MODEL CURSOR, and this is the subtle half: the endpoint list interleaves group headers and subnet sub-lines as NON-SELECTABLE display rows, so the caret's row index runs ahead of the cursor by however many headers precede it. Handing over the cursor would scroll short by exactly the number of groups above the caret — invisibly correct on an ungrouped list, and wrong on the only list long enough to need scrolling at all. The caret stays visible at BOTH ENDS and across every way it can move. Gate: impl — the one caret-aware draw primitive, and EVERY picker list view going through it (asserted by there being no stateless list render left); unit — over a viewport deliberately SHORTER than the list, the caret's row is drawn with the caret at the first row, the last row and each step across both boundaries, the grouped list still reaches its last row (the header-offset property, which a cursor-indexed implementation fails), and list views beyond the reported one are covered too; the evidence is buffer-level through the picker's existing TestBackend seam, which is this module's established gate, so no separate int stage is owed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194399Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194484Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194579Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194661Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194760Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194851Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6194952Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195042Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195133Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195218Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195314Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195409Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195658Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195751Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195838Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6195921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196038Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196129Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196400Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196495Z               "line": 182
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196814Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196910Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6196986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197182Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197268Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197359Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197554Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197644Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197725Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6197917Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198007Z               "line": 358
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198278Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198373Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198650Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198730Z               "line": 667
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6198859Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199143Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199230Z               "line": 699
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199319Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199515Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199615Z               "line": 730
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199734Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199839Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6199925Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200015Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200163Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200258Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200344Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200431Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200525Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200616Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200816Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200912Z               "line": 809
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6200998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201202Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201289Z               "line": 850
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201573Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201659Z               "line": 878
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201749Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201829Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6201919Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6202010Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6202092Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6202182Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6202286Z       "id": "REQ-PICKER-NODE-GROUPING",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6203656Z       "title": "Bug #13: the endpoint run Subnet tab shows a machine once PER shared subnet (subnet_rows data.rs:253 iterates per-subnet, groups by subnet:node, no cross-subnet dedup). Fix: dedup by (node, endpoint_id) across the subnet loop, collect the set of shared subnet names per endpoint, emit one group per MACHINE (group = node_display) with its shared subnets listed beneath the machine name; reconcile per-endpoint status across subnets (most-alive). Couples REQ-ENDPOINT-LIST-PALETTE (both edit subnet_rows). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #13.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6203760Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6203845Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6203933Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204018Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204112Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204192Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204278Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204420Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204509Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204600Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204687Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204776Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6204968Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205054Z               "line": 373
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205340Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205425Z               "line": 373
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205507Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205673Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205759Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205851Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6205946Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206141Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206237Z               "line": 936
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206316Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206398Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206471Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206561Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206703Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206795Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206876Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6206960Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6207050Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6207131Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6207247Z       "id": "REQ-PICKER-OFFLINE-NO-VIEW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208199Z       "title": "A3 (F028, operator #3): 'View now (read-only)' is offered for OFFLINE endpoints. model.rs:1030 offline branch of confirm_options is vec![Start, View] — View is meaningless with no live PTY. FIX: offline set = [Start] (+ the existing Resume/ChangeAdapter/Instantiate/Fork/Shortcut tail). Update the view.rs options tests. See triage A3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208338Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208429Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208509Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208595Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208686Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208773Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6208857Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209025Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209111Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209205Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209299Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209386Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209593Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209683Z               "line": 1281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209765Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209850Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6209936Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210022Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210118Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210208Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210299Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210380Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210475Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210561Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210762Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210856Z               "line": 1153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6210938Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6211081Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6211171Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6211258Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6211339Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6211419Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6211529Z       "id": "REQ-PICKER-ONLINE-ACTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213089Z       "title": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint — Attach, NOT 'Start now' (operator-raised v0.12.0 real-harness finding). Symptom: the picker offers 'Start now' for endpoints that are already online. ROOT TBD — investigate the status→action mapping (v0.10.0 PICKER-1 four-state status, picker/model.rs): is it reading live/online state correctly, or rendering stale/wedged broker state (i.e. partly a symptom of the broker wedge / status=online latch)? Fix so online → Attach. (v0.12.1)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213190Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213285Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213371Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213456Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213549Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213638Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213729Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213819Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213910Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6213995Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214095Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214192Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214391Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214493Z               "line": 1286
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214578Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214667Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214752Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214838Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6214928Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6215017Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6215103Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6215238Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6215332Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6215422Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219470Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219570Z               "line": 2393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219657Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219741Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219869Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6219960Z               "line": 2407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220049Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220220Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220306Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220387Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220482Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220563Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6220693Z       "id": "REQ-PICKER-PROJECT-DISPLAY-NAME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223106Z       "title": "A1 (F028, operator #1/#4/#6-display): `github-com-*` 'ghost' project entries are NOT phantoms — project_id_for_dir (spt-store/src/project.rs:64) derives ids from the git remote slug BY DESIGN (REQ-STORE-1 cross-machine sync): `github.com/SaberMage/spt-core` -> `github-com-sabermage-spt-core`. The ref is truthful; the BUG is presentation — the raw slug renders as the DISPLAY NAME everywhere (confirm-panel history view.rs:415-419, choose-project labels model.rs:314-337, resume-row titles, endpoint-list project column via latest_project_ref data.rs:417), which no operator recognizes as 'spt-core'. FIX: keep the slug as the KEY, render a friendly display name — the repo tail (spt-core) reusing the disambiguate_project_ids (model.rs:346) suffix mechanism for collisions. One shared display-name seam across all four surfaces. See triage A1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223297Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223387Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223479Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223564Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223659Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223740Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223850Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6223940Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224031Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224174Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224279Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224380Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224598Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224690Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6224980Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225077Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225422Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225516Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225601Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225807Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225896Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6225992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226197Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226288Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226374Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226578Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226665Z               "line": 416
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6226956Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227051Z               "line": 853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227333Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227432Z               "line": 589
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227566Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227653Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227742Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227828Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6227930Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228019Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228108Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228194Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228295Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228386Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228595Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228729Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6228901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229099Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229186Z               "line": 637
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229272Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229472Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229569Z               "line": 1362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229653Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229854Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6229949Z               "line": 1791
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230236Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230325Z               "line": 1807
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230618Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230713Z               "line": 1159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230799Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230881Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6230966Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6231051Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6231133Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6231219Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6231347Z       "id": "REQ-PICKER-PROJECT-HISTORY-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234020Z       "title": "#1: picker project history is derived from sessions.log cwds (newest->oldest, deduped by project_id_for_dir) UNION context-store branches, EXCLUDING owlery-internal paths (any cwd under spt_home()/owlery) everywhere a project is displayed or inferred. Fixes three stacked defects (crates/spt/src/picker/data.rs): (1a) project_history_for (data.rs:372) reads ONLY context-store p-* branches, which are empty on this box -> history []; (1b) the fallback origin project (data.rs:207) is derived from info.json.cwd = latest-boot-cwd (rewritten every rebind), not origin; (1c) psyche-host sessions bind owlery-internal cwds that pollute history. Full DIRS stay available in the model (feature #5 needs them). PROJECT REPRESENTATION RULING (operator 2026-07-03): project IDs ONLY, EVERYWHERE incl local display; on ID collision disambiguate minimally via a PURE disambiguate_project_ids(entries)->display-names fn (append one-level-up parent folder and/or root drive letter, e.g. 'spt-core (projects)' vs 'spt-core (D:)'). See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234134Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234219Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234305Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234396Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234482Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234572Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234669Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234758Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234839Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6234930Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235021Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235120Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235326Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235425Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235502Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235594Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235726Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235815Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6235906Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236006Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236085Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236175Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236267Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236353Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236557Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236653Z               "line": 1320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236734Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236867Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6236953Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6237039Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6237128Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6237207Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6237325Z       "id": "REQ-PICKER-PURGE-SHORTCUT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6240918Z       "title": "C-3 (REMOTE-TRUTH triage §C-3 #8): the pick-existing list gains an `x` purge shortcut — on an OFFLINE LOCAL highlight, `x` opens a small in-TUI confirm screen (Screen::ConfirmPurge, the B-2 ChangeAdapterPick shape) and Enter purges via the ONE existing purge core `cmd_endpoint_purge(id, yes=true, force=false)` — NEVER the core's stdin [y/N] (it fights the picker's raw mode; the confirm screen IS the confirm). The shortcut INHERITS both purge gates (offline-only + node-local, cli.rs cmd_endpoint_purge / CONTEXT:189): gated-off presses stay on the list and FLASH WHY (online → offline-only, remote → local-only). force=false is deliberate — the model gate is advisory; the core's own offline check is the authority, and a race to online between gate and purge must REFUSE, never stop-then-purge. After a successful purge the picker STAYS (inline outcome, like Shortcut/ChangeAdapter): the row leaves the in-memory list (remove_endpoint, cursor re-clamped) + flash PURGED:{id}. Hint truth (B-1/F029 discipline): the pick legend renders `x purge` ONLY when purge_key_live() — the same predicate the handler gates on. Red-first: purge outcome reachable ONLY from an offline LOCAL highlight (online/remote → no screen change + why-flash).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241094Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241183Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241273Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241355Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241450Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241535Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241630Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241727Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241813Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241902Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6241994Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242089Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242337Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242427Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242714Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242809Z               "line": 310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6242981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243090Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243185Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243476Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243563Z               "line": 827
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243649Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243851Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6243942Z               "line": 1194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244235Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244327Z               "line": 1202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244417Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244665Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244760Z               "line": 1218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244846Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6244937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245051Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245141Z               "line": 1227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245418Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245504Z               "line": 414
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245844Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6245929Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246014Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246100Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246183Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246267Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246361Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246456Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246537Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246626Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246725Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246822Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6246908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247021Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247112Z               "line": 2824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247393Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247485Z               "line": 2866
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247575Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247776Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247861Z               "line": 2882
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6247947Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6248028Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6248114Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6248195Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6248285Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6248425Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6248533Z       "id": "REQ-PICKER-PURGE-STRUCTURED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6251650Z       "title": "RC-RENDER-TRUTH W3 (ADR-0043 decision 3, hertz stale-glyphs RCA leg 3 P0): core verbs invoked from inside an active TUI return STRUCTURED outcomes and write NOTHING to the terminal — the picker purge path calls a structured-outcome purge core (no stdout/stderr under the live alternate screen) and remains the sole renderer via model.flash (today cmd_endpoint_purge writes diagnostics/PURGED to stderr while ratatui owns the alt screen, mutating the physical screen behind the previous-Buffer diff baseline => later draws skip 'already blank' cells and stderr glyph fragments persist — the x-purge symptom). Baseline-desync regression REQUIRES a stateful/recording backend (pure TestBackend view snapshots cannot catch it). Gate: impl — structured purge outcome + silent-under-TUI routing; unit — purge core emits no terminal bytes in structured mode, picker converts outcomes to flash; int — recording backend: draw ConfirmPurge, inject an external display mutation, transition back => next frame reconstructs the COMPLETE target screen; doc — ADR-0043.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6251762Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6251852Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6251943Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252025Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252114Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252195Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252287Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252382Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252477Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252568Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252796Z               "path": "docs/adr/0043-terminal-render-lifecycle.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252883Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6252968Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253106Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253188Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253279Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253369Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253654Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253745Z               "line": 24386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6253913Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254027Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254118Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254445Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254536Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254615Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254705Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254786Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254873Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6254972Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255057Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255259Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255353Z               "line": 642
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255445Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255525Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255616Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255701Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255798Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255883Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6255969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256084Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256179Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256259Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256345Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256433Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256517Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256603Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256685Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6256794Z       "id": "REQ-PICKER-REMOTE-WAKE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263099Z       "title": "C-2 (REMOTE-TRUTH triage §C-2 #4 + addendum @3442ce5): a REMOTE suspended picker row offers `Wake now` — waking the endpoint THROUGH its owning node's rest edge (the A-2 daemon resume leg) — instead of a bare `Start now` that silently cold-starts a COLLIDING LOCAL instance of a remote id (node-anchored identity violation, ADR-0003/0023). ROOT (certain): confirm_options collapsed Suspended into the offline action set = [Start,…]; on a REMOTE row `Start` bakes Outcome::Run with NO node → picker dispatch → cmd_endpoint_run creates a fresh LOCAL perch of the remote id (model.rs confirm_terminal / mod.rs dispatch). Remote rows are only Online/Suspended, so remote+offline == remote-suspended. FIX: confirm_options splits the offline arm on is_local — remote → vec![Wake] (a new ConfirmOption::Wake), local → vec![Start] UNCHANGED; confirm_terminal(Wake) → a new Outcome::Wake{id,node} carrying the RAW node hex; dispatch routes crate::cli::cmd_endpoint_wake_remote(id,node) → cmd_rest(id@node, RestEvent::Wake) = the EXISTING WAN rest arm (dispatch_wan_rest → wan_rest), and A-2's resume leg revives the session async (the full loop the operator wanted). `Instantiate locally` stays the separate deliberate-copy verb. ADDENDUM correction (a): EndpointRow.node is the LOSSY DISPLAY string (node_label_display = 'LABEL (prefix…)'), which node_qualifier_matches (full-hex-prefix|exact-label) CANNOT match — a dead Wake; so a NEW EndpointRow.node_key: String carries the raw ResourceRow.node hex (empty for local rows — Wake is remote-only) threaded through from_resource_row + the 4 literal ctors. CO-GATE (b, addendum): ChangeAdapter (was `offline`-gated) is gated `offline && is_local` — write_adapter_change → resolve_perch_path(Infer) → mutate_info rewrites a LOCAL perch record, so offering it on a remote suspended row is the SAME colliding-local-write-for-a-remote-id class (the Start twin); a remote node's adapter is not ours to rewrite from here. Red-first: a remote suspended row → confirm_options has Wake NOT Start NOT ChangeAdapter, and confirm_terminal(Wake) → Outcome::Wake{node==raw hex} (never a local Outcome::Run); a LOCAL offline row is UNCHANGED (Start + ChangeAdapter).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263332Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263457Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263576Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263661Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263753Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263839Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6263929Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264024Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264172Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264258Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264348Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264445Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264538Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264625Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264731Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264830Z               "line": 7597
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6264920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265124Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265222Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265518Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265608Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265899Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6265990Z               "line": 599
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266171Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266286Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266377Z               "line": 1276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266462Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266548Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266664Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266757Z               "line": 1299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6266978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267096Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267187Z               "line": 1404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267278Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267364Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267453Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267543Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267639Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267732Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6267985Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268080Z               "line": 1202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268170Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268257Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268347Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268432Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268523Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268619Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268709Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268828Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6268915Z               "line": 2422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269286Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269377Z               "line": 2444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269462Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269663Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269763Z               "line": 2464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269850Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6269935Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6270025Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6270107Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6270198Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6270278Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6270400Z       "id": "REQ-PICKER-RESUME-CONTEXT-PANEL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6271608Z       "title": "#6: the 'Resume from history' view keeps the endpoint's 'Confirm selection' top panel and swaps ONLY the bottom panel to 'Resume from a prior session' — the user stays contextually informed about what they're picking (today the resume view replaces the whole screen). crates/spt/src/picker/view.rs (resume screen) + model screen state. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #6.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6271707Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6271799Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6271884Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6271974Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272114Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272208Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272308Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272410Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272500Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272584Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272678Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272774Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6272977Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273077Z               "line": 712
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273165Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273253Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273344Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273431Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273530Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273625Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273717Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273802Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273897Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6273989Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274197Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274288Z               "line": 1311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274380Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274465Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274555Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274637Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274728Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274808Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6274938Z       "id": "REQ-PICKER-SHORTCUT-LABEL-FILENAME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6276550Z       "title": "B-4 (F029, operator): the confirm-panel shortcut option label is a static `New/Update spt-<id> shortcut (s)` placeholder — it should name the REAL file it writes: `Set shortcut here --> <current dir>/<shortcut-name>` where <shortcut-name> is the EXACT on-disk filename (incl. extension). The name must be produced by the SAME function that names the file in shortcut creation (picker/shortcut.rs shortcut_filename over the manifest-resolved basename) so label and writer can NEVER drift. Anchor picker/view.rs confirm_option_label. See triage B-4.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6276694Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6276788Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6276875Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6276960Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277051Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277136Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277233Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277322Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277413Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277500Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277595Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277684Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277891Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6277980Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278070Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278155Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278246Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278330Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278429Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278521Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278607Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278692Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278783Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6278874Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279044Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279160Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279312Z               "line": 1231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279398Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279484Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279570Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279660Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279741Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279823Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6279942Z       "id": "REQ-PICKER-START-PROJECT-CHOICE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6281705Z       "title": "#5: after 'Start now' in the endpoint picker, swap the bottom Options panel to a 'Choose project' list: (1) the endpoint's most recent project dir, (2) 'Here: <dir>' — the picker's launch cwd (only if different), (3) all other project-history dirs newest->oldest. Fire the step ONLY when (A) the run cwd mismatches a singular history entry, or (B) history has >1 entry; otherwise start immediately (today's behavior). Depends on REQ-PICKER-PROJECT-HISTORY-TRUTH (needs full DIRS from sessions.log, owlery-internal exclusion applies). Start-now is local-only (no gossip). See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #5.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6281881Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6281967Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282058Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282143Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282229Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282316Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282407Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282502Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282582Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282674Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282764Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282854Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6282940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283055Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283148Z               "line": 1546
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283433Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283523Z               "line": 1569
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283609Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283695Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283776Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6283919Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284014Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284109Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284195Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284282Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284382Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284466Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284663Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284762Z               "line": 2527
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6284978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285096Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285188Z               "line": 2552
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285469Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285560Z               "line": 2594
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285837Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6285932Z               "line": 1260
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286016Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286101Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286182Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286272Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286352Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286442Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6286543Z       "id": "REQ-PICKER-UX-V013",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288074Z       "title": "`spt endpoint run` picker UX (v0.13.0 operator dogfooding): (1) SKIP the first screen — open directly on 'Pick existing'; `n` jumps to 'Create new'. (2) AUTO-ATTACH after both Start-new AND Resume-from-history (both currently don't attach and show no stdout); add an `h` shortcut to run headless (no attach). (3) 'controlled by' shows the node NAME (node_label_display), not the raw hex. (4) Clean up Start-new output — drop the Rust `pid=Some(142748)` leak and the 'harness binds its perch on startup' internals; user-friendly, not a process log. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288220Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288312Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288398Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288489Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288583Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288668Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288754Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6288848Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289047Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289134Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289224Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289324Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289410Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289496Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289586Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289677Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289772Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289858Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6289948Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6290031Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6290120Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6290225Z       "id": "REQ-PICKER-WINDOW-TITLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6291612Z       "title": "B-5 (F029, operator): `spt endpoint run`'s interactive picker window/tab is untitled — hard to find among many terminals. Set the window/tab title to `SPT Endpoint Picker`. Anchor picker/mod.rs:88 setup_terminal (crossterm SetTitle in the execute! chain). Set-only is acceptable (crossterm can't cheaply read the prior title to restore). Applies ONLY to the interactive picker path — a non-interactive/headless bringup (REQ-HOST-RUN-1) must NOT retitle the operator's terminal. See triage B-5.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6291713Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6291798Z         "impl"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6291888Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6291970Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292061Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292159Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292247Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292394Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292483Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292576Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292661Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292861Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6292952Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293042Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293123Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293206Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293296Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293390Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293525Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293615Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293699Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293794Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293885Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6293970Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6294059Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6294140Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6294227Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6294331Z       "id": "REQ-PID-ROLE-EVIDENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303011Z       "title": "THE RECORDED PID MUST CARRY WHAT IT MEANS. `info.pid` has two incompatible meanings decided by write path, and every reader has been guessing: the `api listen` path records a process that GENUINELY HOLDS the endpoint (its death IS the endpoint's relay death), while the `api bind` path records the announcing CLI, which is EXPECTED TO EXIT within seconds and whose death means NOTHING — the hosting life it announced (a broker PTY session) is not recorded anywhere in the row. LIVE MEASUREMENT (todlando, HFENDULEAM 2026-07-27, the finding that forced this mint): todlando pid 22588 DEAD, doyle pid 45160 DEAD, deployah pid 29176 DEAD — all controllable=true, state=live_agent, status=online, and all three GENUINELY ALIVE AND WORKING (the measurement was taken by one of them, messaging another) — against hertz pid 11216 ALIVE and mobile-gw pid 46152 ALIVE, which are real `api listen` relays. The split is by adapter integration pattern (claude-spt binds and exits; omp-spt/mobile hold a listener), NOT by anything a reader can see in the record. CONSEQUENCE ALREADY PAID: two proposed fixes for the emphasys convergence gap were BOTH falsified pre-build on this fact — oracle-first convergence, and carry-forward scoped to 'earning pid alive' — each would have converged three live agents node-wide. Both were keyed on a pid whose meaning they could not read. FIX: stamp the role at the seam that writes the pid — `relay` on the listen path, `binder` on every bind path — never inferred at read time. Absent ⇒ legacy row ⇒ NO KNOWLEDGE, and every consumer fails toward alive (inheritance stands, convergence never fires); such rows heal at their next re-bind. Consumers re-key on it: relay-death convergence fires only on `relay`, and the controllable carry-forward drops a stamp only when a prior `relay` pid is provably Gone. CLASS: a claim keyed on the wrong thing (kin: `is_perch_alive` reading a status FIELD as hosting topology; the inherited capability stamp routing a liveness proof) — the cure is to make the record SAY the thing rather than have readers infer it. AUDIT RIDER (doyle, required in the doc stage since convergence re-keys on this field): enumerate which row classes reach the convergence branch under the new key — fresh NonAgent/None rows, shell instances, gateway listens — and pin the answer structurally, not just for tonight's node. Gate: doc — the record-shape doc carries the field, the two meanings it ends, the legacy/no-knowledge rule, and the audit-rider enumeration; impl — the field on InfoJson stamped from the entry path at the bind seam, plus both consumer re-keys; unit — the role-stamp table over the three hosting authorities, the carry-forward table incl. the claude-spt-shaped NEGATIVE (binder-role dead pid + Some(true) + listener re-bind ⇒ inheritance STANDS, row never routes to convergence), and the convergence role gate incl. the legacy-absent row; int — the synthetic emphasys template (relay-role + dead pid/parent + valid birth stamp + listener-only re-bind ⇒ derives fresh ⇒ routes to convergence ⇒ oracle Gone ⇒ converged) with a BrokerPty sibling that re-asserts fresh and is untouched.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303221Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303307Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303402Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303507Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303597Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303687Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303775Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303870Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6303965Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304109Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304193Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304302Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304397Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304483Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304572Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304657Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304753Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304845Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6304943Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305158Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305248Z               "line": 752
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305539Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305635Z               "line": 406
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6305925Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306007Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306098Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306293Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306385Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306718Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306812Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306899Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6306985Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307094Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307193Z               "line": 698
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307279Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307369Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307453Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307582Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307682Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307777Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6307867Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308011Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308106Z               "line": 409
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308187Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308274Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308359Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308449Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308550Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308641Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308840Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6308932Z               "line": 1334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309312Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309408Z               "line": 1363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309703Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309792Z               "line": 1411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309879Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6309968Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6310058Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6310139Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6310230Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6310315Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6310419Z       "id": "REQ-PLATFORM-MUSL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6312875Z       "title": "MUSL-TIER W2 (register the musl platform, self-IDENTIFY): add x86_64-unknown-linux-musl to the W1 registry — a current_platform() cfg arm (target_arch=x86_64, target_os=linux, target_env=musl -> the musl triple, NO more 'unknown' fallback), asset name spt-x86_64-linux-musl, triple-map entry. PROVEN (doyle /diagnose 2026-07-08, backlog #14): the current tree builds+runs static musl with ZERO source changes (rustls not openssl; aws-lc-sys+bundled-sqlite clean under musl-gcc; openpty; DNS/HTTPS works statically) — so W2 is registry DATA + cfg + asset map, NO dependency changes. Gate: a musl-built spt self-reports x86_64-unknown-linux-musl (not 'unknown'); registry-membership unit (the cfg arm is cross-target, unit the registry not the arm); build the musl target in-gate (kitsubito toolchain) and assert current_platform.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6312989Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313080Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313171Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313251Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313352Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313438Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313533Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313623Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313715Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313809Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313900Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6313996Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314205Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314296Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314601Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314693Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314777Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6314928Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315010Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315099Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315193Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315289Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315370Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315456Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315551Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315637Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315841Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6315938Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316071Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316277Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316371Z               "line": 780
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316461Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316543Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316634Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316715Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316800Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316887Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6316996Z       "id": "REQ-PLATFORM-REGISTRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320277Z       "title": "MUSL-TIER W1 (target-triple centralization, behaviour-NEUTRAL refactor): ONE authoritative platform registry from which current_platform(), KNOWN_TARGET_TRIPLES, the applyhost cross-platform 'other' logic, and the asset-name<->triple map all derive. ROOT: the target triple x86_64-unknown-linux-gnu + the implicit 'exactly 2 platforms' assumption are hardcoded across ~6 sites (release.rs current_platform cfg + KNOWN_TARGET_TRIPLES, applyhost.rs:740-743 win/linux binary if/else, xtask asset map, release.yml), so adding any platform (musl, future arm64) is a scattered edit. FIX: a data-driven registry (candidate: SUPPORTED_PLATFORMS const table of {triple, asset_name}) + generalize applyhost 'other' to 'every registered platform except current_platform()'. gnu+windows behaviour BYTE-IDENTICAL — the existing release/update/apply/propagate suites stay green (that is the gate). DESIGN FORK (doyle rules pre-dispatch): enum vs const-table; applyhost N-platform generalization; current_platform stays cfg->triple but output must be a registry member, loud 'unknown' fallback kept.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320386Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320472Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320560Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320646Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320732Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320814Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320913Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6320999Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6324914Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325022Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325127Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325305Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325541Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325631Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6325935Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326030Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326326Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326416Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326706Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326799Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326870Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6326956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327065Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327161Z               "line": 1655
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327246Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327327Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327413Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327500Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327656Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327748Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327838Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6327917Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328019Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328115Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328322Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328413Z               "line": 750
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328759Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328846Z               "line": 760
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6328935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329226Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329321Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329404Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329494Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329578Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329665Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329747Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329832Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6329946Z       "id": "REQ-POOL-CLAIM-TREE-MATCH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6332441Z       "title": "POOL-CLAIM MUST REFUSE BEFORE WRITING WHEN --POOL BELONGS TO A DIFFERENT GIT WORKTREE THAN THE CALLER'S CWD, UNLESS THE CALLER EXPLICITLY OPTS INTO THE SANCTIONED SEQUENTIAL TAKEOVER WITH --foreign-pool. The claim verb harvests owner_tree, branch, and base from cwd; an accidental crossing therefore writes a confidently wrong ownership record and reports success. A deliberate crossing is required by the build guard's own takeover remedy: it remains cwd-authored so the arriving lane becomes the owner, but the flag and diagnostic make that identity source loud. The guard's printed cross-tree pool-claim remedies carry the flag, and an executable test proves the verb admits that exact shape. This validates identity harvest only: pool-claim still writes without adjudicating admission, and every ownership enforcement arm remains in the subsequent build (IR-42). Default-refusal discovery resolves the pool's worktree from its nearest existing ancestor, including before the pool exists. (IR-56)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6332551Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6332642Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6332723Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6332818Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6332915Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333009Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333114Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333215Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333304Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333390Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333535Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333624Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333827Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6333924Z               "line": 3078
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334009Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334094Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334181Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334277Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334371Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334462Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334549Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334634Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334724Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334811Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6334901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335005Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335096Z               "line": 3172
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335263Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335392Z               "path": "crates/xtask/tests/pool_claim.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335479Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335568Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335649Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335740Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335897Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6335982Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6336063Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6336182Z       "id": "REQ-POOL-FOREIGN-TREE-REFUSED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342109Z       "title": "A SOURCE TREE MUST NOT SILENTLY BUILD INTO A CARGO TARGET DIRECTORY THAT BELONGS TO ANOTHER SOURCE TREE. Two trees sharing one pool overwrite each other artifacts -- measured, not inferred: two packages of the same name and version built from two DIFFERENT paths resolve to ONE build-script output dir. In the v0.51.0 BAROMETER W1/H1 window that fabricated an E0308 in a gate lane which vanished on re-run, a red belonging to neither tree. THE REFUSAL KEYS ON THE RELATIONSHIP, NEVER ON A PATH: the incident that motivated the filing was reached by CARGO_TARGET_DIR pointed at the primary checkout, a directory no path-shaped rule about .worktrees/ would have covered, and a path rule also leaves the primary checkout target as the one unowned pool every agent can name from memory. THE HARM IS INTERLEAVING, NOT SIMULTANEITY -- cargo already holds an exclusive .cargo-lock for a build duration, so two builds are never literally concurrent; what bit was one lane artifacts being invalidated by another between that lane own steps. So the unit of ownership is the LANE, and a lease keyed on a cargo process would be stale seconds after every claim, making every crossing a takeover and the refusal arm UNREACHABLE -- a gate whose failure signature is silence, refused on that evidence. CLAIM AND ENFORCEMENT ARE SPLIT: the lane claim is written at lane start by the rig and names a long-lived holder (pid plus pid_started_at, because a pid alone is unsound across a reboot and a recycled pid would read as a live lane forever); the build script never claims, only enforces. STALENESS IS PROVEN BY THE PROCESS TABLE WITH THE BIRTH STAMP -- holder absent, or present with a mismatched birth -- and mtime or any derived view never counts; UNKNOWN IS NOT STALE, so an unresolvable holder proceeds with a warning and is neither taken over nor refused. A stale holder is a LOUD TAKEOVER rather than a refusal, because sequential sharing is the cheap correct case and refusing it would demand a pool per lane (30+ worktrees at 7-15 GB measured = 210-450 GB, several times the disk the incident was about). An OWNERLESS pool imprints its first builder and proceeds -- a developer own fresh target is never refused -- while an imprinted pool with NO lane claim refuses a foreign tree and prints the claim command, which is how the discipline gap becomes loud instead of permissive. The escape hatch is an env var and prints EVEN WHEN IT WORKS: a silent override would reproduce the original incident exactly.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342272Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342405Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342492Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342582Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342667Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342753Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342845Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6342939Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343040Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343235Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343330Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343412Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343494Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343578Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343688Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343785Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343878Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6343965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344090Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344184Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344279Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344484Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344574Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344654Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344741Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344889Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6344974Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345071Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345166Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345256Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345342Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345442Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345533Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345743Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345833Z               "line": 741
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6345923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346166Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346257Z               "line": 753
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346556Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346647Z               "line": 798
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346737Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6346945Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347037Z               "line": 850
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347332Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347422Z               "line": 917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347713Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347808Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6347976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348094Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348185Z               "line": 967
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348271Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348357Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348442Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348528Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348615Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348704Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6348863Z       "id": "REQ-POOL-GC-ORPHAN-RECLAIM",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354272Z       "title": "BUILD-CACHE POOLS ARE RECLAIMABLE ON EVIDENCE, NOT ON AGE OR NAME. Cargo never GCs a target directory and pools OUTLIVE the lanes that made them: this box carried gate-target-h1 at 17.5 GB with ZERO links pointing at it -- unreachable, unowned, and un-reclaimable by any mechanism that existed, because nothing recorded whose it was. The ownership stamp supplies the missing facts, so a sweep can classify rather than guess: IN USE (a lane holder live by the process-table-plus-birth-stamp predicate) is never touched; OWNED (owner tree still on disk, no live lane) is somebody's WARM CACHE and is reclaimed only when explicitly asked; ORPHANED (owner tree gone, or unstamped with nothing linking to it) is the safe row. WHAT MAKES A DIRECTORY A POOL IS CARGO'S OWN CACHEDIR.TAG SIGNATURE, never its name -- a sweep that decided by the word target could delete a source directory somebody happened to call that, and the point of this leg is a reclaim an operator can run without auditing it first. UNSTAMPED DOES NOT MEAN UNWANTED: an unstamped pool with inbound links is a pre-guard pool still in use, and getting that backwards would reclaim a live lane's cache on the very first sweep, since the pools predating the stamp are exactly the ones most likely to be somebody's. UNKNOWN LIVENESS COUNTS AS IN USE here, the opposite polarity from the guard's proceed-with-warning, because the consequences are asymmetric: an unresolvable holder that blocks a reclaim costs disk, while one that permits it costs a lane its cache. THE INBOUND SWEEP COMPLETES BEFORE ANY VERDICT -- a link found after the verdict is a link that did not save the pool -- and path comparison is normalized, since Windows records a junction target with a verbatim device prefix and arbitrary case and a raw compare would report zero inbound links for a pool half the box points at, orphaning every one of them. DRY RUN IS THE DEFAULT: the failure mode of a wrong reclaim is silent, nobody notices a deleted warm cache until the next build takes twenty minutes. Deletion re-asserts real-directory-not-link at the point of removal, because a reparse point removed as a tree takes its TARGET with it, and reports size and free space so the reclaim is a number rather than a claim.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354429Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354515Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354607Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354730Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354829Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6354919Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355015Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355106Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355191Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355282Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355373Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355669Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355759Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6355936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356045Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356140Z               "line": 3244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356221Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356307Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356388Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356474Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356561Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356656Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356745Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356832Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6356923Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357012Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357212Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357306Z               "line": 1014
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357659Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357748Z               "line": 1029
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6357921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358039Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358130Z               "line": 1066
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358415Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358512Z               "line": 1095
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358841Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6358931Z               "line": 1130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359103Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359199Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359283Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359369Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359457Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359542Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6359665Z       "id": "REQ-POOL-GUARD-NOT-SILENCEABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6362546Z       "title": "THE POOL GUARD BUILD SCRIPT MUST EMIT NO `rerun-if` DIRECTIVE, AND A TEST MUST ENFORCE THAT RATHER THAN A COMMENT. MEASURED on a two-tree rig sharing one pool with the trees made BYTE-IDENTICAL (diff -r empty), sequence A B A A B: with no directives the script ran FOUR times (A, B, A, B) and the consecutive A A ran it once; with ONE cargo:rerun-if-changed added it ran ONCE and the foreign tree never ran it again at all. A script with no directives is re-run whenever cargo unit fingerprint changes, and that fingerprint carries CARGO_MANIFEST_DIR -- so it fires on exactly the source-tree ALTERNATION the guard exists to catch, fires even when the differing crate is one the script does not live in (the trigger is the tree PATH, not file content), and does not fire when a tree rebuilds itself. Adding a directive does not slow the guard, it SILENCES it, and only on the crossings that matter. A comment forbidding one is a prohibition, not a boundary -- it depends on the next reader -- so the canary reads the checked-in build script and reds if a directive appears. The canary carries its own POSITIVE CONTROL, because an assertion that no line matches is satisfied equally by a detector that matches nothing, including one broken by a later refactor.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6362698Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6362829Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6362914Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363001Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363097Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363182Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363273Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363364Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363444Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363525Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363627Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363712Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6363912Z               "path": "crates/spt-store/build.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364002Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364083Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364164Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364251Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364331Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364436Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364527Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364703Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364794Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364881Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6364966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365109Z               "path": "crates/spt-store/tests/pool_guard_canary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365200Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365512Z               "path": "crates/spt-store/tests/pool_guard_canary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365666Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365837Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6365966Z               "path": "crates/spt-store/tests/pool_guard_canary.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366061Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366142Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366229Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366319Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366404Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366486Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366572Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6366681Z       "id": "REQ-POOL-LANE-IDENTITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6370809Z       "title": "A LANE'S STATE IS READ FROM ITS GIT IDENTITY, AND THE HOLDER PROCESS IS ADVISORY. MEASURED, not inferred: a sweep of this box's pool claims found 3 of 3 holder processes dead while one of those three lanes was demonstrably LIVE -- the holder was an agent session that had been cleared, re-forked or re-parented, which is routine and says nothing about whether the lane finished. A claim that decides FINISHED from a dead holder hands the pool to a second tree mid-lane, which is releases#103's original interleaving hazard reached through the guard rather than around it. So the claim records the lane's GIT IDENTITY -- its branch and the base sha that branch carried at claim time -- and the finished question is answered by ancestry: the lane is IN FLIGHT while its tip is not contained in the integration head, and SETTLED once it is merged, once its branch is gone, or once its branch no longer contains the claimed base (a branch name re-pointed onto other work is the branch-level twin of a recycled pid, and must not read as the same lane). THE BASE SHA IS ALSO THE REPO-IDENTITY WITNESS: ancestry is read in the ARRIVING tree, and a branch that is simply absent from a DIFFERENT repository would otherwise read as a finished lane, so a claimed base whose object is unknown here yields UNKNOWN rather than SETTLED. PRECEDENCE IS ASYMMETRIC ON PURPOSE: a provably live holder still refuses (it can only ever ADD a refusal), ancestry alone may declare a lane settled, and a claim carrying no git identity at all falls back to the pre-identity holder predicate and says so in the line it prints. A stamp written before this field existed therefore keeps its old behaviour instead of silently changing polarity.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6370961Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371043Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371133Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371213Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371343Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371429Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371518Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371615Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371705Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371905Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6371997Z               "line": 362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372082Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372167Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372249Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372344Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372439Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372525Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372729Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372821Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6372992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373106Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373201Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373489Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373581Z               "line": 224
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373666Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373747Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373867Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6373957Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374104Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374310Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374405Z               "line": 643
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374482Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374558Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374639Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374724Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374816Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6374910Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375005Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375087Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375225Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375316Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375512Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375606Z               "line": 1235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375901Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6375991Z               "line": 1282
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376287Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376378Z               "line": 1304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376455Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376545Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376658Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376751Z               "line": 1326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6376921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377036Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377122Z               "line": 1355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377288Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377404Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377537Z               "line": 1389
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377627Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377822Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6377918Z               "line": 1440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378198Z               "path": "crates/spt-poolguard/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378289Z               "line": 1459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378374Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378502Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378582Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378664Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378755Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6378835Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6379031Z       "id": "REQ-POOL-ONE-LIVENESS-PREDICATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381246Z       "title": "THERE IS EXACTLY ONE PROCESS-IDENTITY PREDICATE IN THIS WORKSPACE, AND THE BUILD-SCRIPT GUARD USES THAT ONE. A cargo build script sees only [build-dependencies], so the pid-plus-birth-stamp predicate could not be reached where it lived in spt-store::proc. The alternative was a second copy -- a second source under exactly the hazard the first exists for (pid reuse; ADR-0047 decision 1 custody pair test; KNOWN-HAZARDS 7.50/7.51), and a liveness predicate that disagrees with itself across two call sites is worse than either copy alone. So the identity core (process_exists, process_started_at, parent_pid_of, process_identity, ProcIdentity, process_table) moved VERBATIM into a leaf crate below spt-store, and spt-store::proc re-exports every item, leaving every call site, doc link and test untouched. The move is behaviour-preserving by construction: nothing was rewritten, only relocated and re-exported.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381350Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381435Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381521Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381603Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381698Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381788Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6381889Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382045Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382136Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382223Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382313Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382407Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382608Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382698Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382785Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6382994Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383138Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383224Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383314Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383390Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383477Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383566Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383666Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383756Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383874Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6383968Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384064Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384307Z               "path": "crates/spt-store/tests/one_liveness_predicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384402Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384717Z               "path": "crates/spt-store/tests/one_liveness_predicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384812Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384898Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6384993Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6385080Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6385165Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6385255Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6385337Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6385433Z       "id": "REQ-PRES-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6386753Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6386914Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387062Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387152Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387238Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387367Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387458Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387543Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387645Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387744Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6387936Z               "path": "docs/DEFERRED.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388025Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388116Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388197Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388288Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388382Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388478Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388570Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388787Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6388873Z               "line": 1487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389052Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389257Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389347Z               "line": 1632
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389639Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389729Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6389906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390019Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390120Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390483Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390573Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390865Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6390954Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391250Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391389Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391682Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391778Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6391947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392086Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392181Z               "line": 559
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392478Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392568Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392657Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392859Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6392958Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393254Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393350Z               "line": 463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393689Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393779Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393869Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6393951Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394042Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394127Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394226Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394316Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394407Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394538Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394629Z               "line": 726
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394857Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6394982Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395072Z               "line": 1314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395359Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395454Z               "line": 2308
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395544Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395636Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395720Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395810Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6395907Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396002Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396217Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396313Z               "line": 1145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396614Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396707Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396875Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6396994Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397083Z               "line": 328
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397379Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397508Z               "line": 364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397803Z               "path": "crates/spt-daemon/src/presence.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397894Z               "line": 395
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6397980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398191Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398285Z               "line": 1859
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398370Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398614Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398709Z               "line": 1855
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398801Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6398881Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6399048Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6399135Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6399225Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6399309Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6399437Z       "id": "REQ-PRESENCE-CONTROL-REAP-ON-EXIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402219Z       "title": "B3 (F028, hall-b diagnosis + deferred #11 seed; BROADENED perri F-b CONFIRMED): dead-pid ONLINE decay window + sticky CONTROLLED stamp. Repro: /exit -> all endpoint processes dead -> `endpoint list` stays ■ ONLINE for a decay window before OFFLINE. Sticky CONTROLLED: perri confirmed controlled=true + attached_node SET while alive=false/OFFLINE, persisting >20min AND ACROSS A DAEMON RESTART (hall-b) — worse than the SIGKILL>=5min original (CAVEAT still: may reflect claude's --remote-control channel not the PTY attach — DISAMBIGUATE first). This is the deferred #11; RCA belongs to this wave. FIX: reap must clear presence AND control stamps promptly across FOUR paths — (i) clean exit, (ii) serve conn-drop, (iii) session-died-without-exit (crash/bounce), (iv) a BOOT-TIME sweep so a restarted daemon does NOT resurrect control stamps for endpoints it can see are dead. Int tests per edge. Closes A2(b). See triage B3 (broadened).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402386Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402479Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402569Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402656Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402746Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402836Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6402922Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403019Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403114Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403203Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403348Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403443Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403532Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403742Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403837Z               "line": 817
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6403920Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404010Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404095Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404186Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404282Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404376Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404612Z               "path": "crates/spt-daemon/tests/control_stamp_lifetime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404701Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6404872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405022Z               "path": "crates/spt-daemon/tests/control_stamp_lifetime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405117Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405436Z               "path": "crates/spt-daemon/tests/control_stamp_lifetime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405523Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405613Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405699Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405784Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405871Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6405971Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406061Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406324Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406414Z               "line": 1647
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406714Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406806Z               "line": 1770
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406891Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6406982Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6407067Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6407150Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6407281Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6407368Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6407484Z       "id": "REQ-PRESENCE-LIVENESS-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412304Z       "title": "A node's gossiped per-endpoint registry Status reflects real liveness, so a remote viewer never paints a DEAD endpoint as ONLINE. ROOT (confirmed + gated vs CONTEXT.md): registryhost.rs:397-405 advertises a NOT-alive perch as Status::Dormant (the `else` of is_perch_alive), re-stamped every gossip round (never ages to Offline). Design intent GATED vs resting.rs + CONTEXT.md: active/dormant is the MULTI-INSTANCE routing differentiator (active = the bare-id routing target; dormant = a WARM non-target sibling — 'driving ling@laptop makes ling@desktop dormant', resting.rs:97; transitions active→dormant on AttentionShift/Detach). suspended = COLD (session closed, resumable-on-wake) while its NODE is UP. offline = NODE DOWN — NEVER self-gossiped (RestState has no Offline; a live node only ever gossips active/dormant/suspended), remote-inferred via epoch-lease eviction. So labeling a NOT-running perch Dormant is the DEFECT (dormant requires warm/running). PRIMARY FIX (registryhost `else`, not-bound-alive): live-but-UNBOUND (has a live broker session; is_perch_alive is bound-gated) → Active/Dormant (still warm); else (cold, no live session, but its node is up because this very daemon is gossiping) → SUSPENDED — NOT Dormant, NOT Offline (the node is UP; Offline is never self-gossiped). This alone removes the false-ONLINE. dormant keeps gossiping (routing/MRA needs it) but RENDERS as its online flavor (no distinct glyph; the dormant→suspended auto-suspend timer disambiguates recency). The DISPLAY of these states (incl Suspended=gray-filled) is REQ-SUBNET-DISPLAY-PARITY. Design: docs/design/subnet-presence-display.md §A. (next milestone)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412470Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412557Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412713Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412793Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412884Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6412974Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413063Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413158Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413249Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413335Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413420Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413521Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413607Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413831Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6413926Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414012Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414222Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414317Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414402Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414485Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414570Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414655Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414751Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414842Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6414927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415041Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415129Z               "line": 753
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415214Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415298Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415388Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415527Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415624Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415719Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6415925Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416015Z               "line": 2210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416102Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416187Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416277Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416358Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416451Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416536Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6416708Z       "id": "REQ-PROJECT-INDEX-INVALIDATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6419476Z       "title": "PROJECT-INDEX W2 (ADR-0037): event-driven index invalidation, debounced + coalesced: new session/cwd -> refresh that endpoint + the shared cwd cache; context-store mutation -> ONE debounced global membership refresh keyed on BRANCH-TIP FINGERPRINTS (no authoritative context-commit path exists — a writer-maintained generation counter is REJECTED because nothing maintains it); bind/start, rename, fork, purge -> affected endpoint rows; low-frequency periodic reconcile as the backstop; cwd identity refresh ONLY on path/repo-identity/.git-config change (ordinary commits do NOT alter project identity); multiple invalidations coalesce into one refresh. Gate: impl — the event set + debounce/coalesce; unit — each event class maps to its refresh scope + coalescing proof + ordinary-commit no-op; int — session/context/rename/fork/purge invalidation against a live daemon; doc — rides the ADR + triage doc. Kin REQ-PROJECT-INDEX-WRITER.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6419587Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6419677Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6419763Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6419848Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6419931Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420020Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420110Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420245Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420340Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420434Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420620Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420713Z               "line": 694
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6420880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421005Z               "path": "docs/PROJECT-INDEX-TRIAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421094Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421175Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421324Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421423Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421514Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421600Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421829Z               "path": "docs/adr/0037-materialized-project-index.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6421915Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422005Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422090Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422183Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422272Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422372Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422458Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6422540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6426618Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6426733Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6426824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6426914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427057Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427157Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427335Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427472Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427562Z               "line": 628
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427882Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6427974Z               "line": 675
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428250Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428373Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428464Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428749Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428849Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6428931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429246Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429392Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429693Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429783Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6429956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430084Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430180Z               "line": 381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430481Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430576Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430876Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6430966Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431268Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431367Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431721Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431812Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431898Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6431988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432104Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432194Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432283Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432494Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432584Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432728Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6432937Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433028Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433319Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433414Z               "line": 817
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433499Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433702Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433800Z               "line": 24560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433880Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6433966Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434047Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434131Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434225Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434316Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434531Z               "path": "crates/spt/tests/projindex_writer_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434621Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434708Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6434917Z               "path": "crates/spt/tests/projindex_writer_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435008Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435099Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435184Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435275Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435357Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435508Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435600Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435809Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435900Z               "line": 919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6435986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436200Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436287Z               "line": 992
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436613Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436703Z               "line": 1053
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6436999Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437097Z               "line": 1074
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437384Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437479Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437769Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437856Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6437942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438147Z               "path": "crates/spt-store/src/projinval.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438233Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438324Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438404Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438486Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438576Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438657Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438743Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6438901Z       "id": "REQ-PROJECT-INDEX-READER-CUTOVER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442062Z       "title": "PROJECT-INDEX W3 (ADR-0037): endpoint list, the picker, and endpoint-info consume the materialized index — NO git work in any user-facing read path (the O(PxB+C) fanout at cli.rs ~2954 / picker/data.rs ~456-518 dies). BEHAVIORAL PARITY is binding: precedence session-cwd -> origin-cwd -> context-recency and rendered project IDs/display names unchanged (parity suite vs the old derivation on a fixture); bare/partial run shares the indexed projection; fully-qualified --adapter+--id direct run stays picker-free; the direct-run 25s broker-session gate stays separately tested/observable. Degradation legs (git unavailable, branch malformed/locked, cwd deleted) keep fast reads. Manual latency acceptance on the 13-perch/7-branch fixture (~30s -> sub-second) + hertz field-verify on HFENDULEAM — NOT a CI wall-clock gate. Gate: impl — reader cutover; unit — parity + degradation; int — list/picker against a daemon-maintained index incl. counters proving zero reader git spawns; doc — reference regen + CONTEXT avoid-list. Kin REQ-WHOAMI-IDENTITY-ONLY, REQ-PROJECT-INDEX-STORE/WRITER/INVALIDATION.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442228Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442309Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442406Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442491Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442571Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442659Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442749Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442834Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6442930Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443025Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443215Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443307Z               "line": 692
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443574Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443665Z               "line": 695
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443754Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6443994Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444088Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444179Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444262Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444346Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444431Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444526Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444616Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444833Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6444929Z               "line": 446
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445143Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445268Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445363Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445453Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445659Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445748Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6445931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446035Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446131Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446416Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446508Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446804Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446899Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6446992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447197Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447286Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447647Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447743Z               "line": 1355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6447911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448020Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448111Z               "line": 6574
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448192Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448393Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448520Z               "line": 6720
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448807Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6448893Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449255Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449352Z               "line": 247
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449637Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449728Z               "line": 426
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6449898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450012Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450099Z               "line": 463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450375Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450466Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450551Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450632Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450718Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450808Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450903Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6450995Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451262Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451353Z               "line": 348
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451663Z               "path": "crates/spt/tests/projindex_reader_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451752Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451833Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6451920Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452001Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452091Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452176Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452271Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452531Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452622Z               "line": 1137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452707Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6452918Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453009Z               "line": 438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453098Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453185Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453294Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453389Z               "line": 1083
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453676Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453766Z               "line": 1188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453858Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6453942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454057Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454148Z               "line": 1241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454239Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454329Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454410Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454497Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454582Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454725Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6454836Z       "id": "REQ-PROJECT-INDEX-STORE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457030Z       "title": "PROJECT-INDEX W1 (ADR-0037, RCA .claude/reports/2026-07-10-hertz-session/03): spt-store owns the VERSIONED materialized project-index format + read path. Reader contract: read one compact versioned index, join with the local perch roster, return immediately; stale/missing renders last-known-good or '-'; NEVER fall back to synchronous git enrichment; daemon-offline readers consume the last persisted snapshot; truncated/schema-mismatched index degrades to fast reads + last-known-good, never an error stall. Gate: impl — format + store read path; unit — version/schema-mismatch/truncation degradation legs + join semantics; doc — CONTEXT.md project-index entry + STORAGE.md section. Kin REQ-PROJECT-INDEX-WRITER (the producer), ADR-0037.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457186Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457272Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457364Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457454Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457548Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457638Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457729Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457823Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6457917Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458003Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458099Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458194Z               "line": 692
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458279Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458471Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458565Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458652Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458738Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458828Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6458914Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459085Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459180Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459419Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459529Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459877Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6459969Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460264Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460359Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460443Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460649Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460791Z               "line": 313
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460882Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6460973Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461144Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461246Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461341Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461435Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461517Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461616Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461707Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6461913Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462003Z               "line": 380
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462298Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462393Z               "line": 495
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462689Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462784Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6462958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463086Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463231Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463531Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463620Z               "line": 548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463715Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463888Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6463973Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6464055Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6464141Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6464250Z       "id": "REQ-PROJECT-INDEX-WRITER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6467661Z       "title": "PROJECT-INDEX W2 (ADR-0037): the daemon is the SOLE single-flight project-index writer: load persisted index at startup; ready WITHOUT warm (cold start = daemon ready + CLI fast before background completes); background reconcile with BATCHED complexity O(P+B+F+C) — enumerate branches ONCE, <=1 tree scan per changed branch, ONE derivation per distinct normalized cwd (in-process BranchStore traversal or fixed plumbing calls; backgrounding the existing 100+ process loop is REJECTED); atomic replace; last-known-good preserved on any failure; warm start with unchanged generation performs NO scan. Observability surface: generated time, source generation, pending refresh, last duration/error, endpoint/project/cwd counts, cache hits/misses, stale reads, repair count — index presence alone is not health. Gate: impl — writer + observability; unit — single-flight, atomic-replace, last-known-good, no-scan-on-unchanged-generation; int — cold+warm start legs against a real store; COMPLEXITY COUNTERS are the CI gate (wall-clock = manual acceptance ONLY, shared-runner flake class); doc — daemon docs writer-duty section. Kin REQ-PROJECT-INDEX-STORE, REQ-PROJECT-INDEX-INVALIDATION.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6467774Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6467856Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6467948Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468033Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468122Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468212Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468303Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468434Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468529Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468626Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468811Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6468902Z               "line": 694
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469069Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469260Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469360Z               "line": 261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469445Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469532Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469669Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469764Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469866Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6469956Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470171Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470266Z               "line": 367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470562Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470656Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6470951Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471041Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471132Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471346Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471438Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471733Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471825Z               "line": 627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6471961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472053Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472177Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472271Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472573Z               "path": "crates/spt-store/src/projderive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472663Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6472949Z               "path": "crates/spt-store/src/projderive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473089Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473391Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473485Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473766Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473856Z               "line": 8276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6473941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474147Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474233Z               "line": 8556
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474319Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474499Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474585Z               "line": 8839
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474673Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474758Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474843Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6474939Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475034Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475125Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475335Z               "path": "crates/spt/tests/projindex_writer_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475429Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475787Z               "path": "crates/spt/tests/projindex_writer_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475884Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6475970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476177Z               "path": "crates/spt/tests/projindex_writer_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476273Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476348Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476428Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476508Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476600Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476833Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6476919Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477048Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477142Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477433Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477530Z               "line": 856
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477825Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6477911Z               "line": 885
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478202Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478297Z               "line": 972
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478584Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478672Z               "line": 1079
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6478844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479056Z               "path": "crates/spt-daemon/src/projwriter.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479205Z               "line": 1272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479506Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479591Z               "line": 948
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479886Z               "path": "crates/spt-store/src/projderive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6479976Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480063Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480320Z               "path": "crates/spt-store/src/projderive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480412Z               "line": 209
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480692Z               "path": "crates/spt-store/src/projderive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480784Z               "line": 240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6480954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481079Z               "path": "crates/spt-store/src/projindex.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481169Z               "line": 404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481442Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481530Z               "line": 38256
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481620Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481716Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481799Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481892Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6481978Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6482065Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6482183Z       "id": "REQ-PSYCHE-ACCOUNT-REFUSAL-EXIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488304Z       "title": "RESERVED EXIT 96 — account/credential refusal from a psyche_resume turn: the inner tool refused for account-level reasons (spend/usage cap, expired/revoked credential, org quota) — session healthy, code healthy, retry correct-but-pointless until a HUMAN acts. Core discriminates on the EXIT CODE ALONE (text-blind, the exit-95 layering exactly: adapters own text matching because their inner tool's wording is theirs to track; core's contract survives any rewording). SEMANTICS ruled 2026-07-26: (1) OWN PACING, fully separate from the C3(b) strike budget — an account refusal fails FAST (refused before a billed turn), so ten near-instant cycles could exhaust the defect budget in seconds and kill the psyche host as a thrashing component while nothing thrashes; the strike budget is a DEFECT budget and an outage must not be able to spend it (fold-with-higher-threshold REFUSED at ruling: it keeps the bug in a quieter form). Slow capped exponential ~60s doubling to ~15m cap, held INDEFINITELY (no give-up: a cap clears on human action or a calendar boundary — unpredictable but CERTAIN — and a permanently-given-up psyche is invisible), reset on first success, no state to unwind. (2) DISTINCT SURFACE: never the defect-shaped PSYCHE_TURN_FAIL prefix — renders as its own class (adapter-side PSYCHE_TURN_REFUSED; core-side an additive class discriminator beside psyche_host_error, never a fold into it), NAMES the actor and action (a human, the inner tool's account — not the endpoint/adapter/session), carries the inner tool's own words via the dual-stream tail (REQ-PSYCHE-TURN-STREAM-EVIDENCE), and states HOW LONG it has been refused. (3) NEVER reseeds — custody is fine; a reseed would destroy a healthy transcript for nothing. (4) Never counted as a crashloop defect. Adapter contract half: claude-spt docs/design/RESERVED-EXIT-ACCOUNT-REFUSAL.md (appendix of observed CC strings is informative-not-contract, populated ONLY from observed bytes — the invented-string chain of 2026-07-26 is the anti-pattern it refuses). Gate at activation: unit — exit 96 classifies refused (no strike increment, no reseed, own backoff schedule engaged); 95/generic/None unchanged; surface renders the distinct label + duration.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488420Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488542Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488628Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488715Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488805Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6488899Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489063Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489289Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489381Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489465Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489554Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489640Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489731Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489879Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6489974Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490061Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490147Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490240Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490333Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490418Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490504Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490594Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490685Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490775Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490856Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6490937Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6491019Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6491148Z       "id": "REQ-PSYCHE-CONTEXT-FILE-INDIRECTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495187Z       "title": "W4 (F030; doyle Q2 ruling + perri file-always freeze, 2026-07-04): the composed psyche mind ({psyche_context}) rides the SHIM argv today — a real ~20KB doyle psyche-download exceeds the win32 CreateProcess lpCommandLine ~32k cap → the shim spawn BRICKS. FIX (file-always, replaces {psyche_context} outright — no size-branch, no argv cliff, one path): core writes the mind to a file in the psyche's NESTED perch dir BEFORE each turn spawn and fills a single {psyche_context_file} = that PATH (argv-cap-immune). The soft fresh/continue discriminator moves from KEY-presence to FILE-CONTENT: FreshWithPreload writes the composed mind NON-EMPTY (the <fresh-psyche/> never-empty guarantee carries to the file content); ContinueExisting writes it TRULY 0-BYTE (perri BINDING PIN 1 — NO sentinel/placeholder EVER, else her non-empty=fresh discriminator misfires a spurious --session-id adopt). Core owns the file lifecycle: write-before-spawn each turn, overwrite in place, persists between turns in the nested perch (debuggability); never deleted per turn. perri shim delta: --psyche-context-file <path> arg, read-file prefix, TRIM-based emptiness (her tolerance, NOT core's license — core writes exactly 0 bytes on continue, PIN 2), read-failure = generic fail NEVER 95, never writes/deletes the file. Red-first: a ~40KB mind → the old {psyche_context}-on-argv path BRICKS the win32 shim spawn; the file path succeeds (shim reads the full mind from file).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495300Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495390Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495483Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495568Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495653Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495740Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495826Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6495916Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496011Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496098Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496287Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496379Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496469Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496559Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496640Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496732Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496831Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6496922Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497009Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497141Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497226Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497316Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497519Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497667Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497754Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497843Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6497928Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498011Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498106Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498201Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498445Z               "path": "crates/spt-daemon/tests/psyche_context_file_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498539Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6498887Z               "path": "crates/spt-daemon/tests/psyche_context_file_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499069Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499389Z               "path": "crates/spt-daemon/tests/psyche_context_file_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499484Z               "line": 192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499570Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499652Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499746Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499831Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6499969Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500063Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500272Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500364Z               "line": 2979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500453Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500659Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500749Z               "line": 3083
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500834Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6500916Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6501001Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6501087Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6501168Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6501255Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6501383Z       "id": "REQ-PSYCHE-CRASHLOOP-BACKOFF-SHUTDOWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503083Z       "title": "C3 (F028, perri F-h): psyche wrapper crash-loop has no backoff, and `endpoint shutdown` misses a wedged wrapper. A probe psyche crash-looped ~3 boots/sec for ~30min (CC died instantly on the untrusted owlery cwd; ledger hit ordinal 5358) — SILENTLY; and `spt endpoint shutdown` did NOT tear the looping wrapper down (docs say shutdown tears the Psyche with the perch; manual kill was required). FIX: (i) bounded backoff + loud give-up on a psyche boot loop (the psyche_host_error surface already exists), (ii) shutdown must cover a wedged/looping wrapper. See triage C3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503195Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503336Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503428Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503523Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503623Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503713Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503805Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503904Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6503999Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504200Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504300Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504614Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504706Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6504999Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505091Z               "line": 429
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505184Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505265Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505355Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505446Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505546Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505641Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505780Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505865Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6505955Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506052Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506251Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506343Z               "line": 672
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506619Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506710Z               "line": 873
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6506929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507043Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507134Z               "line": 918
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507219Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507302Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507391Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507472Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507559Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507646Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6507767Z       "id": "REQ-PSYCHE-EPHEMERAL-DRIVER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511089Z       "title": "W1 (F030, design §3): each psyche-relevant event runs exactly ONE bounded per-event turn through the existing driver stack (psyche_turn_and_relay for outbound-intent events / resume_psyche for session-custody transitions / run_psyche_turn for pure merges) — no resident psyche process exists between events. host_one (livehost.rs:518) STOPS spawning spawn_psyche_owned; the pulse loop stays as the daemon-side scheduler (thread + stop-flag + drop-dir watch correct) but a fire now invokes one bounded turn, daemon-driving every substitution key from daemon-known context (child never self-resolves home/subnet/perch — direction-(a) multi-subnet churn impossible by construction). Turn failures consume a bounded failure budget (C3(b) shape): N consecutive failures → psyche_host_error stamp + cooldown, reset on success; no respawn storm (nothing resident to respawn). Red-first: fire an event on a hosted live endpoint → assert one turn ran (SIDE-EFFECT PROOF FILE — transcript-jsonl asserts are structurally blind, 2026-07-04 rig lesson) and no {id}-psyche process survives the turn.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511195Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511285Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511370Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511453Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511538Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511619Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511709Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511796Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511890Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6511981Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512219Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512314Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512587Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512678Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512764Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6512849Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513036Z               "path": "docs/adr/0025-live-daemon-coordinated-adapter-update.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513126Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513210Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513291Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513373Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513464Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513553Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513644Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513859Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6513949Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6514031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6514111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6517970Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518075Z               "line": 1104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518465Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518560Z               "line": 1227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518729Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6518859Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519049Z               "line": 1636
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519131Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519330Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519475Z               "line": 1649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519560Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519760Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519841Z               "line": 1732
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6519927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520119Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520213Z               "line": 1828
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520495Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520584Z               "line": 1933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520875Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6520965Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521244Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521334Z               "line": 305
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521416Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521502Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521582Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521668Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521760Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521855Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6521935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522136Z               "path": "crates/spt-daemon/tests/psyche_event_turn_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522235Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522541Z               "path": "crates/spt-daemon/tests/psyche_event_turn_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522627Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6522928Z               "path": "crates/spt-daemon/tests/psyche_event_turn_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523019Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523152Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523233Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523319Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523404Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523495Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523582Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523789Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523879Z               "line": 2570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6523961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524161Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524262Z               "line": 2882
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524372Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524451Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524533Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524610Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524691Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524776Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6524906Z       "id": "REQ-PSYCHE-FAULT-SLOTS-SURVIVE-RESTART",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533273Z       "title": "A PSYCHE FAULT STAMP REMEMBERS WHICH LATCH SLOT PRODUCED IT, SO A DAEMON RESTART CANNOT CLEAR A FAULT IT NEVER SAW. ROOT (releases#115): the three fault latches -- latch_turn, latch_ingest, latch_timeout -- live in memory behind a Mutex and are never seeded from disk, while the `psyche_host_error` stamp they compose to OUTLIVES the process on disk. After a bounce the stamp stands with nothing standing behind it, so the first `note_success` of ANY kind recomposes an empty latch set to None and clears a fault whose kind this process never learned. THE PER-KIND SEPARATION BAROMETER W1 BUILT IS THEREFORE UNDONE BY A RESTART: one working ingest erases a standing turn defect it says nothing about, which is precisely the vouching REQ-PSYCHE-HARD-BUDGET-PER-KIND exists to forbid -- the defect does not lose information at the margin, it re-opens a closed hazard. FIX: the stamp carries a SLOT-KEYED sibling map written by the SAME seam that writes the reason, so the sentence and the latches that produced it can never disagree on disk, and the pulse loop seeds its latches from that map at startup BEFORE any tick can report a success. THE KEY IS A LATCH SLOT, NOT A KIND, and the distinction is load-bearing rather than nominal: there are THREE slots against TWO kinds, because the timeout latch is shared cross-kind by the ruled BAROMETER W1 semantics and belongs to no kind at all -- a kind-keyed reading would be re-read later as a per-kind register and gain a fourth key the day a fourth kind appears. THE VOCABULARY IS CLOSED to those three slots, and an unrecognized key is IGNORED AND ANNOUNCED rather than seeded: an unknown slot can only come from a newer binary owning a latch this one has no code to clear, so seeding it would strand a fault that no success could ever recompose away, while dropping it silently would make a rollback that loses a standing fault look identical to a recovery. A PRE-#115 STAMP CARRIES NO SLOTS AND SEEDS NOTHING, deliberately: its kind is genuinely unrecoverable, and the honest behaviour for an unknown-kind fault is the one that shipped, where any success clears it (REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS) -- inventing a kind for it would be worse than forgetting one. `reason` stays BYTE-IDENTICAL, and the map is serde-default plus skip-when-empty so a stamp with no standing latches serializes byte-identically to the pre-#115 shape; N-1 holds in BOTH directions, the old-binary/new-record leg proven by a MEASURED absence of any live deny_unknown_fields attribute repo-wide (zero, on this struct and on InfoJson alike) rather than by assuming serde's default. Gate: impl -- the slot-keyed map on the stamp, written by the single existing writer alongside the reason it composed to, the closed three-slot vocabulary with ignore-and-log on an unknown key, and the pulse-loop seed running before the first tick; unit -- a stamp whose slots record a standing INGEST fault SURVIVES a fresh process reporting a TURN success (the row the shipped code cannot pass, since an unseeded set recomposes to None and clears it), a seeded latch IS still cleared by a success of ITS OWN slot (asserted alongside, since the survival row alone passes an implementation that has simply stopped clearing anything), a pre-#115 SLOTLESS stamp is still cleared by any success (the N-1 behaviour-preservation row), and an UNKNOWN slot key seeds NO latch while a known key beside it in the same map DOES seed (the pair asserted together, since over an unknown key alone a seed-nothing implementation and a correct one agree).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533497Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533579Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533659Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533735Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533851Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6533936Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534026Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534113Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534194Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534279Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534373Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534464Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534678Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534764Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534846Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6534965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535088Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535175Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535456Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535546Z               "line": 1233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535628Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535819Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6535938Z               "line": 1551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536223Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536309Z               "line": 1572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536580Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536674Z               "line": 796
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536756Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536841Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6536926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537006Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537103Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537188Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537269Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537350Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537441Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537527Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537723Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537813Z               "line": 3610
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6537970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538089Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538170Z               "line": 3699
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538446Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538580Z               "line": 1788
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538662Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538747Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538823Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6538909Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6539076Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6539162Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6539277Z       "id": "REQ-PSYCHE-HARD-BUDGET-PER-KIND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6545653Z       "title": "INGEST JOINS BOTH SIDES OF THE PSYCHE HEALTH STAMP, AND HARD FAILURES ARE COUNTED PER KIND SO ONE WORKING SUBSYSTEM CANNOT VOUCH FOR A BROKEN ONE. FILED ROOT (releases#97): clearing is keyed to psyche TURNS while the health question in the field was drop INGEST, so an endpoint printed FAILED with a stale stamp while ingest demonstrably worked. THE FAILING SIDE IS WORSE THAN FILED, found at recon: the ingest leg is `ingest_drops(...)?` inside `pulse_tick` and the loop swallows the error (`Err(_) => { /* a transient tick error must not kill the loop */ }`), so a hard ingest failure today produces NO strike, NO stamp and NO stderr line, and additionally SKIPS that tick's psyche turn and commune-sync entirely. FIX, RULED: capture-and-continue -- the ingest outcome is classified and fed to the budget BEFORE the turn runs, and the tick then proceeds to the turn and echo. The behaviour change is deliberate: a turn over possibly-stale context, plus a struck budget, plus the expectation surfacing, beats a silently dead psyche forever. AN INGEST SUCCESS IS AT LEAST ONE DROP ACTUALLY INGESTED -- an empty sweep is neither success nor failure, because nothing ran and nothing was proven healthy, the same reasoning the role-absent skip already carries. THAT DEFINITION IS LOAD-BEARING, NOT PEDANTRY: were an empty sweep a success, the stamp would clear on nearly every tick, no budget could ever reach its latch, and the change would read as a fix while disabling the stamp it repairs. COUNTERS ARE PER KIND (turn, ingest), three consecutive each, and a success resets ONLY its own kind -- ingest working does not disprove a turn defect, nor the reverse. The stamp remains the single existing `psyche_host_error` field, current-state, and its reason names the kind and the class. Gate: impl -- the ingest error captured rather than propagated, classified, recorded before the turn, the tick continuing to turn and echo, per-kind consecutive hard counters with own-kind-only reset, and the reason text naming kind and class; unit -- three consecutive ingest hard failures stamp with an ingest-hard reason WHILE turns are succeeding on the same fixture (the row the shipped code cannot pass and a shared-counter implementation also fails, since the turn successes would reset it), an ingest success clears the ingest counter and leaves a standing turn counter untouched, an EMPTY sweep neither clears nor strikes either counter (asserted against a fixture with a non-zero counter standing, since over a zeroed counter a clearing implementation and a correct one agree), and a hard ingest failure still lets the SAME tick run its turn (the capture-and-continue row, which the pre-fix `?` fails by construction).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6545901Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6545982Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546069Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546149Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546239Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546327Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546417Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546507Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546588Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546679Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546769Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546864Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6546946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547074Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547169Z               "line": 1017
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547249Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547335Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547452Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547596Z               "line": 1078
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547677Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547876Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6547968Z               "line": 1518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548254Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548339Z               "line": 1941
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548429Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548668Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548763Z               "line": 1979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548844Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6548927Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549073Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549164Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549251Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549369Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549455Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549542Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549636Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549741Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6549942Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550041Z               "line": 2685
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550314Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550400Z               "line": 2723
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550486Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550563Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550643Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550720Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550801Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550878Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6550991Z       "id": "REQ-PSYCHE-INGEST-FAILURE-LOUD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6559962Z       "title": "A COMMUNE THAT CAN NEVER INGEST IS LOUD WHERE IT IS NOTICED, AND NEVER LETS A RESUME SERVE THE STALE TIER AS IF IT WERE FRESH. MECHANISM (field-settled, and NOT the one this requirement was minted describing -- see the amendment note): a commune written from a cwd other than the endpoint's REGISTERED one silently never enters the tier. The ingest resolves the manifest's drop dir against the endpoint's recorded cwd; a drop written from a worktree, or any non-registered dir, lands somewhere nothing watches. NOTHING FAILS -- so no error is stamped, no strike accrues, and the surfacing that does exist is structurally incapable of firing. The durable tier keeps the PREVIOUS commune and the next resume is rebuilt from it, confidently and wrong. THE SEAM IS AN ANCHOR DISAGREEMENT INSIDE ONE BRIEF: the ingest anchors the drop dir to the endpoint's registered cwd, while the CLI brief composer joined the raw manifest dir against nothing, binding it to whatever cwd the CALLER ran in -- so the durable tiers came from the endpoint and the pending-drop lookup came from the caller, and the two could name different directories without either being wrong on its own terms. TWO INVARIANTS, AND THE SECOND IS THE ONE THAT BITES: (1) a drop that can never ingest is surfaced at the instant a resume is composed over it -- the one moment the degraded party is listening -- and NAMES ITS ABSOLUTE PATH, because the recovery is reading the file and that is only actionable if the party is told where it is; (2) a resume composed over such a drop does not present its durable tiers as current -- the staleness is carried WITH the context rather than inferred by an agent lucky enough to have a nonce discipline. A LOST INGEST IS NOT A LOST FILE: the drop survives on disk and the wake leg fires correctly, so the recovery exists and is cheap. That is the field mitigation already proven to work, and naming the unspooled file is the actionable half of being loud. PAIR, NOT SEQUENCE (acceptance condition): before the anchor was corrected a worktree session found its own misplaced drop BY ACCIDENT, because the composer's lookup was wrong in the same direction the drop was; correcting the anchor without a deliberate misplacement arm in the SAME change would delete that accidental recovery and silently re-open the hole. SCOPE IS SPT-CORE-SIDE -- the daemon AND the CLI brief composer; the harness ADAPTER is untouched. That distinction is the whole of the scope line and is not to be re-litigated: `resolve_filedrops` is spt-core's own code at the seam the adapter calls, and leaving the CLI brief wrong fails invariant 2 at the exact surface an operator reads. Gate: impl -- one shared drop-dir resolver both composers route through, the misplacement arm paired with it, the compose-instant surfacing carrying the unspooled drop's absolute path, the resume refusing to present a never-ingested drop's tiers as fresh, and the registered drop dir surfaced on the endpoint's own info (the only fact that makes a surviving drop classifiable as misplaced-versus-failed by anyone but its owner); unit -- a misplaced drop emits its surfacing ONCE and names the file while a CONSUMED drop emits none (the pair asserted together, since the misplaced row alone passes an implementation that shouts on every compose), a resume over a misplaced drop is marked stale while the SAME resume over a registered drop is not (the discriminator, since both otherwise return the same shaped context and an implementation that marks nothing, or everything, satisfies either row alone), and -- the acceptance row -- a misplaced drop is still FOUND after the anchor is correct, since the anchor fix alone would make it invisible and read as a clean pass.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560145Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560224Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560315Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560393Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560474Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560563Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560686Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560777Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560865Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6560951Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561032Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561118Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561203Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561410Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561491Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561815Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561899Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6561981Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562172Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562257Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562524Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562611Z               "line": 161
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562878Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6562964Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563224Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563310Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563589Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563681Z               "line": 853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6563952Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564047Z               "line": 934
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564123Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564343Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564433Z               "line": 6294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564696Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564776Z               "line": 6309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564858Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6564935Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565096Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565187Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565310Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565512Z               "path": "crates/spt/tests/commune_two_cwd_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565597Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565677Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565879Z               "path": "crates/spt/tests/commune_two_cwd_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6565964Z               "line": 240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566245Z               "path": "crates/spt/tests/commune_two_cwd_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566330Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566602Z               "path": "crates/spt/tests/commune_two_cwd_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566687Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566764Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566846Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6566926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567011Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567107Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567189Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567374Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567508Z               "line": 549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567583Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567776Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567857Z               "line": 591
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6567936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568119Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568204Z               "line": 2066
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568284Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568398Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568475Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568558Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568634Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568716Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6568836Z       "id": "REQ-PSYCHE-INGEST-FAULT-BRIEF-WARN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573022Z       "title": "A RESUME BRIEF COMPOSED WHILE AN INGEST FAULT STANDS SAYS SO, IN THE BRIEF (releases#221 leg 2): a terminal ingest failure already LATCHES per-kind (`PsycheBudgets.latch_ingest`, hard budget 3) and already stamps `psyche_host_error`, so the fact is PULLABLE from `endpoint list` -- but it is PUSHED NOWHERE, and the agent whose durable tier just failed to take its commune is precisely the agent about to be rebuilt from the PREVIOUS one, confidently and wrong. The brief gains ONE WARNING LINE beside the existing staleness sentence and in the same voice (the REQ-PSYCHE-INGEST-FAILURE-LOUD invariant-2 family in `resume.rs`) -- reading it IS the recovery, so it names what is degraded and what the reader should distrust. THE TRIGGER IS ANY STANDING INGEST LATCH AT BRIEF-COMPOSE TIME, not only the terminal strike (doyle ruling 5): the latch IS the standing-fault vocabulary, and a brief composed under a standing fault is exactly the degraded read the ticket is about. NO DURABLE MESSAGE IN V1 -- the brief reaches the agent at the ONE moment the fact is actionable, while a message would also reach it mid-work where it can do nothing. A clean latch set adds NOTHING to the brief: the healthy brief's bytes are unchanged, so the warning's presence is the signal and its absence is not a claim of health by omission. Gate: impl -- the latch read at compose + the warning line; unit -- a brief composed with a standing ingest latch carries the line and names the fault, the SAME brief with no standing latch is byte-identical to the pre-change shape (the vacuity guard: a line that always renders proves nothing), and a standing TURN latch alone does NOT emit the ingest warning (the per-kind separation BAROMETER W1 built must not be undone by the reader).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573137Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573219Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573346Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573428Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573510Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573591Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573680Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573760Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573841Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6573922Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574011Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574091Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574288Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574368Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574641Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574721Z               "line": 968
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574808Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574889Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6574965Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575050Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575137Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575227Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575303Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575384Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575471Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575623Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575814Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575899Z               "line": 475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6575975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576052Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576162Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576247Z               "line": 518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576323Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576401Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576482Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576556Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576689Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576766Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6576881Z       "id": "REQ-PSYCHE-INGEST-INTENT-MARKER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6582481Z       "title": "A COMMUNE THAT WAS EXPECTED AND NEVER ARRIVED IS DETECTABLE POSITIVELY, PER ATTEMPT, RATHER THAN INFERRED FROM AN ABSENCE. ROOT (releases#96, split out of the #90 recon): the summarizer spawn killed at its bound dies BEFORE writing the drop file, so it produces no file and no ingest -- and every presence-based check is structurally blind to it, because there is nothing on disk to find and nothing failed loudly enough to stamp. AN ABSENCE CANNOT BE OBSERVED; AN EXPECTATION CAN. THE DISCRIMINATOR IS A WRITE-AHEAD INGEST-INTENT MARKER: the lifecycle persists an expected-ingest record (timestamp + trigger) BEFORE launching the summarizer spawn, a completed ingest CONSUMES it, and a marker still standing past the spawn budget with no corresponding drop positively identifies the killed-at-bound case for that attempt -- no staleness threshold to tune and no guessing. THE ORDERING IS THE PROPERTY, not an implementation detail: a marker written after the spawn returns cannot survive the case it exists to detect, exactly as an intention recorded only after an answer arrives cannot survive an answer that never comes. SURFACING rides where the degraded party is already listening -- at resume/compose, beside the un-ingested-drop warning, saying that a commune was expected and never ingested and that the reader may be resuming stale. The marker is therefore written by the daemon lifecycle and read by the CLI compose path, so its storage must serve both. A killed-at-bound attempt counts on the SOFT timeout budget, never the hard one. Gate: impl -- the marker persisted before the spawn with its timestamp and trigger, consumed on ingest completion, the orphan classified past the budget, the resume/compose surfacing, and the storage readable from the CLI compose seam; unit -- a spawn killed at its bound leaves a standing marker with no drop and classifies as the expected-never-ingested case, a completed ingest leaves NO marker (the pair asserted together, since the orphan row alone passes an implementation that never consumes and would then report every healthy commune as orphaned), a marker whose drop IS present is not classified orphaned, and the write-ahead ORDERING is asserted directly by observing the marker from a spawn that never returns -- a post-spawn write passes every other row and fails this one.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6582596Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6582681Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6582762Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6582845Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6582920Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583005Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583087Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583183Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583268Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583493Z               "path": "docs-site/src/harness-contract/echo-commune.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583578Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583659Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583746Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583822Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583901Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6583993Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584084Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584349Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584435Z               "line": 1083
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584714Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584796Z               "line": 1428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584881Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6584966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585077Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585163Z               "line": 1488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585295Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585487Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585572Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585654Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585730Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585844Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6585929Z               "line": 939
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586017Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586097Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586178Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586259Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586351Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586435Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586517Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586598Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586684Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586773Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6586966Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587056Z               "line": 2429
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587131Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587331Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587417Z               "line": 2482
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587685Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587774Z               "line": 638
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6587990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588117Z               "path": "crates/spt-store/src/commune_intent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588199Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588280Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588361Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588479Z               "path": "crates/spt-store/src/commune_intent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588567Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6588891Z               "path": "crates/spt-store/src/commune_intent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589056Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589333Z               "path": "crates/spt-store/src/commune_intent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589428Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589585Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589669Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589750Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589831Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6589908Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6590017Z       "id": "REQ-PSYCHE-INGEST-SERIALIZED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6598453Z       "title": "EVERY WRITE INTO A SHARED CONTEXT-STORE WORKTREE IS SERIALIZED BY AN EXCLUSIVE ADVISORY LOCK ON THAT WORKTREE, AND A LOSER WAITS RATHER THAN FAILING (releases#221): concurrent per-agent project-tier ingests commit into ONE shared `p-<project_id>` worktree and race git's `index.lock` and the branch's HEAD ref -- 6 PSYCHE_INGEST_FAIL across 3 agents measured on HFENDULEAM 2026-08-25, `fatal: Unable to create '.../worktrees/<name>/index.lock': File exists` and `cannot lock ref 'HEAD': is at X but expected Y`. THE LOCK LIVES AT THE LEAF GIT OPS OF `BranchStore` -- `commit_in_worktree`, `fast_forward_worktree`, `merge_commit_in_worktree` -- NOT at the ingest call site (doyle ruling 2): the ingest path is one of SIX writers of the same worktree (spt-live reconcile, syncmerge fast-forward + merge, contextstore conflict/rename/monic arms), several of them in OTHER PROCESSES, so a narrow guard leaves the identical collision reachable through a rarer door. It is an EXCLUSIVE FILE LOCK ON A STABLE NEVER-RENAMED SENTINEL keyed by the WORKTREE PATH (the `worker_seq` precedent: fs2, RAII-released on handle drop or process death, so a crashed holder strands no file and there is no stale-lock class to sweep) -- NEVER git's own `index.lock`, which stays exactly what `sweep_stale_index_locks` treats it as. THE LOCK IS NON-REENTRANT AND ACQUIRED ONLY AT THE LEAF, so a caller walking many worktrees (the rename loop) acquires them ONE AT A TIME and never nests -- the no-lock-ordering claim is an ASSERTION IN A UNIT, not a comment (doyle ruling 2 rider). ACQUISITION BLOCKS WITH A BOUND (doyle ruling 3): default 10s (two pulse periods; the guarded op is sub-second, so contention is milliseconds), overridable ONLY by a test-scoped `SPT_TEST_*` env var that never enters the operator vocabulary. A pulse tick MAY block -- it blocks only that endpoint's own driver thread, and failing fast is the very defect. ON TIMEOUT the acquire returns an ERROR carrying THE SENTINEL PATH AND THE ELAPSED WAIT BESIDE THE BOUND (at-budget vs under-budget is the only discriminator between a deadlock and a slow box), and that error rides the EXISTING capture-and-continue seam: PSYCHE_INGEST_FAIL is printed, a hard-ingest strike accrues, and THE DROP FILE IS PRESERVED -- nothing is consumed, so nothing is lost, and the F-032 preserve-pending arm (REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE) is untouched beneath it. THE LOCK IS THE ONLY MECHANISM: no retry belt over git's own lock errors (doyle ruling 4) -- a second handler would make a broken lock invisible, and an index.lock failure observed WHILE the sentinel is held is a FINDING to file, never a transient to swallow. Sibling surface: REQ-PSYCHE-INGEST-FAILURE-LOUD (the misplaced-drop half of the same observability seam). Gate: impl -- the sentinel path fn + bounded exclusive acquire + its wiring at the three leaf ops; unit -- an acquire held by one handle makes a second measure elapsed >= the hold and THEN succeed (the lock is load-bearing, proven by elapsed not by a rate), the timeout error names the sentinel path AND the elapsed AND the bound, the bound is env-overridable in test scope only, a multi-worktree caller's acquisitions are sequential and never nested (the lock-ordering assertion), and a timed-out ingest DELETES NO DROP. int -- TWO PROCESSES committing concurrently into one shared worktree: zero failures, every slice PRESENT by existence read, per-arm durations reported, plus a DETERMINISTIC arm where process A holds the sentinel for a known T and process B's acquire measures elapsed >= T then succeeds.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6598659Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6598744Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6598831Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6598907Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599063Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599146Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599226Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599312Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599398Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599579Z               "path": "docs/FLAKE-LEDGER.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599664Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599741Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599823Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6599926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600030Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600121Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600211Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600410Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600491Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600572Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600825Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6600924Z               "line": 527
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601202Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601282Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601554Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601640Z               "line": 579
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6601959Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602042Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602299Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602385Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602643Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602728Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602812Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602888Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6602993Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603073Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603358Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603444Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603525Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603606Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603683Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603763Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603849Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6603936Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604159Z               "path": "crates/spt-store/tests/wtlock_two_process_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604298Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604594Z               "path": "crates/spt-store/tests/wtlock_two_process_int.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604683Z               "line": 174
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604755Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604836Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6604918Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605003Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605094Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605176Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605322Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605435Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605521Z               "line": 731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605790Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605877Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6605959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606149Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606235Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606493Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606578Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606654Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606841Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6606936Z               "line": 257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607016Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607198Z               "path": "crates/spt-store/src/wtlock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607284Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607403Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607480Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607560Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607641Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607718Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607800Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6607927Z       "id": "REQ-PSYCHE-INVOCATION-BUDGET-PER-ROLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6612973Z       "title": "EVERY BOUNDED ADAPTER INVOCATION TAKES ITS KILL BOUND FROM THE ROLE THAT DECLARES IT, WITH A SANE DEFAULT AND A HARD CEILING. FIELD ROOT (releases#27, two independent confirmations the night of 2026-07-29): the echo-commune summarizer ran against a flat 30s bound while the legitimate turn measured 23s and 35s wall on the same node with the same input -- the honest duration STRADDLES the bound, so kills were a load-of-the-moment lottery, and three agents were struck in one night. A LOTTERY IS NOT A FAULT SIGNAL. THE KNOB IS GENERAL, NOT ECHO-SPECIFIC: any role that is an LLM turn declares its own budget on the manifest role, because the adapter is the only party that knows what its own model costs. Numbers ruled: 90s when undeclared, and core CLAMPS a declared value to a 300s ceiling -- an adapter may not buy an unbounded spawn by declaring one. NO ROLE-NAME SPECIAL-CASING: the resolution keys on the declared FIELD, never on which role it is, matching the manifest contract's existing discipline for the recursion-guard field. THREE BOUNDS COLLAPSE INTO THIS ONE, verified by sweep rather than assumed: `LIVE_BOUNDED_TIMEOUT` governs BOTH the summarizer spawn and the history fetch, and `event_turn_timeout_for` separately governs the psyche_resume per-event turn on a pulse-derived value with a 30s floor. Ruled consequences, deliberate and not side effects: the history fetch moves 30s -> 90s undeclared, and the pulse-derived turn bound is REPLACED by the role budget (measured before replacing: default pulse 5s yields 30s today, under the new default, so nothing fielded is shortened). Gate: impl -- the budget field on the manifest session role, one resolution seam applied at EVERY bounded spawn site, the 300s clamp, and the pulse-derived turn bound retired in favour of it; unit -- undeclared resolves 90s, a declared value under the ceiling resolves verbatim, a declared value over it resolves 300s, and -- the no-special-casing row, since every other row passes an implementation that hardcodes the echo role -- a role the resolver was never taught by name resolves its declared budget identically.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613130Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613212Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613293Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613372Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613448Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613534Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613615Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613751Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613833Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6613914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614056Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614137Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614224Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614300Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614380Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614467Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614553Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614634Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614834Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6614919Z               "line": 1298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615192Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615276Z               "line": 1418
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615363Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615553Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615639Z               "line": 1637
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6615963Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616053Z               "line": 462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616134Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616213Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616289Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616370Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616461Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616547Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616623Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616704Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616790Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616913Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6616994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617114Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617205Z               "line": 2521
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617286Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617486Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617571Z               "line": 2872
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617839Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6617920Z               "line": 2917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618002Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618082Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618158Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618240Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618317Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618397Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6618511Z       "id": "REQ-PSYCHE-LEGACY-RESIDENT-SWEEP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624203Z       "title": "W5 (F030; doyle+perri 2026-07-04): a dirty daemon upgrade from <=v0.24.0 strands a RESIDENT psyche wrapper the OLD daemon spawned — and F-030 W4's nested-`ready` resolution fix CONVERTED that wrapper's accidental self-reap into a permanent HANG. The pre-W3 wrapper's only spt IPC is `spt ready <parent>-psyche --once` (BLOCKING, no internal timeout); pre-W4 that hit READY_FAIL on a multi-subnet home → the wrapper exit-4'd (accidental reap). Post-W4 the nested id resolves cleanly → the wrapper REGISTERS then BLOCKS FOREVER on its first post-upgrade poll: no exit, no psyche_host_error, no CPU (KH 2.6 invisible-loop class, one level up). Post-W3 core has no residency machinery to reap it. FIX: a ONE-SHOT legacy-resident sweep at BRAIN START (never per-reconcile/periodic — burying residency-era machinery, not resurrecting it). GUARD = adapter-AGNOSTIC (glue-model): resurrect the retired reap_orphan_psyches LOGIC — for each self-perch live-agent id derive `<id>-psyche` and kill iff (a) exe basename == the adapter's MANIFEST-declared psyche program (normalize_basename, never a hardcoded adapter name) AND (b) cmdline contains the id marker `<id>-psyche` AND (c) pid alive; any unreadable signal → DECLINE + loud log (fail-safe-decline, positive-match-only; infra never-kill inside the sweep). FRATRICIDE is closed by TIMING (perri-confirmed from the owning side): the ephemeral shim is daemon-spawned per-event, bounded, exits at turn end — at brain start BEFORE the first reconcile/pulse no current shim is resident, so any `<id>-psyche` psyche-program process alive then is unambiguously stranded-legacy. RESIDUE (doyle PIN 3): the hung wrapper REGISTERED a `<parent>-psyche` ready perch before blocking; killing the pid alone leaves a phantom ready-record with a dead pid (the REMOTE-TRUTH presence-lie class) — the sweep MUST also clear that stale registration or prove the existing stale-perch cleanup reaps it. No field window pre-W6 (nothing releases). (F-030 W5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624320Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624411Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624493Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624573Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624659Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624741Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624821Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624907Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6624997Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625080Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625217Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625308Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625399Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625608Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625695Z               "line": 1020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625775Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6625966Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626058Z               "line": 1038
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626382Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626466Z               "line": 1071
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626746Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626830Z               "line": 1089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6626920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627116Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627202Z               "line": 1158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627469Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627559Z               "line": 1319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627637Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627717Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627802Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627884Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6627975Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628065Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628300Z               "path": "crates/spt-daemon/tests/legacy_resident_sweep_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628380Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628461Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628547Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628628Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628708Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628838Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6628925Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629196Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629291Z               "line": 2431
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629571Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629653Z               "line": 2494
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629733Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629814Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6629948Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6630028Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6630109Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6630187Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6630301Z       "id": "REQ-PSYCHE-NESTED-RESOLUTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6633258Z       "title": "W4 (F030, design §3; F-017 sibling, general not psyche-only): nested {parent}/{nested} ids resolve under the PARENT's home — subnet-less resolution for nested perches (the home-ASSIGNMENT seam, not perch-path which is already subnet-less) — so child-side verbs acting on nested perches need no --subnet the child cannot know. ROOT: home::assign_home returns Ambiguous on a multi-subnet node w/o --subnet; a nested id must instead derive home from its parent perch. Additionally expose a SINGLE {subnet} base_keys fill WHEN KNOWN (own_subnet = home-subnet label, 'local' when unhomed; absent → LOUD missing-key fail, the {node} precedent). NO {home} key (doyle W4 Q1: the endpoint home subnet is ONE concept per CONTEXT.md:640, and 'home:' is already the subnet-name qualifier position CONTEXT.md:652 — a {home} template key invites meaning-drift). Red-first = evidence #3's exact repro: 2-subnet home, nested-id verb, must succeed (was: `spt ready <id> --once` → exit 1 READY_FAIL … pass --subnet).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637120Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637315Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637400Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637485Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637577Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637653Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637743Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637824Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6637915Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638010Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638192Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638277Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638358Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638497Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638578Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638663Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638758Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638850Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6638930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639137Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639226Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639513Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639597Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639766Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639874Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6639960Z               "line": 122
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640227Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640316Z               "line": 572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640398Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640480Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640560Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640641Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640733Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640813Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6640899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641032Z               "path": "crates/spt/tests/nested_resolution_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641118Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641476Z               "path": "crates/spt/tests/nested_resolution_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641557Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641638Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641715Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641800Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641886Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6641972Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642063Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642309Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642399Z               "line": 3043
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642479Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642669Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642751Z               "line": 536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6642912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643018Z               "path": "crates/spt-store/src/home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643103Z               "line": 571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643183Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643265Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643342Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643423Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643498Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643580Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6643695Z       "id": "REQ-PSYCHE-OUTCOME-CLASSIFIED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6647535Z       "title": "A PSYCHE OPERATION'S OUTCOME IS CLASSIFIED AT ITS SOURCE AND CARRIED AS A TYPE, NEVER RECOVERED BY READING ITS PROSE. The soft-timeout budget and the hard-failure budget can only differ if the two are told apart, and today they cannot be: `RuntimeError::Timeout { command, after }` exists at the source (spt-runtime runtime.rs) and `EchoError::Runtime` wraps it, but `fire_echo` ends `.map_err(|e| e.to_string())?` and `note_turn_outcome` takes `&Result<(), String>` -- so by the time the budget sees an outcome the fact is prose. RECOVERING IT BY MATCHING THE MESSAGE IS FORBIDDEN, and not as a matter of taste: this codebase already ruled that class out for the sibling discriminator, where the reserved exit code 95 is the SOLE session-not-found signal and the comment at its site states that the human-readable stderr line is never parsed. A harness whose summarizer prints the words `timed out` inside an ordinary non-zero failure must not thereby buy the softer budget. THE CLASSIFICATION IS THREE-VALUED (Ok / Timeout / Hard) and both legs -- the per-event turn and the commune-sync echo -- produce it, so the budget owner never re-derives what the spawn already knew. Gate: impl -- a classified outcome type produced at the runtime boundary from `RuntimeError::Timeout` and threaded unflattened through `fire_echo` and the turn leg into `note_turn_outcome`, which consumes the type and never the string; unit -- a HARD failure whose stderr text CONTAINS `timed out` still classifies Hard (the anti-parse row: a message-matching implementation passes every other row and fails this one), a real bound kill classifies Timeout, and a clean run classifies Ok.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6647743Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6647824Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6647908Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6647988Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648070Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648151Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648241Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648322Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648408Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648494Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648584Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648674Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6648876Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649038Z               "line": 607
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649119Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649367Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649457Z               "line": 621
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649538Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649735Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649819Z               "line": 632
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6649973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650087Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650172Z               "line": 1156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650491Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650581Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650744Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650843Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6650939Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651106Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651219Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651307Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651388Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651468Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651554Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651636Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651731Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651816Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651898Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6651974Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652069Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652155Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652346Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652431Z               "line": 2764
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652759Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652845Z               "line": 2836
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6652931Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6653011Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6653090Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6653171Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6653253Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6653330Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6653438Z       "id": "REQ-PSYCHE-ROLE-ABSENT-STATUS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6659478Z       "title": "AN UNDECLARED [session.psyche_resume] ROLE IS A SKIP WITH LOUD STATUS AND ZERO STRIKES, NOT A PER-FIRE TURN FAILURE (releases#229, ruled at the SEMAPHORE grill 2026-08-29; premise re-measured at 9ec181e9 before build). THE ASYMMETRY THIS CLOSES, measured: echo_commune absence takes one warn_once and a skip, while psyche_resume absence reached run_bounded_stdin, which answers RuntimeError::UnknownRole -> TurnError::Runtime -> a FAILED turn -> note_outcome(PsycheKind::Turn) -> a strike, ON EVERY FIRE. THE BUDGET IS FOR A DECLARED ROLE THAT FAILS: a role never declared cannot fail, cannot self-heal, and cannot change between fires, so per-fire strikes exhaust a budget built for a different mechanism and surface as psyche_host_error churn. DETECTION IS STRUCTURAL AND THE SKIP IS DECIDED BEFORE THE TURN RUNS, never inside its failure handling — producing no turn outcome at all is the only shape that spends zero strikes. THE STATUS FIELD IS A NEW SIBLING OF THE PSYCHE FIELD FAMILY, NEVER psyche_host_error (gater-ratified): that field is an error latch carrying a reason, a consecutive-attempts count and the fault slots a stamp was composed from, so routing a configuration fact through it would stamp a non-failure, increment an attempts counter on a structural condition, and churn the field an operator reads to find real faults. THE STAMP MEANS FIRST NOTICED, NOT LAST FIRE: re-recording the same role leaves it untouched, because a moving timestamp would present an unchanged fact as a recurring event. IT CLEARS ITSELF: a fire that sees the role declared clears the status, so a fixed endpoint shows clean with no operator gesture — reachable in practice because the tick reloads a swapped manifest before it fires. THE COMMUNE-SYNC LEG STILL FIRES when the psyche role is absent: they are different roles with independent optionality, and coupling them would let one missing role silence the other's work. BOTH POLARITIES ARE TESTED per the issue's ask — absent means loud once, skipped, zero strikes; declared-but-FAILING still strikes exactly as it does today, which is what keeps the first arm from being a blanket suppression.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6659646Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6659779Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6659864Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6659952Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660027Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660112Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660193Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660281Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660370Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660596Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660679Z               "line": 226
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660761Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660838Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660915Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6660999Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661089Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661175Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661251Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661370Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661460Z               "line": 513
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661547Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661742Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661823Z               "line": 1120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6661914Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662167Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662262Z               "line": 1596
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662534Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662624Z               "line": 1609
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662787Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662906Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6662991Z               "line": 1621
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663305Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663391Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663477Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663674Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663775Z               "line": 292
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6663952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664056Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664143Z               "line": 832
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664219Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664405Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664495Z               "line": 6274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664762Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664843Z               "line": 6457
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6664929Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665010Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665172Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665267Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665354Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665435Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665529Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665610Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665755Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6665955Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666046Z               "line": 3857
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666325Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666415Z               "line": 3949
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666499Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666733Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666823Z               "line": 3999
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666909Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6666986Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6667071Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6667152Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6667233Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6667310Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6667430Z       "id": "REQ-PSYCHE-ROLE-OPTIONAL-SKIP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6669996Z       "title": "W1 (LIFECYCLE-TRUTH): a manifest with NO [session.echo_commune] role SKIPS commune-sync (debug-level note, no strike) instead of hard-failing the turn. ROOT (perri filing, recovered): missing role -> commune-sync hard-fails -> 3-strike stamps the host ('manifest declares no [session.echo_commune] role') while the published contract presents the role as an optional template. FIX: missing OPTIONAL role = skip, not a turn failure. ROLE OPTIONALITY IS NOT UNIFORM, and the distinction is the point (releases#229): echo_commune is an OPTIONAL TEMPLATE by the published contract, so its absence is unremarkable and its note is quiet; psyche_resume is LOAD-BEARING WHEN DECLARED — an endpoint missing it runs no psyche turns at all — so its absence skips just as loudly-once but must also be STATUS-VISIBLE. See REQ-PSYCHE-ROLE-ABSENT-STATUS, which owns that arm.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670158Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670244Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670325Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670410Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670492Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670577Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670668Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670753Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670831Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6670915Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671001Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671088Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671359Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671446Z               "line": 528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671725Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671811Z               "line": 1390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671893Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6671978Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672064Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672150Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672236Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672326Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672403Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672488Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672574Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672664Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672860Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6672946Z               "line": 3804
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673027Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673108Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673189Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673275Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673357Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673437Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6673541Z       "id": "REQ-PSYCHE-SID-CUSTODY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676452Z       "title": "W2 (F030, design §3): the psyche mints and keeps its OWN session id, stored in the nested {id}-psyche perch record — {session_id} in psyche role templates becomes the psyche's sid, never the parent's (today's fill at livehost.rs:518 is the PARENT's — the custody bug). Parent boundary (/clear, /compact) does NOT rotate the psyche sid (the psyche's conversational thread survives parent resets — its job). resume_psyche validates the custody key before spawn (resume.rs:183). Reseed path: psyche session lost/invalid → ResumeMode::FreshWithPreload (download_psyche_context composes role/live/project into {psyche_context}, resume.rs:100) + LOUD PSYCHE_RESEED:{id} marker (custody-loss loop visible; W1 budget bounds it). If the parent sid is still needed by a template it gets its OWN explicit key {parent_session_id} — never aliased. Red-first: parent `api boundary clear` → nested perch sid UNCHANGED (today it is the parent's — guard-revert reproduces).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676558Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676648Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676728Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676813Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676895Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6676979Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677064Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677144Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677235Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677317Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677536Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677622Z               "line": 260
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677894Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6677990Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678069Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678242Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678323Z               "line": 172
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678408Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678524Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678608Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678689Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678781Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6678867Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679158Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679243Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679518Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679663Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679822Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6679940Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680026Z               "line": 1733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680297Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680384Z               "line": 1779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680466Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680660Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680742Z               "line": 1853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680822Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6680903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681018Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681109Z               "line": 1876
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681396Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681485Z               "line": 1903
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681767Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681852Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6681934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682190Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682280Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682557Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682638Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6682919Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683001Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683330Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683415Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683496Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683573Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683659Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683744Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683825Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683917Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6683997Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684126Z               "path": "crates/spt/tests/psyche_sid_custody_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684212Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684289Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684492Z               "path": "crates/spt/tests/psyche_sid_custody_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684578Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684658Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684738Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684818Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684905Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6684991Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685076Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685272Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685415Z               "line": 2979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685686Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685776Z               "line": 3148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6685935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686044Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686135Z               "line": 3177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686450Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686541Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686818Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686912Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6686993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687190Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687279Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687435Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687553Z               "path": "crates/spt-store/src/psyche_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687642Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687723Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687800Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687882Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6687957Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6688043Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6688120Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6688239Z       "id": "REQ-PSYCHE-SOFT-TIMEOUT-BUDGET",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692003Z       "title": "A TIMEOUT KILL IS A LOAD SIGNAL, NOT A DEFECT, AND SPENDS A SEPARATE AND FAR MORE FORGIVING BUDGET. A slow-but-healthy host must never latch FAILED: three consecutive bound kills during a CI load window are exactly what the field produced, and under the shipped single 3-strike budget they stamped healthy psyches. THE COUNTER IS ONE, SHARED ACROSS KINDS, and latches only after TEN consecutive timeout kills. ANY SUCCESS OF ANY KIND CLEARS IT, including a success of a different kind than the one timing out -- a timeout is evidence about the machine's load at an instant, and any completed spawn is evidence that the window passed, so cross-kind clearing is the semantics rather than a convenience. THAT CROSS-KIND CLEAR IS WHAT DISSOLVES THE ORIGINAL LATCHED-STAMP FIELD CASE, whose latches were timeout-driven. A timeout NEVER touches a hard-failure counter, in either direction: it does not strike one and it does not reset one. Gate: impl -- the shared consecutive-timeout counter, its ten-deep latch, its clear on any success of any kind, and its isolation from the hard counters; unit -- nine consecutive timeouts leave the stamp clean and the tenth stamps (the boundary asserted from both sides, since a row at one depth alone passes an off-by-one), a success of a DIFFERENT kind clears the timeout counter (the ruled cross-kind semantics, which a per-kind implementation fails while passing every same-kind row), and a run of timeouts leaves an existing hard counter at its prior value rather than resetting it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692117Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692198Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692285Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692369Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692450Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692533Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692614Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692707Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692788Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692874Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6692956Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693045Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693131Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693328Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693460Z               "line": 1940
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693741Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693823Z               "line": 1958
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693904Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6693980Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694061Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694143Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694229Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694314Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694628Z               "path": "crates/spt-daemon/tests/psyche_real_bound_kill_soft_budget_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694719Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694796Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6694877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695057Z               "path": "crates/spt-daemon/tests/psyche_real_bound_kill_soft_budget_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695148Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695223Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695303Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695465Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695551Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695828Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695917Z               "line": 2599
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6695993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696075Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696190Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696275Z               "line": 2642
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696356Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696433Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696514Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696595Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696676Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696753Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6696862Z       "id": "REQ-PSYCHE-SPAWN-ENV-PARITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700386Z       "title": "P-2 (WORKER-TRUTH triage addendum, perri-filed field finding 2026-07-06): the per-event psyche_resume spawn threads the perch record's CAPTURED read_env stamps into the spawn ENVIRONMENT — the F-027 Half-B env-parity contract (BINDING, design-frozen: read_env captured at creation + stamped on the record + threaded IDENTICALLY to every session spawn; the spawn never reads its own process env for a stamped var) extended to the psyche role the design predates. Field driver: flynn (claude-spt:ccs) — the ccs wrapper relocates the account root via CLAUDE_CONFIG_DIR at PARENT launch and the perch record correctly captured it, but the daemon spawns psyche_resume with bare env → default ~/.claude root → headless 'Not logged in' exit-1 → strike loop; psyche + parent land in DIFFERENT account roots (auth AND root-scoped continuity both break). Core stays harness-agnostic (threads whatever [env] direction=read captured — knows nothing of CLAUDE_CONFIG_DIR). Scope note: this is the URGENT psyche leg of F-027 Half B; the full pre_spawn seam + endpoint-session env threading stays design-parked (F-027-ENDPOINT-SPAWN-FAIL-DESIGN.md) unless operator pulls it forward.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700500Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700590Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700666Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700755Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700836Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6700917Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701000Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701088Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701179Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701257Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701343Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701432Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701514Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701718Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701804Z               "line": 741
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6701947Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702148Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702239Z               "line": 859
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702315Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702400Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702482Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702563Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702653Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702739Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702816Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6702934Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703073Z               "line": 2336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703150Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703267Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703357Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703439Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703535Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703625Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703821Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703911Z               "line": 1385
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6703992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704192Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704277Z               "line": 1413
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704364Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704441Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704521Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704602Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704683Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704765Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6704888Z       "id": "REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710046Z       "title": "W1 (LIFECYCLE-TRUTH): EVERY successful psyche operation clears psyche_host_error — not just the pulse-loop leg. ROOT (three field confirmations, perri): the stamp clears only via note_turn_outcome's Ok leg (lifecycle.rs:1101); a SUCCESSFUL psyche op via checkpoint/wake bypasses it -> stale FAILED stamp sits over a healthy psyche. FIX: event turn, checkpoint/wake synthesis, and signoff echo all clear the stamp on success. ~~AMENDED BAROMETER W1 (2026-08-02, doyle-ruled) -- the UNCONDITIONAL clear this requirement asked for is STRUCK, because it makes a per-kind health stamp impossible: with one current-state field, any turn success erased a standing INGEST fault by construction, so a broken ingest was masked within seconds on a 5s pulse.~~ THE AMENDED FORM: a success clears its OWN kind's hard latch, and -- cross-kind -- the shared timeout latch, since any completed spawn is evidence the load window passed; the stamp is then RECOMPOSED from whatever latches still stand rather than written and cleared imperatively. The original defect stays fixed: a success on ANY leg (event turn, transition/checkpoint echo, signoff echo) still reaches the seam, so a stale stamp over a healthy psyche remains impossible -- what changed is that a success no longer clears a fault it knows nothing about. DECLARED LIMIT, deliberately in the requirement rather than left implicit: the latches live in the host's memory, so a DAEMON RESTART forgets them while the on-disk stamp persists, and after a bounce the first success of any kind clears a stamp whose kind is no longer known. That is the pre-existing behaviour surviving across a restart boundary instead of every few seconds; restart-durable per-kind clearing needs the stored stamp to carry its kind and is filed separately.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710156Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710242Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710321Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710408Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710490Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710571Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710670Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710756Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710838Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6710919Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711012Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711093Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711348Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711440Z               "line": 1495
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711720Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711807Z               "line": 1505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6711968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712083Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712217Z               "line": 1517
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712302Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712503Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712584Z               "line": 1544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712669Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712752Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712831Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6712917Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713003Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713100Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713179Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713265Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713357Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713443Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713638Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713729Z               "line": 3564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713804Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713899Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6713980Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6714061Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6714142Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6714232Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6714347Z       "id": "REQ-PSYCHE-TURN-STREAM-EVIDENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717319Z       "title": "A failed psyche turn preserves BOTH captured streams as evidence: TurnError::Failed carries the child's stdout alongside stderr, and the failure display appends a bounded single-line stdout TAIL (last ~500 bytes, UTF-8-boundary-safe cut, newlines collapsed, the literal <EMPTY> when the stream said nothing — absence stated, never implied by a missing field). WHY (2026-07-26 spend-limit RCA): a failed turn's stdout is not psyche output, so BOTH core (turn.rs kept {status_code, stderr} only) and the adapter (guarding its outbound channel) independently discarded it — the same blind spot implemented twice — and an account-level outage surfaced as a bare 'claude exited exit code: 1' with the decisive refusal text thrown away at two layers; three agents then chain-hypothesized on an error string the real failing path never emitted. The tail is cause-agnostic instrumentation: it does not care what the failure is, which is why it survives being wrong about it. Adapter twin: claude-spt v0.25.14 dual-stream tail (shipped 2026-07-26).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717428Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717510Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717596Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717677Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717762Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717849Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6717943Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718029Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718110Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718193Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718282Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718373Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718569Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718653Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6718926Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719091Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719172Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719252Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719327Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719471Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719557Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719647Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719733Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719820Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719915Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6719999Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720182Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720272Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720591Z               "path": "crates/spt-live/src/turn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720687Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720773Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720853Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6720934Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6721011Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6721093Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6721173Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6721278Z       "id": "REQ-PUBLIC-ERROR-SURFACES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6728561Z       "title": "F-1 (REMOTE-TRUTH triage §F-1, Q4 UX rule, operator-ruled): CLI stderr a non-developer can hit names the OBSERVABLE SITUATION + the NEXT ACTION — never journal/op/brain/store lingo. The sweep's named offenders: (1) `RC_FAIL:{id}: … brain IPC read deadline elapsed` — the brain transport error surfaced RAW through rc's residual Err arm (rc.rs run_attach_inner); operators read 'brain IPC' where the situation is 'the daemon didn't answer in time'. (2) `WOKE_FAIL:{id}: info.json absent or unreadable — not a hosted perch` (resting.rs apply_event miss) — store-file lingo in the one rest-verb line a stale remote row still surfaces cross-node (the qualified-arm D6 case; the A-3 bare-id local path already routes instead). The miss stays SINGLE-SOURCED from NOT_A_HOSTED_PERCH_MARKER (in-process discriminant, resting.rs — reword is compat-safe per its own doc; the drift-pin unit keeps builder+matcher fused). (3) translation_fault never human-rendered (F-030 post-release seed): a broker-stamped input-translation fault (e.g. 'inject worker panicked') was invisible in `endpoint list`/`whoami` while keystrokes silently degraded — rendered now as a SELF-pin annotation exactly like the psyche_host_error pattern (REQ-HAZARD-LIVEHOST-BOOT-RACE), human line + additive skip-if-none JSON field. (4) host_error never human-rendered (A-2 addendum item 2, the half e7c49e2 deferred to this sweep): the daemon's host-level failure REPORT (REQ-WAKE-RESUME-LEG — e.g. a wake-resume refused because the recorded session adapter is not registered) was written to info.json and surfaced ONLY on `spt endpoint wake`'s accepted-not-bound print, so an operator who ran `spt endpoint list` instead saw an endpoint that simply never came back with no stated reason. Rendered now as the THIRD field of the one render pass beside psyche_host_error + translation_fault (`host: FAILED — the daemon could not host or resume this endpoint (<reason>)`), the stored reason carrying its own next action rather than a second one bolted on, plus additive skip-if-none JSON on the two LOCAL DTOs (SelfPinJson + LocalPerchJson). LOCAL-ONLY by the ruled LocalPerchJson `activity` class (doyle 2026-07-30): host_error is a local perch fact read from info.json, so a gossiped remote row OMITS the key rather than guessing and wire carriage waits for a consumer that actually asks — EndpointRowJson (the WAN projection) is deliberately untouched. Kin to banked patterns: public --help no internal codes; 'Updated' not 'trial'. The A-4b retry terminal + B-3 give-up line + A-3 routing strings shipped F-1-clean already — this REQ sweeps the stragglers and is the home for future sightings (extend, don't multiply).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6728685Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6728776Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6728856Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6728933Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729086Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729175Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729267Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729406Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729490Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729575Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729747Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6729940Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730031Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730293Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730427Z               "line": 6280
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730689Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730770Z               "line": 6287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6730932Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731033Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731123Z               "line": 6386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731390Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731476Z               "line": 6600
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731738Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731823Z               "line": 6605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731901Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6731977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732081Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732166Z               "line": 6683
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732430Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732525Z               "line": 12549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732788Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6732927Z               "line": 12560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733008Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733088Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733189Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733285Z               "line": 12651
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733446Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733547Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733637Z               "line": 2216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733722Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733799Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6733881Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734028Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734123Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734215Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734294Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734375Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734458Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6734544Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6738510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6738640Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6738725Z               "line": 29156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6738811Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6738887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739083Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739168Z               "line": 29218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739426Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739517Z               "line": 29298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739594Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739675Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739774Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739860Z               "line": 4972
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6739938Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6740018Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6740093Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6740260Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6740339Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6740415Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6740524Z       "id": "REQ-PUMP-DIAL-FASTFAIL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6747596Z       "title": "PUMP-TRUTH W1 (RE-SCOPED post round-2 empirical lock — the DIAL is EXONERATED, healthy ~100ms): a pump worker-leg PEER-REPLY read to a connect-then-silent / half-alive peer must drop THAT peer as an ORDINARY per-peer failure (peer_outcome's non-TimedOut arm -> PUMP_PEER_FAIL -> drop conn + redial, round CONTINUES, heartbeat advances), NEVER burn the brain's 30s PUMP_PEER_IO_TIMEOUT carrier deadline into a whole-round TimedOut POISON -> supervise_pump doubling-backoff restart. ROOT (deployah leg-instrumented capture, enlyzeam, 3 identical rounds): DIAL_EXIT 96ms ok, LEG i=3 update ms=30025 err[TimedOut] = the wedge. request_update (propagate.rs:373-375) opens the update stream + sends UpdRecord::Query (all bounded, all land), then BLOCKS read_event_until(deadline=call_deadline()=30s) on the peer's Offer/UpToDate reply; a peer that accepts the stream but never answers burns the full 30s -> TimedOut -> peer_outcome (pump/mod.rs:601) POISON -> whole-round abort + restart (= the field PEER_PUMP_FAIL: brain IPC read deadline, always-zero PUMP_PEER_FAIL). request_sync (sync.rs:374-376) is the LATENT TWIN (SKIPS the reply-read only when the want-set is empty; bites the moment it is non-empty against a silent peer). FIX (both legs): (a) reclassify the reply-read no-progress timeout OUT of TimedOut to a non-poison kind (Brain::read_peer_reply_until) so peer_outcome drops ONLY that peer -- poison RESERVED strictly for a genuine broker-IPC-CARRIER desync (the carrier ops net_open_stream/subscribe/send keep raw TimedOut); the abandoned peer stream is safe (exactly-once seq cursor stays contiguous, a late reply matches no live stream id). (b) budget-decouple the reply-read below 30s (Brain::reply_read_deadline = now + min(io_timeout, 10s)) so a silent peer drops promptly even in the still-sequential pre-W2 pump and can never race the carrier deadline. Files: propagate.rs (request_update) + sync.rs (request_sync) + brain.rs (reply_read_deadline + read_peer_reply_until) + pump/mod.rs (peer_outcome poison reserved for carrier-desync). Gate: a connect-then-silent peer at fan#0 -> the update leg drops it ordinarily within the reply-read budget, round continues + heartbeat advances, NO PEER_PUMP_RESTART; happy path (live peer) unchanged; + the sync-non-empty-want-set latent case. Kin REQ-PUMP-PEER-ISOLATION (W2 concurrency, VALIDATED by this root) + REQ-HAZARD-PUMP-IPC-DEADLINE (the poison it must stop mis-firing on a peer).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6747767Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6747857Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6747943Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748069Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748159Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748241Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748323Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748417Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748507Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748594Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748675Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748770Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6748851Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749156Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749248Z               "line": 1020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749328Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749524Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749605Z               "line": 1365
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749766Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749882Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6749962Z               "line": 2512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750048Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750239Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750377Z               "line": 2523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750545Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750672Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750762Z               "line": 406
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6750918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751026Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751113Z               "line": 407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751195Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751270Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751403Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751480Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751661Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751876Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6751961Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752043Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752119Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752205Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752286Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752381Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752657Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752740Z               "line": 2551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752825Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6752900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753006Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753093Z               "line": 2569
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753177Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753262Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753357Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753438Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753513Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753598Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6753699Z       "id": "REQ-PUMP-PEER-ISOLATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6756992Z       "title": "PUMP-TRUTH W2 (architectural, operator ruling 2026-07-08): one peer must NOT block or poison all others -- peer discovery is async / per-peer-independent. Two coupled defects in run_peer_pump: (1) SEQUENTIAL fan-out (for peer in fan_targets dials one-at-a-time, each up to the bound -> peer N+1 waits behind peer N); (2) WHOLE-ROUND POISON (peer_outcome(...)? -- one TimedOut aborts the ENTIRE round via ? -> supervise_pump doubling-backoff restart, resetting ALL conns). FIX: per-peer concurrency + fault isolation -- the pump issues non-blocking dial requests; the broker (already async tokio+iroh) returns connection/presence results as async events (the D4c presence seam), no serial per-peer block; a peer TimedOut drops + reschedules ONLY that peer, NEVER aborts the round or restarts the pump. Supervised-restart is RESERVED for a dead BROKER conn, not a dead peer (the single-thread+bounded-read A-half REQ-HAZARD-PUMP-IPC-DEADLINE was defensive -- it stopped the infinite wedge but coupled every peer's fate; this decouples). Gate: a mixed roster (1 live + N offline peers) -- the live peer connects AND this node advertises presence in the SAME round the offline peers fail; heartbeat advances every round; no PEER_PUMP_RESTART from a dead peer. Depends on W1 (a fast-failing dial is the precondition for clean per-peer scheduling).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757101Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757188Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757265Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757345Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757421Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757508Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757585Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757674Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757760Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757842Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6757927Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758012Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758099Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758176Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758289Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758412Z               "line": 1252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758687Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758777Z               "line": 1924
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6758935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759120Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759207Z               "line": 2301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759531Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759620Z               "line": 6074
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759701Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759893Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6759978Z               "line": 9216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760250Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760336Z               "line": 247
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760603Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760690Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760846Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6760952Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761038Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761303Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761384Z               "line": 1683
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761469Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761663Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761750Z               "line": 81
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6761963Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762079Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762169Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762249Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762436Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762521Z               "line": 1233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762793Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6762922Z               "line": 1592
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763198Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763281Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763362Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763557Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763643Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763723Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763908Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6763998Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764078Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764268Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764355Z               "line": 907
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764627Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764712Z               "line": 934
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6764984Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765121Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765398Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765484Z               "line": 1022
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765561Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765641Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765718Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765799Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765890Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6765970Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766200Z               "path": "crates/spt-daemon/tests/pump.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766290Z               "line": 693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766371Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766558Z               "path": "crates/spt-daemon/tests/pump.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766646Z               "line": 894
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6766920Z               "path": "docs/PUMP-W2-DESIGN.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767003Z               "line": 54
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767084Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767162Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767238Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767318Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767409Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767491Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767676Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767758Z               "line": 2057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6767920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768034Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768116Z               "line": 2032
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768196Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768383Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768474Z               "line": 2077
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768802Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6768892Z               "line": 2111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769237Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769317Z               "line": 2182
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769580Z               "path": "docs/PUMP-W2-DESIGN.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769714Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769795Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6769956Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6770039Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6770115Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6770195Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6770296Z       "id": "REQ-PUMP-STAGE-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6773677Z       "title": "MESH-RECOVERY W1 (ADR-0039, RCA wave 3 — the acceptance surface, same contract): peer-failure telemetry is STAGE-SPLIT and health is USER-MEANINGFUL. The single 10s PUMP_PEER_FAIL token splits into attributed stages — address-resolution, QUIC connect, ALPN, seed-proof send, seed-proof receive/verify, roster exchange — each failure stamped (wall+mono) and peer-attributed (subsumes the 2026-07-14 PUMP_PEER_FAIL-unstamped seed). daemon status / subnet status report: live peer count, last successful peer dial, last admitted registry update, duration of any all-peer failure; the incident fingerprint (all dials failing + heartbeat fresh + net_up true) MUST render degraded — no green without real peer progress. New fields ADDITIVE (N-1 readers unaffected). Gate: impl — stage split + status surfaces; unit — stage classification + health state machine (degraded on all-peer failure, healthy only on real progress, not on heartbeat/time); int — health flips degraded/healthy across a real peer outage/restore; doc — reference regen (CLI surface change → xtask gen, no internal codes in clap help). Kin REQ-PEER-ROUTE-CHAIN, REQ-DAEMON-5 (heartbeat — answers liveness, not reachability), REQ-CLI-2/REQ-SUBNET-8 (render legs).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6773831Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6773917Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6773997Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774082Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774160Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774246Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774335Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774468Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774554Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774638Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774862Z               "path": "docs/adr/0039-peer-route-resolution-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6774953Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775028Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775114Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775191Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775282Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775381Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775477Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775686Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775773Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6775935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776053Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776145Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776431Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776516Z               "line": 1615
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776803Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776892Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6776979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777235Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777325Z               "line": 1060
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777611Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777702Z               "line": 440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6777979Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778108Z               "line": 448
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778394Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778475Z               "line": 237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778751Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778841Z               "line": 8396
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6778918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779204Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779291Z               "line": 8519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779565Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779661Z               "line": 8832
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6779925Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780012Z               "line": 14542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780092Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780269Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780417Z               "line": 14697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780497Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780590Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780665Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780745Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780836Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6780923Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781141Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781228Z               "line": 401
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781308Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781442Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781519Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781604Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781699Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781780Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6781985Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782076Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782357Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782447Z               "line": 556
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782725Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782812Z               "line": 1026
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6782969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783083Z               "path": "crates/spt-daemon/src/pump/health.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783170Z               "line": 1064
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783432Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783518Z               "line": 35393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783599Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783684Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783761Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783852Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6783928Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6784008Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6784157Z       "id": "REQ-RC-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786199Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786304Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786385Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786470Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786556Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786633Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786719Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786800Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786890Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6786977Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787057Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787143Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787229Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787316Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787510Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787597Z               "line": 1953
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787880Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6787972Z               "line": 9247
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788049Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788128Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788282Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788373Z               "line": 1742
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788649Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788735Z               "line": 1776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788820Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6788897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789073Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789163Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789508Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789598Z               "line": 1522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789861Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6789946Z               "line": 2281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790026Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790111Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790188Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790277Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790362Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790457Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790648Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790733Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6790896Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791010Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791096Z               "line": 299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791377Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791459Z               "line": 450
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791544Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791620Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791701Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791784Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6791873Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792016Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792212Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792297Z               "line": 2451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792380Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792555Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792636Z               "line": 5016
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6792893Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793026Z               "line": 5045
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793285Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793372Z               "line": 5058
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793454Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793529Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793609Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793692Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793778Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793853Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6793953Z       "id": "REQ-RC-CROSS-NODE-ATTACH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6795962Z       "title": "Bug #4: spt rc to a remote endpoint fails with 'no live session' though endpoint list shows it Active — rc.rs:1063 resolves only the LOCAL broker session table and always dials loopback, never consulting the registry or dialing the owning node (the cross-node attach transport exists in the broker; only the client leg is missing). Fix: on a local resolve miss, resolve the owning node from the registry (reuse resolve_across_visible), net_dial that node, and run a remote session-resolve + serve_attach round-trip (mirror the wansend resolve-dial-round-trip pattern). Shares the resolve-owning-node primitive with REQ-WAN-SEND-DELIVERY. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #4.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796115Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796196Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796278Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796363Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796444Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796525Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796612Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796692Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796782Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796864Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6796950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797045Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797130Z               "line": 823
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797260Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797345Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797426Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797513Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797608Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797688Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797885Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6797974Z               "line": 314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798247Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798331Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798600Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798683Z               "line": 446
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6798847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799051Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799138Z               "line": 888
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799414Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799505Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799666Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799763Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6799904Z               "line": 2281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800005Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800233Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800314Z               "line": 2826
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800595Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800675Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800762Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800842Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6800922Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801055Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801147Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801236Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801442Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801527Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801795Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801880Z               "line": 2846
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6801956Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802039Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802114Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802195Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802280Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802368Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802447Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802562Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802649Z               "line": 455
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802729Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6802915Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803002Z               "line": 2803
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803086Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803215Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803298Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803373Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803458Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803538Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6803648Z       "id": "REQ-RC-DISPLAY-SOLE-WRITER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6810536Z       "title": "TEARDOWN-AUTHORITY W5 (hertz RCA 3 bug 1, 2026-07-19 — REPRODUCED on 0.38.1 CLI + 0.38.1 broker; doyle ruled, and it CORRECTS an incomplete v0.38.1 call of doyle's own): while `spt rc` owns the terminal (raw / alternate screen), rc is the SOLE writer to that display — no background thread may write to the inherited stderr. TODAY: BrainConn::split_with_reader (spt-daemon/src/brain.rs:253-270) unconditionally eprintln!s `PUMP_IPC_READER: spawned` / `exited` from its reader thread. Every reconnect attempt calls establish_attach -> Brain::cold_start_pump (rc.rs:1700-1712), and reconnect_banner_bytes (rc.rs:2040-2054) deliberately clears/homes and leaves the cursor immediately after the countdown with NO trailing newline — so the marker lands exactly at that cursor and the operator sees `Reconnecting to local daemon... 9sPUMP_IPC_READER: spawned`. Field screenshot confirms it also reaches the harness alt screen on a real `endpoint run` + `rc --take`. WHY THIS IS A CORRECTION, ON THE RECORD: v0.38.1's REQ-RC-SINGLE-PUMP-BRAIN removed the DOUBLE construction and doyle ruled the surviving single banner 'truthful, keep it' and classified the change Internal (diagnostic hygiene, not user-facing). Both halves of that ruling were wrong on facts doyle did not check: the marker is not merely a startup diagnostic, it is rendered INTO an rc-owned display, so it was user-facing all along and v0.38.1 reduced rather than eliminated the corruption. FIX: delete both unconditional eprintln diagnostics from the pump reader thread. If the observability is still wanted it goes to the daemon's persistent diagnostic sink or an explicit opt-in debug trace that NEVER inherits an interactive client's stderr — never to a stderr an attached client owns. Grounding: ADR-0043 terminal render lifecycle (one renderer owns the baseline); CONTEXT.md:33-36 (the broker's internals are not a client-visible surface). Gate: impl — diagnostics removed from split_with_reader (and any sibling unconditional client-inherited stderr write on the pump path); unit — insufficient alone and explicitly NOT the gate (the defect is cross-thread out-of-band stderr, which a banner-byte unit cannot observe); int — drive the REAL reconnect-banner path with the child's stderr captured into the SAME sink as the rendered terminal and assert neither PUMP marker appears anywhere in the captured stream, PLUS assert an ordinary initial `spt rc` is marker-free.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6810695Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6810817Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6810904Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6810981Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811061Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811141Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811235Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811332Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811406Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811491Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811582Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811668Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811745Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811858Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6811949Z               "line": 321
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812216Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812303Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812570Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812655Z               "line": 479
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812740Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812821Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812899Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6812979Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813117Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813199Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813403Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813485Z               "line": 600
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813567Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813641Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813723Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813805Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813896Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6813980Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6814107Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6814184Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6814264Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6814339Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6814449Z       "id": "REQ-RC-DRIVER-READ-LIVENESS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822447Z       "title": "The rc client's busy-refuse reads a LIVE driver, never a stale stamp (kin to REQ-HAZARD-DRIVEN-BY-SELFHEAL / KH 7.15, observed from the CLIENT side; instrumented x20 2026-08-19, doyle-ruled same day). MECHANISM, measured not inferred: `driven_by` is broker-owned and EVERY clear of it lives in the daemon (broker stamp_reaped, converge_perch_stamps, the livehost reconcile belt), while the write that makes a stopped perch read `offline` is `terminal_normalize` — run SYNCHRONOUSLY in the `spt endpoint stop` CLI process, whose write set is exactly the REST triple (status / rest_state / dormant_since_ms) and structurally cannot touch the CONTROL triple. `current_driver` (rc.rs) was a raw disk read of `driven_by` with NO liveness check, feeding `pre_broker_busy_guidance`, which prints and `return Ok(())` BEFORE any broker traffic — so between the CLI's stop-write and the next daemon tick, a plain `spt rc` is refused by a controller that is provably gone, and the broker's own truth (no live session) is never consulted. This is operator-visible with no test involved: stop an endpoint, immediately rc it, get 'controlled by another window on this machine' and exit 0. Instrument vector (run-3 of 20): driven_by=Some(own hex) + controlled=true beside status=offline at the refusal instant, cleared only ~56s later — the clear is LATE, not missing. FIX = reader-side and NARROW: the driver a record names is `None` exactly when `status == STATUS_OFFLINE`, the product's own declared staleness marker (the same predicate the daemon's DRIVEN_BY_SELFHEAL_OFFLINE belt asserts at livehost.rs); the reader stops having to wait for the tick to agree. Any other status — INCLUDING a record with no `status` field at all — is left alone and reports its driver verbatim: a broader `!= online` rule would suppress the refusal on legitimately mid-bind records, which is worse than the residual it closes (3/20 status-absent reads measured at capture instants, doyle-ruled ACCEPTED WITH ITS NUMBER 2026-08-19; re-opens only if a gate-instant absent-status refusal is ever measured). NO new writer: `driven_by` stays single-writer (the broker) — the belt that would have cleared the control triple from the CLI stop path was ruled OUT for exactly that reason, and `terminal_normalize`'s doc instead states the ownership split by replacement. `--view`/`--take`/qualified targets are unaffected (they already bypass the gate). Gate: impl — the liveness-filtered driver read in rc.rs + the terminal_normalize ownership-split doc; unit — an offline record reports no driver, an online one reports it verbatim, and NEITHER a non-offline status NOR an absent status is treated as a staleness marker (the narrowing is asserted in both directions, so a later widening cannot land silently). NO int: the existing engine-room bring-up e2e already expresses the invariant and must go green as it stands — a new int cell would only re-run it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822586Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822666Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822747Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822830Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822915Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6822995Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823091Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823224Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823305Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823396Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823468Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823548Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823769Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823854Z               "line": 577
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6823935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824118Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824264Z               "line": 1336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824340Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824521Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824606Z               "line": 1349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824687Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824768Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824843Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6824928Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825014Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825100Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825181Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825262Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825352Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825429Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825609Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825697Z               "line": 3878
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825772Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825853Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6825934Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6826011Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6826087Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6826168Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6826277Z       "id": "REQ-RC-HARNESS-ONLY-REFUSAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829016Z       "title": "RC-RENDER-TRUTH W1 (ADR-0042 decision 3, hertz elevated-endpoints RCA core leg 1): direct `spt rc <id>` preflights the already-known harness_only/controllable=Some(false) fact (local + gossiped rows both carry it) and refuses BEFORE any attach/stream with truthful copy naming the actual state ('online but harness-hosted; spt does not own its terminal') — never the stale-row guess ('it may have ended, or the registry row is stale'). Reproduced deterministically 2x live on an ONLINE - HARNESS ONLY endpoint. RC support for harness-hosted endpoints is NOT claimed until the elevated PTY-host satellite exists (standing ruling). Gate: impl — pre-stream preflight + truthful copy; unit — harness-only row refuses pre-dial with the new copy, non-harness rows unaffected; int — live remote Instance{harness_only:true} => direct rc refuses pre-stream, names harness-hosted, never says stale; doc — ADR-0042.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829116Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829198Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829279Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829359Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829440Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829518Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829608Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829683Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829774Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829861Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6829941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830059Z               "path": "docs/adr/0042-rc-attach-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830140Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830222Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830298Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830464Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830551Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830637Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830827Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830913Z               "line": 1306
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6830989Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831171Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831327Z               "line": 2086
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831594Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831680Z               "line": 327
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831758Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831838Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831913Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6831994Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832082Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832167Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832365Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832513Z               "line": 516
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832597Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832677Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832750Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832832Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832916Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6832997Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6836943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837071Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837167Z               "line": 3782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837249Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837324Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837405Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837487Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837564Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837643Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6837761Z       "id": "REQ-RC-HONEST-SESSION-AUTHORITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841092Z       "title": "RC-RENDER-TRUTH W1 (ADR-0042 decision 1, hertz perri-contradiction RCA): normal `spt rc` consults the ADR-0041 single honest-session authority BEFORE the persisted-offline fast-fail — run the bounded SessionProbe::has_live_session_honest gate; honest session exists means attach via run_attach_session_confirmed regardless of persisted status; no honest session means the existing offline refusal stands; claimed session with dead client tree means refusal/reap, NEVER attach. Reuse SessionProbe — no new liveness heuristic. Kills the authority split where rc refused ('offline — nothing to attach to') while endpoint run --resume reattached to the same live session. Gate: impl — the pre-fast-fail probe + session-confirmed routing; unit — probe-true routes to session-confirmed attach, probe-false keeps the refusal, dead-tree claim refuses; int — the 3-row regression matrix: offline persisted row + honest live broker session => rc attaches; offline + no session => existing refusal; zombie/dead client tree => refusal, never attach; doc — ADR-0042.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841206Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841296Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841373Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841454Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841582Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841668Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841750Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841830Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6841915Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842003Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842207Z               "path": "docs/adr/0042-rc-attach-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842293Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842370Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842450Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842526Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842607Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842690Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842774Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6842950Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843040Z               "line": 1073
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843291Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843377Z               "line": 1154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843453Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843629Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843763Z               "line": 2015
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843843Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6843921Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844002Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844083Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844172Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844250Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844449Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844530Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844612Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844855Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6844937Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845218Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845298Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845374Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845456Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845533Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845613Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845707Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845792Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6845972Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846053Z               "line": 3620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846134Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846211Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846287Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846367Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846443Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846526Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6846616Z       "id": "REQ-RC-IDENTITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6848806Z       "title": "`spt rc` overlays a persistent endpoint-identity marker so the operator always groks which endpoint they control: a reserved TOP status row via a DECSTBM scroll-region (shrink the PTY's reported rows by 1, own the row), right-aligned `SUBNET : ENDPOINT_ID @ NODE`, CYAN text. Re-assert the margin + repaint on alt-screen enter / DECSTBM reset / resize (output-scanning, like the existing mouse_scanner). NO window title (the harness, e.g. CC, owns it for busyness — OSC dropped). Resolve subnet/node/id once at attach (perch/registry read) and thread into the pump; subnet = the endpoint's home/primary (\"local\" if none). The literal floating rounded-rectangle corner box is DEFERRED to the future web-based GUI (not a grid-model rc — that lift is better spent on the GUI). (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6848901Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849064Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849149Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849230Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849301Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849430Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849511Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849601Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849689Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849769Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849845Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6849935Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850023Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850203Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850284Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850536Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850618Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850870Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6850957Z               "line": 256
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851207Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851294Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851599Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851681Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6851938Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852019Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852272Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852357Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852438Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852658Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852748Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6852996Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853077Z               "line": 407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853158Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853240Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853320Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853400Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853495Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853576Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853755Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853837Z               "line": 5627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853923Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6853999Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854084Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854161Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854252Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854332Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854510Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854595Z               "line": 5492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854675Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854848Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6854933Z               "line": 5510
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855247Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855333Z               "line": 5528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855581Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855667Z               "line": 5564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855915Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6855996Z               "line": 5571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856286Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856372Z               "line": 5584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856448Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856622Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856704Z               "line": 5612
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856790Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856871Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6856946Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6857028Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6857100Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6857181Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6857280Z       "id": "REQ-RC-IDMARKER-DISABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6858621Z       "title": "Bugs #14 + #7/#8 (marker half): feature-flag the top-right StatusRow endpoint-id marker OFF (rc.rs:198-307). It is a one-shot absolutely-positioned paint that scrolls off-screen and is not re-stickied (#14), and its DECSC/clear/SGR injection splices into the harness in-flight drawing causing residual artifacts (#7/#8). Ship disabled next release (operator: save the concept for a future web SPT GUI); revisit as a proper per-frame sticky overlay only once REQ-BROKER-SCREEN-GRID provides the screen model. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #14.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6858754Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6858834Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6858924Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859090Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859170Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859246Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859337Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859423Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859504Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859585Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859667Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859752Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6859981Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860067Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860319Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860405Z               "line": 2159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860481Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860558Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860639Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860720Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860810Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860893Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6860973Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861048Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861134Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861217Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861387Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861474Z               "line": 5482
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861560Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861640Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861720Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861801Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861887Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6861964Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6862067Z       "id": "REQ-RC-KEY-VT-TRANSLATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6867727Z       "title": "On Windows, `spt rc` translates CONSOLE KEY EVENTS to standard xterm VT so ALL keys reach the hosted harness — arrows/Home/End/PgUp/PgDn/Insert/Delete/F-keys, every modifier combo, Backspace/Ctrl+Backspace — not just the byte-emitting ones. ROOT (operator HITL, doyle /diagnose): `spt rc` reads raw STDIN BYTES (spawn_stdin_reader, std::io::stdin().read); on the Windows LEGACY console (no ENABLE_VIRTUAL_TERMINAL_INPUT) the special keys produce console KEY_EVENTs, NOT stdin bytes, so the byte-pump sees nothing → those keys are DEAD. Enabling ENABLE_VIRTUAL_TERMINAL_INPUT was rejected (W7 dc07c39): on Windows Terminal it yields harness-specific win32-input-mode + broke ctrl-b detach. FIX (agnostic, full fidelity): on Windows, replace the stdin byte-read with a crossterm EVENT source (crossterm 0.28 already a dep; the picker already reads events) and translate each KeyEvent → STANDARD xterm VT bytes via a PURE translate_key_event(KeyEvent)->Vec<u8> (copy a known-correct xterm table verbatim, ADR-0001 spirit), forwarded through the SAME rc pump — the harness receives ordinary xterm VT (harness-AGNOSTIC, no win32-input-mode). Press-only (drop Repeat/Release). Detach stays the ctrl-b+'d' PREFIX, event-sourced (doyle Option B): Ctrl+B arms; armed+plain-'d'⇒Detach; armed+Ctrl+B⇒emit literal 0x02; armed+other⇒0x02 then translate(other). Non-tty stdin (piped/tests) → FALL BACK to the byte-read path (keeps e2e byte-injection working). UNIX UNCHANGED (its raw-mode byte stream already delivers proper VT; cfg-split, zero Unix regression). SUPERSEDES the W7 normalize_key_byte swap on Windows — the translator emits 0x7f for Backspace and 0x08 for Ctrl+Backspace natively (REQ-HAZARD-RC-INPUT-KEY-ENCODING folded in). NO int (a live interactive console can't be driven in CI — HITL, REQ-RUN-PICKER/RC-1 precedent); the exhaustive non-vacuous translate_key_event mapping unit + the event-detach unit ARE the surface. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6867840Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6867927Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868007Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868093Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868227Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868308Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868389Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868479Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868566Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868737Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868822Z               "line": 417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6868905Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869172Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869258Z               "line": 567
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869389Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869470Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869551Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869640Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869726Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869811Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6869988Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870078Z               "line": 488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870336Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870421Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870688Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870770Z               "line": 562
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6870927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871032Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871108Z               "line": 577
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871370Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871458Z               "line": 626
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871533Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871613Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871777Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6871866Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872004Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872087Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872167Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872261Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872351Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872520Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872613Z               "line": 5073
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6872872Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873005Z               "line": 5188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873087Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873172Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873253Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873329Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873406Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873482Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6873581Z       "id": "REQ-RC-MOUSE-FORWARD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6877680Z       "title": "On Windows, `spt rc` must FORWARD scroll-wheel events to the harness when the harness has mouse reporting on. ROOT (operator HITL): P1's RawGuard EnableMouseCapture (added for right-click paste, REQ-RC-WIN-PASTE) makes Windows Terminal forward ALL mouse — including the scroll wheel — to rc instead of scrolling its own buffer, but the rc mouse handler dropped everything except right-button-down → scroll DIED (and WT's native scrollback is stolen by the capture). Operator ruling: keep mouse capture + right-click bracketed paste AND forward scroll to the harness. FIX (doyle design, cfg(windows), folds into the rc mouse handler): TRACK the harness's mouse-reporting mode by scanning its OUTPUT stream for the DECSET set/reset — ESC[?1000h/1002h/1003h (mouse on) + ESC[?1006h (SGR ext) and their ...l (off) — into a shared MouseMode{enabled,sgr} (pump writes from output, stdin reader reads); the scan survives a sequence SPLIT across output chunks (a bounded carry buffer). The mouse handler: right-button-DOWN -> bracketed clipboard paste (unchanged, REQ-RC-WIN-PASTE); ScrollUp/Down -> translate to an xterm SGR mouse report (ESC[<64;col+1;row+1M up / ESC[<65;..M down, 0-based crossterm -> 1-based xterm) and forward ONLY when enabled && sgr (else DROP — a legacy X10 report the harness may not parse is garbage); Moved/drag/left/middle -> DROP (scroll is the operator's need; click-forward risks garbage, no click-to-position). Unix UNCHANGED (no capture; the terminal scrolls natively). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6877829Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6877939Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878019Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878104Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878187Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878267Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878347Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878438Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878521Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878700Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878792Z               "line": 588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6878868Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879025Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879107Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879188Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879273Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879354Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879531Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879621Z               "line": 683
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879785Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879883Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6879964Z               "line": 699
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880049Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880126Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880205Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880281Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880371Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880453Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880534Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880671Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880758Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880844Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6880924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881025Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881110Z               "line": 5402
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881187Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881359Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881454Z               "line": 5421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881754Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881840Z               "line": 5433
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6881993Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882088Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882169Z               "line": 5461
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882245Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882327Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882403Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882478Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882560Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882632Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6882741Z       "id": "REQ-RC-NEWLINE-PRESENTATION-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886199Z       "title": "W3 (v0.39.4 field bug 3 ROOT, pinned 2026-07-22): the rc client presents relayed bytes exactly as the emitter addressed them — KNOWN-HAZARDS 7.56. rc's with_vt_output enables ENABLE_PROCESSED_OUTPUT without DISABLE_NEWLINE_AUTO_RETURN (DNAR: zero grep hits tree-wide), so the operator's console translates relayed bare LF into CR+LF — a column reset the emitter never asked for; the /c/config field scraps are capture record t=1784714152501's bare-LF index presented through that mode. Relay byte-clean end to end (why both isolated rigs read NOT-REPRODUCED and the fresh viewer read clean — the synthesized repaint is CUP-absolute). FIX: DNAR joins the with_vt_output composition whenever processed/VT output is enabled; prior-mode capture/restore unchanged; Unix needs nothing (raw mode already clears OPOST/ONLCR). Regression: the W3 captured-bytes rig PAIR (vehicle console without DNAR = field-client model = RED pre-fix; with DNAR = GREEN post-fix) + the minimal LF column-preservation probe through an rc-mode console. Amends REQ-RC-WIN-VT-OUTPUT (#12); kin KH 7.55 + the W3 vehicle-fidelity clause (three console-mode-seam manifestations, one day). Attribution CLOSED when hertz confirms fixed-rc clean on the field session; no debug channel needed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886408Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886495Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886580Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886661Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886737Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886814Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886895Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6886976Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887061Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887148Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887328Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887415Z               "line": 886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887576Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887730Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887816Z               "line": 251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887891Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6887971Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888052Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888138Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888231Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888312Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888484Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888569Z               "line": 766
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888650Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888732Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888808Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6888931Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889090Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889176Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889395Z               "path": "crates/spt-daemon/tests/attach_resize_capture.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889490Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889804Z               "path": "crates/spt-term/tests/rc_console_newline_presentation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6889890Z               "line": 126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890248Z               "path": "crates/spt-term/tests/rc_console_newline_presentation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890330Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890411Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890491Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890570Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890652Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890742Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890831Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6890902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891046Z               "path": "crates/spt-term/tests/capture_vehicle_fidelity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891131Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891437Z               "path": "crates/spt-term/tests/rc_console_newline_presentation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891527Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891780Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891865Z               "line": 4051
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6891943Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6892019Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6892095Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6892228Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6892310Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6892386Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6892509Z       "id": "REQ-RC-QUALIFIED-TARGET-CANONICAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895142Z       "title": "RC-RENDER-TRUTH W1 (ADR-0042 decision 4, hertz elevated-endpoints RCA core leg 2, doyle seam-confirmed rc.rs establish_attach): the resolver's canonical BARE endpoint id is carried separately from the user-facing qualified target — AttachRequest.endpoint_id is always the bare id (today rc passes the ORIGINAL qualified string; the target's resolve_local_session compares verbatim vs the bare HostedSession.endpoint, so `spt rc id@node`/`subnet:id` dials the RIGHT node then gets a false no-live-session refusal). N-1-additive: bare-form callers are unchanged. Gate: impl — canonical-id carry through establish_attach; unit — Address::parse qualified forms yield bare wire id, user-facing copy keeps the qualified spelling; int — bare + id@node + subnet:id ALL attach against a remote broker-hosted target, wire always carries the canonical bare id; doc — ADR-0042.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895288Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895374Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895457Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895537Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895612Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895688Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895769Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895845Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6895934Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896014Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896207Z               "path": "docs/adr/0042-rc-attach-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896290Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896367Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896444Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896520Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896601Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896686Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896764Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6896939Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897093Z               "line": 1291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897249Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897345Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897427Z               "line": 1959
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897680Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897765Z               "line": 2350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6897926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898056Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898141Z               "line": 2444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898222Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898405Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898488Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898569Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898650Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898726Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898810Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6898896Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899078Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899248Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899336Z               "line": 4516
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899421Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899496Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899578Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899655Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899741Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899820Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6899998Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900116Z               "line": 3768
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900460Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900547Z               "line": 2826
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900628Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900702Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900784Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900857Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6900938Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6901013Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6901112Z       "id": "REQ-RC-RECONNECT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6906622Z       "title": "B-3 (REMOTE-TRUTH triage §B-3, the operator-asked UX): the rc attach viewport RECONNECTS on a severed transport instead of print-and-exit. Pre-fix rc was one-shot (resolve→dial→attach→pump→parting line); FAULT-MATRIX row 9 over-promised. FIX: the establish sequence (daemon ensure → broker conn → session resolve local-first/cross-node → dial → attach-open w/ A-4b tracing retry → subscribe) is factored into establish_attach and run_attach_inner wraps establish+pump in a loop. RECONNECTABLE class = severed transport ONLY: PumpEnd::BrokerGone (broker-conn EOF class, broker bounce) + the NEW PumpEnd::Severed (serve-side stream EOF AFTER rendered output = remote conn drop — pre-fix MISLABELED as 'detached — still running'; a nothing-rendered EOF stays the honest NoLiveSession refuse). FINAL ends (Exited/Detached/Displaced/Stalled/NoLiveSession) never re-drive — re-attaching a deliberately-ended session is wrong. On sever: full-screen centered 'Reconnecting to {target}…' banner (pure byte-emit like StatusRow; target = owning-node label or 'local daemon'; Q4 UX rule — operator language, internal sever detail never paints), then re-drive establish_attach every RECONNECT_PAUSE (1s) inside RECONNECT_WINDOW (30s, generous for a daemon bounce); a Detach keypress mid-window aborts honestly to [detached]; window expiry → PumpEnd::ReconnectGaveUp with a plain-language give-up line naming the cause, the window, and the retry action (never op/read-err lingo). Per re-establish: fresh OpMinter (ADR-0034 rc tracing per viewport), fresh initial resize (PTY matches the CURRENT terminal), pump-local render cursor resets so the re-serve ring replay REPAINTS the screen the banner cleared. FAULT-MATRIX row 9 made TRUE (F-3), not edited down. Red-first: serve-EOF-after-render → Severed (vs the pre-fix false Detached); only BrokerGone/Severed classify Reconnect.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6906776Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6906855Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6906941Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907019Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907100Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907175Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907261Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907343Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907429Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907518Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907758Z               "path": "docs/FAULT-MATRIX.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907842Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6907930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908120Z               "path": "docs/TWO-HOST-RUNBOOK.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908201Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908467Z               "path": "docs/TWO-HOST-RUNBOOK.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908555Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908636Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908715Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908787Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6908874Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909039Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909129Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909305Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909394Z               "line": 2233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909474Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909648Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909737Z               "line": 2281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909872Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6909952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910056Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910138Z               "line": 2708
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910220Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910395Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910477Z               "line": 2736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910639Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910734Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910868Z               "line": 2754
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6910948Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911126Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911211Z               "line": 2767
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911470Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911559Z               "line": 2801
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911825Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911908Z               "line": 2808
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6911989Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912066Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912147Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912228Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912318Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912404Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912585Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912666Z               "line": 4171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6912952Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913034Z               "line": 1367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913115Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913196Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913277Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913358Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913501Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913587Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913768Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913854Z               "line": 4773
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6913944Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914116Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914207Z               "line": 4799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914289Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914511Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914601Z               "line": 4809
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914760Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914859Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6914940Z               "line": 4819
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915026Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915098Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915178Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915259Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915341Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915412Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6915516Z       "id": "REQ-RC-RECONNECT-TRUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917120Z       "title": "W3 (LIFECYCLE-TRUTH): rc reconnect never auto-starts a daemon and never hangs forever. ROOTS rig-proven (the operator's long-standing 'stop 2-4 times' bug): (a) an rc client's reconnect loop AUTO-LAUNCHES a daemon via WMI (rig: DAEMON_LAUNCH_VIA_WMI from the rc) — resurrection fights the operator's stops; (b) rc freezes at 'Reconnecting to local daemon…' forever when its session died with the broker. FIX: rc NEVER auto-starts a daemon (reconnect only to an already-up broker; loud 'session lost — daemon down' exit otherwise), bounded reconnect with visible countdown.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917216Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917293Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917415Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917497Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917574Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917660Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917739Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917826Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917913Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6917993Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918078Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918166Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918422Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918542Z               "line": 2123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918627Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918795Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6918885Z               "line": 2254
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919224Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919304Z               "line": 2314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919567Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919646Z               "line": 2717
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919898Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6919987Z               "line": 2808
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920064Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920146Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920222Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920302Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920388Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920474Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920645Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920737Z               "line": 4927
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920813Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920894Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6920969Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921109Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921194Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921279Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921461Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921547Z               "line": 4836
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921790Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921880Z               "line": 4853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6921957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922185Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922265Z               "line": 4886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922347Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922422Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922502Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922577Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922659Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922731Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6922845Z       "id": "REQ-RC-RESIZE-GEOMETRY-EPOCH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942224Z       "title": "A resize transition is ATOMIC from ScreenGrid's perspective: every byte is parsed at the geometry it was EMITTED under. (hertz v0.39.0 field RCA 2026-07-21, doyle re-grounded at source the same hour; P0 — this falsifies a SHIPPED v0.39.0 release claim, so it is a regression, not new scope.) SYMPTOM: right-margin fragments and left-shifted rows on a node where CLI and broker are BOTH 0.39.0 — i.e. exactly the defect the v0.39.0 notes claim fixed. SOURCE (statically provable, no repro box required): broker.rs dispatch_resize calls session.resize(SurfaceSize::new(rows, cols)) (~4557-4559) and only THEN recover_log(&log).set_size_and_notify(rows, cols) (~4560), which reaches self.grid.resize(rows, cols) (~1492) — TWO SEPARATE recover_log acquisitions, so the reader thread's append/parse interleaves between them BY CONSTRUCTION. On ConPTY the resize ITSELF emits a full repaint asynchronously; the reader parses that repaint into the grid at the OLD geometry; the subsequent top-left-preserving grid.resize then faithfully preserves an ALREADY-MISWRAPPED model; the cold attach repaint emits the shift. WHY THE EXISTING TESTS PASS: the spt-term width oracle (REQ-SCREENGRID-WIDTH's int stage) is green 5/5 while the field is red — it never crosses the ConPTY-emission -> grid-geometry -> attach-repaint seam, and the surface mock structurally cannot. The W3 width model is therefore NOT falsified; it is correct work running under a broken geometry transition. FIX — and the record must carry WHY the obvious fix is wrong: merely REORDERING (set grid geometry before invoking the ConPTY resize) is INSUFFICIENT. It is safe on a GROW and unsafe on a SHRINK, because bytes already in flight at the old WIDER geometry are then parsed at the new narrow width and wrap early. Neither pure ordering is correct because the defect is not the ORDER — it is that the grid has no notion of 'these bytes were emitted under the old geometry'. Required shape: quiesce/gate the drain across the ordered surface+grid transition AND carry an explicit geometry EPOCH so parse always reckons at the emitting geometry, with rollback/refetch of the grid geometry if the surface resize fails. Gate: doc — the epoch/barrier contract stated where the resize path is documented, including the shrink counter-example so the insufficient reorder is not re-proposed; impl — barrier + geometry epoch + failure rollback in the dispatch_resize/set_size_and_notify path; unit — a resize whose repaint bytes arrive mid-transition is parsed at the emitting geometry (both grow AND shrink), and a failed surface resize leaves the grid geometry unchanged; int — Windows REAL ConPTY (not the surface mock): resize emits a dense frame, then the synthesized attach repaint is compared against an INDEPENDENT terminal authority, never ScreenGrid against itself. FIXTURE AMENDMENT (hertz field supplement 2026-07-21 second capture, doyle-accepted, carried by todlando at build): the dense frame is ordinary readable PROSE with REPEATED WORDS and punctuation, not sparse synthetic markers — the field captures are semantic corruption of rendered content (`ReQ2`, `ROADMAPnsayh'credertigls`, `Recommend:gdirect REST`, `thii reqw st`, `resdluuion`: clobber, merge, substitution and displacement of width-1 cells MID-ROW), and repeated words are what make a displaced fragment land somewhere that still looks plausible — the shape that let this read as cosmetic. The leg must fail on DELETION, INSERTION, SUBSTITUTION, MERGE or DISPLACEMENT of any width-1 cell, with NO normalization and NO presence-only assertions (full-row untrimmed string equality plus equal row counts satisfies this by construction). CONSTRAINT, binding: the fixture stays inside the region where the authority emulator and ConPTY AGREE — the screen at the resize instant carries no line reaching either margin and loses no row, so reflow-vs-truncate is a no-op on it, and the wrap-crossing prose is emitted AFTER the transition opens, at the new geometry. A fixture crossing the margin at the resize instant would red on emulator POLICY DIVERGENCE rather than on this defect; pinning the wrap policy between authority and ConPTY is separate work and must not be smuggled in here. The comparison is EVERY CELL, including cells expected to be BLANK — not row starts, right margins, or text presence. The dense frame must include erased interior spans and repeated spaces, and those cells must still be blank after the synthesized repaint. (hertz field supplement 2026-07-21, doyle-accepted: the operator confirmed a THIRD corruption shape on the same fully-0.39.0 node — stale characters surviving INSIDE nominal whitespace between words, e.g. `isnsettled`, `fulllyacaptured`. A mis-widthed repaint places glyphs into wrong interior cells; later differential output and EL operations address the CORRECT geometry and so do not necessarily clear them; the synthesized cold repaint then faithfully re-emits the contaminated interior. Accepted as further evidence for THIS requirement, not a new root, on a DISCRIMINATION rather than the prediction: the captured debris is pure ASCII, every glyph width-1, so no width-table or wide-half defect can produce it — and the erase paths are already width-normalized on both halves at screen.rs clear_cell_keep_pen ~416/~420, the span helper ~440-443, and delete/insert_chars ~617-620, with erase_across_a_wide_half_leaves_no_orphan ~1391 passing. Word-scale `isn`+`settled` collapsing across a space is the same shifted-by-N placement as the whole-row left shift, observed at word scale. OPEN DISCRIMINATOR: interior debris in a session where NO resize occurred at any point would mean a SECOND root that this fix will not clear.) BINDING CONSTRAINT on satisfying the blank-cell assertions: NO whitespace special-casing and NO extra clears — the barrier must restore ONE geometry authority for glyph placement AND erasure. A fix that passes by clearing harder satisfies the test and leaves the defect. KNOWN ACCEPTED RESIDUAL (doyle ruling 2026-07-21): a cold attach landing DURING a transition renders the PRE-TRANSITION screen — the held bytes are not parsed yet. Accepted because it is a strict improvement over the shipped behavior on the same input (pre-fix: miswrapped/corrupt; post-fix: stale but coherent). The window is bounded in TIME (settle + one surface call) AND — since REQ-RC-RESIZE-PRESENTATION-BARRIER (built 2026-07-21) — in VISIBILITY: the commit/abort-time sync frame delivers every attached sink, transition-era attachers included, the fresh repaint the moment the barrier tears down, quiet child or not (the successor REQ's commit-time sync frame IS the follow-up seed this residual carried, absorbed by construction). The attach itself still renders the pre-transition screen for the width of the window. REFUSED, so nobody builds it later without a fresh argument: making the attach repaint WAIT on an in-flight transition — that puts a user-facing attach behind the settle cap / serialize wait.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942506Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942586Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942704Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942787Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942859Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6942942Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6943039Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6943130Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6943230Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947026Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947312Z               "path": "docs/adr/0031-server-side-screen-grid-render-repaint.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947407Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947554Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947641Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947717Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947802Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947894Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6947980Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948189Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948276Z               "line": 1233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948545Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948636Z               "line": 1262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948710Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6948896Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949068Z               "line": 1311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949153Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949230Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949344Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949429Z               "line": 1324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949511Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949706Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949855Z               "line": 1555
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6949936Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950121Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950208Z               "line": 3219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950470Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950556Z               "line": 3242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950645Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950894Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6950974Z               "line": 3257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951247Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951326Z               "line": 3290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951601Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951686Z               "line": 3381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6951953Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952034Z               "line": 8974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952311Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952393Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952479Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952555Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952640Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952717Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952808Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952889Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6952969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953113Z               "path": "crates/spt-daemon/tests/resize_geometry_epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953202Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953565Z               "path": "crates/spt-daemon/tests/resize_geometry_epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953652Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953734Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953813Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953893Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6953974Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954060Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954144Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954339Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954468Z               "line": 10970
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954549Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954726Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954811Z               "line": 11012
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6954979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955088Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955173Z               "line": 11037
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955446Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955531Z               "line": 11060
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955608Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955684Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955765Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955841Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955923Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6955999Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6956118Z       "id": "REQ-RC-RESIZE-PRESENTATION-BARRIER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6978763Z       "title": "During a resize transition, LIVE DELIVERY is barriered along with the grid parse: no attached sink (controller or viewer) ever receives mixed-geometry raw bytes; commit substitutes ONE synthesized sync frame at the target geometry. (hertz post-fix field RCA 2026-07-21 on a fully-0.39.3 node, doyle-accepted with every cite verified at source; SUCCEEDS REQ-RC-RESIZE-GEOMETRY-EPOCH, which shipped correct but scoped to the wrong surface — broker.rs's own ResizeTransition doc states append 'still rings + fans out every chunk exactly as before' during a transition, and OutputLog::append gates ONLY grid.advance. A live attached terminal therefore receives old+new-geometry differentials across an already-resized viewport; the cold-attach repaint model is definitionally blind to that path, which is why the shipped gate was green while the field was red. REQUIREMENT-SCOPE defect: the gate held against documented design.) CONTRACT (ADR-0031 Amendment II): (1) append still assigns seq and rings every chunk, but controller handoff and viewer fan-out are SUPPRESSED during the transition — a skip, never a block or sleep (KH 7.12 intact), and the suppressed window does not count toward the controller Full-eviction deadline; (2) commit replays held segments at their emitting geometry (the geometry-epoch machinery, unchanged), lands the grid at target geometry, then UNDER THE SAME OutputLog LOCK ACQUISITION pushes viewers the size frame FIRST and then one synthesized sync frame (render_repaint at target geometry ++ deferred non-grid bytes) to EVERY attached sink, controller included, before raw fan-out resumes — no raw frame may interleave; (3) the controller sync frame carries watermark seq = highest suppressed seq, so the cursor-of-record advances past the whole suppressed range as-if-written (repaint supersedes; the repaint_initial watermark shape); WIRE-FLAG AMENDMENT (doyle ruling 2026-07-21, from the build's real-wire int finding — the watermark jump would otherwise fatal every STRICT consumer as an output gap and ladder into ControllerIrrecoverablyBehind = marked truncation on every resize under a live controller): OutputEvent gains additive `sync: bool` (serde default false, never serialized when false — the resume_seq D4-1 additive shape), set by the broker on the commit AND abort sync frames AND on every repaint_initial batch; a consumer accepts a FLAGGED FORWARD jump and baselines on it on BOTH dedup paths (the supersession is explicit and broker-authored — B2-sound, nothing silently skipped); FORWARD-ONLY, binding: a flagged frame at/below the cursor dedup-drops exactly as today, never a backward baseline; an UNFLAGGED jump keeps strict reject-gap byte-for-byte; baseline_next_output STAYS as the old-broker x new-client cold-attach compat path (retirement is an N-2 seed at most); N-1 matrix published: new broker x old client = a resize in the mixed-version window ends the attach with a marked truncation (honest termination, strictly better than the pre-fix silent corruption; release notes carry 'update CLI and broker together'), old broker x new client = no flag arrives, strict paths byte-identical (unit-pinned as the N-1 leg); REJECTED shapes recorded in ADR-0031 Amendment II so none is re-proposed: unconditional baseline-on-jump, empty-frame delivery through the window, seq rebase, cold-reattach-on-second-gap; (4) abort takes the same uniform path minus the size frame, at the old geometry; (5) the log records the presentation floor (seq after last commit/abort) and a resume-from-floor asking BELOW it is served the cold-attach shape (sync repaint + skip to live), never a raw replay across the boundary — at-least-once preserved in effect because the repaint supersedes the skipped range. NON-GRID BYTE DISPOSITION (enumerated at triage, every class ruled): tracked-by-grid state (title OSC 0/2, alt screen 47/1047/1049, DECTCEM 25, DECSTBM, pen, cursor) = SUPERSEDED by the repaint by construction, unit-pinned per class; untracked STATEFUL sequences (bracketed paste 2004, mouse 9/1000/1002/1003 + encodings 1005/1006/1015, focus 1004, DECCKM 1, DECAWM 7, keypad ESC=/ESC>, DECSCUSR, OSC color 4/10/11/12/104/110/111/112, charset designation), ONE-SHOT events (BEL, OSC 52 clipboard, OSC 9/777 notifications) and child->client QUERIES (DA1/DA2, DECRQM, XTWINOPS, OSC 10/11 '?') = DEFERRED verbatim in emission order, flushed inside the sync frame (a dropped toggle is indefinite divergence, a dropped query can hang a waiting child; a deferred one is bounded-window latency); cell-scoped decorations the grid does not carry (OSC 8 hyperlinks, DCS graphics) = DROPPED as a balanced class (content superseded by the repaint; an unbalanced deferred open would decorate unrelated post-repaint text; matches the repaint's existing fidelity boundary). DSR is in NO class: the drain strips + answers it pre-append (REQ-DSR-SINGLE-CPR); its mid-transition CPR reports the pre-transition cursor — accepted bounded residual, recorded not built-around. MECHANISM CONSTRAINT, binding: classification runs in the ONE parser authority — ScreenGrid's vte::Perform in a capture mode during held-byte replay, re-encoding unconsumed sequences from callback parameters; NEVER a second scanner over raw bytes (two parsers = two truths about sequence boundaries). SIDE EFFECT, must be recorded when built: the commit-time sync frame IS the seeded 'push a fresh repaint to transition-era attachers' follow-up — the cold-attach-during-transition residual's 'not bounded in VISIBILITY' caveat dies (the stale window now ends at commit); update the KNOWN ACCEPTED RESIDUAL text at repaint_initial and in REQ-RC-RESIZE-GEOMETRY-EPOCH accordingly. RESIZE_HOLD_CAP overflow now also means suppressed-never-delivered bytes: the sync repaint after a partial parse leaves client and grid sharing the same self-healing partial view — strictly more consistent than shipped; keep the overflow loud. BINDING CONSTRAINTS CARRIED FORWARD from the predecessor: NO whitespace special-casing, NO extra clears (one geometry authority for placement AND erasure — a fix that passes by clearing harder fails gate); fixture rules verbatim (readable prose, repeated words, every cell incl. expected-blank interiors, full-row untrimmed equality, no reflow-crossing at the resize instant). FENCED SEPARATE, do not build in this wave: the heuristic epoch-split strengthening (mark_resize_issued precedes session.resize; the 20ms-quiet/250ms-cap split is a heuristic, RESIZE_SETTLE_CAP admits old-geometry bytes may land in the new epoch) — only if the field stays red after the fanout repair. Gate: doc — ADR-0031 Amendment II states the presentation contract incl. the byte-class disposition table; impl — suppression + commit-time sync frame + watermark cursor advance + presentation floor in OutputLog/append/commit_resize/abort_resize; unit — per-class disposition pins (a title change, cursor-visibility toggle, DECSTBM change, alt-screen switch, AND a bracketed-paste/mouse toggle inside the suppressed window each surface in or after the sync frame; a hyperlink pair does not), the watermark advance (a resumed controller never re-receives a suppressed seq), the eviction-deadline exemption, the abort path, AND the wire-flag matrix (flagged-forward accepted + baselined on both dedup paths; flagged-backward dedup-dropped unchanged; unflagged-forward strict reject-gap byte-for-byte; old-broker wire without the key defaults false and a cold attach still baselines via baseline_next_output); int — the REAL live controller writer driven across a transition: an attached controller whose socket feed is parsed by an independent terminal authority at the CLIENT TARGET geometry, full untrimmed row equality every row after the sync frame, every cell incl. blanks; a viewer leg asserting size-frame-before-sync-frame and zero raw frames between commit and sync; a resume-across-resize leg (controller detaches pre-resize, resumes post-commit, receives zero mixed-geometry raw bytes and lands exact at target geometry). The cold-attach oracle is insufficient by construction and does not satisfy the int stage.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979153Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979239Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979317Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979397Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979473Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979554Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979683Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979764Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979859Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6979942Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980196Z               "path": "docs/adr/0031-server-side-screen-grid-render-repaint.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980287Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980367Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980447Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980523Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980605Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980696Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980828Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6980910Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981029Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981114Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981391Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981477Z               "line": 897
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981753Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981835Z               "line": 1382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6981992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982106Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982189Z               "line": 1511
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982455Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982546Z               "line": 3258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982819Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982903Z               "line": 3291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6982974Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983276Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983409Z               "line": 3339
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983681Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983763Z               "line": 3382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6983920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984029Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984111Z               "line": 4025
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984192Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984426Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984516Z               "line": 1730
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984592Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984788Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984873Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6984959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985146Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985226Z               "line": 848
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985493Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985578Z               "line": 863
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985654Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985843Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6985933Z               "line": 902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986010Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986195Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986286Z               "line": 920
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986586Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986678Z               "line": 1137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6986935Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987017Z               "line": 1201
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987279Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987402Z               "line": 1230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987666Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987749Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987836Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6987918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988027Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988108Z               "line": 1269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988379Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988464Z               "line": 1308
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988546Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988627Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988703Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988793Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6988879Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989051Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989304Z               "path": "crates/spt-daemon/tests/resize_presentation_barrier.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989394Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989713Z               "path": "crates/spt-daemon/tests/resize_presentation_barrier.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989804Z               "line": 390
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989882Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6989966Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990042Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990187Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990276Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990362Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990443Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990553Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990643Z               "line": 2824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990904Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6990993Z               "line": 2902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991313Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991393Z               "line": 11092
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991670Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991761Z               "line": 11189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991842Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6991927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992037Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992123Z               "line": 11252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992390Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992476Z               "line": 11288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992749Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992829Z               "line": 11311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6992986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993096Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993234Z               "line": 11342
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993515Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993604Z               "line": 11407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993686Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993766Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993874Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6993960Z               "line": 11447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994041Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994128Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994284Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994371Z               "line": 11502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994638Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994724Z               "line": 2140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6994894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995010Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995099Z               "line": 1658
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995358Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995442Z               "line": 1692
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995706Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995791Z               "line": 1713
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6995945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996053Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996138Z               "line": 1732
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996398Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996484Z               "line": 1748
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996789Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996880Z               "line": 1765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6996957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997142Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997224Z               "line": 1777
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997304Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997385Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997466Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997543Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997628Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997705Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.6997858Z       "id": "REQ-RC-SINGLE-PUMP-BRAIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7001624Z       "title": "RC-RENDER-TRUTH v0.38.1 fast-follow leg 2 (hertz v0.38.0 field repro 2, hertz RCA confirmed + doyle-accepted): plain `spt rc` constructs EXACTLY ONE pump Brain — the W1 truth probe (SessionProbe::connect, rc.rs ~1388/981-987, KIND_SESSIONS then drop) and establish_attach (~1464/1632) each build a real pump Brain today = two transient IPC reader threads/conns + a doubled user-visible 'PUMP_IPC_READER: spawned' banner per invocation (brain.rs:254 emits once per BrainConn::split_with_reader via cold_start_pump — the log site is NOT duplicated). FIX (hertz seam, ratified): carry the SessionProbe's Brain INTO establish_attach and re-query sessions on that same conn for freshness — do NOT suppress the log line and do NOT switch to Whole (the banner is truthful; the double construction is the defect). Qualified/session-confirmed paths (which skip the probe) and the reconnect loop (one fresh pump per attempt, correct) unchanged. Gate: impl — probe-Brain carry + same-conn freshness re-query; unit — probe-then-establish reuses the conn (construction-count observable); int — rc_attach_truth offline_row_over_live_session_attaches extended: capture stderr, assert PUMP_IPC_READER spawned count == 1 PLUS existing behavior assertions; doc — none (internal seam).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7001783Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7001868Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7001948Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002025Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002107Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002187Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002263Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002355Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002440Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002516Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002597Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002731Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002816Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7002999Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003079Z               "line": 1016
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003332Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003417Z               "line": 2287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003494Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003571Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003652Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003732Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003813Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003900Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7003981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004094Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004179Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004256Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004331Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004411Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004491Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004578Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004659Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004840Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004921Z               "line": 4394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7004997Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7005078Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7005154Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7005231Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7005365Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7005444Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7005546Z       "id": "REQ-RC-VT-TEARDOWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7008526Z       "title": "RC-RENDER-TRUTH W3 (ADR-0043 decision 2, hertz stale-glyphs RCA leg 2 P0): rc display teardown is a display RAII guard SEPARATE from the OS input/raw-mode guard, unconditional and idempotent on EVERY exit path including errors and unwind — best-effort SGR reset + full scroll-region reset + cursor show + leave alternate screen + clear/home, emitted while VT output processing is still enabled, THEN restore the prior console output mode, THEN parting prose (today RawGuard::drop restores raw/mouse/console-mode only; detach, child exit, displacement, first-event stall, fatal error, and the 30s reconnect give-up all can leave the operator terminal dirty; the reconnect banner clears+homes then give-up prints at the centered cursor). Gate: impl — split display guard + every-path coverage; unit — guard emits the cleanup postlude exactly once, idempotent on double-drop; int — dirty sink (?1049h ?25l SGR31) x every PumpEnd/error class => cleanup postlude precedes the final prose; doc — ADR-0043.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7008627Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7008709Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7008781Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7008865Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009024Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009105Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009184Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009261Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009353Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009439Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009651Z               "path": "docs/adr/0043-terminal-render-lifecycle.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009733Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009819Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7009894Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010028Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010109Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010199Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010280Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010453Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010538Z               "line": 891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010619Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010791Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010867Z               "line": 904
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7010997Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011172Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011254Z               "line": 2139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011501Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011583Z               "line": 2194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011660Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011739Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011815Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011905Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7011991Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012075Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012251Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012338Z               "line": 3959
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012413Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012489Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012571Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012653Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012738Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012823Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7012906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013000Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013090Z               "line": 3942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013167Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013248Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013325Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013405Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013481Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013559Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7013710Z       "id": "REQ-RC-WIN-PASTE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018214Z       "title": "In an `spt rc` session neither ctrl+V nor right-click pastes (CC explicitly supports ctrl+V). ROOT (doyle /diagnose): RawGuard does only enable_raw_mode (no bracketed paste / no mouse capture / no clipboard interception); the Windows console delivers a paste as synthetic per-char KEY EVENTs (no crossterm Event::Paste), and ctrl+V translates to bare ^V forwarded to CC — but CC runs DAEMON-SIDE with NO access to the operator's LOCAL clipboard, so remote paste is fundamentally CLIENT-ORIGINATED. A multi-line paste-as-keys also becomes a \\r submit-storm. FIX (doyle design, V0.13.0-P1-RC-PASTE-DESIGN.md, cfg(windows), folds into the bug-2 event path): on a paste gesture rc reads the LOCAL clipboard + forwards a BRACKETED PASTE (ESC[200~ + content + ESC[201~); CC has bracketed-paste mode on (its TUI sets ESC[?2004h) so it treats it as a paste — content intact, no submit-storm, harness-AGNOSTIC. ctrl+V: intercept Char('v')+CONTROL in the event loop -> read_clipboard -> bracketed paste. Right-click: RawGuard also EnableMouseCapture (disables console QuickEdit + enables ENABLE_MOUSE_INPUT so right-click surfaces as Event::Mouse on legacy cmd/powershell) -> right-button -> read_clipboard -> bracketed paste; DROP all other mouse (CC has no mouse features, operator-confirmed, so capture costs nothing). read_clipboard = clipboard-win crate (cfg(windows), minimal); empty/failed = clean no-op. Content forwarded VERBATIM (literal pasted text, no per-char translation). Unix UNCHANGED (its terminal pastes natively through the byte pump). DEPENDS ON P0 (a paste chunk must not wedge the broker). (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018320Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018401Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018477Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018557Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018663Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018748Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018820Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7018910Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019259Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019346Z               "line": 574
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019420Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019496Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019574Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019651Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019740Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019869Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7019946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020041Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020125Z               "line": 657
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020278Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020374Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020459Z               "line": 673
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020717Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020793Z               "line": 716
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7020951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021046Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021126Z               "line": 730
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021370Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021456Z               "line": 741
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021533Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021618Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021770Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021857Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7021942Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022018Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022099Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022323Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022504Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022588Z               "line": 5343
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022850Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7022931Z               "line": 5364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023011Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023189Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023331Z               "line": 5385
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023412Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023489Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023565Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023645Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023712Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023795Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7023913Z       "id": "REQ-RC-WIN-VT-OUTPUT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027296Z       "title": "Bug #12: `spt rc` to an endpoint renders ANSI escapes LITERALLY (raw ←[K / color codes) on a Win10 conhost console, garbling the viewport — while `endpoint run --attach` in the SAME env renders fine and Win11 Windows Terminal is unaffected. Root (code-grounded, doyle): rc.rs RawGuard::enable calls only crossterm enable_raw_mode (INPUT raw mode) and NEVER enables ENABLE_VIRTUAL_TERMINAL_PROCESSING on the OUTPUT handle; Win10 conhost defaults VT-output OFF so escapes print literally, whereas the picker/alt-screen setup on the endpoint-run path enters crossterm's VT-enabling console setup first (leaving VT-output on) — so it is the rc-attach CLIENT PATH specifically, and --attach-works-same-env confirms (not refutes) the VT-out theory. Fix: in the rc attach path (RawGuard), on cfg(windows) + interactive console (mirror the windows_mouse_wanted guard so piped stdin/stdout keeps clean bytes for the e2e byte tests), SetConsoleMode STD_OUTPUT_HANDLE |= ENABLE_VIRTUAL_TERMINAL_PROCESSING|ENABLE_PROCESSED_OUTPUT, capture the prior mode, restore on Drop. cfg(windows)-only, client-side, independent of #4/#6. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #12.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027442Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027528Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027611Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027692Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027775Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027851Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7027947Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028032Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028144Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028226Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028317Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028408Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028589Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028669Z               "line": 765
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7028928Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029079Z               "line": 782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029322Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029408Z               "line": 806
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029485Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029562Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029637Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029714Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029799Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029896Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7029980Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030071Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030158Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030244Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030420Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030511Z               "line": 4028
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030591Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030671Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030751Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030911Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7030995Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7031076Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7031168Z       "id": "REQ-RCVIEW-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7035513Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7035619Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7035699Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7035783Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7035864Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7035988Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036076Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036157Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036248Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036330Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036420Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036592Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036677Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036753Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036834Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036911Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7036997Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037129Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037212Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037412Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037497Z               "line": 940
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037764Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037852Z               "line": 3526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7037932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038118Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038199Z               "line": 3549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038483Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038564Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038653Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038838Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7038926Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039254Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039338Z               "line": 734
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039502Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039658Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039750Z               "line": 1522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039826Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039911Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7039997Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040074Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040165Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040246Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040437Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040522Z               "line": 1166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040603Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040841Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7040927Z               "line": 1229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041198Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041279Z               "line": 1291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041550Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041636Z               "line": 1519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041718Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041799Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041874Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7041955Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042038Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042133Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042323Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042414Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042672Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042757Z               "line": 492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042886Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7042963Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7043048Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7043124Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7043205Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7043278Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7043372Z       "id": "REQ-REACH-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7044695Z       "title": "Off-node remote-drive detection. THE FILE-TRANSFER HALF IS STRUCK (ADR-0060, releases#246, doyle-ruled 2026-09-07): the WAN transfer family it named is retired -- see REQ-XFER-RETIRED -- so this requirement now covers detection only. What survives is what never depended on the transport: the daemon-side fact of WHICH node is driving an endpoint's session, stamped by the serve path and read back by the endpoint. The int stage stands on the remote-drive cell in tests/dispatch.rs; the transfer int arms left with the family they covered.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7044832Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7044915Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7044995Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045076Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045152Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045239Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045314Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045400Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045486Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045559Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045643Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045724Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045811Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045883Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7045991Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046077Z               "line": 3526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046343Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046424Z               "line": 702
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046505Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046684Z               "path": "crates/spt-store/src/xfer.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046760Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7046961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047065Z               "path": "crates/spt-store/src/xfer.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047147Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047414Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047495Z               "line": 456
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047571Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047652Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047733Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047810Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7047934Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7048024Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7048097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7048219Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7048301Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052235Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052468Z               "path": "docs/INFRA-REGISTER.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052555Z               "line": 1802
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052640Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052721Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052806Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052888Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7052978Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053060Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053261Z               "path": "crates/spt-daemon/tests/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053350Z               "line": 1002
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053618Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053703Z               "line": 1645
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7053862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054069Z               "path": "crates/spt-store/src/xfer.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054155Z               "line": 118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054424Z               "path": "crates/spt-store/src/xfer.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054506Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054593Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054792Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054873Z               "line": 2024
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7054949Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055077Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055155Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055236Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055340Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055426Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055512Z       "id": "REQ-REACH-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055683Z       "title": "Remote command execution (deferred, consent-gated)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055775Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055864Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7055950Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056051Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056133Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056217Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056298Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056385Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056471Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056551Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056633Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056714Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056805Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056885Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7056969Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057056Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057140Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057225Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057301Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057383Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057460Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7057563Z       "id": "REQ-READY-AGENT-RESUME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061170Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint resume <id>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061280Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061361Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061441Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061533Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061609Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061694Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061775Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061862Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7061952Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062225Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062314Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062394Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062480Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062557Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062638Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062728Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062867Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7062943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063057Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063148Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063224Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063309Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063386Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063468Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063553Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063643Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7063863Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064001Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064083Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064164Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064239Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064325Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064407Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064493Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064686Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064782Z               "line": 384
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064866Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7064947Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7065023Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7065104Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7065181Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7065261Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7065376Z       "id": "REQ-RECONCILE-FAILED-ADDR-REFUSE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7068452Z       "title": "WAN-TRUTH #40 F3 (the RECONCILE consumer of REQ-DIAL-FAILED-ADDR-MEMORY): reconcile_peeraddrs refuses to reinstall over a suspect cache row the very address whose dial just failed, and leaves the suspect mark standing — while still installing any DIFFERING validated roster address and clearing the mark exactly as today. This kills the livelock the live-fire injection proved (fail at 19:42:19 -> demote -> the 19:42:34 roster exchange reinstalls the byte-identical stale address and clears the mark -> fail), without removing the connection-independent recovery the same function exists to provide. Sibling: REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP, the same memory read at the route-chain consumer. Gate: impl — the suspect-arm predicate through the shared helper, at both the startup and the roster-merge sink call sites; unit — a suspect row is NOT overwritten by the just-failed address and stays suspect, a suspect row IS replaced by a differing roster address with the mark cleared (re-pinned by intent), and absent/invariant-invalid rows behave as before.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7068553Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7068644Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7068720Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7068805Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7068921Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069068Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069158Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069250Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069330Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069411Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069502Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069588Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069793Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069879Z               "line": 1001
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7069960Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070039Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070115Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070197Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070291Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070375Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070461Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070543Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070629Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070718Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070805Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7070924Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071014Z               "line": 1386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071348Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071435Z               "line": 1417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071516Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071591Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071672Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071749Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071831Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7071911Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7072025Z       "id": "REQ-REDISPATCH-FINISHED-RETIRE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7074871Z       "title": "REDISPATCH-TRUTH W1 (ADR-0038, hertz fix A): finished/terminal stream rows are RETIRED from redispatch eligibility — NetShared.streams today has NO removal path (single insert nethost.rs ~649; StreamLog::finish only marks) so every dispatcher generation re-enumerates every historical stream forever. Retire terminal rows from the enumeration the dispatcher claims from (remove, or lifecycle-exclude), preserving only the post-EOF state genuinely needed by other readers (presence/log reads); bounded growth replaces forever-discoverable rows. Clearing the whole table on brain restart is REJECTED (destroys live streams' reconstruction facts). Gate: impl — the retirement path; unit — a finished stream is invisible to the dispatch enumeration while an active one stays claimable + post-EOF reader state survives retirement; doc — rides ADR-0038 + the triage doc. Kin REQ-HAZARD-REDISPATCH-CONTROL-STEAL (the invariant it satisfies), REQ-STREAM-OPENER-DURABLE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075020Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075099Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075180Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075266Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075342Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075421Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075502Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075583Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075664Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075750Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7075975Z               "path": "docs/adr/0038-broker-stream-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076065Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076140Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076266Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076346Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076436Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076522Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076604Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076798Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076885Z               "line": 2068
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7076956Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077042Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077151Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077281Z               "line": 9592
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077361Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077442Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077554Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077638Z               "line": 571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077911Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7077990Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078070Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078260Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078340Z               "line": 852
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078498Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078608Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078693Z               "line": 1058
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078774Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7078856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079041Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079128Z               "line": 2004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079213Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079285Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079365Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079499Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079585Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079671Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079871Z               "path": "crates/spt-daemon/tests/redispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7079957Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080043Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080238Z               "path": "crates/spt-daemon/tests/redispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080319Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080444Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080520Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080680Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080771Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080855Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7080930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081045Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081132Z               "line": 3261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081399Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081479Z               "line": 2743
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081560Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081747Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081832Z               "line": 2782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7081980Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082090Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082171Z               "line": 2828
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082256Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082334Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082409Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082481Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082561Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082639Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7082752Z       "id": "REQ-REGISTRY-APPLY-TRANSACTIONAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7085503Z       "title": "REGISTRY-LIFECYCLE W1 (ADR-0040 decision 3, hertz defect B leg 3): registry feed application is TRANSACTIONAL per feed — serve_registry_feed merges decoded labels + instance updates in memory across transport chunks and applies ONCE at EOF (or one bounded batch commit for oversized feeds); write_snapshots runs O(feeds), never O(chunks x record-kinds); attention-shift side effects fire once post-merge. No synchronous full-registry rewrite inside a per-chunk drain iteration (KH 7.12/7.43 discipline on the brain side — the per-chunk rewrites are what stalled IPC drain and manufactured the 15s seat-writer poisons). Gate: impl — accumulate-then-apply; unit — snapshot-write counter across a multi-chunk feed == 1 (bounded batches: == ceil(records/batch)), merge result equals per-chunk semantics, gate policy still applied per record; int — rides REQ-HAZARD-REGISTRY-STALL seam (snapshot writes O(feeds), zero poisons); doc — ADR-0040.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7085604Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7085693Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7085773Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7085859Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7085939Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086014Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086099Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086181Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086268Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086348Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086616Z               "path": "docs/adr/0040-bounded-stream-seat-lifecycle-one-way-terminal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086705Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086782Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086859Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7086945Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087020Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087111Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087192Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087387Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087517Z               "line": 1346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087794Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087878Z               "line": 1374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7087955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088151Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088231Z               "line": 1435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088428Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088545Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088635Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7088905Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089053Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089339Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089421Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089502Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089693Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089773Z               "line": 409
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089849Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7089934Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090012Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090093Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090174Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090264Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090483Z               "path": "crates/spt-daemon/tests/registry_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090569Z               "line": 649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090652Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090737Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090817Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7090898Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091042Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091132Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091321Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091411Z               "line": 3286
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091683Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091768Z               "line": 2053
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091848Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7091930Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7092054Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7092134Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7092211Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7092288Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7092392Z       "id": "REQ-REGISTRY-REPLAY-BOUNDED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095124Z       "title": "REGISTRY-LIFECYCLE W1 (ADR-0040 decision 4, hertz defect B leg 4, defense-in-depth behind REQ-ONEWAY-STREAM-TERMINAL): a deadline-poisoned one-way (Registry) replay carries a per-stream strike budget; at budget the row retires TERMINAL with loud telemetry (DISPATCH_EV event). Safe by family semantics: a feed is an idempotent snapshot advertisement, the next pump round (~30s) re-advertises — worst-case loss is one advertisement round, already the family freshness unit. Request/reply families keep ADR-0038 Amendment circuit-breaker semantics — terminal-at-budget is ONE-WAY-FAMILY-ONLY (never a revert toward burn-the-claim abandonment for request streams). Gate: impl — strike budget + terminal retire, one-way-scoped; unit — poison strikes accumulate per stream, budget retires terminal + emits, request/reply family unaffected by the budget path; int — poisoned registry replay stops redispatching after budget while fresh feeds keep serving.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095228Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095314Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095448Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095525Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095605Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095690Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095773Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095853Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7095938Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096097Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096267Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096453Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096584Z               "line": 477
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096847Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7096936Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097208Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097289Z               "line": 854
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097371Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097447Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097528Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097604Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097771Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7097981Z               "path": "crates/spt-daemon/tests/registry_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098063Z               "line": 754
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098143Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098214Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098296Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098382Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098467Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098553Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098739Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098825Z               "line": 3081
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7098901Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7099063Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7099209Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7099286Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7099367Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7099441Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7099526Z       "id": "REQ-REL-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101105Z       "title": "HISTORICAL (superseded by ADR-0036 / REQ-RELEASE-CHANNEL-PRIVATE + REQ-DOCS-LOCAL-SERVER): spt-releases publish-target repo — README public face, licensing split, Pages docs at the ADR-0014 canonical URL. The Pages pipeline retired at THE-FORKENING (docs-publish.yml deleted W2, xtask site() deleted W3); the licensing-split artifacts (releases-repo/LICENSE-*) remain in-repo and the repo-topology story lives in CONTEXT §Project infrastructure. doc stage retained as the historical record on ADR-0014.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101207Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101287Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101363Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101453Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101531Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101626Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101710Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7101989Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102074Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102151Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102233Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102309Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102389Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102480Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102562Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102643Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102727Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102815Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102895Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7102976Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103061Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103148Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103324Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103424Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103501Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103586Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103662Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7103754Z       "id": "REQ-REL-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104211Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104297Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104389Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104516Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104596Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104677Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104758Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104845Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7104934Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105121Z               "path": "docs/RELEASE-RUNBOOK.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105207Z               "line": 6
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105287Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105365Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105446Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105527Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105611Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105693Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105770Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105879Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7105964Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106042Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106122Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106222Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106309Z               "line": 1525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106565Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106647Z               "line": 1599
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106902Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7106984Z               "line": 1791
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107106Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107282Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107368Z               "line": 1962
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107534Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107606Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107688Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107773Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107868Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7107946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108102Z               "path": "crates/spt/tests/release_verify_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108188Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108265Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108345Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108421Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108502Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108589Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108679Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108755Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108836Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7108919Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109084Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109176Z       "id": "REQ-REL-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109586Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109680Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109765Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109841Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7109922Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110001Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110086Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110173Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110260Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110335Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110420Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110508Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110645Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110841Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7110932Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111007Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111203Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111289Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111369Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111447Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111551Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111703Z               "line": 1502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7111971Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112057Z               "line": 1526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112223Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112322Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112403Z               "line": 1567
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112484Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112563Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112644Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112725Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112812Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112902Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7112982Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113065Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113155Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113436Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113527Z               "line": 1240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113803Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113884Z               "line": 1299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7113965Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7114047Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7114123Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7114256Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7114338Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7114414Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7114523Z       "id": "REQ-RELAY-DEATH-CONVERGENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7120919Z       "title": "A dead harness relay MUST converge the endpoint's projection — an endpoint whose relay process is provably gone cannot keep rendering `ONLINE - HARNESS ONLY` with ready=true alive=true and a registered address merely because the owner parent is still alive. RE-PROVEN PRESENT on 0.44.0 (hertz W0 item 2, 2026-07-27, fresh isolated build sha-prefix 00e15f): relay pid 38764 killed 06:21:01Z, owner pid 12156 live; 148s later info.json still pid=38764 status=online, list JSON ready=true alive=true address=127.0.0.1:57709, TCP to that address unreachable, human list `ONLINE - HARNESS ONLY`. Sibling probes: live-relay sibling's socket reachable and `send` -> SENT with the EVENT received (the rig CAN see delivery); clean `endpoint stop` sibling rendered status=offline ready=false alive=false (the rig CAN see convergence). FIX SHAPE: relay-death convergence — a dead/unreachable relay clears the ready/address/liveness projection for its endpoint within a bounded window, in ONE authority: the verdict MUST route through the shipped custody/process-identity predicate (KH 2.5 — liveness authority lives in one resolver, never re-derived beside it; Unproven never kills). Kin: the Athenaeum stale-ALIVE generator (HOSTING_AUTHORITY_DEMOTED demote-to-no-claim arm, REQ-LISTEN-PRESERVES-HOSTING-TOPOLOGY — the demote-vs-offline fork needs the same identity predicate), SHELL-STALE-ONLINE (same lying-signal class, shell flavor), REQ-MSG-INJECT-LEG-DROP-VISIBLE (the observability face of the same wedge). TITLE ADDENDUM 2026-07-27 (doyle ruling, todlando build): THE VERDICT FIRES ONLY WHERE THE RECORDED PID WAS A **HOLDER** (pid_role=relay, REQ-PID-ROLE-EVIDENCE). The shipped branch asks the oracle about whatever pid the record carries, and `info.pid` means two different things by write path — a holding `api listen` relay, or an `api bind` announcer that exits within seconds. Measured on HFENDULEAM 2026-07-27: todlando 22588, doyle 45160, deployah 29176 all DEAD-and-online (binder pids) against hertz 11216 / mobile-gw 46152 alive (relay pids), so an unrole-gated verdict would have offlined three live agents. A row with no role stamp (legacy) is NO KNOWLEDGE and never converges; it heals at its next re-bind.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121073Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121158Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121286Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121368Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121448Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121534Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121619Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121707Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121791Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121872Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7121958Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122045Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122130Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122332Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122426Z               "line": 739
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122502Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122689Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122774Z               "line": 387
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7122930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123035Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123123Z               "line": 613
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123401Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123486Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123567Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123758Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123896Z               "line": 665
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7123982Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124063Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124225Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124306Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124391Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124612Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124702Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124778Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124864Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7124978Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125064Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125145Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125232Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125426Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125513Z               "line": 1997
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125783Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125873Z               "line": 1486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7125946Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126140Z               "path": "crates/spt-store/src/liveness.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126227Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126304Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126494Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126580Z               "line": 778
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126661Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126736Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126823Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126904Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7126980Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7127056Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7127205Z       "id": "REQ-RELAY-NO-BUSY-DELIVER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7130567Z       "title": "MSG-IDENTITY W4 (operator self-send probe 2026-07-09, companion leg): the relay/idle-inject carrier MUST NOT fire for an ACTIVE endpoint — the daemon already guards send-time (daemon.stderr.log: 'ENDPOINT_INJECT: endpoint ACTIVE -> spool (deferred hint), not injected') yet the field row ended taken_leg='idle-inject' for a message sent while the endpoint was ACTIVE, so the guard is bypassed somewhere on the busy-to-idle EDGE (the parked-drain idle-injects rows that arrived during busy without re-checking whether a poll is concurrently draining them — the edge itself is when BOTH carriers are plausibly live). RCA-FIRST with REQ-CARRIER-CLAIM-EXCLUSIVE (same rig, same instrument); if the exclusive claim alone closes the double-delivery this leg may reduce to an ordering assertion — rule at RCA lock, don't build blind. Gate: unit — the idle-edge drain re-verifies activity (or defers to the claim) before idle-injecting; a row taken by a poll is never idle-injected. Kin REQ-IDLE-PARKED-DELIVERY (the drain this guards), REQ-MSG-IDLE-EDGE-DRAIN, F-023 anti-starvation gate (do NOT break the already-idle delivery class).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7130720Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7130800Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7130880Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7130961Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131042Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131131Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131221Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131303Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131389Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131479Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131569Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131651Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131728Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131822Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131904Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7131985Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132071Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132156Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132242Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132485Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132572Z               "line": 1801
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132648Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132728Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132805Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132887Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7132958Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7133038Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7133143Z       "id": "REQ-RELEASE-CHANNEL-PRIVATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135266Z       "title": "THE-FORKENING W2 (ADR-0036 §2): the publish pipeline targets `BigscreenVR/spt-bs-releases` — release.yml assemble/draft/flip retargeted (draft lands on the bs releases repo, untagged, per the existing spt-releases pattern); docs-publish.yml RETIRED (no public docs, ADR-0014 superseded) with the mdbook build folded into ci.yml as the drift gate (CLAUDE.md mandate: doc generation stays CI-gated); counter + signing key + update-set format CONTINUE unchanged (trust anchor is the continuity, carrier is not). Gate: impl — workflow retarget + drift-gate fold; int — a full release dry-run assembles binaries + docs asset + signed update-set against the private channel. Kin REQ-DOCS-RELEASE-ASSET, REQ-UPDATE-GH-TRANSPORT, ADR-0036.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135361Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135434Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135520Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135595Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135676Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135759Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135849Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7135938Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136015Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136098Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136267Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136458Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136582Z               "line": 639
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136677Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136859Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7136943Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137202Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137286Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137364Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137483Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137564Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137640Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137736Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137821Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7137999Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138084Z               "line": 264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138164Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138250Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138328Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138408Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138497Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138578Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138654Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138731Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138810Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7138890Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7139073Z       "id": "REQ-RELEASE-MUSL-ARTIFACT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7141569Z       "title": "MUSL-TIER W3 (CI build + signed release + update-set publish + self-update E2E): release.yml gains a musl matrix entry (build on kitsubito; install musl-tools+cmake+target in-job, CC_x86_64_unknown_linux_musl=musl-gcc); the assemble job includes spt-x86_64-linux-musl in SHA256SUMS + the release upload; release-publish (xtask) signs the musl artifact; the update-set carries its artifact entry. This closes the field gap: a musl binary today fetches fine but ends UPDATE_FETCH_REJECTED:NoArtifactForPlatform('unknown'). Gate (release-pipeline touch -> real E2E): cut a draft/test release with the musl artifact; a static musl binary on a sub-2.39-glibc box runs spt update fetch -> gets the musl artifact (no NoArtifactForPlatform), verifies SHA256+signature over the musl bytes, applies, self-updates. musl is ADDITIVE — gnu stays the default Linux artifact.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7141667Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7141738Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7141820Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7145841Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146014Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146112Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146194Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146366Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146455Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146532Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146609Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146686Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146803Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7146898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147066Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147160Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147433Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147522Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147600Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147681Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147757Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147842Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7147934Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148019Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148239Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148330Z               "line": 174
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148410Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148495Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148568Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148654Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148815Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7148897Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149176Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149277Z               "line": 2573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149356Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149441Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149536Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149613Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149694Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149770Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7149880Z       "id": "REQ-RELEASE-VERSION-TAG-ASSERT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156444Z       "title": "releases#106: the release workflow REFUSES to publish a release whose built binary disagrees with the tag. `.github/workflows/release.yml` already guards the CHANGELOG against the tag (`ver=\"${GITHUB_REF_NAME#v}\"`, `::error::` + `exit 1`) but nothing proves the ARTIFACT carries that version — a tag pushed without bumping `[workspace.package] version` (and the first-party `spt-*` lines in `Cargo.lock`) ships a binary that self-reports the previous release. Shape: after the platform builds and BEFORE `gh release create`, execute the freshly built binary FOR THE RUNNER'S OWN PLATFORM with `--version`, compare to `${GITHUB_REF_NAME#v}`, and on mismatch fail with a named error stating BOTH values and naming the fix. SCOPE CONSTRAINT, load-bearing: a cross-compiled `matrix.target` artifact CANNOT be executed on the runner, so the assert must sit where a natively-runnable artifact is in scope — the native (non-`matrix.target`) leg, or the notes job after artifact download if the native asset is fetchable there. The assert lands in the RELEASE workflow, never as a new CI window (two-runs-per-sha ruling). SHIPPED SITE: the `assemble` job after `download-artifact` and before the docs bundle and `gh release create` — the one place the whole asset set exists at once on a box that can natively execute part of it, and the bytes there are the ones about to be published rather than a build-tree lookalike. The two Linux assets are covered; the WINDOWS asset is not, stated rather than glossed — no Linux runner can execute it, and a matching Linux artifact is evidence the workspace version was bumped, not evidence the Windows leg built from that tree. VERIFICATION STANCE, recorded at mint and honored: the workflow is tag-triggered and cannot be run locally, so no green is claimed for it. Instead the logic was EXTRACTED to `.github/ci/release-version-assert.sh` (the repo's own convention for CI logic, beside `ci-notify.sh` and the reap-census pair) precisely so it stops being unrehearsable, and its selftest runs on every golden Linux leg. Gate: impl — the script plus release.yml calling it; unit — `release-version-assert-selftest.sh`, 12 assertions, over half of them negative controls (stale binary, binary ahead of tag, missing artifact, unrunnable binary, empty asset list, absent tag).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156564Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156649Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156739Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156815Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156898Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7156983Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157073Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157165Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157241Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157321Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157410Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157501Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157711Z               "path": ".github/ci/release-version-assert.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157802Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7157950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158063Z               "path": ".github/workflows/release.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158150Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158227Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158308Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158517Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158603Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158693Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158774Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7158856Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159075Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159171Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159418Z               "path": ".github/ci/release-version-assert-selftest.sh",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159510Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159827Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159916Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7159992Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7160073Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7160150Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7160230Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7160306Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7160382Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7160483Z       "id": "REQ-RESIDENT-SERVICE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7226101Z       "title": "ResidentService substrate (ADR-0049, design ratified 2026-07-26): a daemon-supervised binary an adapter declares via a `[service]` manifest section — core-owned from birth, NO perch/identity/address. SPAWN: the daemon launches it job-neutrally (detached_no_inherit + the cold-start ladder posture), so it is never a shell's child (`/T` tree-kill cannot reach it; the shell-descendant hazard class of REQ-SHELL-ADAPTER-OWNED-DETACHED-SERVICE never arises) and never inside a launching terminal's Job Object (the REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE service half closes by construction). START TRIGGER declared in the manifest: start = 'boot' or start = 'bind'; supervised identically once running, with the wake-watcher scaffolding (backoff, give-up latch, one-per-instance lock, orphan-kill, brain-side reconcile) minus the offline-only flip. 'boot' is DESIRED-STATE-RUNNING, not an event: the supervisor reconciles a boot service toward running at EVERY opportunity — daemon boot, ADAPTER REGISTRATION while the daemon is live (operator addition 2026-07-26: installing or registering an adapter whose manifest declares a boot service starts it THEN — spt itself is never restarted to bring a new adapter's service up), update-hold release, and first shell bind as the defensive ensure. 'bind' starts only at the adapter's first shell bind. CARDINALITY: one supervised instance per registered adapter-option `<adapter>[:profile]` (consumer-confirmed as COHERENT TARGET SHAPE — flynn's precision, 2026-07-26: not exercisable by the first consumer until per-option config dirs exist; alchemy today has one config dir and daemon.toml carries exactly one guild_id); the adapter may keep its own kernel file lock as a private double-start guard — core neither reads nor depends on it. PER-OPTION IDENTITY IS THREADED (flynn's gap, accepted): the supervisor passes the adapter-option name and the per-option runtime dir into the service's spawn environment, so an adapter can scope its private guard AND its config per option — the mechanism that makes two-options-two-services deliverable rather than merely permitted. Without it, two options resolving one adapter config dir produce the silent flap flynn derived: instance two exits immediately on the kernel lock, core sees only start-then-die, and crash-relaunch backoff is CORRECT behavior against that observation — two correct components disagreeing about the unit. UPDATE IS A FIRST-CLASS SUPERVISOR OPERATION WITH AN EXPLICIT HOLD: quiesce -> hold (stopped and NEVER relaunched while held) -> bits swap -> start new bits -> release; adapter update-apply performs this ordered operation; crash-relaunch with backoff applies ONLY when not held. The forcing case is structural, not advisory (flynn, argued against their own convenience): an eager relaunch during a swap re-pins the OLD exe mid-deploy (Windows exe lock), converting a diagnosable os-error-5 into an unwinnable race — if delivery must sequence, the hold ships FIRST and a dead service stays dead until told otherwise (the STALE-ONLINE no-spontaneous-relaunch ruling, same reason, one layer down). FAST-EXIT IS A CONFIGURATION FAULT, NOT A CRASH: consecutive immediate exits (exit within a startup threshold, N in a row) trip the give-up latch EARLY with a distinct loud STARTUP_FAULT diagnostic carrying the captured early stderr — a double-start lock conflict then reads as the configuration fault it is, never as a silently flapping service ground through backoff. QUIESCE IS COOPERATIVE EXIT + DEADLINE: the supervisor places a stop-request marker (a file in the service's runtime dir — polling services observe it on their next cycle; no inbox exists or is added); the service exits WHEN SAFE and the kernel-observed exit IS the ack — 'not ready' is expressed by not-yet-exiting, so no busy record exists to go stale in either direction; a manifest-declared grace deadline (default ~30s) bounds the wait, then force-kill. Delay possible, veto never. An OPTIONAL advisory status line may surface in service status display — never consulted for decisions. LIVENESS IS DERIVED, NEVER RECORDED: the supervisor is the parent and holds the child handle (exit is kernel-observed); no supervisor-maintained running-record exists (the v0.43.0 stale-online lesson applied one layer down — flynn's condition, structural here). Any status/version identity surface keeps the locked-file split lesson: never require reading a file the service holds an exclusive OS lock on (Windows). CLI INVOCATION CAPABILITY (consumer-blocking, non-negotiable per flynn): the supervisor threads the environment so the service can invoke the spt CLI (`spt send` et al., identityless cli@node from-label, durable spooling per ADR-0002) — if a supervised Hub cannot shell out to spt send, node-wide Watch delivery dies silently. ADDRESSING: none — a service needing a two-way agent-facing surface has one at its adapter's endpoint/shell layer (the alchemy layering argument that re-scoped ADR-0023's faceless-service rejection); AlwaysOnEndpoint (REQ-EP-8) = this substrate + the addressable front. Gate at activation (all legs against a MOCK service adapter — the gate never depends on the first consumer being the boot specimen): int — a manifest [service start='boot'] binary rises with the daemon job-neutrally, a registration of that manifest against an ALREADY-LIVE daemon starts the service without any restart, survives a shell teardown of the same adapter (tree-kill does not reach it), a held update swaps bits with zero relaunch races (hold observed under a concurrent crash), quiesce marker -> cooperative exit within grace, deadline -> force-kill on a wedged mock, a mock that exits instantly N consecutive times surfaces STARTUP_FAULT (not a backoff flap), and the service successfully invokes spt send from its supervised environment. ACTIVATED FOR W1 2026-07-26 WITH THE FOLLOWING BUILD RULINGS FOLDED IN (doyle; constraints live in the artifact, not the dispatch thread). VERB SURFACE: the operator-facing verbs are `spt adapter service list` (all registered options + derived state) and `spt adapter service status <adapter[:profile]>`, nested under the ADAPTER group — NOT a bare `spt service`. Reason: 'service' is ALREADY public surface carrying an unrelated meaning — the platform daemon-service abstraction (REQ-DAEMON-6/-8, `crates/spt-daemon/src/service.rs`: the systemd user unit vs the Windows at-logon task) surfaces in `spt daemon` help as 'registered OS service' / 'managed service' / 'the managing service label'. Ownership-scoping separates the two meanings permanently: the OS-service is the DAEMON's and lives under `spt daemon`; the resident service is the ADAPTER's and lives under `spt adapter`. ADR-0049's 'service status display' means `spt adapter service status`; the W1 PR carries a one-line ADR errata note. GIVE-UP LATCH SCOPE: the latch suppresses relaunch grinding until something plausibly changed — it is NOT a durable verdict. Cleared by exactly three events: (1) DAEMON BOOT — desired-state-running enumerates boot as a reconcile opportunity with NO latch exception, and the re-trip is bounded (N fast exits) and LOUD (STARTUP_FAULT re-fires each boot); an in-memory per-daemon-lifetime latch is an acceptable implementation, and if the durable-marker scaffolding is reused then boot clears the marker; (2) ADAPTER RE-REGISTRATION — declared intent that manifest/config changed, reconciling immediately; (3) UPDATE-HOLD RELEASE — new bits invalidate the fault evidence. NOT cleared by the first-shell-bind ensure: a bind changes nothing about the service's config, so the bind-time reconcile SKIPS latched services — otherwise ordinary shell use converts the latch into the very flap it exists to stop. The REJECTED alternative is recorded deliberately: a durable latch with explicit-clear-only leaves an operator's already-fixed config fault sitting behind a service that stays dead and quiet forever — loud-bounded beats quiet-permanent (the heal-assigns-owner-never-closes shape one layer down). SANCTIONED BUT NOT W1-REQUIRED: `spt adapter service restart <adapter[:profile]>` as the explicit manual clear+reconcile — take it into W1 only if cheap once the verb group exists; the three automatic clears ARE the requirement. REGISTRATION-TIME START IS A WIRE OP: `registry::register` runs in the CLI PROCESS (`crates/spt/src/cli.rs`, the adapter-add and adapter-update call sites), so it cannot itself start anything in the daemon — registration-starts-the-service structurally requires ONE new adapter-scoped daemon IPC op, semantically `AdapterServiceReconcile { adapter }` (exact spelling matched to house op style where it lands), which the CLI calls after a SUCCESSFUL register on BOTH paths when the daemon is reachable. The daemon handler runs THE SAME reconcile code path as boot / hold-release / bind — ONE reconcile function taking an opportunity discriminant, never a second start authority. The response is a per-option outcome list (started / already-running / held / latched / bind-deferred / startup-fault) so the CLI prints honest per-option text. Daemon NOT reachable: registration STILL SUCCEEDS — never a refusal — and the CLI prints a REQUIRED notice that the service is declared, the daemon is not running, and it will come up at the next daemon boot. That notice is CONTRACT, not courtesy. RUNTIME-DIR ENCODING: cardinality is per adapter-option, so the option name becomes a PATH component and `:` is illegal in a Windows path. Core NEVER uses the raw option string as a path component — every construction site goes through ONE shared encoder, and that encoding MUST BE INJECTIVE (a lossless escape, never a strip/replace that can collide). Two distinct options mapping to one runtime dir means two services sharing a quiesce-marker namespace: the silent flap one layer down. The unit gate MUST include a collision-adversarial pair (e.g. if `:` maps to `_`, then `a:b` and `a_b` must remain distinct). MODULE PLACEMENT: the supervisor lands as `servicehost.rs` (the established `*host` convention — shellhost, harnesshost, linkhost, applyhost); `service.rs` is untouched and BOTH module headers cross-reference the other meaning of 'service'. INSTALL-DIR RESOLUTION RIDES W1 (operator-requested via flynn, ruled in after code verification): the `[service]` spawn resolves its binary through the EXISTING REQ-INSTALL-11 helper — the same primitive, NO parallel resolution path — and the same wiring lands at the two shell-family fill sites, which today resolve NEITHER the install-dir program token NOR `{adapter_dir}`. Without it a `--release`-installed shell adapter registers but cannot spawn (bare token → os error 2; `{adapter_dir}/x` → 'no value for substitution key'), released shell adapters need a hand-maintained per-node manifest, `spt adapter update` on them is a permanent no-op, and THIS req's hold/swap/start ceremony would be exercisable by MOCK ONLY — never by the named first consumer. Site census discharged BEFORE build (authoritative grep, cfg(test) excluded, accepted by doyle): the production template-fill sites are `shellhost.rs::fill_spawn_command` and `shellwake.rs::fill_wake_command` (both targets — threading not shape, since the wake caller already holds `AdapterRecord.source_dir`, which IS the install dir), plus `harnesshost.rs` session `role.command`, which is OUT OF SCOPE and already resolves correctly through `resolve_program_in_dir`. Scope guard: shell spawn/wake + `[service]` ONLY — this does NOT expand into the `[session.self]`/`[history]` follow-on sites. FAULT COUNTERS ARE TWO, NOT ONE (ruled 2026-07-26 after the builder surfaced the reading): (1) the FAST-EXIT counter increments ONLY on exits whose uptime is UNDER the startup threshold, and RESETS the moment any run EXCEEDS that threshold. Without the reset the latch mislabels slow-crash decay as a configuration fault — the latch lying about cause, which is worse than no latch. STARTUP_FAULT is reserved for THIS path alone. (2) The ORDINARY consecutive-crash give-up (the shell wake-watcher scaffolding's `give_up_after` = 6, deliberately UPTIME-BLIND) sits BEHIND it UNCHANGED in W1 and keeps its existing diagnostic label — no silent behavior fork from the shell watcher. (3) BOTH counters reset on the latch-clear events above (daemon boot, adapter re-registration, update-hold release): a clear that left either counter primed would relatch on the first post-clear crash and thereby defeat the clear. (4) NOTED-OPEN, deliberately NOT W1 and NOT a promise: the ordinary counter's uptime-blindness means a service that crashes once a day gives up after six days and then stays down until a clear event. Whether that decay behavior is right for SERVICES (as opposed to the shell watchers it was designed for) is a future ruling; it is recorded here as open so the next builder inherits the question rather than rediscovering it in the field. ORPHAN ADOPTION IS IMAGE-VERIFIED, AND ITS PLATFORM GAP IS RECORDED-OPEN (ruled 2026-07-26 after the builder surfaced the trade): a fresh daemon kills a dead daemon's parked orphan ONLY by path-verified identity — a live pid whose image path cannot be READ classifies `Unverifiable` and BLOCKS adoption, i.e. the start refuses loudly rather than proceeding. Loud-blocked over quietly-double-started is this design's whole posture (a bare-pid kill is the recycled-pid class, and a double-start is the silent flap the cardinality rule exists to prevent). RECORDED-OPEN consequence, NOT debt owed by W1: the image oracle is `/proc` on unix, so a unix WITHOUT `/proc` (macOS/BSD) would block on every live orphan until that pid dies. This is theoretical for every platform we ship — win, linux-gnu, musl — and no macOS/BSD asset exists; a future builder adding one inherits the question here rather than rediscovering it in the field. SUPERVISOR PLACEMENT IS BROKER-SIDE (ruled 2026-07-26): the supervised set, its boot sweep and the reconcile control socket live in the BROKER process, beside the digest/drive/tunnel hubs — NOT in the restartable brain child that hosts shellwake. Two reasons, both structural. (a) A supervisor owns LIVE CHILD HANDLES and, from the update ceremony on, an in-memory HOLD: that is a daemon-lifetime continuity resource, which is the ADR-0018 Q2/Q5 broker-side test; the Q5 exception that put shellwake in the brain reads 'a pure disk-reconciler' and this is not one. (b) A brain restart is the ROUTINE UPDATE PATH (StartReason::Update exists precisely for it), so brain-hosting would bounce every resident service through the orphan-adoption path with no quiesce, no grace and no hold — the ungoverned bounce this req's ordered update operation exists to replace — and would lose the hold mid-swap. Broker-hosting is also what makes the wire op possible at all: all control sockets are broker-served because a CLI cannot reach brain memory (stated in drivehub.rs's module header and obeyed by every hub). NO PERIODIC SWEEP — CHOSEN, NOT OMITTED (ruled 2026-07-26): the supervisor host runs the boot sweep and then parks; there is deliberately no timer re-sweeping on a cadence. The four ruled opportunities are all EVENTS, each with a caller that enters the one reconcile function directly, so a timer would be a FIFTH start authority nobody ruled in — and its only distinctive work would be silently healing a failed registration nudge, converting a diagnosable defect into invisible behavior. The REQUIRED daemon-unreachable notice is the honest answer to that case; machinery that papers over its own failure class is refused (the same instrument-soundness razor as the rest of this design). A SUPERVISOR WHOSE DECLARATION DISAPPEARS RECONCILES TOWARD STOPPED (ruled into W1 2026-07-26): every sweep runs a STOP side before its start side — an option whose adapter is soft-deregistered, hard-removed, or whose manifest no longer declares a [service] is torn down through the handle that names its child. This is the symmetric half of desired-state-running, not an addition to it: without it a deregistered adapter's binary outlives its own registration until the daemon dies, which is exactly the ungoverned-lifetime shape this req abolishes. TREE TEARDOWN ON EVERY SUPERVISOR-INITIATED KILL (ruled 2026-07-26): the force-kill deadline is where the unconditional-kill promise is WRITTEN, but it is not the boundary of the problem — a supervised service's descendants are torn down on every kill the supervisor initiates, including daemon-shutdown stop_all and the stop-side sweep teardown. Descendants outliving THOSE paths are strictly worse off than ones outliving a force-kill, because the next daemon's orphan sweep is structurally blind to them: it knows one parked pid and holds no handle to anything below it. Windows reaches the tree through a SUPERVISOR-OWNED Job Object assigned at birth (CREATE_SUSPENDED -> AssignProcessToJobObject -> resume, so no descendant is ever spawned outside the job; KILL_ON_JOB_CLOSE deliberately OFF, so a dying supervisor is never an unannounced service outage); unix through the process group setsid already establishes. Job-NEUTRALITY is not contradicted: that invariant governs OTHER people's jobs reaching our processes, which CREATE_BREAKAWAY_FROM_JOB still handles at birth. A job the OS refuses is a LOUD DEGRADE, never a refusal to start: the process still dies on demand and only its descendants become unreachable, which is exactly where this path stood before the job existed — refusing the spawn would convert a bounded descendant leak into a total outage over a failure in an OS facility rather than in anything the adapter declared. THE TREE PROMISE STATES ITS EDGE (ruled 2026-08-03, IR-16): a teardown whose TREE reach FAILS — as distinct from a job never acquired — does not silently wear the unconditional promise. It announces `SERVICE_TREE_KILL_INCOMPLETE`, naming the LOSS (the tree claim was not honored; descendants may still be running and nothing holds a handle to them) rather than the syscall, alongside the pid, the failed reach and the OS error; the process kill proceeds regardless, so this is a NAMED EXCEPTION to tree-teardown-on-every-kill and never a refusal to kill. It is the kill-time twin of `SERVICE_JOB_UNAVAILABLE` — ONE loss, one vocabulary, both ends of the lifetime, each code naming the other so grepping either finds both. THE SPAWN-SIDE DEGRADE RULING ABOVE MUST NOT BE CITED FOR THIS ARM: it rests on refusal costing a total outage, which is true at spawn and false at kill, where the process kill proceeds either way and refusing the tree claim costs the caller nothing — the two share a noun and not an argument. THE QUIET ARMS ARE A WHITELIST, so an unforeseen failure announces rather than being swallowed: on unix `ESRCH` ALONE is quiet (MEASURED 2026-08-03, Linux 6.8.0-124: `kill(-pgid, SIGKILL)` returns 0 for a live group AND for a group whose only member is an unreaped zombie, and `ESRCH` only once the group is gone and reaped — and since this path never reaps first, `ESRCH` means something else already did, which is the path where the supervisor took its exited branch and never called the teardown at all); on Windows the DIRECT-PROCESS return is not checked at ALL (MEASURED 2026-08-03, Win 11 Pro 10.0.26200: `TerminateProcess` against a handle to an already-exited process returns 0 with `GetLastError` 5 `ERROR_ACCESS_DENIED`, so a check there would fire on the ordinary path), because that arm already carries the strictly stronger downstream liveness confirm behind `SERVICE_KILL_UNCONFIRMED` and a second weaker rule beside a working one is refused. A FALLBACK PROCESS-TABLE TREE-WALK WAS CONSIDERED AND REFUSED as the degraded arm — the ceiling is chosen, not missed: live `(pid, ppid)` descent breaks at the middle hop the teardown itself kills, returning an empty set in exactly the failure case it would exist to detect (a silent loss upgraded to a false clean), and it would kill by bare pid, reintroducing product-side the recycled-pid class. Growing this into an image-authenticated population sweep stays open as its own instrument. DISCRIMINATION: a teardown failure WITH this code is this arm; WITHOUT it, a survivor is a victim of a bare-pid mis-kill — the two must not be blurred by wording. THE STATUS SURFACE IS DAEMON-ANSWERED OR IT SAYS NOTHING (ruled 2026-07-26, the leg-D companion of the tree-teardown ruling): the CLI NEVER derives service state from the pid file. Either the daemon answers `spt adapter service list|status` over the control socket, or the CLI prints that the daemon is not running — verbatim, and with no fallback read. The pid file is a KILL HANDLE for the NEXT daemon, and reading it as liveness in a display surface is the v0.43.0 STALE-ONLINE class one layer down: a record answering a question the record cannot know. Three properties follow and are requirements, not implementation taste. (a) The status op is a PROJECTION over the live supervised set — the supervision threads, the hold flags and the stand-down records — plus the registry; it starts, stops, holds and kills nothing, because a diagnostic that converges the thing it measures is a start authority wearing a diagnostic's clothes. (b) A row reports its EVIDENCE: a latch surfaces with the captured startup output behind it, since a fault reported without its cause is the instrument failing at its one job. (c) An option SUPERVISED WITHOUT A DECLARATION behind it is reported as exactly that rather than hidden — with no periodic sweep, a deregistered adapter's supervisor lives until the next opportunity's stop side reaches it, and that window is precisely when an operator asks what is running. THE ADVISORY STATUS LINE IS DISPLAY-ONLY AND BOUNDED: the service may write one line into its runtime dir (named in docs/MANIFEST.md beside the stop-request marker, so it is implementable); core reads the FIRST line under a byte cap, treats an unreadable file as simply no advisory (the locked-file split rule holds), and consults it for NO decision — core deciding on it would put a least-trusted binary's self-report in the control path, and a service that stopped updating it would silently become whatever it last claimed. WIRE LENIENCY IS PLACED, NOT SPRINKLED: fields a reader BRANCHES on stay typed with a `#[serde(other)]` unknown arm (KH-2.3), while a field only ever ECHOED carries the daemon's label verbatim — re-deriving a lenient copy of the manifest's validated `start` vocabulary for the wire would weaken the one place strictness matters (registration). An op an older daemon predates HANGS UP rather than reading the request and answering nothing: a server that silently ignores an unknown kind leaves the caller blocked on a reply that never comes, so an older daemon would WEDGE a newer CLI instead of failing it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7281151Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7281345Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7281510Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7281672Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7281834Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7281996Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7282163Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7282325Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7282506Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7282703Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7282878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7283097Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7283365Z               "line": 534
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7283546Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7283712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7283890Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7284107Z               "line": 464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7284284Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7284441Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7284599Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7284750Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7284933Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7285118Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7285290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7285485Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7285780Z               "line": 5576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7285957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7286115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7286300Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7286533Z               "line": 9803
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7286712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7286865Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7287040Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7287270Z               "line": 9905
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7287499Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7287656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7287833Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7288057Z               "line": 404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7288228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7288376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7288552Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7288777Z               "line": 1106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7289045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7289201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7289386Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7289612Z               "line": 1356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7289789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7289936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7290113Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7290343Z               "line": 1471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7290514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7290662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7290843Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7291067Z               "line": 1601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7291234Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7291387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7291573Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7291800Z               "line": 1617
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7291972Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7292127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7292304Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7292532Z               "line": 1733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7292700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7292910Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7293089Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7293318Z               "line": 1774
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7293485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7293652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7293844Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7294130Z               "line": 1786
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7294300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7294455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7294629Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7294854Z               "line": 1899
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7295025Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7295178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7295363Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7295593Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7295759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7295917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7296113Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7296350Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7296517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7296670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7296855Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7297093Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7297267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7297425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7297615Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7297849Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7298017Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7298168Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7298351Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7298583Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7298750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7298902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7299179Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7299485Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7299657Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7299807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7299993Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7300254Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7300482Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7300641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7300835Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7301135Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7301312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7301465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7301660Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7301900Z               "line": 457
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7302070Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7302224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7302412Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7302640Z               "line": 467
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7302816Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7302968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7303145Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7303383Z               "line": 501
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7303550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7303716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7303907Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7304156Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7304327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7304481Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7304666Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7304899Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7305072Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7305222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7305409Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7305642Z               "line": 997
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7305815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7305966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7306153Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7306443Z               "line": 1020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7306620Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7306772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7306964Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7307201Z               "line": 1028
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7307373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7307567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7307761Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7307995Z               "line": 1038
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7308165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7308319Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7308499Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7308728Z               "line": 1072
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7308901Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7309133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7309320Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7309555Z               "line": 1085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7309721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7309874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7310073Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7310306Z               "line": 1092
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7310477Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7310628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7310814Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7311051Z               "line": 1100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7311224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7311376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7311558Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7311787Z               "line": 1108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7311958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7312116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7312301Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7312535Z               "line": 1147
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7312765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7312915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7313106Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7313337Z               "line": 1247
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7313501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7313652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7313834Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7314072Z               "line": 1368
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7314248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7314401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7314640Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7314877Z               "line": 1397
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7315050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7315207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7315393Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7315623Z               "line": 1451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7315797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7315954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7316145Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7316379Z               "line": 1513
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7316551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7316699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7316894Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7317122Z               "line": 1554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7317294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7317447Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7317633Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7317868Z               "line": 1671
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7318037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7318190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7318378Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7318612Z               "line": 1717
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7318788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7319031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7319222Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7319457Z               "line": 1799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7319627Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7319786Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7320027Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7320261Z               "line": 1932
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7320434Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7320590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7320782Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7321076Z               "line": 1963
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7321254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7321407Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7321592Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7321827Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7321994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7322147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7322333Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7322570Z               "line": 650
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7322743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7322895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7323081Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7323325Z               "line": 1242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7323490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7323632Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7323830Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7324056Z               "line": 532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7324231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7324385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7324566Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7324793Z               "line": 572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7324966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7325113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7325290Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7325515Z               "line": 579
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7325680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7325839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7326014Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7326296Z               "line": 471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7326467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7326615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7326786Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7327005Z               "line": 20980
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7327178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7327329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7327493Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7327706Z               "line": 21353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7327882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7328089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7328259Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7328470Z               "line": 21471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7328644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7328797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7329057Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7329267Z               "line": 22090
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7329434Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7329586Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7329735Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7329886Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7330054Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7330235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7330402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7330636Z               "path": "crates/spt-daemon/tests/servicehost_supervision_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7330917Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7331097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7331252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7331474Z               "path": "crates/spt-daemon/tests/servicehost_supervision_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7331748Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7331915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7336189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7336476Z               "path": "crates/spt-daemon/tests/servicehost_supervision_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7336771Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7336950Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7337104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7337336Z               "path": "crates/spt-daemon/tests/servicehost_supervision_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7337613Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7337870Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7338029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7338252Z               "path": "crates/spt-daemon/tests/servicehost_supervision_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7338528Z               "line": 394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7338697Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7338905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7339199Z               "path": "crates/spt/tests/resident_service_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7339465Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7339637Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7339784Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7339932Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7340079Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7340252Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7340432Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7340610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7340795Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7341029Z               "line": 2350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7341201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7341348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7341530Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7341754Z               "line": 2684
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7341926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7342076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7342252Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7342479Z               "line": 2888
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7342651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7342804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7342980Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7343209Z               "line": 2934
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7343375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7343534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7343714Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7343933Z               "line": 2980
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7344107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7344310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7344493Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7344719Z               "line": 3003
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7344884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7345032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7345213Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7345447Z               "line": 1982
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7345618Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7345767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7346015Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7346247Z               "line": 2014
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7346420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7346567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7346753Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7346988Z               "line": 2034
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7347159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7347312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7347496Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7347735Z               "line": 2055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7347901Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7348055Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7348250Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7348487Z               "line": 2065
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7348655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7348807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7349088Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7349317Z               "line": 2105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7349489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7349637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7349822Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7350044Z               "line": 2134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7350216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7350363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7350545Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7350773Z               "line": 2152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7350950Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7351107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7351355Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7351594Z               "line": 2208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7351771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7351927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7352115Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7352390Z               "line": 2298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7352561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7352712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7352892Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7353121Z               "line": 2330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7353296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7353450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7353635Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7353860Z               "line": 2344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7354023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7354170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7354361Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7354589Z               "line": 2374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7354756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7354909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7355095Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7355327Z               "line": 2441
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7355496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7355649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7355834Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7356070Z               "line": 2470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7356236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7356389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7356570Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7356798Z               "line": 2493
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7356966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7357112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7357304Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7357591Z               "line": 2536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7357756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7357906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7358094Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7358319Z               "line": 2553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7358485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7358638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7358820Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7359134Z               "line": 2596
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7359357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7359516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7359696Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7359925Z               "line": 2634
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7360093Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7360239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7360425Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7360660Z               "line": 2685
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7360834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7360989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7361176Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7361410Z               "line": 2733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7361581Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7361735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7361915Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7362149Z               "line": 2914
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7362316Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7362463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7362655Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7362892Z               "line": 2960
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7363060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7363201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7363386Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7363619Z               "line": 2991
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7363795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7363944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7364124Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7364353Z               "line": 3061
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7364578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7364735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7364917Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7365144Z               "line": 3139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7365312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7365518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7365702Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7365934Z               "line": 3222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7366113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7366262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7366457Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7366695Z               "line": 3261
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7366863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7367015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7367197Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7367420Z               "line": 3326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7367587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7367740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7367930Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7368165Z               "line": 3365
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7368331Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7368475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7368659Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7368893Z               "line": 3417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7369150Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7369302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7369489Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7369718Z               "line": 3469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7369884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7370038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7370223Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7370447Z               "line": 3515
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7370609Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7370823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7371009Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7371239Z               "line": 3579
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7371412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7371559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7371741Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7371966Z               "line": 3652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7372141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7372290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7372527Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7372761Z               "line": 3694
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7372929Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7373081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7373263Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7373497Z               "line": 3731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7373666Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7373823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7374002Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7374241Z               "line": 3764
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7374407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7374566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7374750Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7374975Z               "line": 3798
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7375148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7375299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7375491Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7375724Z               "line": 3833
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7375900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7376049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7376233Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7376461Z               "line": 3867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7376635Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7376784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7376964Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7377190Z               "line": 3896
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7377356Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7377504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7377761Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7377995Z               "line": 3929
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7378162Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7378310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7378495Z               "path": "crates/spt-daemon/src/servicehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7378781Z               "line": 3964
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7379040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7379195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7379387Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7379610Z               "line": 2057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7379782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7379930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380111Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380335Z               "line": 2105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380697Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380783Z               "line": 1580
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380865Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7380942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381045Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381126Z               "line": 1620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381388Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381477Z               "line": 1652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381733Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381814Z               "line": 31693
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7381973Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382067Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382153Z               "line": 31851
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382473Z               "path": "docs/INFRA-REGISTER.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382554Z               "line": 2252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382635Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382715Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382792Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382878Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7382950Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7383030Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7383136Z       "id": "REQ-RESIZE-INPUT-MODE-INTEGRITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7391657Z       "title": "RESCOPED 2026-07-22 by ADR-0047 Amendment 2 + KNOWN-HAZARDS 7.55 (doyle-ratified), on the measurement rather than on the supposition. FIELD EVIDENCE IS REAL: hertz's second ENLYZEAM capture shows the operator's keystrokes as isolated one-byte OUTPUT records in the child->broker RAW DRAIN — server-side, upstream of any client console, so independent of the 7.56 presentation root that explains the other half of the /c/config line. LOCAL SEAM MEASURES CLEAN: a probe child under a real ConPTY, clamped raw at startup and resized 24x80->60x131 live, reports an IDENTICAL input mode word at four sample points (boot / before-resize / after-resize / before-write, all in=0x000001f0 echo=0 line=0), and typed bytes do not come back as output; a seeded capability probe moves BOTH observables, so the absence is earned, not vacuous. Amendment 1's addendum supposed the resize path re-enables console echo — on this box and portable_pty/ConPTY version it does NOT. TRIGGER UNPINNED. OPEN CANDIDATE (hertz field question, deliberately NOT built against): the pseudoconsole BOOTS with ENABLE_ECHO_INPUT/ENABLE_LINE_INPUT ON (in=0x000001f7 measured) and the CHILD clamps them off, so any UNCLAMPED WINDOW (startup, or a re-clamp after a TUI state transition) echoes by default with no seam re-enabling anything — reframing the question from who turns echo back on to whether there is a window where nobody has turned it off yet. NO impl STAGE, for a structural reason and not a scheduling one: the hosted child's console handles belong to the pseudoconsole it is attached to and the daemon holds only the master end, so the daemon can neither OBSERVE nor SET those modes — instrumenting spt-term's resize seam would probe a console that is not the one in question, and a server-side clamp is equally impossible. Shipping instrumentation that measures the wrong console is manufactured confidence (doyle, declined explicitly); the RIG is the instrument, and the probe-child pattern ships as a debug tool if the field ever needs live diagnosis. The restore-placement question (spt-term seam vs broker write_input) is MOOT, not answered: there is nothing to restore when the mode is preserved. WHAT THIS REQ OWNS: unit — the probe protocol contract (the verdict travels in the stdout protocol line because under a ConPTY the child's stderr is interleaved into the same re-rendered stream and arrives shredded, so a refused SetConsoleMode could otherwise read as a measurement); int — the four-sample measurement, the typed-bytes-do-not-echo symptom leg (which survives being wrong about the mechanism), and the seeded capability probe. Rig-craft pinned in the rig and transferable: a probe that never clamps raw sits at the very default the seam is suspected of restoring and cannot tell reset from never-changed; and ConPTY's post-resize REPAINT re-emits earlier output, impersonating a fresh reply to any rig that matches loosely. Kin REQ-RC-NEWLINE-PRESENTATION-TRUTH (7.56, the presentation half, FIXED) and REQ-ATTACH-RESIZE-REPAINT (7.54, rescoped the same honest way).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7391826Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7391905Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7391991Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392067Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392143Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392232Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392308Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392398Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392480Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392708Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392799Z               "line": 876
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7392956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393114Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393195Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393280Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393352Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393433Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393552Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393642Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393730Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393805Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393886Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7393967Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394129Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394292Z               "path": "crates/spt-term/tests/resize_console_mode_integrity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394378Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394689Z               "path": "crates/spt-term/tests/resize_console_mode_integrity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394772Z               "line": 230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7394924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395071Z               "path": "crates/spt-term/tests/resize_console_mode_integrity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395156Z               "line": 270
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395231Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395313Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395395Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395470Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395561Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395643Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395860Z               "path": "crates/spt-term/tests/resize_console_mode_integrity.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7395948Z               "line": 328
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396029Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396109Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396229Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396305Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396386Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396457Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7396568Z       "id": "REQ-REST-TERMINAL-NORMALIZE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7399873Z       "title": "REGISTRY-LIFECYCLE W2 (ADR-0041 decision 3, rest-normalize P0): definitive hosted-session loss normalizes TERMINALLY and ATOMICALLY — one store-level mutation writes status=offline + rest_state=suspended + clears dormant_since_ms in the SAME info.json write, invoked at authoritative broker-session-loss/liveness-reap + cmd_stop. NOT daemon_rest_event(Suspend) (no edge when effective already Suspended — raw Active intent survives); NOT reader-side blanket offline-implies-suspended (destroys explicit-Wake semantics: wake writes intent first, reconcile consumes). Graceful shutdown keeps echo-before-teardown. Kills the zombie WAKE_RESUME loop (perri field: repeated cross-generation resumes of a dead session). Gate: impl — atomic terminal-normalize mutation + call sites; unit — store-level atomic pair never mixed + endpoint_stop covers already-offline/raw-Active input; int — session vanish means offline+suspended and the NEXT reconcile emits NO WAKE_RESUME, explicit suspended/offline->Wake->Active launches EXACTLY once, RefuseLivePid-then-valid-bind custody race leaves the revived seat unsuspended; doc — ADR-0041.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400026Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400112Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400193Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400272Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400382Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400478Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400564Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400639Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400735Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400816Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7400897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401031Z               "path": "docs/adr/0041-endpoint-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401164Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401249Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401326Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401403Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401483Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401569Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401650Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7401870Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402000Z               "line": 955
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402271Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402353Z               "line": 2078
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402433Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402622Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402713Z               "line": 921
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7402982Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403069Z               "line": 971
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403225Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403336Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403426Z               "line": 577
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403693Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403774Z               "line": 614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7403927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404031Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404117Z               "line": 12443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404193Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404270Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404350Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404427Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404512Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404651Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404867Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7404948Z               "line": 708
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405037Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405147Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405225Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405304Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405389Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405474Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405673Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405754Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405835Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7405912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406016Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406140Z               "line": 1424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406402Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406494Z               "line": 1459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406745Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406828Z               "line": 26584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406908Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7406989Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7407070Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7407143Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7407223Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7407298Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7407399Z       "id": "REQ-REST-VERB-ROUTING",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414248Z       "title": "A-3 (REMOTE-TRUTH triage §A + Q3 operator-law): a BARE-id rest verb (spt wake/suspend <id>) routes across the subnet like send's fallback instead of failing local-only. ROOT (certain): cmd_rest (cli.rs:3296) gates the remote arm on id.contains('@'|':'); a bare id falls to the local-only arm (cli.rs:3340) → daemon_rest_event → info::read_info miss (resting.rs:248) → 'WOKE_FAIL:{id}: info.json absent or unreadable — not a hosted perch'. cmd_send (cli.rs:5142) DOES fall back on a local miss; cmd_rest's remote arm (cli.rs:3307, wan_rest) already handles every WanRestOutcome — it is simply never reached on a bare-id local miss. Contradicts CONTEXT:286 'a wake must route'. Q3 SUBSTRATE GAP: resolve_across_visible (registry.rs:971) filters only by Status::routable() and its Ambiguity payload is node-hexes-only — it CANNOT express the Q3 status rule; per-candidate (node,status) comes from SubnetRegistry::instances(id). FIX: a NEW pure select_rest_target helper (status-aware, isolated from resolve_across_visible which cmd_send keeps) applying GOAL-SATISFACTION semantics (ADR/triage addendum @188d269, NOT naive verb symmetry — the mixed case breaks symmetry): wake is an ∃-goal (satisfied when ANY instance Active), suspend is a ∀-goal (satisfied when ALL instances Suspended); one helper parameterized by the verb's satisfaction predicate — 0 candidates→NotFound; goal already satisfied→NoOp naming the satisfying node(s); exactly 1 ACTIONABLE (not-at-target) instance→Act(node); >1 actionable→Ambiguous(copy-paste id@node list). Edge rulings: wake with >1 Active = NoOp naming ALL active nodes (NOT Ambiguous — nothing actionable); suspend mixed (X suspended + Y active, NOT ∀-satisfied) = Act(Y) if exactly one active / Ambiguous if several active. Candidate status is ADVERTISED/gossiped (post-A-1 shared-derivation, may be STALE) so a NoOp verdict is ADVISORY and the qualified id@node path is the operator override (noted in the helper doc-comment). cmd_rest's bare-id local miss loads snapshots → instances(id) → select_rest_target → dispatches (Act→wan_rest to the node / NoOp naming node(s) / Ambiguous render_refusal copy-paste id@node list / NotFound NO_ENDPOINT), all F-1 public language from day one. Qualified id@node path unchanged; shutdown leg-2 stays LOCAL_ONLY. Red-first: a bare id present ONLY in a remote registry snapshot routes to that node instead of WOKE_FAIL.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414366Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414443Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414530Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414610Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414691Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414772Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414901Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7414991Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415082Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415165Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415244Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415330Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415422Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415621Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415702Z               "line": 585
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7415911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7416029Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7416159Z               "line": 1144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7416399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7416510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7420673Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7420788Z               "line": 7636
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7420875Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7420956Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421036Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421117Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421214Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421303Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421511Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421608Z               "line": 1424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421884Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7421980Z               "line": 2548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422059Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422141Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422218Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422299Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422388Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422470Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422666Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422751Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7422923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423120Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423205Z               "line": 699
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423361Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423482Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423571Z               "line": 2605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423907Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7423997Z               "line": 2652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424264Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424350Z               "line": 2687
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424508Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424617Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424698Z               "line": 2049
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424776Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424856Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7424936Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7425008Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7425090Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7425170Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7425284Z       "id": "REQ-RESUME-ADAPTER-FOLLOWS-SESSION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431196Z       "title": "D-2 (REMOTE-TRUTH triage §D-2 + operator Q5 @c248afc): a resume-from-history restores the RECORDED session adapter (REQ-SESSION-ADAPTER-RECORDED) — the resumed harness is the one the session ran under, re-stamped onto the endpoint PRE-SPAWN, and an unregistered recorded adapter refuses LOUDLY before launching anything. ROOT: the picker's resume_outcome (model.rs:1285) bakes adapter=ep.adapter_profile from the selected ENDPOINT, ignoring the ledger row — so a resume always uses the endpoint's CURRENT adapter even when the session ran under a different one; and the endpoint's info.adapter is never re-stamped to the row's on the resume path (cli.rs:1962 skeleton writer early-returns for an existing perch — adapter immutable, carried by bind's stamp_creation_fields). FIX (doyle fork ruling): ResumeRow (model.rs:199) gains adapter: Option<String> threaded from SessionEntry.adapter in picker/data.rs; the row title (model.rs:228) renders [{adapter}] when Some ({head} [{adapter}] - {time} (…{id5})); resume_outcome bakes the ROW's adapter with an endpoint fallback (row.adapter.unwrap_or(ep.adapter_profile)) — None → the endpoint's current stamp (benign degrade). The pre-spawn RE-STAMP + refusal ride the picker resume dispatch (mod.rs:360 Run arm, resume.is_some()) reusing the hazard-guarded mutate_info seam (write_adapter_change/mod.rs:336), NEVER the bind path: order = read current info.adapter → if the baked adapter DIFFERS (a real replace; a None-row bakes the endpoint's own → equals current → NO write) → registered-check via resolve_option (Err(NotRegistered) → loud F-1 refusal naming the adapter + `spt adapter add`, NO stamp, NO spawn) → write_adapter_change re-stamp → spawn. ONE adapter write path (the mutate_info seam); REQ-HAZARD-ADAPTER-PROFILE-STAMP-CLOBBER's bind/hook path (stamp_creation_fields, home.rs) UNTOUCHED — both its guard tests stay green as the gate condition. Red-first: a resume row adapter=\"claude-spt\" over an endpoint stamped \"claude-spt:ccs\" → the baked Outcome.adapter == \"claude-spt\" (the deliberate replace) and the pre-spawn stamp writes it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431425Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431520Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431596Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431677Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431754Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431849Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7431948Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432033Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432202Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432338Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432420Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432615Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432706Z               "line": 549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432788Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7432972Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433055Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433136Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433212Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433340Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433422Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433506Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433592Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433751Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433835Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433921Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7433999Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434117Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434207Z               "line": 2246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434458Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434538Z               "line": 2757
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434614Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434691Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434764Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434843Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434919Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7434996Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7435102Z       "id": "REQ-RESUME-CONTEXT-PULL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7445857Z       "title": "Adapter-callable resume-context pull verb + not-yet-synthesized commune/signoff drop append (legacy-SPT parity, operator-directed 2026-06-24). GAP: spt-core exposes NO verb for a harness adapter's SessionStart hook to pull an agent's resume context — `resume::download_psyche_context` (spt-live/src/resume.rs:88, composes <live-role>+<live-context>+<project-context> from the durable two-tier store) is INTERNAL with ZERO spt callers and no ApiCmd verb (api/mod.rs ApiCmd enum has none); resume.rs:9 documents the intended 'adapter pulls it in its SessionStart hook' path but it was NEVER wired. Result: a harness adapter cannot inject the agent's durable mind on resume at all (claude-spt today runs only `api boundary` session-rotation + an identity brief — the agent resumes WITHOUT its mind). TIER-1 SCOPE (operator-approved; Tier-2 = drift-stamp/<current>/drift-directive + <memformat> + Pulse-Log DEFERRED to a separate parity item, NOT v0.15.0 — the legacy download_payload [claude_skill_owl context.rs:344] is richer but memformat is roadmap-deferred + drift-stamp is an orthogonal cross-machine-drift feature). TWO PARTS: (1) EXPOSE `spt api psyche-download <id> [--session-id <sid>]` -> stdout = the composed brief, project_id resolved from the endpoint's bound cwd (info::read_info -> cwd -> project derive; NO --project arg), auth-gated like sibling id-scoped verbs (the `gated(&id,&auth,…)` pattern); empty store -> NO-CONTEXT on stderr (mirror legacy). The adapter SessionStart hook runs it + injects stdout as additionalContext. (2) APPEND any commune/signoff drop NOT YET SYNTHESIZED into the durable tiers as a distinct <pending-commune>/<pending-signoff> slice AFTER the durable slices. GATING (operator ruling): append while NOT-YET-SYNTHESIZED, NOT merely 'while the raw file is on disk' — in today's synchronous ingest (ingest_drops route_two_slice writes durable THEN deletes the file, lifecycle.rs:466 @ DEFAULT_PULSE_PERIOD 5s) the two coincide (a watched-dir drop IS pre-synthesis), so the v1 realization reads the manifest-declared session.commune_dir/signoff_dir (manifest.rs:208/210) for a present <id>-commune.md/<id>-signoff.md (COMMUNE_SUFFIX/SIGNOFF_SUFFIX, ingest.rs); the CONTRACT keys on synthesis-state so it stays correct when async Psyche synthesis lands (a consumed-but-not-yet-committed drop stays appended via a pending-synthesis staging set — forward hook). The agent-checkpoint trigger sentinel CHECKPOINT_SENTINEL=`!!checkpoint!!` (a FIXED spt-core constant — operator-specified, CONTEXT.md §fixed-constants, NOT adapter-configurable) is stripped at BOTH drop-body points via one shared `strip_checkpoint_markers` (remove every token, keep inter-marker text, collapse trivial whitespace): the PRE-synthesis pending-append (resume::append_pending) AND the POST-synthesis durable ingest (ingest::route_slices — the single choke covering route_two_slice + signoff.write_resume_commune; strip-then-empty-filter so a marker-only slice routes nowhere) — else the marker would persist PERMANENTLY in live-context.md once a checkpoint drop synthesizes + re-trigger once the adapter's checkpoint detection is live. PRESENTATION-ONLY: the append NEVER writes the durable store (spt-core remains sole store-writer, REQ-HAZARD-DROP-FILE-SINGLE-WRITER; mirror legacy's read-only/process_file_drop-sole-deleter discipline). SELF-CLEARING: once synthesis commits the <pending-*> slice vanishes — no duplication. CORE-OWNED (not adapter): an adapter-side raw-file read RACES spt-core's ingest-delete (TOCTOU, ingest.rs:161 removes the drop on pulse-consume); the fold MUST live in the single composer all resume pulls flow through. New public CLI verb -> docs-drift gate (xtask gen + reference.md no-internal-codes, cli-command-docs-drift). (v0.15.0 parity wave W5)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446066Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446153Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446229Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446315Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446399Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446477Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446558Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446634Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446724Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446806Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7446924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447015Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447102Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447344Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447426Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447503Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447577Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447658Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447739Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447820Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7447941Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448017Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448138Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448219Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448299Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448481Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448566Z               "line": 196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448833Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7448918Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449082Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449267Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449349Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449615Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449697Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7449974Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450055Z               "line": 917
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450139Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450220Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450301Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450382Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450466Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450608Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450818Z               "path": "crates/spt/tests/psyche_download_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450903Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7450981Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451062Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451128Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451199Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451276Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451362Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451581Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451672Z               "line": 547
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451757Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7451963Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452053Z               "line": 560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452311Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452401Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452664Z               "path": "crates/spt-live/src/resume.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452744Z               "line": 453
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7452997Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453077Z               "line": 1234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453163Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453244Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453322Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453397Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453468Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453545Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7453650Z       "id": "REQ-RESUME-CUSTODY-IDENTITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7457575Z       "title": "Resume custody is an identity pair (pid + process creation time), never a bare PID. (ADR-0047 decision 1; hertz v0.39.4 field bug 1, RCA accepted 2026-07-22.) TODAY: livehost's restart gate and liveness-reconcile DEFER both consume `read_resume_pid(..).is_some_and(is_process_alive)` — zero identity binding, so a dead wake-resume spawn's pid recycled onto an unrelated process (field: resume.pid=29456 -> cmd.exe) reads as a live resume forever: reconcile defers every tick, the row stays online-authoritative, FALSE-ONLINE with no self-repair. FIX: the custody record stores (pid, creation_time) written atomically at spawn-mint; every consumer tests the PAIR; mismatch = NOT OURS -> the discovering reader DELETES the record and proceeds (self-heal, not error); successful bind and spawn-reap clear custody atomically with their own outcome. Creation time from the process SNAPSHOT, never a retained handle (KH 7.50); platform without a snapshot -> unproven -> defer one tick, never a manufactured verdict. Gate: impl — the paired custody record + both livehost consumers on the pair test; unit — pair mismatch reads NOT-OURS + record deleted, pair match reads OURS, absent-snapshot defers; int — the recycled-pid rig: mint custody, kill the spawn, occupy the pid with an impostor, prove reconcile deletes custody and the row goes honest (the bug-1 field shape, RED-first against the bare-PID gate).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7457720Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7457804Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7457880Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7457962Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458039Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458123Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458199Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458294Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458375Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458611Z               "path": "docs/adr/0047-daemon-lifecycle-custody-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458698Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458774Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7458849Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459050Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459131Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459212Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459294Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459522Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459603Z               "line": 302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459874Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7459952Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460185Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460291Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460375Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460638Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460728Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7460988Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461073Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461336Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461416Z               "line": 978
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461693Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461778Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7461946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462050Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462185Z               "line": 367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462466Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462547Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462632Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462709Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462824Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462904Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7462985Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463219Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463309Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463386Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463581Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463666Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463742Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7463943Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464023Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464286Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464372Z               "line": 1190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464520Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464600Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464677Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464768Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464849Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7464929Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465069Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465145Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465226Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465436Z               "path": "crates/spt-daemon/tests/resume_custody_aba.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465525Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465863Z               "path": "crates/spt-daemon/tests/resume_custody_aba.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7465944Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466020Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466101Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466176Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466256Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466342Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466424Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466648Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466729Z               "line": 777
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7466895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467011Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467096Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467373Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467458Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467729Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467806Z               "line": 282
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467887Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7467965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468077Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468163Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468431Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468512Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468589Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468816Z               "path": "crates/spt-store/src/resume_custody.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7468906Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469085Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469166Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469243Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469325Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469400Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469476Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7469587Z       "id": "REQ-RESUME-HARNESS-SESSION-ID",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472004Z       "title": "B2 (F028, hall-b diagnosis, verified 0.22.0): respawn/`--resume` feeds the SPT session id to `claude -r`. After the 02:05 daemon bounce respawn built `claude.exe -r 70b5bfa40901b7d4` — an spt session id in claude's OWN session-id namespace -> claude hangs forever at a 'No sessions match' resume-picker while the endpoint reads online. Hits after EVERY daemon bounce + every picker Resume. The HARNESS session id (claude UUID, stamped in sessions.log/info.json by the hooks) is what {session_id} must mean in the adapter's [session.resume] command; the spt sid must not leak. FIX: substitute the HARNESS session id in the resume template (spt-core substitution-key semantics + LIKELY claude-spt manifest coordination — FLAG perri BEFORE touching the manifest, adapter-boundary rule). Int: resume template receives the ledger UUID, not the spt sid. See triage B2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472158Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472244Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472324Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472401Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472477Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472563Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472639Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472726Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472816Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7472887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473011Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473088Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473183Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473254Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473436Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473521Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473675Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473770Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473855Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7473927Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474009Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474080Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474164Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474249Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474331Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474554Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474636Z               "line": 2923
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474883Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7474971Z               "line": 2943
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475047Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475128Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475207Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475285Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475376Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475461Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475537Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475615Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475700Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475776Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7475982Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476066Z               "line": 449
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476143Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476325Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476405Z               "line": 5028
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476485Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476609Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476689Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476773Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476845Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7476926Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7477031Z       "id": "REQ-RESUME-REAP-PRIOR-HARNESS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478009Z       "title": "B4 (F028, hall-b diagnosis, verified 0.22.0): `--resume` respawns a SECOND harness onto the SAME session without reaping the first. Observed live: resume of b4421cf9 spawned pid 34432 while gen1 (250376) kept running — two claude.exe stacks, one session id. FIX: resume must reap/refuse when the session already has a live harness. See triage B4.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478137Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478214Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478299Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478375Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478457Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478534Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478614Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478699Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478787Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7478868Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479043Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479130Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479216Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479414Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479500Z               "line": 2991
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479584Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479659Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479756Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479837Z               "line": 4607
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479918Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7479993Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480075Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480156Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480246Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480332Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480538Z               "path": "crates/spt/tests/run_no_dup_session_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480622Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480704Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480832Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480909Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7480994Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481096Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481176Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481353Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481430Z               "line": 5068
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481509Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481586Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481654Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481731Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481796Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7481937Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7482067Z       "id": "REQ-RESUME-ROW-PER-PROJECT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483161Z       "title": "A5 (F028, operator #6): resume-from-history labels EVERY session with the endpoint's newest project. data.rs:480-496 resume_rows_for clones project_history.first() onto every ResumeRow (line 481/488), so all sessions read as the head project (the ghost). The per-row e.cwd is already carried for launch-into-dir. FIX: derive per-row project_id_for_dir(e.cwd) (owlery-excluded -> fall back to trigger token), rendered through A1's display-name path. See triage A5.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483247Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483329Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483404Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483485Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483561Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483639Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483728Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483809Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7483987Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484071Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484153Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484344Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484491Z               "line": 507
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484564Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484635Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484715Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484790Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484896Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7484978Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485133Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485220Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485302Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485377Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485531Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485611Z               "line": 1053
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485692Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485763Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485865Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7485940Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7486021Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7486092Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7486193Z       "id": "REQ-RESUME-UNBOUND-STAMP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489313Z       "title": "RC-RENDER-TRUTH W1 (ADR-0042 decision 2, operator-spotted second root seam): resume launch transitions an existing offline perch to UNBOUND before/with the broker spawn — UNBOUND semantics are fresh/resume-invariant (broker session exists + harness not bound = UNBOUND); generation/session-safe ROLLBACK to offline on spawn failure or session death; bind owns UNBOUND->ONLINE. Supersedes the rc.rs 'resume gets no UNBOUND stamp — accepted' boundary note (the pre-bind window can be PERMANENT: stuck native resume, SessionStart never fires — field-proven; truthful UNBOUND is the operator-recovery surface that let `spt rc` reach the wedged TUI). Writer-truth complement to REQ-RC-HONEST-SESSION-AUTHORITY — both land, neither substitutes. Gate: impl — UNBOUND stamp at resume spawn + rollback + bind transition; unit — stamp fires on existing-offline perch resume, rollback on spawn-fail restores offline, generation guard refuses a stale rollback over a newer bind; int — resumed-but-never-bound endpoint reads UNBOUND (not offline) and `spt rc` attaches to its live session; doc — ADR-0042.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489484Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489565Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489647Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489724Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489808Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489884Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7489964Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490041Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490126Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490210Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490406Z               "path": "docs/adr/0042-rc-attach-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490534Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490620Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490698Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490774Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490853Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7490935Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491027Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491221Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491303Z               "line": 652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491613Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491703Z               "line": 673
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7491957Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492050Z               "line": 4709
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492305Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492417Z               "line": 4755
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492502Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492673Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492824Z               "line": 4785
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7492930Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493030Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493134Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493236Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493335Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493420Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493655Z               "path": "crates/spt/tests/rc_attach_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493740Z               "line": 444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493822Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7493945Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494021Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494107Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494195Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494279Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494495Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494575Z               "line": 1522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494843Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7494932Z               "line": 1558
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495009Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495086Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495167Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495256Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495336Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495417Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7495509Z       "id": "REQ-RING-BLOCKS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509217Z       "title": "`spt ring` BLOCKS until the reply arrives or the wait elapses, in the arms where blocking is the honest behaviour. Ringing is a question, and a verb that returns instantly having only DISPATCHED the question makes the caller invent their own wait — which is the shape the request was filed against (releases#39). THE SCOPE IS BLOCKING ONLY. The wait UNIT and its DEFAULT VALUE are releases#59 and stay OUT of this requirement entirely: they are a separate ratification and folding them in would let one change smuggle a timing default past the gate that ruled on behaviour. THE ARMS ARE MAPPED AND THE MAP IS PART OF THE CONTRACT, recorded here so a later reader does not re-derive it wrongly from the symptom. THE MAP IS STATED BY REPLACEMENT: an earlier three-arm reading of this code (the builder's own, posted to the issue and carried into the dispatch) said flatly that 'a perchless caller already blocks', and that is TRUE ONLY WHEN THE TARGET IS LISTENING AT THAT INSTANT. It is corrected here rather than annotated, because that sentence is what made the report look like it might be about expectations rather than a defect. THE ARM THAT WAS MISSING IS THE ONE THE REQUEST IS ABOUT: a perchless caller takes `Occupancy::Vacant` and builds its ephemeral reply perch, then `deliver` attempts a live send and FALLS BACK TO THE SPOOL whenever that fails — which is not merely the offline case but the ordinary state of a WORKING agent that is mid-turn, the same condition that makes `spt send` report QUEUED. On that path ring used to tear the ephemeral perch down (`remove_dir_all`) and return immediately, DELETING THE ONLY ADDRESS THE REPLY COULD ROUTE BACK TO before any reply could exist. So the reply was unreachable by construction — literally the report's 'a reply can never be processed' — and the same command had opposite semantics for the same caller depending on whether the callee happened to be mid-turn. THE FIX IS THAT A SPOOLED DELIVERY WAITS EXACTLY LIKE A LIVE ONE, entering the same loop, with cleanup still running on every exit. The loop needed no change to cover it: it already drains the perch's SPOOL as well as polling the listener, which is the leg a late reply arrives on. This touches NEITHER ruled constraint — `Vacant` means there was no perch to adopt so the adoption guard is not on this path, and the caller has no live listener to race. THE TIMEOUT OUTCOME MUST SAY WHICH SILENCE IT GOT: a spooled message that was never collected is a different event from a live message that was read and not answered, and a caller told 'did not reply' about mail nobody has picked up draws the wrong conclusion about the peer. The two are therefore SEPARATE OUTCOMES rather than one flag. The superseded `Queued` outcome is KEPT UNCONSTRUCTED rather than deleted: removing it is a public API change with nothing to do with this defect, and the wait-unit request may want exactly that shape back as an explicit no-wait mode. TWO ARMS ARE NON-BLOCKING FOR REASONS THAT SURVIVE THIS CHANGE, and neither is a defect to close: (1) `Delivered` — the caller HAS a live listener, and blocking in the ringing process would race the listener that is already going to receive the reply, so the reply is delivered where the caller is actually listening rather than to a second waiter competing for it; (2) `PerchExists` / `StaleDir` — these are held by REQ-HAZARD-RING-PERCH-ADOPTION, where adoption once deleted a LIVE endpoint AND its spool. THAT GUARD IS NOT THE BUG AND MUST NOT BE REMOVED TO SATISFY THIS REQUIREMENT — it is named here in as many words because deleting it is the shortest path to a green demo of blocking and it would re-break an invariant already paid for once. ALL THREE NON-BLOCKING ARMS ALREADY PRINT EXPLANATORY STDERR (verified in `cmd_ring` at recon), so this requirement adds no diagnostics and must not be read as asking for any. Gate: impl — the spooled path entering the existing wait with cleanup on every exit, the distinct not-yet-collected timeout outcome, and the adoption guard untouched; unit — a reply arriving inside the wait returns it, a LATE reply on the spooled path (the arm where the reply used to be unreachable) still reaches the caller, a spooled wait that elapses returns the not-yet-collected outcome and is asserted NOT EQUAL to the live timeout outcome so the two cannot be collapsed later, and each non-blocking arm is asserted to STILL not block and to still carry its explanatory stderr (the regression rows that keep a later 'make it always block' from eating the hazard guard); int — the real binary rings a real perch whose peer answers LATE, and the reply reaches stdout, with the elapsed time asserted to show it both waited and stopped waiting on the reply rather than on the deadline.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509445Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509528Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509613Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509689Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509769Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509856Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7509946Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510037Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510132Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510214Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510294Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510423Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510510Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510699Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510786Z               "line": 285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7510952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511070Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511151Z               "line": 304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511232Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511416Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511498Z               "line": 12046
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511579Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511654Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511735Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511818Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511904Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7511988Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512189Z               "path": "crates/spt/tests/ring_blocks_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512274Z               "line": 81
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512355Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512517Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512641Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512728Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512814Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7512999Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513081Z               "line": 525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513344Z               "path": "crates/spt-msg/src/ring.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513434Z               "line": 560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513513Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513627Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513709Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513789Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513864Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7513944Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7514045Z       "id": "REQ-RING-TIMEOUT-MINUTES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7519476Z       "title": "`spt ring --timeout` IS DENOMINATED IN MINUTES, DEFAULT 30, WITH AN EXPLICIT SUFFIX STILL ACCEPTED (releases#59, CHANGE; ruled 2026-08-02). A ring is a question put to another agent, and an agent answers on agent time -- a 60-SECOND default expires while the peer is mid-turn, so the verb that exists to WAIT for a reply routinely reported a timeout against a peer that was about to answer. A bare number therefore reads as MINUTES, and the parser ALSO accepts an explicit s or m suffix (90s, 2m) so sub-minute waits remain expressible. Ruled and accepted with the change: callers written against the old second-intent get a longer wait, which is low risk because the failure mode of over-waiting is patience and the failure mode of under-waiting was a false negative about a peer. THE UNIT MUST FOLLOW THE VALUE ALL THE WAY TO THE SURFACES THAT REPORT IT: both no-reply arms -- the timeout arm and the spooled-but-uncollected arm -- state what was ACTUALLY waited, suffix-aware, rather than a hardcoded s, or the same wait gets reported in two units by two outcomes of one command. THE PARSE LIVES IN EXACTLY ONE PLACE, taking the argument from a bare integer to a parsed duration value, because a second parse site is how two spellings of one rule are born; garbage is REFUSED rather than silently defaulted, since a value the caller typed and the tool ignored is a wait nobody chose. IN-REPO CALLERS AND DOCUMENTED EXAMPLES REPIN WITH THE SEMANTICS, and this is required text because the defect it prevents is invisible in review: an existing bare 30 written as a 30-second ceiling becomes a 30-MINUTE one, so the ring end-to-end test loses the very bound it exists to enforce and a red arm parks instead of failing. The help sentence, the argument doc, the how-to example and the generated CLI reference all state the new unit and default; the public-help gate applies to the new wording. Gate: impl -- the single suffix-aware parse, the minutes default, the duration threaded to the wait, and both no-reply arms printing the true wait; unit -- a bare number is minutes, an s suffix is seconds, an m suffix is minutes, garbage is refused, and the no-reply arms render the wait they actually took in the unit the caller expressed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7519591Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7519671Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7519753Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7519835Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7519920Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520000Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520088Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520168Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520258Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520339Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520544Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520634Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520717Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520789Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520873Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7520954Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521037Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521122Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521361Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521447Z               "line": 11953
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521535Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521611Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521711Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521796Z               "line": 11977
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7521957Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522048Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522139Z               "line": 11985
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522459Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522548Z               "line": 12010
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522625Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522702Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522788Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522862Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7522949Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523036Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523230Z               "path": "crates/spt/tests/ring_blocks_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523317Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523402Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523478Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523559Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523637Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523731Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523812Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7523985Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524073Z               "line": 28936
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524335Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524424Z               "line": 28962
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524715Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524800Z               "line": 33727
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7524930Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7525011Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7525091Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7525172Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7525250Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7525325Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7525429Z       "id": "REQ-ROSTER-SELF-LEASE-HEAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7531381Z       "title": "WAN-TRUTH #40 F1: a node's OWN advertised roster row can never be frozen by a regressed epoch counter. Before authoring a self-entry — at pump boot and on every roster-exchange provider pass — the node consults the fleet-replicated lease it already holds for its own pubkey (RosterStore, the copy peers merged back to it) and fast-forwards its EpochSource strictly past that ceiling, so every self-advertisement out-ranks the copy the fleet holds and merge_entry's strictly-greater rule admits it. Field shape this repairs: HFENDULEAM's counter restarted at 0 after a hard reset (NUL husk, see the twin) while its fleet-replicated self row carried lease 803460 with a Jul-18 port; every later self-advertisement merged Stale on every peer, forever, and the node could not repair its own advertised address by any means short of operator surgery — the defect that makes a rebind (F4) invisible and strands the node symmetrically. The heal is retroactive: it repairs an already-damaged node on its next boot, which is why it, and not counter durability, is the primary fix; the durable epoch write and the loud corrupt-husk log ride along as defense in depth, and atomic.rs stops naming epoch counters as safe-for-non-durable RECONSTRUCTIBLE state (that sentence is now a documented-false invariant). Twin: REQ-HAZARD-SELF-ROW-LEASE-FREEZE. Kin REQ-MESH-2 (the upsert_self authorship site), REQ-HAZARD-REGISTRY-EPOCH-LEASE (the counter's own monotonicity contract, unchanged here). Gate: impl — the fleet-lease ceiling read, the fast-forward, its wiring at boot and at the provider, the durable write and the husk log; unit — a counter below the fleet ceiling fast-forwards strictly past it, a counter already above it is untouched (never a gratuitous jump), a healed node's next self-entry merges Updated (not Stale) against the stale high-lease row, and a NUL husk is distinguished from an absent file in the log; int — a node booting with a regressed counter and a high-lease stale self row re-advertises a self entry the fleet admits, with zero state surgery.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7531543Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7531630Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7531806Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7535571Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7535665Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7535757Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7535842Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7535928Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536018Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536176Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536266Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536347Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536558Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536643Z               "line": 1467
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7536929Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537011Z               "line": 1063
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537093Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537287Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537369Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537638Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537720Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7537982Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538145Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538402Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538488Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538750Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538826Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7538906Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539074Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539202Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539275Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539365Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539469Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539675Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539760Z               "line": 647
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539836Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7539931Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540012Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540091Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540176Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540263Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540448Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540525Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540682Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540787Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540868Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7540950Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541130Z               "path": "crates/spt-store/src/epoch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541217Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541532Z               "path": "crates/spt-store/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541622Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541698Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541778Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541861Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7541941Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7542017Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7542093Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7542214Z       "id": "REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7544956Z       "title": "WAN-TRUTH #40 F2 (the ROUTE-CHAIN consumer of REQ-DIAL-FAILED-ADDR-MEMORY): leg 2 of resolve_submit_addr skips a validated roster address that IS the address the last dial failed on, falling through to leg 3 (id-only discovery) — the leg the field incident could never reach. Every other roster address still resolves exactly as today: this is a skip of one known-dead value, NOT a demotion of the roster leg, so a node holding a genuinely fresher roster address still heals connection-free (REQ-PEER-ROUTE-CHAIN's guarantee, re-pinned by intent rather than inverted). Sibling: REQ-RECONCILE-FAILED-ADDR-REFUSE, the same memory read at the reconcile consumer. Gate: impl — the leg-2 skip through the shared helper; unit — a roster address equal to the just-failed one falls through to discovery, a roster address DIFFERING from it still resolves at leg 2 (the strand-heal intent), and with no failure recorded the chain order is unchanged.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545100Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545189Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545270Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545356Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545441Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545520Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545620Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545701Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545783Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545863Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7545953Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546041Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546297Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546384Z               "line": 1224
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546460Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546540Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546617Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546694Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546779Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546859Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7546941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547074Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547160Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547241Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547352Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547436Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547518Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547605Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547685Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547886Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7547968Z               "line": 2411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548051Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548127Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548208Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548285Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548366Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548437Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7548537Z       "id": "REQ-RUN-EMPTY-CREATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7549897Z       "title": "`spt endpoint run` / bare `spt` routes a TOTALLY-EMPTY scope straight to the endpoint-creation flow: when gather_endpoints() is empty (nothing attachable, local OR subnet) PickerModel::new opens on Screen::CreateAdapter instead of PickExisting (today it always opens PickExisting + renders a blank list). A node WITH subnet endpoints but no local ones still has things to pick → stays on the picker. Extends REQ-RUN-PICKER. (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7549986Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550073Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550207Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550291Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550376Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550462Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550558Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550642Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550722Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550804Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550895Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7550975Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551176Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551323Z               "line": 924
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551404Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551481Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551567Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551643Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551733Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551815Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551900Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7551990Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552072Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552158Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552358Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552445Z               "line": 2281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552530Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552611Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552692Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552769Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552844Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7552926Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7553031Z       "id": "REQ-RUN-ID-REUSES-ADAPTER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557005Z       "title": "D-1 (REMOTE-TRUTH triage §D-1): `spt endpoint run --id <id>` with NO --adapter, when <id> names an EXISTING perch, REUSES that perch's recorded info.adapter and runs NON-INTERACTIVELY — instead of always falling to the picker as a create-new prefill (an existing endpoint retyping its own adapter, or being sent to a create-new flow, is the operator wart). ROOT (certain, no design tension): the cli `match (adapter,id)` special-cased only (Some,Some)→cmd_endpoint_run; the catch-all routed EVERY lone --id to crate::picker::run as a create-new prefill, never considering an existing endpoint (cli.rs ~1290). FIX: a PURE resolve_run_target(adapter, id, recorded) over the 4 (adapter?,id?) quadrants — (Some,Some)→Direct{a,id}; (None,Some(id))→ recorded adapter present (info.adapter = adapter-chosen-at-creation, spt-store info.rs:167) → Direct{recorded,id}, absent/no-perch → Picker{None,Some(id)} (today's create-new prefill UNCHANGED); (Some,None)/(None,None)→Picker unchanged. The perch lookup (read_info(resolve_perch_path(id,Infer)).adapter) is INJECTED as a closure so the router is pure + testable without a perch on disk; resume threads into BOTH Direct paths. Red-first: (None,Some(id),recorded=Some) → Direct (pre-fix this routed to Picker create-new). int (live run --id on an existing perch reuses its recorded adapter non-interactively) deferred to the rig.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557119Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557206Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557282Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557368Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557448Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557521Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557616Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557701Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557778Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557855Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7557944Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558025Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558213Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558292Z               "line": 3028
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558556Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558635Z               "line": 4089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558716Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558792Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7558922Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559092Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559184Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559265Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559340Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559422Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559503Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559584Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559760Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559841Z               "line": 3377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7559917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560142Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560232Z               "line": 3571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560304Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560381Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560457Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560537Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560613Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560695Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7560795Z       "id": "REQ-RUN-MULTISUBNET-HOME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563358Z       "title": "`spt endpoint run` resolves the home subnet at the skeleton-create step and pre-creates the skeleton perch carrying it, so the harness `bind` inherits home via establish_perch's immutable prior-branch (no hook change, no env injection). Resolution: sole-subnet auto; multi-subnet + no --subnet + NON-interactive terminal -> refuse early with MRU-ordered --subnet guidance (never the silent 25s online-timeout); multi-subnet + no --subnet + INTERACTIVE -> print proposed config (id/project/adapter[:profile]/home=MRU-default) + 'Ok to proceed? Y/n', n -> --subnet guidance; --subnet overrides + validates membership. MRU = ordered move-to-front LISTs at two levels (per-project + always-updated node-global fallback). Home stays IMMUTABLE (ADR-0010). Fixes the LATENT multi-subnet bringup gap (perri, not a regression — HOME_REFUSED established >=0.11.0; exposed by the node crossing 1->2 subnets). (ADR-0026)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563451Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563533Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563620Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563752Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563832Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563909Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7563994Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564069Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564154Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564236Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564497Z               "path": "docs/adr/0026-multi-subnet-home-at-endpoint-run-creation.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564579Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564656Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564788Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564865Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7564947Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565037Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565117Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565318Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565399Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565670Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565751Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7565905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566013Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566095Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566177Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566254Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566361Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566446Z               "line": 4695
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566702Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566788Z               "line": 4846
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7566993Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567088Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567170Z               "line": 4868
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567422Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567499Z               "line": 4890
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567752Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567870Z               "line": 4919
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7567951Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568027Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568110Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568190Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568271Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568356Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568576Z               "path": "crates/spt/tests/multi_subnet_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568662Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568739Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7568819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569039Z               "path": "crates/spt/tests/multi_subnet_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569121Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569400Z               "path": "crates/spt/tests/multi_subnet_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569486Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569768Z               "path": "crates/spt/tests/multi_subnet_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569848Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7569933Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570006Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570168Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570258Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570345Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570591Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570674Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570754Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7570936Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571017Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571102Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571294Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571374Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571692Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571776Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7571933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572044Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572129Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572400Z               "path": "crates/spt-store/src/recent_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572481Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572734Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572814Z               "line": 5101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7572968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573063Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573154Z               "line": 5151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573306Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573383Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573468Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573593Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573673Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7573773Z       "id": "REQ-RUN-NO-DUP-SESSION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576221Z       "title": "B1 (F028, hall-b diagnosis, verified 0.22.0): `endpoint run --id X --create` on an endpoint with a LIVE session mints a silent DUPLICATE session — and attach output can CROSS sessions (second create for diag-hallc minted a new session while the old ran; the new run's attach viewport rendered the OLD session's screen — claude resume-picker UI of pid 84512 while new claude 356020 had no -r). ROOT CLASS of the 0.21.0 attach-stall (zero events in FIRST_EVENT_GRACE rc.rs:1402 = attach bound to dead/wrong same-id slot); also the triplicate `launch --id ball-b` on ENLYZEAM. FIX: (i) run-on-live-session must REFUSE or REATTACH, never silently duplicate; (ii) RCA the attach/output routing that let frames cross same-id sessions (broker session-slot keying, dispatch_adapter vs serve_attach resolution). Int: two sessions one endpoint id -> each attach sees only its own frames. See triage B1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576369Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576446Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576536Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576621Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576699Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576780Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576855Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7576940Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577021Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577102Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577177Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577262Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577348Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577434Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577534Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577619Z               "line": 2964
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577701Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577872Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7577953Z               "line": 2990
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578253Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578340Z               "line": 4606
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578416Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578493Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578568Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578650Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578731Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578812Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7578888Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579107Z               "path": "crates/spt/tests/run_no_dup_session_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579193Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579319Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579403Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579479Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579561Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579643Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579727Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579898Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7579984Z               "line": 5068
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580060Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580141Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580217Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580294Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580371Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580451Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7580542Z       "id": "REQ-RUN-PICKER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7584971Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt` on an interactive terminal enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585184Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585264Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585351Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585428Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585509Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585588Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585670Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585762Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585842Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7585917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586010Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586095Z               "line": 455
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586171Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586251Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586334Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586419Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586505Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586586Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586767Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586853Z               "line": 2045
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7586929Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587158Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587239Z               "line": 2055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587321Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587397Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587510Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587586Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587742Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587860Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7587946Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588062Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588256Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588342Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588600Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588685Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588770Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7588847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589028Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589109Z               "line": 503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589391Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589472Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589549Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589625Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589729Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589816Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7589967Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590068Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590203Z               "line": 1101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590463Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590544Z               "line": 1237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590801Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590883Z               "line": 1361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7590959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591146Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591278Z               "line": 1427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591359Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591545Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591631Z               "line": 1470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591888Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7591969Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592051Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592128Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592208Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592284Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592370Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592452Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592536Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592617Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592698Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592784Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592863Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7592957Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593039Z               "line": 28572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593191Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593286Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593368Z               "line": 28583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593683Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593774Z               "line": 2194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7593930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594032Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594112Z               "line": 2255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594374Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594455Z               "line": 2310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594536Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594657Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594765Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594846Z               "line": 2319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7594923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595098Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595190Z               "line": 2330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595456Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595541Z               "line": 2352
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595806Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595887Z               "line": 2371
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7595963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596144Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596225Z               "line": 2483
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596487Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596570Z               "line": 2514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596859Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7596946Z               "line": 2641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597204Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597280Z               "line": 2711
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597360Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597543Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597656Z               "line": 2902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597737Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7597924Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598003Z               "line": 2918
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598265Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598348Z               "line": 1042
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598603Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598687Z               "line": 1057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7598841Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599025Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599107Z               "line": 1094
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599373Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599465Z               "line": 1119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599541Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599622Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599722Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599804Z               "line": 1129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599884Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7599960Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600114Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600199Z               "line": 1285
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600280Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600356Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600453Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600551Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600633Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600711Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7600815Z       "id": "REQ-RUN-PICKER-HOME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604133Z       "title": "Home-subnet selection LAYER in the `spt endpoint run` ratatui Create-new picker (v0.14.1; the deferred half of REQ-RUN-MULTISUBNET-HOME's interactive path — ADR-0026 §3 'the interactive picker lists subnets MRU-ordered'). On a MULTI-SUBNET node the Create-new flow gains a `CreateHome` screen (CreateAdapter → CreateId → CreateHome → Confirm) that lists the node's MEMBER subnets MRU-ordered (reusing recent_home::mru_preference + order_by_mru), default cursor = MRU head; the chosen subnet rides Outcome::Run{subnet} into cmd_endpoint_run's --subnet, so decide_run_home resolves Home directly and the post-TUI `Ok to proceed? Y/n` confirm NEVER fires for the picker path. Single-subnet / local-only nodes SKIP the layer (assign_home auto-homes; CreateId → Confirm unchanged). The CLI `endpoint create` path KEEPS the decide_run_home Y/n confirm + the non-interactive MULTI_SUBNET_HOME refuse (operator: the confirm stays useful for CLI-only bringup, just not in the TUI). Esc backs CreateHome → CreateId; Enter selects → Confirm. Pure front-end invariant preserved: the layer only collects --subnet, routes through the one bringup core.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604243Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604329Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604409Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604485Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604563Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604643Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604724Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604858Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7604939Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605115Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605197Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605273Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605358Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605439Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605517Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605602Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605682Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605866Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7605997Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606077Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606267Z               "path": "crates/spt/src/picker/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606347Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606427Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606610Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606695Z               "line": 1059
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606776Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7606948Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607028Z               "line": 1075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607287Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607376Z               "line": 245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607454Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607535Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607611Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607691Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607783Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607864Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7607944Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608020Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608107Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608193Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608413Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608503Z               "line": 1437
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608758Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608843Z               "line": 2929
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7608918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609186Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609271Z               "line": 2956
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609347Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609604Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609687Z               "line": 2982
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609763Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7609943Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610025Z               "line": 3005
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610291Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610369Z               "line": 1075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610525Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610606Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610684Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610759Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610840Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7610926Z       "id": "REQ-RUN-SHORTCUT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615313Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root whose body is `spt go <id>` (since U3 it bakes no selection; pre-U3 it baked the non-interactive flags: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615514Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615599Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615680Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615757Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615838Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7615918Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616000Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616087Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616172Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616353Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616435Z               "line": 503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616515Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616590Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616757Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616846Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7616931Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617189Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617269Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617536Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617626Z               "line": 95
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7617894Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7618014Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7618095Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7618176Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7618251Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7618339Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7618428Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622171Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622273Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622357Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622452Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622539Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622724Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622811Z               "line": 3382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622891Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7622968Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623097Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623179Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623465Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623549Z               "line": 223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623813Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7623983Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624255Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624335Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624411Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624492Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624566Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624642Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624724Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624801Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7624919Z       "id": "REQ-SCREENGRID-REPAINT-MODE-REPLAY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627089Z       "title": "RC-RENDER-TRUTH W3 (ADR-0043 decision 4, hertz stale-glyphs RCA leg 4 P1): ScreenGrid cold repaint replays EVERY tracked render-affecting mode — DECSTBM scroll margins at minimum — before final cursor placement (today render_repaint omits tracked margins, so client and server grids interpret subsequent raw scrolling against different regions => stale/moved rows after reattach/resize; the trailing-blank omission after ED2 is semantically correct and NOT the bug). Stateful emulator contract: dirty screen + synthesized repaint + next raw frame == server grid. Gate: impl — tracked-mode replay in render_repaint; unit — repaint emits tracked DECSTBM, emulator contract holds for scroll-after-repaint; doc — ADR-0043.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627188Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627264Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627345Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627420Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627495Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627576Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627663Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627749Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627833Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7627915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628054Z               "path": "docs/adr/0043-terminal-render-lifecycle.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628139Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628302Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628378Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628459Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628593Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628683Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7628874Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629054Z               "line": 993
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629131Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629209Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629285Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629360Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629450Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629533Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629740Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629831Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629907Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7629991Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630095Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630182Z               "line": 1332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630258Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630443Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630526Z               "line": 1350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630601Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630677Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630758Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630835Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630911Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7630988Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7631082Z       "id": "REQ-SCREENGRID-WIDTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7635765Z       "title": "TEARDOWN-AUTHORITY W3 (hertz field RCA 2026-07-19, doyle-confirmed at source): ScreenGrid models every character as ONE display column, so wide characters (CJK, emoji, and other 2-column glyphs) shift subsequent text left and leave stale scraps at the right margin — field repro on the Claude settings UI (left-shifted rows + To/Wh/Es left-margin scraps). SOURCE: spt-term/src/screen.rs Cell { ch: char, pen } (~127) carries NO width datum, and put_char (~327-343) unconditionally advances col += 1, with pending_wrap likewise advancing a single display cell. FIX: give the grid a real display-width model — a wide glyph occupies its leading cell plus a continuation cell that renders nothing and is never independently addressable; cursor motion, wrap, erase, and scroll all reckon in DISPLAY columns. WIDTH POLICY (hertz-proposed, doyle-ratified — pinned so the renderer and the emulator can never disagree): share ratatui's pinned unicode-width 0.2.0 as a WORKSPACE dependency, ambiguous-width = 1, no CJK-context override. A second width authority in the tree is the defect this policy exists to prevent. Gate: doc — the width policy stated where the grid is documented; impl — width-aware Cell/put_char/wrap + display-column reckoning across cursor/erase/scroll; unit — wide-glyph advance + continuation-cell invariants, wrap at the right margin with a wide glyph that cannot fit, erase/overwrite of a continuation cell clears the whole glyph, combining/zero-width marks do not advance; int — regression oracle against an INDEPENDENT emulator's rendering of the same byte stream (the field repro shape: wide glyphs followed by EL and CUP row-addressed redraws must leave no left-shift and no margin scraps).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7635957Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636038Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636123Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636209Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636286Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636367Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636442Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636523Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636606Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636695Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636882Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7636963Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637033Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637115Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637197Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637278Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637367Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637497Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637687Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637771Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7637928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638027Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638112Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638408Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638495Z               "line": 461
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638751Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638834Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7638910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639177Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639262Z               "line": 503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639338Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639520Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639600Z               "line": 528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639854Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7639943Z               "line": 588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640202Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640281Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640598Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640674Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640760Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7640941Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641027Z               "line": 666
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641181Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641284Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641372Z               "line": 691
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641495Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641575Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641687Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641767Z               "line": 965
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641853Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7641933Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642035Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642115Z               "line": 1071
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642201Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642277Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642354Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642434Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642516Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642601Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642679Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642791Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642868Z               "line": 12438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7642951Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643172Z               "path": "crates/spt-term/tests/screengrid_width_oracle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643268Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643349Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643558Z               "path": "crates/spt-term/tests/screengrid_width_oracle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643640Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643711Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7643926Z               "path": "crates/spt-term/tests/screengrid_width_oracle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644074Z               "line": 89
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644364Z               "path": "crates/spt-term/tests/screengrid_width_oracle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644445Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644727Z               "path": "crates/spt-term/tests/screengrid_width_oracle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644812Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7644885Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645012Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645093Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645170Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645248Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645332Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645512Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645603Z               "line": 1536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645858Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7645940Z               "line": 1561
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646015Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646197Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646278Z               "line": 1574
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646536Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646622Z               "line": 1589
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646874Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7646955Z               "line": 1604
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647069Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647147Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647250Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647336Z               "line": 1619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647589Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647670Z               "line": 1640
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7647932Z               "path": "crates/spt-term/src/screen.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648048Z               "line": 1795
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648129Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648204Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648280Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648360Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648442Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648516Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7648620Z       "id": "REQ-SEAL-AUTH-BACKEND-SEAM",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7658356Z       "title": "PLATFORM-AUTHENTICATOR ACCESS IS ONE PER-OS SEAM — ensure-keypair / sign-payload / availability — AND THE SEAM IS THE CONTRACT (#217 anchor 3): the enrollment verb (REQ-SEAL-ENROLL-VERB) and W2's FIDO2 ceremony consume the SEAM, never a backend. AVAILABILITY answers whether a platform authenticator is present and usable for the invoking session — a probe that cannot answer reports unavailable WITH ITS NAMED REASON, never a verdict-shaped guess (the firewall doctrine: bounded probes feed a PURE DECIDER so every decision arm unit-tests hermetically without the OS — the probe/decide split at firewall.rs and the injectable-probe seam of resolve_transport are the two house exemplars). ENSURE-KEYPAIR is the idempotent get-or-create of this node's seal-authenticator keypair, user-verification-gated at creation by the backend (Windows Hello's own prompt); it returns the PUBLIC KEY plus the seam's BACKEND KIND token, and the private key NEVER crosses the seam — no export surface exists, signing is the only use. SIGN-PAYLOAD is the user-verification-gated detached signature over caller-presented bytes — W2's ceremony consumer; W1 lands it behind the seam with the stub/decider arms unit-held and NO production caller. BACKENDS: Windows Hello via the WinRT KEYCREDENTIALMANAGER surface (the `windows` crate, features Foundation + Security_Credentials + Storage_Streams, cfg(windows)-gated). The earlier windows-sys/raw-ncrypt spelling rested on a premise MEASURED FALSE (#222, doyle's 4-arm probe + todlando's independent repro, 2026-08-25: the Microsoft Passport/NGC KSP refuses EVERY plain key name with NTE_INVALID_PARAMETER on open AND create, so the NTE_BAD_KEYSET create cue is unreachable and that route can never enroll on any box). The house rule is therefore the MEASURED one, not the blanket one: windows-sys for Win32 surfaces, the `windows` crate ONLY where the surface is WinRT-only — KCM is the precedent (doyle ruling, 2026-08-25; the crate is already in the graph via netwatch and wmi, so the compile-weight objection is sunk cost). Linux is unchanged; Linux is a NAMED-REFUSAL STUB this milestone — every seam question answers that libfido2 is the named later backend, verbatim, because the honest stub refuses by name while a stub faking availability is a trap (fleet = Windows + one Linux box); any other OS refuses likewise. ENCODINGS: pubkey and signature cross every boundary as LOWERCASE HEX of the backend's raw bytes (the identity.rs / release-keys.json convention — no PEM, no base64, and NO RE-ENCODING BY US: the backend's NATIVE blob rides verbatim as hex, so for `hello-kcm-rs256` the raw bytes ARE the 294-byte DER SubjectPublicKeyInfo the KCM surface returns; `no DER` always meant we never CONVERT INTO DER, never that a backend may not hand us one), and BACKEND KIND is an open string token beside them (the ceremony_kind precedent) so a record names its algorithm family without any consumer parsing key innards; the Hello backend's key algorithm is whatever the platform mints (ES256/RS256 class, NOT ed25519) — the kind token is what keeps that honest, and the cross-node verifier dependency this implies is W2's flagged ruling, not W1's. Gate: doc — the published enrollment page's per-OS backend story; impl — the seam module, the Hello backend, the named-refusal stub; unit — stub arms refuse with the libfido2 name verbatim, pure-decider arms hermetic under injected probes, hex encoding roundtrip, backend-kind token stability (the Hello arm's real OS prompt is field-exercised, stated honestly, not CI-unit-held).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7658521Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7658603Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7658731Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7658811Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7658886Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659053Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659128Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659218Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659300Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659377Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659500Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659586Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659667Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659748Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659829Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7659910Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660001Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660082Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660158Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660264Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660344Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660420Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660602Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660687Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7660945Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661030Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661340Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661425Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661501Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661577Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661657Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661737Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661823Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661900Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7661977Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662057Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662138Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662220Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662438Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662525Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662605Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662777Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662859Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7662939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663116Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663193Z               "line": 400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663273Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663446Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663531Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663784Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663869Z               "line": 438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7663945Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664022Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664123Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664203Z               "line": 471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664283Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664518Z               "path": "crates/spt/src/authseam.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664597Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664678Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664755Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664836Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664912Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7664993Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7665070Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7665180Z       "id": "REQ-SEAL-CEREMONY-CONTENT-SHOWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7670861Z       "title": "THE CEREMONY OVERLAY SHOWS THE HUMAN EXACTLY WHAT THEY ARE SEALING: the sealed content VERBATIM plus the BINDING SUBNET NAMED — always the subnet whose member-or-admin code the overlay expects, so the human reaches for the right key (operator ruling 5's overlay clause) — and once W3 wires sealed dispatch, the destination id as well. A blind mint is a consent hole (doyle design-of-record 2026-08-23; releases#7's own sketch shows the content). The content bytes the overlay renders are THE bytes the daemon hashes at mint — same byte buffer end to end (the one-buffer discipline doyle's W1 review carried into this milestone). SIZE IS THE OPERATOR'S THREE-PART SHAPE (ruling 8, 2026-08-23, superseding the provisional refuse-arm): (1) content is CAPPED AT 500 UNICODE SCALAR VALUES at the CEREMONY SEAM ONLY (not a record property) — longer REFUSES with a named reason to the requester (`SEAL_CEREMONY_CONTENT_TOO_LONG`), never truncated; (2) the overlay SUPPORTS SCROLLING — a within-cap content can still overflow a small PTY grid, so the surface adapts and the content never shrinks; (3) SUBMIT IS NEVER GATED on scrolled-to-end. Ceremony content must be VALID UTF-8 (doyle pin under ruling 8): bytes that cannot be displayed verbatim are bytes nobody can consent to, so non-UTF-8 refuses with its own named reason (`SEAL_CEREMONY_CONTENT_NOT_UTF8`). Gate: doc — the CONTEXT.md ceremony clause's content-shown sentence; impl — the overlay rendering (content verbatim + subnet line + scroll window) and the seam's cap + UTF-8 refusals; unit — the overlay's emitted bytes contain the content verbatim and name the binding subnet, the rendered content is byte-identical to the buffer presented for mint, over-cap content refuses by name at the seam (a 500-scalar content passes, 501 refuses — counted in scalars not bytes), non-UTF-8 content refuses by its own name, the overlay windows over-surface content by scroll offset without shrinking it, and submit folds regardless of scroll position.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671018Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671095Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671176Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671262Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671343Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671419Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671548Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671638Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671720Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671891Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7671975Z               "line": 1148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672260Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672340Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672422Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672499Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672579Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672659Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672742Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672823Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7672903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673017Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673099Z               "line": 6769
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673180Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673362Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673447Z               "line": 376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673753Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673838Z               "line": 1691
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7673918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674096Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674181Z               "line": 3153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674439Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674520Z               "line": 3203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674597Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674726Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674805Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674881Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7674976Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675058Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675134Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675214Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675386Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675587Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675669Z               "line": 15351
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7675921Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676012Z               "line": 3423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676264Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676354Z               "line": 3488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676608Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676692Z               "line": 3550
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676774Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676845Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7676928Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7677003Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7677083Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7677158Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7677306Z       "id": "REQ-SEAL-CEREMONY-ESC-CANCEL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681083Z       "title": "ESC (OR CTRL-C) AT THE CEREMONY OVERLAY ABORTS CLEANLY — the releases#19 Esc-cancel ruling, which this requirement satisfies: NO partial seal record exists anywhere (mint_seal is simply never called for a cancelled ceremony — there is no staged record to roll back, by construction), the cancel SPENDS NOTHING on the attempt ledger (a cancel is not a presented guess: Presented::Absent, uncounted), a pending sealed-send is DROPPED, and the INITIATING AGENT receives a clear refusal naming the cancellation — never a silent hang or an ambiguous failure. The same clean-abort arm covers the involuntary endings: controller detach mid-ceremony and requester connection drop abort identically (no partial record, nothing spent, both sides answered). The key grammar is the SHARED fold_code_key kernel — one grammar for every ceremony surface (ADR-0052's overlay-pattern-shared sentence), so no ceremony can drift its own cancel rule. Gate: doc — the CONTEXT.md ceremony clause's Esc sentence; impl — the client cancel arm and the daemon abort arm; unit — Esc and ctrl-c fold to Cancel through the shared kernel, a cancelled ceremony produces no record and no ledger delta, the requester receives the named cancellation refusal, detach-mid-ceremony aborts identically.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681193Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681268Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681350Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681431Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681516Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681597Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681679Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681774Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681854Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7681940Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682037Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682127Z               "line": 1149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682465Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682545Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682631Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682707Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682782Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682862Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7682953Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683040Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683234Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683359Z               "line": 6287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683631Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683716Z               "line": 7056
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683792Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7683974Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684064Z               "line": 7777
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684322Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684403Z               "line": 1798
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684556Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684651Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684731Z               "line": 2978
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684808Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684886Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7684961Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685041Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685132Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685210Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685295Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685379Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685460Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685546Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685784Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685870Z               "line": 15979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7685946Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686132Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686214Z               "line": 16203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686461Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686548Z               "line": 3578
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686623Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686747Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686829Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686905Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7686986Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7687062Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7687163Z       "id": "REQ-SEAL-CEREMONY-FIDO2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7694681Z       "title": "AN ENROLLED (node x subnet) OFFERS THE FIDO2 CEREMONY ON THE MINT PATH (#217 anchor 4): when the daemon's OWN node-key short hex x the binding subnet holds an enrollment record, the ceremony open carries the FIDO2 offer plus the PAYLOAD TO SIGN, composed DAEMON-SIDE with minted_at FIXED BEFORE the request ships — the canonical binding tuple, registry-pinned to the exact spelling `spt-seal-fido2-v1\\n{content_hash}\\n{minter}\\n{minted_at}\\n` (versioned domain-separation prefix; UTF-8; trailing newline; field order pinned) — so every FIDO2 record is SELF-AUTHENTICATING from its own fields on any member node (signing content alone would leave minter/time unbound and a rostered rogue node could fabricate a record around a replayed signature). NO signer_node FIELD EXISTS; THE SIGNER IS THE RECORD'S MINTER NODE, and a future signer_node is ADDITIVE-OPTIONAL DEFAULTING TO IT (doyle ruling 2026-08-24: the v1 records are forward-valid by this title — a cross-node signer is a field addition behind a ruling, never a migration). THE REMOTE DEGRADE IS AN OFFER WITHDRAWAL, NOT A FAILURE: the open ships the enrolled node's short hex beside the offer, the client compares it against ITS OWN node and on mismatch renders the ORDINARY TOTP overlay with ZERO error chrome — no doomed sign attempt, nothing in logs or telemetry wearing a defect's costume (doyle rider 1). The client's Hello prompt IS the human-presence ceremony — the seam's sign-payload gains its first production caller — and the client ships the SIGNATURE PROOF, never a verdict: the daemon VERIFIES the proof against the enrolled pubkey (backend-kind dispatch) BEFORE minting, and mints ceremony_kind `fido2` with the additive optional signature_hex (serde default + skip_serializing_if: old records byte-identical, N-1 daemons ignore the unknown field on the seal feed). FAILED-PROOF REFUSALS SPEND NOTHING on the ceremony-gate ledger — a bad signature is not a guess at the shared secret, and charging it would let a broken client shut the gate a human needs (the denial-of-governance direction) — and the overlay FALLS BACK to TOTP code entry on the SAME overlay; a HELLO CANCEL is a fallback-to-TOTP, DISTINGUISHABLE from Esc, which still aborts everything with the TOTP cancel clauses verbatim (nothing spent, nothing minted, requester answered). Gate: doc — the published ceremony page's FIDO2 clause; impl — the offer decision + payload composer + proof-verify + fido2 mint arm; unit — tuple spelling pinned (prefix, field order, trailing newline), offer iff enrolled, proof-verify admits a valid signature and refuses a wrong one without charging the ledger, Hello-cancel falls back while Esc aborts, minted record carries kind fido2 + the signature.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7694882Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7694972Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695048Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695131Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695206Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695286Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695363Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695450Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695535Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695784Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695869Z               "line": 129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7695948Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696025Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696101Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696178Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696268Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696349Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696541Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696620Z               "line": 4497
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696746Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7696935Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697021Z               "line": 5367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697283Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697366Z               "line": 5400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697447Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697632Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697723Z               "line": 6808
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7697995Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698076Z               "line": 7101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698341Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698422Z               "line": 7396
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698582Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698682Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698811Z               "line": 413
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7698892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699163Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699249Z               "line": 152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699507Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699584Z               "line": 291
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699670Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699898Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7699985Z               "line": 1662
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700141Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700237Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700318Z               "line": 3251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700393Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700489Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700596Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700680Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700761Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700853Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7700930Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701009Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701094Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701180Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701363Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701449Z               "line": 15684
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701711Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701802Z               "line": 15731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701879Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7701955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702064Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702146Z               "line": 15799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702227Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702470Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702556Z               "line": 460
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702632Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702814Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702904Z               "line": 480
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7702979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703162Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703247Z               "line": 3349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703328Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703448Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703534Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703609Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703684Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703760Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7703865Z       "id": "REQ-SEAL-CEREMONY-RC-CLIENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7707616Z       "title": "A REMOTE ATTACHED CONTROLLER RUNS THE CEREMONY CLIENT-SIDE AND SHIPS THE PROOF UP THE RC CHANNEL (CONTEXT.md ratified; the rc-paste client-originated precedent — the daemon has no reach into the operator's terminal or clipboard, so the overlay renders and the code is collected in the rc client process) — AND THE PROOF IS THE PRESENTED CODE, NEVER A CLIENT-SIDE VERDICT: verification, the attempt ledger, and the mint stay daemon-side (REQ-SEAL-CEREMONY-TOTP), because an agent on the box can speak the broker's IPC directly and a client-side decision would be decorative (the bring-up precedent, broker seat-resolver placement rationale). The ceremony records ride the EXISTING attach stream as additive serde variants, so the LOCAL and REMOTE arms are ONE code path — nothing about a remote controller is special except transport latency; N-1 clients are protected by the default-false capability declaration (REQ-SEAL-NO-CEREMONY-SURFACE refuses rather than pushing records an old client cannot decode). Gate: doc — the CONTEXT.md rc-arm sentence; impl — the ceremony AttachRecord variants and the client ceremony mode; unit — the upstream ceremony record carries the presented code and has no verdict field for a client to assert, keys fold through the shared kernel, and a ceremony round-trips over the attach machinery (push, code up, result down).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7707778Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7707858Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7707935Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708012Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708092Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708172Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708288Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708377Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708632Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708716Z               "line": 1151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708787Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7708868Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709042Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709128Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709209Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709295Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709490Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709572Z               "line": 665
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709834Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709915Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7709996Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710182Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710267Z               "line": 960
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710531Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710615Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7710930Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711016Z               "line": 180
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711093Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711278Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711364Z               "line": 718
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711625Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711710Z               "line": 1156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7711918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712027Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712105Z               "line": 3779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712182Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712257Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712362Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712449Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712525Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712605Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712706Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712787Z               "line": 1395
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7712943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713064Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713144Z               "line": 182
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713417Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713497Z               "line": 222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713760Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713898Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7713975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714150Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714235Z               "line": 1586
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714485Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714575Z               "line": 2935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714657Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714838Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7714962Z               "line": 2977
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715219Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715302Z               "line": 3301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715382Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715463Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715538Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715621Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715711Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715806Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715878Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7715964Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716049Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716135Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716322Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716406Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716488Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716566Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716646Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716726Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716802Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716885Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7716989Z       "id": "REQ-SEAL-CEREMONY-TOTP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729351Z       "title": "EVERY PRODUCTION SEAL MINT IS GATED BY A TOTP HUMAN-PRESENCE CEREMONY, AND THE WHOLE DECISION RUNS DAEMON-SIDE (write-through-daemon, doyle W1 design-review finding + approval 2026-08-23): the attached controller collects the code and ships the PRESENTED CODE — never a verdict — up the attach channel; the daemon verifies a member-or-admin code of the BINDING subnet locally against SubnetStore seed_bytes/admin_seed_bytes through code_matches_window's plus-minus-one-step window, BOTH seeds tried unconditionally and combined bitwise so the gate's timing cannot name which key admitted (the bring-up pattern; which key admitted is deliberately not distinguished — a seal grants nothing key-specific). The attempt is bounded by ITS OWN persisted ledger `trust/seal-ceremony-gate.json` — the GateLedger shape reused verbatim (one counter, one-second-doubling-to-one-hour backoff, throttle evaluated BEFORE verification so a shut gate is not an oracle, reset on success, survives daemon restarts, loud notification past the third failure) — SEPARATE from the bring-up and empower ledgers per the denial-of-governance rationale: failed seal guesses must not shut the gate a human needs to take the controls back, and vice versa. Only PRESENTED guesses count: Esc-cancel and absent input spend nothing (REQ-SEAL-CEREMONY-ESC-CANCEL owns the cancel arm). Ceremony success is the ONLY production caller of spt_store::seal::mint_seal (ceremony_kind `totp`), and the mint's load-modify-save runs IN THE DAEMON PROCESS under the same SEAL_APPLY serialization as the replication apply arm — a CLI-process minter would race the apply arm last-writer-wins, and a lost LOCAL mint is the one record re-presentation cannot heal (only the minting node ever held it). The record's fully-qualified minter is `subnet:endpoint@node` where the NODE HALF is the daemon's own NODE-KEY SHORT HEX (registry::key_prefix's roster short form — the durable node spelling ADR-0054 payloads carry, already resolvable by the @node grammar) — NEVER the OS hostname (doyle W2 gate ruling 2026-08-23: a hostname is mutable — the advertised label re-derives at daemon startup — and non-unique, so a durable evidence record citing it goes ambiguous between hostname-sharing nodes and orphans on rename; the pubkey remains the identity). A node always has its key by mint time (daemon boot mints node.key), so there is no ordinary no-identity refusal; an unreadable key is an IO anomaly refused fail-closed. Gate: doc — the CONTEXT.md wax-seal entry's ceremony clause; impl — the ceremony IPC verb, the daemon verify + ledger + mint-under-SEAL_APPLY arm, the seal ledger path helper; unit — member code admits, admin code admits, wrong code refuses and counts, throttle-before-verify ordering, in-backoff attempt uncounted, cancel uncounted, ledger file distinct from the bring-up and empower files, mint persisted by the daemon writer with the minter's node half pinned to the node-key short form (8 hex chars, never a hostname), loud threshold.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729583Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729665Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729747Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729822Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729912Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7729993Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730074Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730172Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730257Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730435Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730519Z               "line": 1147
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730595Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730672Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730753Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730834Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7730920Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731002Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731087Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731211Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731293Z               "line": 149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731369Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731559Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731646Z               "line": 667
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731726Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7731956Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732036Z               "line": 1146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732304Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732393Z               "line": 4423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732661Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732784Z               "line": 4452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732860Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7732941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733048Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733134Z               "line": 4528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733205Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733396Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733482Z               "line": 5332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733560Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733739Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733821Z               "line": 5376
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733902Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7733974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734087Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734169Z               "line": 5999
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734245Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734322Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734421Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734509Z               "line": 6740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734775Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734899Z               "line": 6836
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7734979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735171Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735251Z               "line": 7055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735517Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735601Z               "line": 7205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735672Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735892Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7735977Z               "line": 7313
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736130Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736240Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736329Z               "line": 1551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736592Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736678Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7736931Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737012Z               "line": 1326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737089Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737169Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737265Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737346Z               "line": 1377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737612Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737695Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737771Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737846Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7737927Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738005Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738095Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738175Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738312Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738395Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738480Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738560Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738752Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738837Z               "line": 15281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7738918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739185Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739261Z               "line": 15302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739576Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739663Z               "line": 15979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739734Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739815Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7739921Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740006Z               "line": 16119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740269Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740350Z               "line": 16154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740424Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740500Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740581Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740657Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740736Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740812Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7740908Z       "id": "REQ-SEAL-DESCRIBE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7749726Z       "title": "`spt api seal describe <token>` RENDERS THE SEAL RECORD'S FIELDS — token, content hash, fully-qualified minter, mint timestamp, ceremony kind — as the read surface for citing a seal WITHOUT re-presenting its content (the verify verb's complement: describe answers 'what does this token attest', verify answers 'is it THIS content'). Unknown token refuses `SEAL_UNKNOWN_TOKEN`; malformed token refuses at the format seam, distinct (REQ-SEAL-TOKEN-FORMAT). Read-only, no auth gate, answers on any member node of the binding subnet via the replicated store (REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED). Field rendering is LINE-ORIENTED KEY:VALUE on stdout so an agent citing a seal can quote it verbatim; the describe surface NEVER renders anything that is not in the record — in particular it cannot leak subnet secret material, because the record carries none (the minter address names a subnet; naming is not revealing). Gate: doc — the CONTEXT.md entry's describe clause; impl — the api verb + rendering; unit — field rendering exact over a known record, unknown-vs-malformed refusal distinction, exit codes. #219 (operator, FIELD-SEAL W2): DESCRIBE IS THE HUMAN SURFACE AND ITS BLOCK IS NOT A PARSE TARGET. The MINTER renders with its node half NAMED where this node can name it, in the house `LABEL (prefix…)` convention (REQ-PICKER-4's never-bare-hex rule) — `SPT_DEV:lia@HFENDULEAM (14efb80c…)`; MINTED_AT renders `YYYY-MM-DD HH:MM TZ` in the HOST NODE'S OWN timezone. Both renders are DERIVED — from this node's roster and gossiped registry, and from this node's clock — so TWO NODES MAY LEGITIMATELY RENDER ONE RECORD DIFFERENTLY and that difference is NOT a defect: the machine-readable answer is the record itself, never this text, and nothing derived here reaches verification (the fido2 tuple recomposes from the STORED spellings verbatim, REQ-SEAL-FIDO2-SIG-VERIFY's exactness rider, untouched). THE NAME RESOLVE IS A PREFIX MATCH AND ANSWERS ONLY WHEN UNAMBIGUOUS: a record stores its minter's node as an 8-CHAR KEY PREFIX (`registry::key_prefix` at the mint) while both label directories key on the FULL key, so the candidates are a SET, never a first match (roster_node_hex_resolver's doctrine) — EXACTLY ONE candidate key renders its name; zero (nothing known) and two-or-more (the prefix does not identify a node) BOTH degrade to the stored hex, because a name guessed from an ambiguous prefix attributes a decision seal to a machine the operator never named. An instant the local calendar cannot place degrades to the raw milliseconds rather than inventing a time. THE LABEL DIRECTORY IS AN INJECTED SEAM (the probe/decide split): the verb loads the union of the two existing tables at its edge and hands it to a pure renderer, so every arm of the naming rule unit-tests against a fixture table instead of against whatever the build box gossiped. Gate adds: unit — the naming rule's three arms (unique names, ambiguous degrades, unknown degrades), a minter that does not parse rendered untouched, the stamp's shape and its degrade-to-raw arm.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7749970Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750055Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750132Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750214Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750298Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750379Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750466Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750552Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750819Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750900Z               "line": 1146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7750979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751189Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751278Z               "line": 240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751354Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751435Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751512Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751597Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751682Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751769Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7751950Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752030Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752321Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752408Z               "line": 593
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752665Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752751Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7752908Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753003Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753119Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753381Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753466Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753715Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753800Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7753955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754056Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754136Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754383Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754465Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754722Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754803Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7754970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755065Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755145Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755222Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755299Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755375Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755456Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755585Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755676Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755751Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755832Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7755914Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756000Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756171Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756258Z               "line": 1218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756418Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756560Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756641Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756725Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756897Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7756979Z               "line": 471
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757237Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757322Z               "line": 499
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757469Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757565Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757646Z               "line": 507
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757722Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757876Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7757951Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7758032Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7758108Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7758233Z       "id": "REQ-SEAL-ENROLL-RECORD-SUBNET-MATERIAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766120Z       "title": "AN ENROLLMENT RECORD IS DURABLE SUBNET SECURITY MATERIAL, MEMBER-VERIFIABLE BY CONSTRUCTION (#217 anchor 2): `{pubkey_hex, node, subnet, enrolled_at, backend_kind}` — pubkey as lowercase hex of the backend's raw public key bytes, node as THE DAEMON'S OWN NODE-KEY SHORT HEX (the nodeid::load_or_create + registry::key_prefix helper pair, 8 hex chars, the ADR-0054 roster short form — NEVER the hostname, the W2 gate ruling transported verbatim), the subnet name EXPLICIT (unlike a seal record, an enrollment has no minter address to derive scope from — the field is the scope), the mint timestamp in epoch ms, and the backend kind token (REQ-SEAL-AUTH-BACKEND-SEAM's encoding clause). THE STORE IS `trust/enrollments.json` BESIDE THE SEAL STORE — one JSON document, atomic write, a NEW path fn in perch.rs per REQ-HAZARD-SINGLE-PATH-SOURCE, absent/corrupt LOADS EMPTY (the evidence-store degrade polarity: a husk can only LOSE the ability to prove enrollment, never mint false evidence). RECORDS RIDE THE SAME SUBNET-SCOPED REPLICATION FAMILY AS SEAL RECORDS (the dispatch's same-family clause): an ADDITIVE KIND-TAGGED wire record in the Seal stream family's feed (the sealmsg NDJSON discipline — a tagged record an N-1 daemon does not know DROPS CLEANLY per line, never lands as chat, never fails the feed), the emitter re-presenting every enrollment record of the subnet beside its seal records (duplicates free under the join), the pump worker unchanged in cadence. THE APPLY POINT IS INSERT-IF-ABSENT KEYED BY (node, subnet) — records commute, replay no-ops, and the store is a join-semilattice like the seal store; a same-key-different-pubkey arrival is DROPPED WITH THE EXISTING RECORD KEPT and counted as an anomaly, never merged: FIRST-ENROLLED WINS EVERYWHERE, because records are immutable v1 (intake ruling 6) and a conflicting claim for an enrolled slot is either a partition echo or adversarial, and the adversarial copy is harmless only if it can never displace the enrolled key. THE APPLY GATE admits a row only when THIS node is a member of the record's subnet AND the handshake-proven origin node is on that subnet's roster (fail-closed, the REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED posture verbatim, same NotifPolicy plumbing). Immutable once minted, no expiry and no revocation v1 — a compromised or replaced authenticator is the stop-and-refer case by design. Gate: doc — the published records surface; impl — record struct + store + path fn + wire kind + gate/emit arms; unit — roundtrip persistence, insert-if-absent join (replay no-op, collision-drop-keeps-existing counted as anomaly), gate verdict arms (admitted / non-member-subnet dropped / untrusted-origin dropped), husk-loads-empty, node half is the 8-hex short form never a hostname. int at gate: a record enrolled on one member node readable on another.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766311Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766392Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766474Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766597Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766678Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766755Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766837Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7766922Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767007Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767092Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767300Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767385Z               "line": 344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767457Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767539Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767699Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767782Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767868Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7767943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768068Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768153Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768421Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768506Z               "line": 1588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768765Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7768892Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769241Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769327Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769594Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769675Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7769897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770007Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770094Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770351Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770432Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770694Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770775Z               "line": 62
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7770928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771042Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771123Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771386Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771476Z               "line": 146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771738Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771824Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771900Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7771978Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772062Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772142Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772228Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772361Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772555Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772637Z               "line": 1820
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772903Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7772984Z               "line": 2082
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773061Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773146Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773218Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773347Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773436Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773519Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773709Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773795Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773871Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7773947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774056Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774138Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774400Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774478Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774739Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774816Z               "line": 343
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7774976Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775080Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775167Z               "line": 366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775242Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775322Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775479Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775566Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775641Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775717Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775823Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775904Z               "line": 413
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7775979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776161Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776238Z               "line": 436
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776533Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776614Z               "line": 576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776700Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776791Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776866Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7776943Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7777020Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7777102Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7777200Z       "id": "REQ-SEAL-ENROLL-SHORTCUT-E",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781278Z       "title": "`E` ON THE TOTP OVERLAY IS ENROLL-AND-SUBMIT, OFFERED IFF (node x subnet) IS NOT ENROLLED (#217 anchor 5): the daemon stamps the offer on the ceremony open (an additive field — an enrolled pair's overlay NEVER shows E, and an N-1 client ignores the field and simply shows the plain overlay); pressing E runs the client-side seam's ensure-keypair (Hello's own prompt) and ships ONE presented code together with the enrollment FACTS (pubkey hex + backend kind) on the upstream code record's additive fields. ON ADMIT THE DAEMON PERFORMS BOTH-OR-NEITHER UNDER THE ONE APPLY LOCK (doyle wire ruling 3): the enrollment record writes AND the pending seal mints, or NEITHER — a failed enrollment mints nothing and a failed mint enrolls nothing, both halves unit-pinned — so one human code entry yields a consistent pair and never a half-state. Every TOTP clause carries unchanged: throttle-before-verify on the same ledger, wrong code counts and re-prompts, Esc cancels everything spending nothing. An old daemon never offers E, so its clients never send enrollment facts it cannot read. Gate: doc — the published page's E clause; impl — the offer stamp + the E client arm + the both-or-neither admit arm; unit — offer iff not enrolled, enrolled overlays never offered, admitted E writes exactly one enrollment and one seal under the lock, the failed-enrollment arm mints nothing, the failed-mint arm enrolls nothing, cancel spends nothing.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781378Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781463Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781546Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781668Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781749Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781831Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781912Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7781997Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782078Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782284Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782365Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782446Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782518Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782598Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782678Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782759Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782840Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7782916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783024Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783105Z               "line": 4498
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783192Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783268Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783377Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783459Z               "line": 7287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783720Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783855Z               "line": 7469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7783930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784112Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784197Z               "line": 1752
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784355Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784451Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784531Z               "line": 3011
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784780Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784913Z               "line": 3046
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7784994Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785076Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785151Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785227Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785313Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785395Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785471Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785550Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785635Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785717Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785910Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7785997Z               "line": 15558
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786068Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786253Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786330Z               "line": 15684
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786596Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786674Z               "line": 15886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7786936Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787018Z               "line": 3383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787093Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787178Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787250Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787375Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787450Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787527Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7787623Z       "id": "REQ-SEAL-ENROLL-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7797682Z       "title": "`spt seal enroll-authenticator [--subnet <name>]` ENROLLS THIS NODE'S PLATFORM AUTHENTICATOR INTO A SUBNET'S SECURITY MATERIAL, GATED BY THE SHIPPED TOTP CEREMONY (#217 anchor 1). ORDERED SEAM CHECKS, EACH REFUSING BY NAME BEFORE ANY CEREMONY OPENS (no human should present a code for an enrollment that cannot complete): (1) the binding subnet resolves by the house rule's applicable arms — explicit `--subnet` wins but a subnet this endpoint is not a member of refuses fast by name, otherwise the endpoint's anchor subnet, and no anchor refuses by name (REQ-SEAL-SUBNET-BINDING-DEFAULT arms 1-2; enrollment is node x subnet — no destination, so the shared-subnet arm does not exist here); (2) seam availability (REQ-SEAL-AUTH-BACKEND-SEAM) — including the Linux named stub — refuses verbatim; (3) ALREADY-ENROLLED (the node x subnet key holds a record) refuses by name, NAMING THE EXISTING RECORD'S PUBKEY AND ITS IMMUTABILITY: records are immutable v1 (intake ruling 6 transported), re-enrollment/revocation is STOP-AND-REFER, never a lane decision, so the verb neither overwrites nor duplicates. THEN ensure-keypair runs (the backend's own user-verification prompt), and the verb requests the daemon's TOTP ceremony carrying FACTS — the pubkey hex and backend kind — plus, at the code arm, the PRESENTED CODE, never a verdict (write-through-daemon verbatim: verification, throttle and the record write all daemon-side). The ceremony rides the SHIPPED machinery as an additive purpose (the attach-stream additive-variant discipline of REQ-SEAL-CEREMONY-RC-CLIENT), and the overlay shows an ENROLLMENT BRIEF composed DAEMON-SIDE from the request's facts — naming the enrolling node's key short hex, the binding subnet, the backend kind and the enrolled pubkey's SHA-256 FINGERPRINT (64 hex via the one hash helper; the FULL pubkey hex lives in the record — an RSA public blob is ~588 hex chars (294-byte DER SPKI), measured, which no human can compare, and a fingerprint is what consent can actually read) — shown verbatim as ceremony content (the content-shown discipline: the human consents to THIS key for THIS node on THIS subnet), with the brief's own text carrying the ENROLL framing so even a chrome that says seal cannot misrepresent what is consented. THE THROTTLE IS THE EXISTING trust/seal-ceremony-gate.json LEDGER — enrollment mints NO new ledger (the denial-of-governance separation holds; a ruling is the only path to one) — throttle-before-verify, member-or-admin of the binding subnet, both seeds combined bitwise, cancel spends nothing: all inherited by riding the one ceremony-code path. ON ADMIT the daemon writes exactly one enrollment record (REQ-SEAL-ENROLL-RECORD-SUBNET-MATERIAL) under the same apply serialization as seal records and replies the record's fields; the verb prints them line-oriented. EXIT 0 IFF ENROLLED; every non-admit outcome (no-surface, throttled, refused, cancelled, ledger-unwritable) is nonzero carrying the daemon's own token and detail VERBATIM — the CLI never re-words a refusal it did not decide. Gate: doc — the published verb page; impl — the SealVerb variant + verb fn, the daemon enrollment-ceremony purpose arm + record write; unit — subnet-resolution arms (override wins, non-member override refuses by name, anchor default, no-anchor refuses), seam-unavailable refuses before ceremony, already-enrolled refuses before ceremony naming the record, admit writes exactly one record and exits 0, each non-admit outcome nonzero with the daemon detail verbatim, the daemon-composed brief carries node short hex + subnet + backend kind + pubkey hex and the ENROLL framing.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7797883Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7797962Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798044Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798125Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798202Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798329Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798406Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798493Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798578Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798782Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7798863Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799032Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799109Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799190Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799266Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799356Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799486Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799676Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799757Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799838Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7799915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800028Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800116Z               "line": 5345
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800191Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800377Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800459Z               "line": 6007
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800663Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800769Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800854Z               "line": 6954
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7800939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801126Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801211Z               "line": 7015
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801483Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801639Z               "line": 7617
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801902Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7801987Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802244Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802327Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802636Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802717Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7802971Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803052Z               "line": 1354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803305Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803390Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803648Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803732Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7803984Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804064Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804144Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804220Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804297Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804374Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804463Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804544Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804622Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804707Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804797Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804884Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7804965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805131Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805213Z               "line": 15576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805470Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805556Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805632Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805708Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805784Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805862Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7805938Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7806018Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7806148Z       "id": "REQ-SEAL-ENVELOPE-ATTR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7810991Z       "title": "A SEALED MESSAGE CARRIES ITS SEAL TOKEN AS A SENDER-AUTHORED ENVELOPE ATTRIBUTE seal=\"<token>\" riding like `json=` (collision-proof by construction: the token lives inside ONE attribute value and can never forge `from`/`type`; its alphabet, REQ-SEAL-TOKEN-FORMAT's 30-glyph set, is a strict subset of the reemittable attr charset so the attr can never smuggle envelope structure). SENDER-AUTHORED IS A DIFFERENT CLASS FROM RECEIVER-COMPOSED, AND THE BOUNDARY IS LOAD-BEARING: the ingress strip (REQ-TRUST-WARNING-ENVELOPE's RECEIVER_COMPOSED_ATTRS class - `trust-warning`, `mnemonics-json`, CONTEXT.md:960) inertizes attributes the RECEIVER composes about a delivery; the seal attr is the envelope author's OWN field (like `type`, `from`, a notify's id) and MUST ride end-to-end intact through that strip - and MUST NEVER be added to the strip class, which would delete the sender's own evidence citation at every ingress. THE ATTR SURFACES IN THE RECEIVER'S EVENT ENVELOPE: the receiving agent sees seal=\"...\" on the delivered <EVENT> and cites or verifies from there. KH 7.5 TRANSPORTED, STATED AS A PROHIBITION ON EVERY FUTURE CONSUMER: the attribute is a CITATION, never an authorization subject - no consumer may branch authority on its presence or value; only a BOUND `spt api seal verify` verdict over the delivered body is evidence, and a forged attr is harmless by construction because verify recomputes the hash. Gate: doc - the CONTEXT.md sealed-message clause's attribute sentence; impl - the attr const and its sender-side authoring at the compose seam; unit - a sealed envelope survives strip_receiver_composed_attrs with the attr intact while the receiver-composed class is still stripped beside it, the attr renders in the delivered EVENT envelope and round-trips the envelope codec, the attr value is the bare token; int - a sealed send delivered CROSS-NODE arrives with the attr intact and its body verifying BOUND against the replicated record on the receiving node (doyle W3 dispatch point 5b).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811170Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811252Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811334Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811409Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811490Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811567Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811654Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811728Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811819Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811897Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7811978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812066Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812151Z               "line": 1158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812233Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812424Z               "path": "docs-site/src/messaging/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812504Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812586Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812658Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812734Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812823Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812902Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7812987Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813173Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813259Z               "line": 263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813344Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813569Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813654Z               "line": 11152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813730Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813807Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813884Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7813959Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814040Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814126Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814331Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814458Z               "line": 1857
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814535Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814615Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814690Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814771Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814852Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7814934Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815009Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815114Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815196Z               "line": 268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815458Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815539Z               "line": 909
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815695Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815792Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815873Z               "line": 28718
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7815959Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7816035Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7816112Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7816187Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7816264Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7816339Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7816441Z       "id": "REQ-SEAL-FIDO2-RC-CLIENT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821378Z       "title": "THE FIDO2 CEREMONY RIDES THE EXISTING ATTACH RECORDS AS ADDITIVE FIELDS, NOT NEW VARIANTS (doyle wire ruling 3, 2026-08-24 — the measured N-1 posture supersedes the variants wording): the ceremony OPEN gains optional offer/payload fields and the upstream CODE record gains optional proof fields, so an N-1 CONTROLLER IGNORES THE UNKNOWN FIELDS AND DEGRADES TO THE PLAIN TOTP OVERLAY — the universal fallback keeps working, nothing hangs, no undecodable record, no refusal even needed; the existing default-false seal_ceremony capability bit keeps gating the ceremony surface itself, and no new bit is minted for the offers. SIGNING IS CLIENT-SIDE WHERE THE HUMAN IS (the rc-paste precedent): the rc client calls the authenticator seam's sign-payload over the daemon-composed tuple bytes and ships the SIGNATURE up the attach wire — a proof, never a verdict; verification, the ledger, and the mint stay daemon-side (an agent on the box can speak the broker's IPC directly, so a client-side decision would be decorative). LOCAL AND REMOTE CONTROLLERS ARE ONE CODE PATH — nothing about remote is special except transport latency, and a remote controller whose node lacks the enrolled key degrades to TOTP through the same seam-refusal fallback every client uses. An old DAEMON never emits the offers, so a new client never sends an unexpected proof to it. Gate: doc — the published page's remote-controller sentence; impl — the additive open/code fields + the client sign arm + the overlay fallback; unit — the open and code records round-trip with and without the new fields (absent fields decode as the plain TOTP shapes — the N-1 arm), the upstream proof record carries signature bytes and has no verdict field, and the client's seam-refusal path folds to TOTP entry.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821588Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821664Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821754Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821832Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821908Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7821992Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822074Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822161Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822241Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822490Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822575Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822650Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822725Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822807Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822884Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7822969Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823050Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823127Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823237Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823369Z               "line": 676
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823637Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823718Z               "line": 961
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823795Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7823980Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824062Z               "line": 719
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824143Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824314Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824396Z               "line": 1663
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824472Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824648Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824735Z               "line": 3252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824815Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7824976Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825052Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825137Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825222Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825297Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825374Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825465Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825583Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825780Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825912Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7825989Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826147Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826232Z               "line": 3349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826334Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826428Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826499Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826614Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826686Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826762Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7826857Z       "id": "REQ-SEAL-FIDO2-SIG-VERIFY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7834622Z       "title": "`spt api seal verify` EXTENDS TO THE SIGNATURE FOR fido2 RECORDS, ON ANY MEMBER NODE (#217 anchor 6): when the record's ceremony_kind is `fido2`, BOUND requires the content hash to match AND the signature to verify — the verifier RECOMPOSES the canonical tuple FROM THE RECORD'S OWN STORED FIELD SPELLINGS VERBATIM (the content_hash hex as stored, the fully-qualified minter as stored, minted_at as stored — no re-derivation, no respelling; ANY divergence is NOT-BOUND, never a second canonical form: doyle's exactness rider) and checks signature_hex against the pubkey looked up STRICTLY BY (node, subnet) — the record minter's node half x its binding subnet — in the replicated enrollment store, REFUSING BY NAME when no enrollment record exists there (no fallback to some record with this pubkey elsewhere: the replication scope IS the verification audience, the SEAL_NO_SHARED_SUBNET rationale — doyle ruling 3, 2026-08-24, unit-pinned). ALGORITHM DISPATCH RIDES THE ENROLLMENT RECORD'S backend_kind TOKEN: `hello-kcm-rs256` = RSASSA-PKCS1-v1_5 over SHA-256 of the tuple bytes, the pubkey parsed from the stored DER SubjectPublicKeyInfo, verified by the pure-Rust rsa crate — VERIFY-ONLY IN CORE (signature creation stays behind the authenticator seam; RUSTSEC-2023-0071 is private-key-op timing and cannot reach a verify-only consumer — the dep comment states exactly that with the advisory id, per doyle ruling 1) — and a FUTURE BACKEND ADDS A TOKEN AND A VERIFIER ARM, NEVER A RECORD MIGRATION; an unknown token refuses by name. `hello-rs256` IS RETIRED UNMINTED (#222 ruling, 2026-08-25) and gets NO verifier arm: its mint path was structurally unreachable on every box, so no record can carry it by construction (census: trust/seals.json holds totp records only, no enrollment record exists anywhere) — a record claiming that token is fabricated, and the unknown-token refusal is the honest answer to it. A fido2 record with a MISSING signature is NOT-BOUND (a self-declared fido2 mint that cannot be checked is not evidence); non-fido2 records verify exactly as before — the signature path is additive. `describe` renders the ceremony kind and the SIGNATURE PRESENCE (the fingerprint discipline anywhere a human reads key material). Exit contract unchanged: 0 IFF BOUND. Gate: doc — the published verify clause; impl — the signature arm + tuple recomposition + strict lookup + rsa verify + describe rendering; unit — valid signature BOUND, wrong signature NOT-BOUND, tuple recomposition pinned to stored spellings (a respelled minted_at diverges to NOT-BOUND), missing-enrollment refusal by name distinct from NOT-BOUND, unknown backend token refusal, fido2-with-missing-signature NOT-BOUND, non-fido2 records unaffected.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7834746Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838336Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838436Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838522Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838602Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838691Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838772Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7838869Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839063Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839274Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839446Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839531Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839612Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839692Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839779Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839865Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7839955Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840151Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840236Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840447Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840555Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840646Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840898Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7840983Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841244Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841334Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841411Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841488Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841568Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841649Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841736Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841822Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841901Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7841978Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842065Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842151Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842341Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842426Z               "line": 493
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842503Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842690Z               "path": "crates/spt-store/src/enroll.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842769Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7842990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843094Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843179Z               "line": 656
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843257Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843334Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843408Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843490Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843567Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843644Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7843751Z       "id": "REQ-SEAL-MINT-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848311Z       "title": "`spt seal mint` IS THE DECISION-SEAL ENTRY POINT: the text to seal arrives on STDIN, the verb requests the daemon's TOTP ceremony over exactly those bytes through the ONE production mint seam (Brain::seal_ceremony -> KIND_SEAL_CEREMONY; the CLI process never verifies, never ledgers, never mints - REQ-SEAL-CEREMONY-TOTP's write-through-daemon posture), and on admit prints the MINTED TOKEN to stdout as the whole result. STDIN IS TRIMMED EXACTLY AS `spt send` TRIMS ITS BODY (the REQ-HAZARD-ENVELOPE-CR-LINESAFE parity: a Windows `echo |` pipes a trailing CRLF, and a seal minted over an invisible trailing newline is a citation whose verify mysteriously reads NOT-BOUND) - so the buffer `spt seal mint` seals for a given text is byte-identical to the buffer a sealed send delivers for that same text; EMPTY content after the trim refuses fast CLI-side by name, before any ceremony opens (a ceremony over nothing asks the human to consent to nothing). REFUSALS RIDE THROUGH VERBATIM: no-surface, content cap, non-UTF-8, throttle, wrong-code and cancellation each surface the daemon's own outcome token and detail sentence - the CLI never re-words a refusal it did not decide (the W2 reply contract: every field is the broker's answer and none of it is the client's to summarize). The binding subnet resolves through REQ-SEAL-SUBNET-BINDING-DEFAULT (minter endpoint's anchor; `--subnet` overrides). EXIT CONTRACT, mirroring verify's 0-iff-BOUND: exit 0 IF AND ONLY IF the ceremony ADMITTED and the token printed; refused / throttled / cancelled / transport-error are each nonzero with the named reason on stderr. Gate: doc - the CONTEXT.md wax-seal entry's mint-verb sentence; impl - the CLI verb and its outcome mapping; unit - admit prints the bare token and exits 0, each non-admit outcome exits nonzero carrying the daemon's own detail verbatim, stdin trim parity with send, empty-content fast refusal by name.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848455Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848539Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848649Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848727Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848808Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7848897Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849059Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849148Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849228Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849399Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849486Z               "line": 1155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849767Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849848Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7849928Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850010Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850091Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850172Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850252Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850335Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850411Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850520Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850601Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850858Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7850940Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851017Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851192Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851327Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851592Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851673Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851752Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851823Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851904Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7851976Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852076Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852161Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852238Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852367Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852452Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852538Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852715Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852795Z               "line": 559
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852877Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7852949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853053Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853134Z               "line": 588
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853211Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853287Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853359Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853439Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853517Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853598Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7853702Z       "id": "REQ-SEAL-NO-CEREMONY-SURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857384Z       "title": "A MINT REQUESTED WITH NO CEREMONY SURFACE REFUSES FAST AND BY NAME: no live session for the minter endpoint, no attached CONTROLLER on that session, or a controller that did not declare the seal-ceremony capability (an N-1 rc client) each refuse `SEAL_NO_CEREMONY_SURFACE` with a notice telling the agent to have the operator attach and retry (operator ruling 4, 2026-08-23). NO pending-mint state and NO timeout queue: the refusal is immediate and nothing is parked awaiting a controller. The controller-attached predicate reads the BROKER'S LIVE SEAT TABLE under the log lock (has_controller), NEVER the perch info stamp — the stamp lags the seat decision by documented hazard (KH 7.15 / info.rs terminal_normalize: a dead session's controller stamp survives until a daemon-side clear catches up, and SessionInfo's controller_by None is ambiguous between empty and local), so a stamp reader would run ceremonies against a corpse or refuse against a live seat. Gate: doc — the CONTEXT.md ceremony clause's no-surface sentence; impl — the seat-table check and the named refusal; unit — no-session refuses, session-without-controller refuses, non-capable controller refuses, each by name; an attached capable controller proceeds; and the predicate is the broker seat table, pinned so a perch-stamp rewrite cannot pass.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857574Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857655Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857737Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857822Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857903Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7857984Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858066Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858151Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858236Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858313Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858409Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858490Z               "line": 1150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858776Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7858857Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859029Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859114Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859190Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859272Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859358Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859447Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859642Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859722Z               "line": 928
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7859936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860041Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860121Z               "line": 821
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860389Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860469Z               "line": 1581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860536Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860770Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860851Z               "line": 1593
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7860928Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861147Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861233Z               "line": 2967
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861309Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861495Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861577Z               "line": 6741
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861835Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861920Z               "line": 6837
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7861995Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862180Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862261Z               "line": 6867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862340Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862526Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862608Z               "line": 8602
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7862917Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863002Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863261Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863341Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863418Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863604Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863685Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7863994Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864077Z               "line": 2521
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864158Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864237Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864314Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864396Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864482Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864581Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864658Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864740Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864820Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7864924Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865009Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865120Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865205Z               "line": 15321
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865281Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865472Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865562Z               "line": 15406
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865633Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865825Z               "path": "crates/spt-net/src/net/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865915Z               "line": 585
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7865992Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7866068Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7866149Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7866234Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7866307Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7866383Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7866535Z       "id": "REQ-SEAL-RECORD",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7871851Z       "title": "A WAX SEAL IS A DURABLE RECORD BINDING CONTENT TO A MINTER: `{token, content_hash, minter, minted_at, ceremony_kind}` — the token (REQ-SEAL-TOKEN-FORMAT), the lowercase-hex SHA-256 over the EXACT BYTES presented at the ceremony (the artifact-digest convention, `sha256_hex` house style: no prefix, no truncation), the FULLY-QUALIFIED minter address `subnet:endpoint@node` (the subnet component IS the binding subnet — the record carries no separate subnet field, and the store derives scoping by parsing the minter through the spt-proto address grammar, one truth not two), the mint timestamp in epoch ms, and the ceremony kind as an open string (`totp` arrives W2; FIDO2 is fast-follow; test-seam mints name themselves honestly and never wear a ceremony they did not run). NO EXPIRY AND NO REVOCATION IN V1 (operator ruling 6, 2026-08-23): the timestamp is in the record and a reversed decision is a NEWER seal, so records are IMMUTABLE ONCE MINTED — which is what makes the replicated store a join-semilattice for free (REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED). A seal is EVIDENCE, never an authorization subject by itself (the KNOWN-HAZARDS 7.5 discipline transported): nothing grants on token possession; only a BOUND verify verdict (REQ-SEAL-VERIFY-CONTENT-BOUND) is citable. W1 lands the mint machinery behind an INTERNAL SEAM ONLY — no public mint verb, no ceremony; W2 wires the TOTP ceremony to that seam. The seam refuses EMPTY content: a seal over zero bytes proves nothing and the verify surface treats empty stdin as absent content, so admitting the mint would create a record whose verification is indistinguishable from the no-content refusal. Gate: doc — the ratified CONTEXT.md wax-seal entry carries the record shape; impl — the record struct + mint seam in spt-store; unit — roundtrip persistence, minter-parse-derived binding subnet, empty-content mint refusal.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872002Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872085Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872170Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872254Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872336Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872414Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872495Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872574Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872654Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872821Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7872952Z               "line": 1142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873039Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873125Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873234Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873314Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873402Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873562Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873668Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873759Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7873920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874026Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874106Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874365Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874445Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874521Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874699Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874783Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874859Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7874937Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875009Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875088Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875174Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875257Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875338Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875413Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875554Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875817Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875903Z               "line": 397
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7875980Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876165Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876242Z               "line": 419
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876323Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876395Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876508Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876586Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876666Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876742Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7876832Z       "id": "REQ-SEAL-SEND-SEALED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7885377Z       "title": "`spt send <id> --seal [--subnet <name>]` IS SEALED DISPATCH: one verb that runs the TOTP ceremony over the EXACT BYTES THAT WILL BE DELIVERED and, on admit, delivers the message carrying the minted token as its sender-authored envelope attribute (REQ-SEAL-ENVELOPE-ATTR). ONE BUFFER END TO END: the body read once at the verb's head (trimmed exactly as an unsealed send trims) is THE buffer the overlay shows, THE buffer the mint hashes, and THE buffer delivered - never re-read and never re-encoded between ceremony and delivery, so the receiver's `spt api seal verify` over the delivered body reads BOUND by construction; the unit pins ceremony-buffer == delivered-buffer identity. THE OVERLAY NAMES THE DESTINATION ID as well as the binding subnet (design of record, doyle W3 dispatch point 2 - the W2 overlay named only the subnet, so this is an overlay change too: the destination line renders when present, and the human consents to sealing THIS text TO THIS endpoint UNDER THIS subnet). A NON-ADMITTED CEREMONY SENDS NOTHING: refused, throttled and cancelled each surface the daemon's outcome verbatim and the message is neither delivered nor spooled (REQ-SEAL-CEREMONY-ESC-CANCEL's pending-sealed-send-DROPPED arm, which this verb finally gives a consumer). The binding subnet resolves through REQ-SEAL-SUBNET-BINDING-DEFAULT against the destination. Gate: doc - the CONTEXT.md sealed-message clause; impl - the --seal arm in cmd_send (ceremony before delivery, attr authoring at the compose seam); unit - ceremony-buffer == delivered-buffer identity, the overlay brief carries the destination id, a non-admit outcome delivers and spools nothing, an admit delivers carrying the minted token. #223 (FIELD-SEAL W2): THE SENDER'S ANSWER CARRIES THE MINTED TOKEN — `SENT:<target> seal=<token>` — because before this the ONLY sender-visible copy of the token was a ceremony-overlay line stranded in the sender's PTY, which no script or agent can consume (field-measured, v0.62.0 first sealed exchange). THE TOKEN RIDES EVERY OUTCOME LINE A SEALED SEND CAN ANSWER WITH — SENT, QUEUED, QUEUED(idle-only), DEFERRED (doyle ruling, 2026-08-25) — because the token is evidence of the MINT, not of delivery: the ceremony runs BEFORE any delivery arm by construction, so a send that only spooled still minted a record its sender may need to cite. The suffix appears IFF A MINT PRECEDED THE ANSWER: an unsealed send's answer is byte-identical to before, and refusal/non-admit paths return before any answer line exists, so no path can print an empty `seal=`. AND THE ADMITTED CEREMONY PRINTS NOTHING TO THE PTY: the rc takes the overlay down and emits NO notice on admit, since the token now reaches the sender on the answer line and that notice was the residue; every NON-admit outcome still renders the daemon's sentence verbatim, because nothing else surfaces a failure or a cancel. The remaining cosmetic half — the blanked overlay rows the session repaints only over time — is REQ-BROKER-SCREEN-GRID's scope, not this one's. Gate adds: unit — the answer composer over all four outcome labels, and the unsealed answer unchanged.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7885579Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7885653Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7885783Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7885865Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7885945Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886010Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886095Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886177Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886264Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886420Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886506Z               "line": 1156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7886735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887025Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887107Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887184Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887259Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887335Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887446Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887550Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887856Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7887937Z               "line": 11197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888008Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888227Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888312Z               "line": 11512
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888388Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888465Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888558Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888672Z               "line": 3302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7888840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889059Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889140Z               "line": 413
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889291Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889483Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889559Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889645Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889731Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889812Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889897Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7889979Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890060Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890236Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890318Z               "line": 28690
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890623Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890709Z               "line": 28713
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7890957Z               "path": "crates/spt/src/rc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891038Z               "line": 3462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891308Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891393Z               "line": 570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891468Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891544Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891621Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891697Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891773Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891849Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7891979Z       "id": "REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900296Z       "title": "SEAL RECORDS LIVE IN SUBNET SECURITY MATERIAL AND REPLICATE SUBNET-SCOPED, so `spt api seal verify|describe` answers on ANY member node of the binding subnet. The store is `identity/trust/seals.json` beside the grant store and whitelist (one JSON document, atomic write, the grants.rs template; a new path fn in perch.rs per REQ-HAZARD-SINGLE-PATH-SOURCE). PREMISE CORRECTION, MEASURED AT INTAKE (0fcbc086): the grant store and whitelist are NODE-LOCAL AND DO NOT REPLICATE — their 'propagation seam' is aspirational prose with no wire family behind it — so 'same plumbing' is honored by riding the ONE shipped subnet-scoped replication pattern, the notif store's four-part shape: (1) MONOTONE JOIN — the apply point is insert-if-absent by token, so records commute, a replayed feed no-ops, and immutability (REQ-SEAL-RECORD) makes the store a join-semilattice with no delta bookkeeping; a same-token-different-content arrival is DROPPED WITH THE EXISTING RECORD KEPT and counted as an anomaly, never merged, because tokens are minted once and a collision is either astronomical or adversarial, and the adversarial copy is already harmless (verify recomputes the hash). (2) KIND-TAGGED WIRE RECORD — NDJSON with kind = 'seal' (the knockmsg N-1 lesson: an untagged record lands in an old daemon's WanMessage arm as a chat message; a tagged one drops cleanly). (3) STREAMFAMILY REGISTRATION — a `Seal` family arm in classify_first_line + serve dispatch, widening the census array the bijection test asserts. (4) APPLY GATE + FULL-RE-PRESENTATION EMIT + PUMP WORKER — the gate admits a row only when THIS node is a member of the record's binding subnet AND the handshake-proven origin node is on that subnet's roster (fail-closed: non-member subnet drops, untrusted origin drops — the REQ-NOTIF-1/REQ-MESH-5 posture verbatim); the emitter re-presents every record of the subnet (duplicates are free under the join); the pump worker fans per member subnet x roster peer through the existing fan_targets discipline. DEGRADE POLARITY IS OPEN-TO-EMPTY (the grants polarity, chosen deliberately): a husk or corrupt store loads empty, so verify answers unknown-token — the store failing can only LOSE the ability to prove, never mint false evidence, which is the safe direction for an evidence primitive. Binding-subnet scoping is derived from the minter address at the ONE parse helper on the record — the emitter and the gate share it, so the scope a record replicates under and the scope it is admitted under cannot diverge. Gate: doc — the CONTEXT.md entry's subnet-scoped replication clause; impl — store + wire record + family arm + gate/emit/worker; unit — join idempotence + collision-drop, gate's verdict arms (admitted, non-member-subnet dropped, untrusted-origin dropped, replay no-op), emit/decode roundtrip, husk-loads-empty. int at gate: a record minted on one member node answering describe on another.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900457Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900539Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900644Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900739Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900819Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7900964Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901049Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901139Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901227Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901311Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901484Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901570Z               "line": 1144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901650Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901725Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901806Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901887Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7901971Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902051Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902253Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902333Z               "line": 174
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902413Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902491Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902605Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902691Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7902963Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903057Z               "line": 1142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903135Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903211Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903325Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903406Z               "line": 1561
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903730Z               "path": "crates/spt-daemon/src/pump/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903817Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7903978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904089Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904170Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904249Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904330Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904473Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904557Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904819Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904909Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7904985Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905177Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905271Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905539Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905614Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905692Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905877Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7905958Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906220Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906307Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906458Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906597Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906675Z               "line": 201
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7906937Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907018Z               "line": 232
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907102Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907183Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907259Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907336Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907426Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907540Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907732Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907812Z               "line": 1763
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907888Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7907971Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908046Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908121Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908213Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908290Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908479Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908561Z               "line": 2809
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908823Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7908900Z               "line": 176
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909249Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909332Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909413Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909599Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909683Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909835Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7909946Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910083Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910355Z               "path": "crates/spt-daemon/src/sealsync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910435Z               "line": 408
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910698Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910784Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7910946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911099Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911180Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911453Z               "path": "crates/spt-net/src/net/sealmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911533Z               "line": 179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911796Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911876Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7911957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912135Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912219Z               "line": 505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912471Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912559Z               "line": 518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912635Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912712Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912789Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912865Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7912940Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7913017Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7913123Z       "id": "REQ-SEAL-SUBNET-BINDING-DEFAULT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917109Z       "title": "THE BINDING SUBNET OF A SEAL RESOLVES BY ONE DETERMINISTIC RULE (operator ruling 5 + Q8, doyle W3 dispatch point 3): (1) an explicit `--subnet <name>` OVERRIDES everything below - the caller named the key the human will present - but a name the MINTER endpoint is not a member of refuses fast by name (the ceremony could never verify a member-or-admin code of a subnet the minter has no seeds for); (2) otherwise the seal binds to the MINTER ENDPOINT'S ANCHOR SUBNET; (3) on sealed dispatch where the DESTINATION does not share the minter's anchor, the LEXICOGRAPHICALLY-FIRST subnet shared by both endpoints - deterministic, so one pair of endpoints always binds one subnet and the overlay's named subnet is reproducible run to run; (4) NO SHARED SUBNET refuses by name (`SEAL_NO_SHARED_SUBNET`) - NEVER fall back to a subnet the receiver cannot verify in, because the replication scope IS the verification audience: a seal whose binding subnet excludes the destination's nodes is a citation the recipient structurally cannot check (REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED). The resolver is a PURE FUNCTION over (override, minter anchor, minter's subnet set, destination's subnet set) so the whole rule is one unit table; the overlay always names the chosen subnet (W2 already renders it). Gate: doc - the CONTEXT.md binding-subnet clause; impl - the pure resolver and its callers (mint verb, sealed dispatch); unit - the rule table: anchor default, shared-lex-first when the destination lacks the anchor, override beats both, override-outside-minter-membership refuses by name, no-shared refuses SEAL_NO_SHARED_SUBNET, and input-order independence of the shared-set pick.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917254Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917329Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917415Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917487Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917569Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917648Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917724Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917809Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7917896Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918005Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918095Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918181Z               "line": 1157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918258Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918448Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918531Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918611Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918686Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918763Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7918845Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919049Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919136Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919321Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919407Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919664Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919751Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919832Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919907Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7919983Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920059Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920150Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920229Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920309Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920390Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920477Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920562Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920739Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920820Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7920972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921069Z               "path": "crates/spt/src/sealverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921206Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921277Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921354Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921435Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921516Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921592Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921673Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7921769Z       "id": "REQ-SEAL-TOKEN-FORMAT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926072Z       "title": "A SEAL TOKEN IS 8-10 CHARS FROM A NARROW UNAMBIGUOUS LOWERCASE CHARSET, minted by rejection-sampling the OsRng-backed identity source (the knock-code precedent — one randomness source, one audit point; no `rand` crate edge). The charset is the 30-glyph set `23456789abcdefghjkmnpqrstvwxyz`: digits drop `0`/`1` (collide with `o`/`l`/`i`), letters drop `i`/`l`/`o` (same collisions) and `u` (the Crockford accidental-obscenity drop) — REQ-HAZARD-ID-CHARSET's discipline applied to a NEW, NARROWER alphabet rather than reusing the endpoint-id set, because a seal token is read aloud and retyped by humans citing a decision, and `:`/`@` stay permanently reserved address delimiters so a token can never smuggle address structure. MINTS EMIT 10 CHARS (~49 bits over the 30-set — ample for a citation handle whose forgery is harmless by construction, since verify recomputes the content hash and possession grants nothing); VALIDATION ADMITS 8-10 so the format has headroom without a flag day (the sptkc_ versioning lesson: widen by admitting, never by breaking). Well-formedness lives in the STORE beside the record (the knock `is_well_formed` precedent) and every verb validates the token at its seam before touching the store — a malformed token is a refusal, never a lookup miss, so the two cannot be conflated by a caller. Gate: doc — the CONTEXT.md entry's 8-10-char clause; impl — charset const + validator + mint sampler in spt-store; unit — charset membership (every minted char in-set, ambiguous glyphs refused), length bounds both edges, malformed-vs-unknown distinction at the verb seam.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926216Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926302Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926377Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926458Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926583Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926664Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926744Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926826Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926907Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7926984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927074Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927156Z               "line": 1143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927236Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927312Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927388Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927470Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927597Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927684Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927866Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7927946Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928204Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928288Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928542Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928622Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7928880Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929052Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929133Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929209Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929285Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929366Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929452Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929533Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929691Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929843Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7929924Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930105Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930186Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930267Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930448Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930534Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930609Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930691Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930761Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930888Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7930965Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7931042Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7931151Z       "id": "REQ-SEAL-VERIFY-CONTENT-BOUND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7940684Z       "title": "`spt api seal verify <token>` IS CONTENT-BOUND: the content arrives on stdin, the verb recomputes the lowercase-hex SHA-256 over the exact bytes received and compares it to the record's `content_hash`, and the verdict is BOUND or NOT-BOUND with the record's fields printed alongside — a verify that does not read content is not a verify, so BARE VERIFY WITH NO CONTENT (empty or absent stdin) REFUSES BY NAME, pointing the caller at `describe` (operator ruling 7: `SEAL_VERIFY_NO_CONTENT`, the refusal names the verb that answers the question actually asked). EXIT CONTRACT, PINNED SO A SCRIPTED CALLER CAN NEVER MISREAD A NON-VERDICT AS EVIDENCE: exit 0 IF AND ONLY IF BOUND. NOT-BOUND prints its verdict line (with the expected-vs-presented hashes) on stdout and exits nonzero; an unknown token refuses `SEAL_UNKNOWN_TOKEN` on stderr; a malformed token refuses at the format seam (REQ-SEAL-TOKEN-FORMAT) — three distinct texts, none of them exit 0, because ONLY A BOUND VERDICT IS EVIDENCE (KH 7.5: the token, and any envelope attribute carrying it, is never an authorization subject by itself; forged or wrong tokens are harmless by construction precisely because this verb recomputes the hash). The verbs are READ-ONLY and take no auth gate (the EndpointInfo precedent): the store they read replicates subnet-scoped, so membership already bounds who can answer, and a verify mutates nothing. Gate: doc — the CONTEXT.md entry's verify clause; impl — the api verb, hash recomputation at the store's one helper, the no-content and unknown-token refusals; unit — BOUND on exact bytes, NOT-BOUND on a one-byte delta, empty-stdin refusal pointing at describe, unknown-token refusal distinct from malformed-token refusal, exit-0-iff-BOUND across all five arms. #220 (operator, FIELD-SEAL W2): TWO CHANGES, NEITHER OF WHICH WEAKENS THE BINDING. (1) THE MINT'S TRIM IS MIRRORED AS A SECOND CANDIDATE: `seal mint` seals `raw.trim()` (both ends, the CRLF rationale of REQ-HAZARD-ENVELOPE-CR-LINESAFE), so presented bytes carrying a shell's trailing newline — every `echo |` on the fleet — could never bind the seal minted from that same text. Verify hashes the EXACT bytes FIRST and, ONLY ON A MISS, hashes the mint-trimmed candidate: additive by construction, so nothing that binds today stops binding, including content deliberately sealed WITH its whitespace. The trim MIRRORS THE MINT rather than the ticket's narrower 'trailing' — `str::trim` for UTF-8 content (the identical function the mint calls), ASCII whitespace for bytes the mint verb could never have produced but the store can hold. (2) THE VERDICT'S RECORD BLOCK IS THE NARROW ONE: `token`, `content_hash` and `ceremony_kind` DO NOT surface from verify — the verdict line already carries the token (`SEAL_BOUND:<token>`) and, on a mismatch, both hashes in prose, and a field repeated beside its own verdict reads as a second, weaker answer; `describe` keeps all three. Verify's minter rides VERBATIM (the human render is describe's alone). Gate adds: unit — exact bytes bind, trailing-newline/CRLF/both-ends-padded bind through the fallback, a real one-byte delta and interior-whitespace differences still NOT-BOUND, a seal minted over trailing whitespace still binds its exact bytes, the non-UTF-8 arm, and the three dropped fields pinned as an ABSENCE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7940841Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7940929Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941003Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941084Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941159Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941236Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941311Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941406Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941486Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941659Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941786Z               "line": 1145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941868Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7941945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942063Z               "path": "docs-site/src/messaging/wax-seal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942145Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942226Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942303Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942465Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942546Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942636Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942712Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942818Z               "path": "crates/spt-store/src/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942903Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7942984Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943162Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943241Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943491Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943575Z               "line": 602
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943729Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943829Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943913Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7943993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7944074Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7944174Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7947722Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7947817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7947903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948018Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948104Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948370Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948456Z               "line": 400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948537Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948609Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948732Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948809Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7948900Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949081Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949162Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949239Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949324Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949408Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949591Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949676Z               "line": 1218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7949933Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950019Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950267Z               "path": "crates/spt/src/api/seal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950352Z               "line": 569
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950433Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950511Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950591Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950667Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950744Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950821Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7950911Z       "id": "REQ-SEAM-ACTIVITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951150Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951244Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951320Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951411Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951489Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951568Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951649Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951734Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951816Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951890Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7951971Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952056Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952191Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952385Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952467Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952724Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952810Z               "line": 420
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7952972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953083Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953158Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953239Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953315Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953392Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953472Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953558Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953639Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953722Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953801Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953883Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7953969Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954149Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954236Z               "line": 1400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954384Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954492Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954630Z               "line": 1423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954785Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954884Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7954966Z               "line": 1432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955043Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955119Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955195Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955271Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955344Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955420Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955519Z       "id": "REQ-SEAM-CAPABILITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955701Z       "title": "Hostable endpoint-types capability declaration",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955791Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955867Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7955945Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956025Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956106Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956192Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956274Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956359Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956435Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956516Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956603Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956688Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956880Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7956960Z               "line": 1010
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957035Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957116Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957192Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957273Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957362Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957451Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957524Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957606Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957771Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957848Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7957996Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958081Z               "line": 2138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958158Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958234Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958311Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958395Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958473Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958549Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958639Z       "id": "REQ-SEAM-HISTORY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958807Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7958897Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959092Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959174Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959254Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959335Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959412Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959494Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959578Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959664Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959742Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959818Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959907Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7959992Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960184Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960264Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960340Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960522Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960602Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960679Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960756Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960832Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960913Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7960998Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961080Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961265Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961347Z               "line": 245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961433Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961508Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961585Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961724Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961809Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961890Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7961966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962068Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962147Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962399Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962483Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962802Z               "path": "crates/spt-live/src/echo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962893Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7962969Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963150Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963231Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963314Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963493Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963580Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963837Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7963928Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964081Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964180Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964267Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964342Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964519Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964602Z               "line": 297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964738Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7964921Z               "path": "crates/spt-live/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965000Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965076Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965151Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965233Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965308Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965383Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965464Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965555Z       "id": "REQ-SEAM-INJECT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965703Z       "title": "inject-input methods configurable per activity-state",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965841Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965918Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7965999Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966079Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966156Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966233Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966323Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966403Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966485Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966562Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966647Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966732Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966810Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7966914Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967000Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967262Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967343Z               "line": 617
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967420Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967497Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967581Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967656Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967747Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967838Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967917Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7967992Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968079Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968166Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968388Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968471Z               "line": 1525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968631Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968733Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968814Z               "line": 1545
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7968890Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969053Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969128Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969204Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969280Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969357Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969504Z       "id": "REQ-SEAM-POSTSPAWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969633Z       "title": "post-spawn / api bind seam with boot nonce",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969720Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969795Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969877Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7969953Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970035Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970110Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970201Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970282Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970359Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970439Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970524Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970604Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970792Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970876Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7970953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971135Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971220Z               "line": 1095
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971292Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971373Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971445Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971525Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971607Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971744Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971820Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971902Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7971989Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972068Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972145Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972246Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972327Z               "line": 2442
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972585Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972712Z               "line": 2452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972793Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972869Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7972950Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973024Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973100Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973176Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973267Z       "id": "REQ-SEAM-PSYCHE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973405Z       "title": "spawn-psyche seam (fresh + resume templates)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973496Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973578Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973659Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973739Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973810Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973893Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7973968Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974053Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974140Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974217Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974297Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974377Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974645Z               "path": "crates/spt-live/src/psyche.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974726Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7974988Z               "path": "crates/spt/src/api/live.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975069Z               "line": 12
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975384Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975471Z               "line": 840
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975551Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975631Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975711Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975793Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975882Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7975967Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976159Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976239Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976353Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976435Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976511Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976587Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976672Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976755Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7976940Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977026Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977102Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977283Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977365Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977621Z               "path": "crates/spt-live/src/pulse.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977704Z               "line": 444
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977855Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7977931Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978009Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978090Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978160Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978254Z       "id": "REQ-SEAM-RESUME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978426Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978562Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978639Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978721Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978806Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7978886Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979045Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979126Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979210Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979293Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979445Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979530Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979665Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979740Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979821Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979907Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7979989Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980064Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980141Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980217Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980294Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980389Z       "id": "REQ-SEAM-SPAWN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980484Z       "title": "spawn-session seam",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980576Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980652Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980736Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980813Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980891Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7980971Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981055Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981141Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981218Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981294Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981460Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981657Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981736Z               "line": 20
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981813Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981905Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7981976Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982056Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982142Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982229Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982362Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982443Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982525Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982609Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982686Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982797Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982882Z               "line": 1135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7982957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983145Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983230Z               "line": 1142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983438Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983547Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983627Z               "line": 1679
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983707Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983784Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983895Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7983979Z               "line": 1685
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984128Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984237Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984318Z               "line": 1710
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984390Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984471Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984576Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984661Z               "line": 1747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984734Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984809Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984886Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7984961Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985039Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985115Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985205Z       "id": "REQ-SEAM-UPDATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985358Z       "title": "Adapter-update avenue (file-pull / delegated command)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985496Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985577Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985659Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985736Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985815Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985896Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7985979Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986060Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986224Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986305Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986391Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986627Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986714Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7986976Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987062Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987137Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987218Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987291Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987371Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987457Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987537Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987615Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987691Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987777Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987852Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7987935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988048Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988134Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988410Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988492Z               "line": 343
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988569Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988650Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988730Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988805Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7988881Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7989051Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7989228Z       "id": "REQ-SEAT-LIFETIME-BOUNDED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992354Z       "title": "REGISTRY-LIFECYCLE W1 (ADR-0040 decision 5, hertz defect B leg 5 CROSS-FAMILY per the final attribution correction — my_stream_subs releases only at conn-loop exit, NO unsubscribe verb existed, ~546/589 broker threads were unnamed parked SubscriberSeat writers on completed Registry/sync/update seats): new KIND_NET_STREAM_UNSUBSCRIBE broker verb removes the SubscriberSeat, stops AND JOINS its writer thread, drops its cursor; every dispatch worker calls it on serve completion (ALL families, success or failure); the retire sweep calls it for retired rows. N-1: unknown-kind on an older broker = tolerated send_error path, caller best-effort. Rider: spawned daemon threads NAMED (SubscriberSeat writer sub-writer-s<id> minimum, conn accept handlers) — field censuses attribute, not infer. Gate: impl — verb + worker/sweep call sites + thread naming; unit — unsubscribe removes seat/joins writer/drops cursor + idempotent + unknown-stream tolerated; int — rides REQ-HAZARD-REGISTRY-STALL seam (physical seat/thread counts plateau CROSS-FAMILY after completion); doc — ADR-0040.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992455Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992536Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992611Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992688Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992765Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992841Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7992922Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993003Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993090Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993179Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993452Z               "path": "docs/adr/0040-bounded-stream-seat-lifecycle-one-way-terminal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993531Z               "line": 72
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993608Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993743Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993818Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993898Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7993984Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994070Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994272Z               "path": "crates/spt-daemon/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994349Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994611Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994745Z               "line": 2113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7994897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995008Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995098Z               "line": 5620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995250Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995356Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995437Z               "line": 6264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995698Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995779Z               "line": 9001
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7995928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996037Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996118Z               "line": 9566
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996384Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996476Z               "line": 1292
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996553Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996742Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996822Z               "line": 1302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7996984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997130Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997211Z               "line": 219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997293Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997468Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997556Z               "line": 872
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997631Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997817Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997898Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7997975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998199Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998284Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998551Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998637Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7998895Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999066Z               "line": 1983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999327Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999418Z               "line": 2027
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999578Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999682Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999768Z               "line": 2052
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.7999926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000040Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000122Z               "line": 2199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000446Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000527Z               "line": 365
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000827Z               "path": "crates/spt-daemon/src/sync.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000908Z               "line": 356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8000984Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001062Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001137Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001213Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001347Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001433Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001513Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001643Z               "path": "crates/spt-daemon/tests/registry_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001729Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001800Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001876Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8001953Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002034Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002115Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002208Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002391Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002476Z               "line": 3263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002729Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002815Z               "line": 3305
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002890Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8002968Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003044Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003125Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003200Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003277Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003363Z       "id": "REQ-SEC-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003720Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003815Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8003897Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004026Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004106Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004178Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004260Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004336Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004420Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004501Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004700Z               "path": "docs-site/src/networking/knocking.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004785Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004861Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8004938Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005057Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005138Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005224Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005305Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005381Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005485Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005568Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005643Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005830Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005911Z               "line": 2374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8005987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006168Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006249Z               "line": 2400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006503Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006587Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006664Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006745Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006842Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8006925Z               "line": 372
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007040Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007227Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007306Z               "line": 386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007562Z               "path": "crates/spt-store/src/gate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007643Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007718Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007795Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8007891Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008009Z               "line": 15868
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008081Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008158Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008239Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008319Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008401Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008482Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008672Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8008759Z               "line": 1697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012270Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012369Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012503Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012590Z               "line": 2935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012670Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012750Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012826Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012903Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8012989Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013270Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013356Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013436Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013627Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013708Z               "line": 501
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8013861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014047Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014137Z               "line": 834
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014409Z               "path": "crates/spt-daemon/tests/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014487Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014567Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014748Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014830Z               "line": 4585
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8014910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015142Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015237Z               "line": 4615
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015488Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015570Z               "line": 4639
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015832Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015913Z               "line": 31470
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8015988Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8016065Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8016142Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8016218Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8016298Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8016370Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8016485Z       "id": "REQ-SEC-REPLY-EXEMPTION-SEND-LEG",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8025919Z       "title": "THE REPLY EXEMPTION HAS A SENDING LEG, AND IT IS WIRED AT THE TRANSMISSION CHOKEPOINT RATHER THAN AT ANY CALLER. REQ-SEC-1's stateful firewall is a JOIN of two halves: the receiving leg classifies an inbound against the recent-outbound log (`classify_inbound`), and something must WRITE that log. It shipped with only the reading half live -- `note_outbound` existed, was `pub`, was re-exported, and had a passing unit test, while the whole `crates/` tree held ZERO production call sites (releases#166, confirmed at main@8248bc3: two callers, both tests). `RecentOutbound` was therefore never written in the field, every inbound classified `Unsolicited`, and a genuine reply to a closed-posture endpoint bounced -- the requirement was STRUCTURALLY INERT while reading fully covered. THE WRITE SITE IS `wan::request_wan`, THE ONE SEAM EVERY WAN MESSAGE CROSSES, NOT `wan_send_with` OR ANY OTHER CALLER: a per-caller write is a rule satisfied by remembering to, and the same forgetting is what made the first implementation inert; the chokepoint also puts both halves of the join in one file, where a future reader cannot change one without seeing the other. THREE THINGS THE ROW MUST GET RIGHT, EACH THE PROVABLE FIELD RATHER THAN THE CONVENIENT ONE. (1) THE ENDPOINT IS THE DAEMON-STAMPED `sender_proven`, NEVER `msg.from`: `from` is reply-routing metadata an explicit `--from` owns (KNOWN-HAZARDS 7.5), so a row keyed on it would let any local caller open a 15-minute inbound hole for an endpoint it merely NAMED -- the same reasoning that already keeps `from` out of the access chain's tier 1 and out of the contact ledger. An UNSTAMPED send records NOTHING: `session_proven_sender` stamps only after resolving the id to a real local perch, so the stamp is exactly the proof that the sending id can RECEIVE, and an id that cannot receive cannot be replied to. (2) THE NODE IS THE CONNECTION'S HANDSHAKE-PROVEN `remote_id_hex`, NEVER THE NODE RESOLUTION CLAIMED: the receiving leg keys the gate on the proven origin (REQ-HAZARD-WAN-ORIGIN-AUTH), and a correlation whose two halves keyed on different notions of `node` would silently fail to meet under exactly the stale-gossip conditions the registry is stale-tolerant by contract about. (3) ONLY A CUSTODY-CONFIRMED ROUND-TRIP RECORDS -- delivered, spooled, or duplicate, the same set that earns `SENT(WAN)`. A refusal must not write (their gate closed; a row would open OURS to a node that just refused us), a no-perch must not write (nobody is there to answer), and an UNCONFIRMED hop must not write even though an N-1 receiver may genuinely reply: an exemption is a WIDENED ADMIT VERDICT, so an unconfirmed hop failing closed costs one reply its exemption while the opposite direction grants a hole on a guess. Gate: impl -- the wire-in at `request_wan`, taking the dialed `NetDialed` rather than a bare conn id so the proven node is in hand, plus the split-out decision the units drive; unit -- the decision table: each custody outcome records and each non-custody outcome records nothing (all six named, so a widened set cannot pass), an unstamped send records nothing beside a stamped one that does (with `from` populated in the unstamped arm, so a fallback to it fails the assertion rather than passing it), and THE ROW IS THE KEY THE RECEIVING LEG READS -- the real write followed by the real `classify_inbound`, correlating on the recorded (endpoint, node) pair while a DIFFERENT local endpoint and a DIFFERENT origin node each stay `Unsolicited`; that meeting is the property whose absence made the requirement inert, and asserting the write alone would not have caught it. The proven-node half is COMPILE-ENFORCED rather than asserted: the seam takes the dialed `NetDialed`, so the resolved-node string the caller also holds is not in reach at the write site. int -- THE JOIN, not the parts: a REAL cross-node send from A to B, then B's reply reaching A's CLOSED-posture endpoint and passing with `PassReason::ReplyExemption`, with the same reply REFUSED in the un-sent control arm.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026111Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026191Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026272Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026353Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026425Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026510Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026587Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026674Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026797Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026877Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8026955Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027041Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027126Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027322Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027402Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027661Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027779Z               "line": 282
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8027937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028036Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028118Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028194Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028271Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028347Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028426Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028516Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028598Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028791Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8028872Z               "line": 1697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029236Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029316Z               "line": 2935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029396Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029472Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029546Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029621Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029711Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029792Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8029974Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030055Z               "line": 2187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030141Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030374Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030456Z               "line": 2228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030703Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030790Z               "line": 2263
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030862Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8030941Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8031012Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8031093Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8031170Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8031249Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8031357Z       "id": "REQ-SELF-ADDR-REBIND-READVERTISE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8034766Z       "title": "WAN-TRUTH #40 F4: when this node's live endpoint address changes — a rebind to a new port after a restart, the everyday shape behind the incident's dead Jul-18 port — it re-authors its own roster self-entry with the new address immediately, rather than waiting for a peer to dial in and trigger the exchange provider. A node whose address changed is exactly the node peers can no longer reach, so making propagation depend on an inbound connection is the wrong direction of dependency; the local roster row is refreshed at once (so any exchange, in either direction, serves the current address) and the advertise wake is set so the next pump round pushes it. The re-authored entry carries a strictly-greater lease, which is only sound once REQ-ROSTER-SELF-LEASE-HEAL guarantees the counter is above the fleet's ceiling — F4 is the propagation half of the same field failure, F1 the ordering half. Gate: impl — the address-change detection against the last-advertised self row, the re-author, and the advertise wake; unit — a changed address re-authors the self row with a strictly-greater lease and sets the wake, an unchanged address does neither (no advertise storm), and a null/unbound address is never advertised.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8034870Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8034996Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035072Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035148Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035228Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035310Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035396Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035477Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035563Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035640Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035725Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035806Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8035882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036044Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036134Z               "line": 1368
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036408Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036489Z               "line": 1422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036566Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036642Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036723Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036798Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036890Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8036971Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037047Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037127Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037209Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037295Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037476Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037558Z               "line": 2603
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037638Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037714Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037791Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037872Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8037948Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8038025Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8038129Z       "id": "REQ-SELF-DETECT-PARENT-PID",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8042686Z       "title": "E-1 (REMOTE-TRUTH triage §E-1 #7): self-detect leg (c) — the pid-ancestry fallback — ALSO candidates on `rec.parent_pid` (the harness pid, CONTEXT's 'stable session-binding anchor', stamped at bind), not `rec.pid` alone. ROOT: for an spt-hosted endpoint (broker PTY, headless) `rec.pid` is the ephemeral bind-CLI pid, ALREADY DEAD by send time (the F-026 #11 dead-pid class, field-sighted on hall-bf) — never in any sender's ancestry and alive-gated out — so an spt-hosted sender could NEVER resolve self via leg (c): its messages were from-stamped `cli@NODE` (operator #7) and replies bounced NO_PERCH. FIX: detect_self_by_ancestry pushes a second candidate (id, parent_pid) when `rec.parent_pid` is Some + alive; the pure nearest-first matcher (match_self_by_ancestry) is unchanged. LABEL-ONLY, exactly like the rest of leg (c): from-label/routing default, NEVER authentication — authenticate() untouched, the pid-ancestry-for-auth question stays parked (KH 7.3/7.5 separation holds; a wrong label self-corrects, a wrong grant does not). Env legs (a)/(b) stay first. Red-first int (the triage-specified missing test): rec.pid = dead sibling + rec.parent_pid = genuine live ancestor → self resolves (pre-fix None); ancestry-gate control: live-but-non-ancestor parent_pid must NOT resolve. Rider (same cluster, activated separately once doyle rules the fix shape): F-026 #11 dead-pid itself — rec.pid should hold something that stays true, or liveness readers stop trusting it. Cross-node from-stamp proof (spt-hosted B-side sender arrives at A as `<id>@node`, not `cli@node`) rides the [twohost] rig wave rung.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8042791Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8042871Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8042953Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043029Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043105Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043191Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043277Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043358Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043439Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043520Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043602Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043730Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043806Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043912Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8043998Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044073Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044150Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044227Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044303Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044387Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044641Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044768Z               "line": 641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8044931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045031Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045116Z               "line": 668
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045379Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045459Z               "line": 1229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045542Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045618Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045774Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045857Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8045942Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8046013Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8046093Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8046172Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8046247Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8046351Z       "id": "REQ-SELF-ENDPOINT-ADDR-SURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8049863Z       "title": "WAN-TRUTH #41 leg 2: this node OWN dialable address -- id, direct paths, and the relay it is actually homed on -- is reported by spt daemon status and its --json twin. The home relay reached no surface at all before this: the fleet homed onto iroh-canary relays while daemon.json still declared N0Default, and nothing an operator could run would contradict the config file. The value is therefore read off the LIVE endpoint (the broker net-status reply, which already carried it unconsumed), never echoed from configuration -- a line that restates config would have agreed with the wrong answer. No relay advertised is a reported state, not an absence of one, and an unparseable or unknown address shape degrades to that rather than failing the status read. Distinguish from REQ-PUMP-STAGE-TRUTH, which reports whether we can reach OTHER nodes; this reports what we advertise about OURSELVES. Gate: impl -- the relay accessor over the opaque EndpointAddr JSON, the status --json fields (self_addr, home_relay, node_id_hex, all additive), and the human status line; unit -- the accessor is proved against a REAL serialized EndpointAddr rather than a hand-written fixture (this repo existing opaque-addr fixtures spell paths as bare strings, which iroh does not emit, so a fixture-verified accessor would return no relay for every node in the field), a relay-less address reports no relay, and junk degrades without panicking.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8049968Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050050Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050127Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050206Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050283Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050365Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050446Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050531Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050617Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050694Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050770Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050860Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8050946Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051141Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051227Z               "line": 930
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051305Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051489Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051639Z               "line": 947
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051910Z               "path": "crates/spt-net/src/net/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8051991Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052142Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052246Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052327Z               "line": 8296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052621Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052707Z               "line": 8304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8052960Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053041Z               "line": 8309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053294Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053379Z               "line": 8491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053533Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053623Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053704Z               "line": 8641
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8053952Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054033Z               "line": 8827
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054113Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054191Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054271Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054352Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054438Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054520Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054729Z               "path": "crates/spt-daemon/tests/mesh_recovery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054811Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054887Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8054966Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055080Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055162Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055248Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055333Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055515Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055601Z               "line": 2299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055853Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8055934Z               "line": 38189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056049Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056130Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056206Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056287Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056363Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056440Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8056549Z       "id": "REQ-SELF-ID-TRUST-INJECTED-ENV",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8061874Z       "title": "DEFERRED to a followup vX.X.n sprint (post-LIFECYCLE-TRUTH, operator-ruled 2026-07-07): self-identity resolution must trust the harness-injected authoritative id and detect a stomped perch instead of silently mis-attributing. ROOT (doyle /diagnose 2026-07-07, field: agent sends stamped `cli@HFENDULEAM` / mis-attributed): `resolve_from` (cli.rs:5480) stamps `cli@<node>` when `detect_self_id` (roster.rs:103) returns None; detect_self_id resolves self ONLY by reverse-lookup — matching `$OWL_SESSION_ID` against a perch's info.json.session_id (then SPT_AGENT_ID, then parent_pid) — and IGNORES `SPT_ENDPOINT_ID`, the authoritative self-id the adapter injects (present in-env as SPT_ENDPOINT_ID=<id>). When a perch record is STOMPED (a cross-id info.json overwrite — the REQ-SPAWN-COLLISION-GUARD-LIVE-DUP damage class; field case: doyle's live session_id written into the deployah perch), the reverse-lookup mis-resolves (doyle session -> `deployah`) or fails (real deployah -> None -> `cli@node`), and the CLI silently believes the stomped store. FIX: detect_self_id PREFERS `SPT_ENDPOINT_ID` when set+non-empty (the harness-authoritative id, immune to a stompable perch), AND cross-checks it against the reverse-resolved perch id — a mismatch logs LOUD (a stomped/duplicated perch becomes a self-diagnosing signal, not a silent wrong identity). Bare-CLI (no SPT_ENDPOINT_ID) keeps the reverse-lookup then the `cli@node` fallback. Also reconcile the adapter/core self-id env contract (SPT_ENDPOINT_ID vs SPT_AGENT_ID vs OWL_SESSION_ID — which is canonical). NOTE: W4 REQ-SPAWN-COLLISION-GUARD-LIVE-DUP prevents FUTURE stomps but does not heal existing corruption nor add this resolution-robustness; recovery of a live stomp today is a manual `api boundary clear <id> --to-session-id <sid> --session-id <current>` re-bind (doyle recovered the doyle/deployah cross-wire this way 2026-07-07).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062073Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062151Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062236Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062321Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062407Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062484Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062561Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062645Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062730Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062806Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062883Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8062971Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063052Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063128Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063210Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063295Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063380Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063458Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063535Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063610Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063686Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8063783Z       "id": "REQ-SEND-REPLYTO-REMOVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8066789Z       "title": "Remove the `--reply-to` TARGET FALLBACK and its REPLIED label from `spt send` — a nicety that confuses agents and has NO WIRE EFFECT (ADR-0020 already made messages structural (from,body), no __REPLY_TO__). Hard-remove (no deprecation shim): the target fallback (a bare `spt send --reply-to <sender>` delivering with no positional), the is_reply/REPLIED label branch (always SENT/QUEUED), the `send` how-to example, and the mention in REQ-DOCS-6's send topic. Reply-correlation stays on the structural `from` attribute; `target` is a REQUIRED positional. (v0.16.0) — AMENDED WEBSERVE W2 (2026-09-07): this requirement is about the SEMANTICS, not the spelling. ADR-0061 re-uses `--reply-to` for a DIFFERENT thing — a parent message short-ID carried as an additive envelope attribute (REQ-MSG-SHORT-ID) — which leaves both killed halves dead: the flag still cannot stand in for the target, and it still stamps no label and changes no delivery. The unit cell is repinned to assert those two properties against the live flag rather than asserting the string no longer parses.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8066899Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8066982Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067057Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067133Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067213Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067292Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067372Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067456Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067538Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067616Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067701Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067790Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8067976Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068056Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068131Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068207Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068283Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068361Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068445Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068565Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068647Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068727Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068807Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8068890Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069146Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069228Z               "line": 33742
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069309Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069380Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069461Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069538Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069661Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069742Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8069834Z       "id": "REQ-SEND-SPT-HOSTED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073281Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073386Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073466Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073546Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073670Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073751Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073832Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073908Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8073994Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074075Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074152Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074227Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074313Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074399Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074476Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074589Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074719Z               "line": 2206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074800Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8074987Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075067Z               "line": 8836
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075335Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075419Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075673Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075758Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075830Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075907Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8075983Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076067Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076152Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076233Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076430Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076510Z               "line": 196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076824Z               "path": "crates/spt-daemon/tests/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076902Z               "line": 542
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8076983Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077059Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077212Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077298Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077379Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077565Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077650Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077764Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8077951Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078036Z               "line": 2073
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078289Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078374Z               "line": 27013
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078526Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078606Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078686Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078762Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078839Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8078935Z       "id": "REQ-SEND-STAMP-AGENT-ID",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8082521Z       "title": "MSG-IDENTITY W4 / endpoint-identity (operator-flagged 2026-07-09 + live-confirmed on flynn's F-038 ask arriving 'cli@HFENDULEAM'): a live agent's own CLI `spt send <target>` MUST stamp from_id with the AGENT id (e.g. 'doyle'), not the node fallback 'cli@<node>' — today the agent-id stamp rides ONLY the adapter/perch shortform path, so any agent shelling out `spt send` (the DOCUMENTED reach-another-agent form) presents to recipients as an anonymous node CLI: replies mis-route (recipients answer cli@node — no perch — instead of the sender), and the F-036 victim-effect ('sends downgraded to from:cli@node') is indistinguishable from normal CLI traffic. FIX: send-time self-resolve — when the calling process/session maps to a bound live perch on this node (the session-pin/seed machinery already resolves this for bind), stamp that endpoint id as from_id; a genuinely perchless CLI keeps 'cli@<node>'. Gate: unit — a send from a session bound to a live perch stamps the endpoint id; a perchless shell keeps the node stamp; int — recipient's EVENT from= carries the agent id for a shelled-out send from a live session. Kin F-036 victim effects, EVENT envelope (ADR-0020), [[owl-send-not-legacy-spt-send]] (adapter-path stamp works today — this closes the CLI-path gap).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8082626Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8082708Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8082845Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8082926Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8082999Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083079Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083160Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083246Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083328Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083408Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083484Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083653Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083827Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083912Z               "line": 229
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8083989Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084063Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084134Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084215Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084297Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084378Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084453Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084583Z               "path": "crates/spt/tests/send_stamp_agent_id_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084669Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084740Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084820Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084893Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8084978Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085116Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085198Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085274Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085379Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085459Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085532Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085612Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085684Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085760Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085842Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8085923Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8086022Z       "id": "REQ-SEND-WINDOW-DRAIN-HONOR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093443Z       "title": "F-035 (field finding 2026-07-09): active_only = POLL-ONLY for a relay-bearing live agent -- it must NEVER be RELAY-delivered (its contract is 'active hook window only, never wakes' per spool.rs WINDOW_ACTIVE_ONLY doc + cli.rs:85; `spt send --active-only` / the hidden `--deferred` alias and `send_deferred` shell-context mint it). FIELD SYMPTOM: lia (a full live agent -- relay-for-idle, poll-for-busy) surfaced an --active-only msg on her IDLE RELAY. RCA JOURNEY: v1 RCA (docs/F-035-RCA.md) analyzed the WRONG class (spt-hosted-relay-LESS, the idle-edge inject leg) and proposed a COLLAPSE that would have broken the shipped F-023 anti-starvation gate (docs/F-035-CONFLICT.md); operator reclassified to a relay-bearing live agent; the relay-class re-RCA (docs/F-035-RELAY-RCA.md) traced EVERY active_only->relay carrier and found them ALL ALREADY GUARDED on main@2c05dc9 -- so spt-core has NO code bug. doyle FINAL RULING: the real leak is the ADAPTER's busy->idle poll->idle-representation handoff (spt-claude-code -- a legitimate `api poll` on going idle drains active_only, then the adapter renders it into the idle/relay surface), OUTSIDE spt-core; perri's lane. spt-core DELIVERABLE = a REGRESSION GUARD (tests only, NO behavior change) locking the 3 load-bearing guards that keep active_only off a relay: (1) send_windowed:217 -- an active_only send SKIPS deliver_tcp (never rides a live relay's TCP channel), spools poll-only; (2) cli.rs:5762 -- a cross-node active_only send stays LOCAL-ONLY (the WanMessage wire record has no window field, so shipping it would strip the class and relay-deliver at the far node); (3) relay.rs drain_backlog -> drain_non_deferred (deferred=0) -- the relay backlog NEVER forwards an active_only (deferred=1) row. Guard suite: unit (send_windowed active_only-skips-tcp-to-live-relay + relay_backlog-never-drains-active_only) + int (cross-node active_only stays local-only, never WAN, while a default send to the same remote target DOES take the WAN leg). AMENDED 2026-07-26 (FIELD-TRUTH W1 roll-in, operator ruling): guard (4) added — the idle-edge and parked-re-offer inject claims NEVER take a deferred (active_only) row, on ANY endpoint class. The collapse proposed in docs/F-035-RCA.md v1 and rejected in docs/F-035-CONFLICT.md is now ADOPTED on new field evidence (doyle spool-audit: spt-shells active_only rows taken_leg=idle-inject on a live perch, each starting a turn — the exact 'never wakes' violation this REQ exists to forbid); the F-023 deferred-rescue it collided with is revoked by the REQ-MSG-IDLE-EDGE-DRAIN amendment. Kin REQ-MSG-DELIVERY-AXES + REQ-MSG-IDLE-EDGE-DRAIN + REQ-INST-6.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093554Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093630Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093711Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093787Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093864Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8093945Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094025Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094111Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094278Z               "path": "docs/F-035-RCA.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094358Z               "line": 1
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094434Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094515Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094591Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094675Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094755Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094895Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8094971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095090Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095167Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095248Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095434Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095515Z               "line": 786
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095591Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095671Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095825Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8095953Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096034Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096249Z               "path": "crates/spt/tests/active_only_never_relay_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096330Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096407Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096487Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096606Z               "path": "crates/spt/tests/idle_edge_drain_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096693Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096765Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096849Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8096926Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097003Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097089Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097173Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097249Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097353Z               "path": "crates/spt-daemon/src/relay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097436Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097702Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097784Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097859Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8097935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098041Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098122Z               "line": 1532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098202Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098284Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098403Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098479Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098560Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098642Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8098747Z       "id": "REQ-SERVE-OWNERSHIP-GENERATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8101844Z       "title": "REDISPATCH-STALL W1 (ADR-0038 Amendment, fix 6): terminal-exclusion enforced PRE-SERVE + ownership/generation validation on attach/detach — a stale worker can never detach or displace a REPLACEMENT controller (today detach_if compares Arc ptr identity only; the serve path re-checks nothing at completion). Covers the UNFINISHED-stale-row control-steal shape (raw-close no-FIN viewports, emphasys C2 leak class feeding it) that finished-row retirement (D1/D1b) definitionally cannot see — the discriminating field observable on the next live steal catch = the stolen row's finished+retired flags. Gate: impl — pre-serve terminal exclusion + generation/ownership tokens on attach/detach; unit — stale-generation detach refused while the same-generation detach lands; int — T6 (UNFINISHED-stale attach row + live current controller + dispatcher restart: neither takes nor clears the replacement, D1/D1b green alongside); doc — ADR-0038 Amendment. Kin REQ-HAZARD-REDISPATCH-CONTROL-STEAL (the finished sibling), REQ-REDISPATCH-FINISHED-RETIRE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8101948Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102066Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102168Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102244Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102323Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102404Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102480Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102561Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102645Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102730Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8102946Z               "path": "docs/adr/0038-broker-stream-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103078Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103156Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103231Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103312Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103398Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103499Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103618Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103804Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103875Z               "line": 227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8103960Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104256Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104342Z               "line": 920
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104500Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104609Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104696Z               "line": 2366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8104975Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105061Z               "line": 3106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105330Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105412Z               "line": 3463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105683Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105765Z               "line": 1059
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8105936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106047Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106132Z               "line": 714
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106207Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106289Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106371Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106446Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106536Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106618Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106756Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106890Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8106977Z               "line": 673
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107052Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107133Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107210Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107287Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107372Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107452Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107640Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107761Z               "line": 12206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107842Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8107918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108025Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108105Z               "line": 12274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108195Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108267Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108382Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108462Z               "line": 12333
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108539Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108615Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108692Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108772Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108849Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8108926Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8109120Z       "id": "REQ-SESSION-ADAPTER-RECORDED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8113677Z       "title": "D-2 (REMOTE-TRUTH triage §D-2 + operator Q5 @c248afc): the session ledger records the adapter[:profile] a session ran under, so a later resume can restore the harness the session actually used (not merely the endpoint's CURRENT stamp). ROOT: SessionEntry (spt-store/sessions.rs:58) carries ts/session_id/trigger/cwd/ordinal but NOT the adapter — a resume-from-history row cannot know which harness authored the transcript, so a resume under a since-changed endpoint adapter (B-2 ChangeAdapter, or a fork) launches the wrong harness. FIX: an ADDITIVE `adapter: Option<String>` on SessionEntry, exact cwd/ordinal serde pattern (#[serde(default, skip_serializing_if=\"Option::is_none\")]) — a pre-migration row missing the key deserializes None; None omits the key on serialize (byte-identical to old rows); an unknown key on an old reader is ignored (serde default) — back-compat BOTH directions. Stamped at every PRODUCTION session-boundary append. CENSUS (doyle-confirmed @94f0205, corrects the triage-era 5-site drift to the real 3): startup.rs:317 (live bind boot row, rec.adapter in scope), reporting.rs:94 (boundary rotation row UNDER the mutate_info lock, capture adapter_for_ledger=rec.adapter beside cwd_for_ledger), ready.rs:119 in crates/spt-msg (ready-agent boot row, rec.adapter in scope). NOT digest.rs:601 (cfg(test) fixture) and NOT a livehost psyche-ledger append (none exists — the live /clear|/compact boundary shells `api boundary` → reporting.rs:94, the SAME append). None-stamp is a benign degrade (resume falls back to the endpoint's current adapter).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8113877Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8113962Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114045Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114120Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114206Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114282Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114369Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114454Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114530Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114611Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114698Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114787Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8114979Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115065Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115338Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115421Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115583Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115762Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115848Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8115933Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116119Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116200Z               "line": 796
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116278Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116353Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116434Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116510Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116602Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116730Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116811Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116888Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8116978Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117059Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117246Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117335Z               "line": 326
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117598Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117678Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117755Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117837Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117913Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8117993Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8118070Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8118147Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8118251Z       "id": "REQ-SESSION-RESUME-TEMPLATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8124794Z       "title": "Resuming an endpoint session that HAS conversation history brings up a BLANK session. ROOT (doyle, code-grounded + CONTEXT — case-3 spt-core MISSING feature, NOT a perri docs-miss): CONTEXT L127-129 already defines the resume-session seam ('continue-existing: resume an existing harness session under the adapter — its NATIVE resume'), and the manifest already has the resume-variant pattern (Session has BOTH psyche_init AND psyche_resume, manifest.rs:217-219) — but the agent's own session has ONLY self_ (`[session.self]`, no resume sibling). cmd_endpoint_run (cli.rs:1304) re-passes the session_id through `[session.self]` on resume (resume.unwrap_or_else(mint_session_id)), so the adapter's FRESH command (e.g. `claude --session-id ..`) runs again instead of the harness NATIVE resume (`claude -r ..`) -> CC starts a fresh transcript -> blank. spt-core forwards session_id + cwd faithfully; it just has no way to express the native-resume invocation. SECOND GAP: CC resolves a transcript by session_id + cwd, but the session ledger records only {ts, session_id, trigger} (no cwd), so picker Resume-from-history (cross-project rows) can't restore the right cwd. FIX (doyle design, V0.13.0-P2-SESSION-RESUME-DESIGN.md, mirrors psyche_init->psyche_resume exactly): (A) add a `[session.resume]` role (resume: Option<SessionRole> on Session + roles()/is_empty()); cmd_endpoint_run selects it when --resume is set AND it's declared (fill {id}/{session_id}=resumed id/{session_name} + the resume cwd), else FALL BACK to `[session.self]` (full back-compat). (B) record cwd PER ledger row (operator ruling): {ts, session_id, trigger, cwd} additive serde-default; resume cwd = resumed row cwd -> else perch info.cwd -> else current_dir (back-compat for old rows + single-project endpoints); picker threads the selected row's cwd through Outcome::Run -> cmd_endpoint_run. (C) public docs (MANIFEST + harness-contract) teach `[session.resume]` so perri builds the adapter side BLIND. Adapter follow-on (perri, AFTER spt-core ships+docs): declare `[session.resume] command = claude -r {session_id} --remote-control {id} --dangerously-skip-permissions` from the resume cwd. Completes REQ-READY-AGENT-RESUME / REQ-RUN-PICKER resume-from-history. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8124990Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125067Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125148Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125225Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125305Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125424Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125506Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125583Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125667Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125748Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8125958Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8126043Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8129783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8129878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8129983Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130150Z               "line": 175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130231Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130308Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130389Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130469Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130560Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130647Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130860Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8130942Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131103Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131226Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131313Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131581Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131668Z               "line": 348
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131740Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131824Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8131940Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132026Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132102Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132340Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132425Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132506Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132579Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132736Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132821Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8132922Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133126Z               "path": "crates/spt/tests/resume_template_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133209Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133337Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133408Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133489Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133571Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133656Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133742Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8133943Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134027Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134349Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134439Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134701Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134782Z               "line": 2196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134860Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8134936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135044Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135131Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135393Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135475Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135560Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135636Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135746Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135884Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8135960Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136143Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136227Z               "line": 2211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136303Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136381Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136458Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136537Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136617Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136683Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8136813Z       "id": "REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8139570Z       "title": "C2 (F028, infra; ROOT-CAUSED + severity-upgraded doyle RCA 2026-07-03): cross-endpoint perch contamination — a foreign psyche's SessionStart hook REBINDS a victim perch's IDENTITY, not merely its ledger. Evidence: hall-a's info.json.session_id IS f015b-probe-psyche's session (359d7bd7) + hall-a's ledger holds the foreign psyche session; same class as hall-b's dead-pid stamp (141556). This REQ = the OBSERVABLE (foreign session_id in a perch's ledger/info.json + resume offering foreign sessions) and its belt-braces: (iii) filter owlery-cwd rows OUT of resume_rows; (iv) one-time repair for already-contaminated perches (hall-a on HFENDULEAM) or self-heal on next legitimate session-start. The ROOT (identity pinned at spawn + honest bind + nested self-resolve) is REQ-BIND-HONEST-SELF-STAMP — C2 is UPSTREAM of B3 (presence/CONTROLLED read the very stamps this corrupts). See triage C2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8139685Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8139766Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8139851Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8139933Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140014Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140095Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140180Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140268Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140400Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140481Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140567Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140653Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140848Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8140935Z               "line": 525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141020Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141096Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141178Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141254Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141344Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141473Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141555Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141631Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141720Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141805Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8141994Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142079Z               "line": 1057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142161Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142238Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142318Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142398Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142480Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142553Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8142642Z       "id": "REQ-SHELL-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143482Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143577Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143658Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143739Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143821Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143901Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8143987Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144064Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144155Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144244Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144321Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144455Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144545Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144634Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144838Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8144923Z               "line": 259
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145195Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145280Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145357Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145471Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145595Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145677Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145754Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8145948Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146025Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146301Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146383Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146650Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146731Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8146892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147003Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147088Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147163Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147238Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147354Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147433Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147551Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147739Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147823Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8147977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148081Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148162Z               "line": 451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148419Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148558Z               "line": 518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148825Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8148902Z               "line": 580
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149068Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149250Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149330Z               "line": 602
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149416Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149598Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149682Z               "line": 615
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149755Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8149936Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150021Z               "line": 592
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150284Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150364Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150627Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150707Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8150860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151022Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151113Z               "line": 357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151185Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151370Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151452Z               "line": 686
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151708Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151791Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8151990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152086Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152167Z               "line": 788
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152322Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152437Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152517Z               "line": 556
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152592Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152764Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152851Z               "line": 23012
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8152926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153093Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153179Z               "line": 23211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153427Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153508Z               "line": 23407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153588Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153660Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153742Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153818Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8153908Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154042Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154118Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154241Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154319Z               "line": 890
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154400Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154590Z               "path": "crates/spt-daemon/tests/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154672Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8154939Z               "path": "crates/spt-daemon/tests/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155077Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155347Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155436Z               "line": 1345
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155707Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155788Z               "line": 2356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8155946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156061Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156140Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156395Z               "path": "crates/spt/tests/shell_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156474Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156551Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156628Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156703Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156784Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156866Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8156957Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157138Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157224Z               "line": 472
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157530Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157616Z               "line": 505
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157771Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157875Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8157956Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158227Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158308Z               "line": 1294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158421Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158613Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158693Z               "line": 1490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8158847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159046Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159138Z               "line": 1634
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159214Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159399Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159481Z               "line": 1406
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159743Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159820Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159899Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8159971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160077Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160163Z               "line": 32519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160238Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160406Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160547Z               "line": 32971
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160801Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160886Z               "line": 33388
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8160962Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8161038Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8161115Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8161201Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8161272Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8161349Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8161435Z       "id": "REQ-SHELL-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8163829Z       "title": "Shell sleep/wake: link-break always closes the link, and always ends the binary it can still PROVE is ours (pre-close instruction + termination timeout, then an AUTHENTICATED force-close -- narrowed from 'always closes the binary' by BAROMETER's REQ-SHELL-KILL-AUTHENTICATED, since an unconditional kill on a recycled pid force-kills an unrelated process TREE; a kill that cannot authenticate its target is refused, named in the log, and the close continues), 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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8163968Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164049Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164125Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164201Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164278Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164359Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164435Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164530Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164612Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164688Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164764Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164850Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8164931Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165179Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165260Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165528Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165609Z               "line": 1253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165869Z               "path": "crates/spt-daemon/src/grants.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8165958Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166263Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166349Z               "line": 1346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166611Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166691Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8166955Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167034Z               "line": 610
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167293Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167378Z               "line": 626
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167451Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167636Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167722Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167875Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8167984Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168061Z               "line": 1003
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168180Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168368Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168445Z               "line": 454
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168720Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168801Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8168873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169044Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169153Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169286Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169554Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169635Z               "line": 782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169901Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8169983Z               "line": 936
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170250Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170332Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170593Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170671Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8170938Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171019Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171293Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171370Z               "line": 264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171455Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171694Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171775Z               "line": 363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8171928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172037Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172118Z               "line": 596
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172376Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172466Z               "line": 810
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172591Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172776Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172858Z               "line": 1075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8172935Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173124Z               "path": "crates/spt-net/src/net/shelllink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173206Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173471Z               "path": "crates/spt-net/src/net/shelllink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173553Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173628Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173812Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173893Z               "line": 786
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8173971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174155Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174242Z               "line": 7824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174490Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174571Z               "line": 23038
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174785Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174885Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8174971Z               "line": 23136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175047Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175124Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175214Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175295Z               "line": 23164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175371Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175539Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175658Z               "line": 23218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175905Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8175982Z               "line": 23497
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176229Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176310Z               "line": 23598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176575Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176655Z               "line": 989
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176737Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176909Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8176994Z               "line": 1031
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177066Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177152Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177232Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177308Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177400Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177481Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177557Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177671Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177753Z               "line": 883
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177833Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8177909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178058Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178143Z               "line": 1345
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178219Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178407Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178486Z               "line": 2356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178641Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178764Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178848Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8178923Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179141Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179222Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179299Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179385Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179470Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179662Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179743Z               "line": 1089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179822Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8179899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180014Z               "path": "crates/spt-daemon/src/resting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180095Z               "line": 1257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180357Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180438Z               "line": 1523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180514Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180700Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180781Z               "line": 1572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180858Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8180935Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181043Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181178Z               "line": 1596
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181255Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181330Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181444Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181526Z               "line": 1561
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181786Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181868Z               "line": 1582
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8181945Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182173Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182254Z               "line": 1618
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182411Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182517Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182602Z               "line": 1672
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182865Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8182955Z               "line": 1690
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183108Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183213Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183303Z               "line": 1729
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183384Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183570Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183646Z               "line": 1979
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183917Z               "path": "crates/spt-net/src/net/shelllink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8183998Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184150Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184244Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184329Z               "line": 29515
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184634Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184715Z               "line": 32598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8184968Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185045Z               "line": 32706
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185292Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185370Z               "line": 32829
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185489Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185569Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185645Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185723Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185798Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185874Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8185960Z       "id": "REQ-SHELL-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8187693Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8187792Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8187868Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8187950Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188027Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188103Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188183Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188256Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188341Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188465Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188541Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188623Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188712Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188793Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8188871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189065Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189152Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189417Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189546Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189697Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189810Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189892Z               "line": 370
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8189970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190154Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190236Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190493Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190574Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190837Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190917Z               "line": 857
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8190993Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191176Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191260Z               "line": 938
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191418Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191524Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191603Z               "line": 966
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191680Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191918Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8191999Z               "line": 51
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192256Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192332Z               "line": 403
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192413Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192594Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192675Z               "line": 446
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192757Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8192994Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193077Z               "line": 945
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193339Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193425Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193687Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193768Z               "line": 884
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8193925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194031Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194106Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194187Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194263Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194370Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194453Z               "line": 958
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194715Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194799Z               "line": 619
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8194922Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8195000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8195095Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8195185Z               "line": 23278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8195262Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8195338Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8198863Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199063Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199159Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199244Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199451Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199615Z               "line": 2405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199692Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199893Z               "path": "crates/spt/tests/drive_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8199973Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200048Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200125Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200205Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200280Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200366Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200452Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200534Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200652Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200734Z               "line": 984
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200848Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8200928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201039Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201125Z               "line": 998
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201397Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201477Z               "line": 1016
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201736Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201815Z               "line": 1037
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8201978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202139Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202230Z               "line": 1486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202303Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202487Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202569Z               "line": 1524
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202830Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8202911Z               "line": 1597
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203245Z               "path": "crates/spt-daemon/src/shellchan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203322Z               "line": 624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203584Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203675Z               "line": 1355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8203927Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204008Z               "line": 32379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204085Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204165Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204242Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204328Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204404Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204480Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8204572Z       "id": "REQ-SHELL-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206313Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206461Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206537Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206618Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206694Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206770Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206848Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8206928Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207042Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207129Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207219Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207385Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207468Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207844Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8207933Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208008Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208085Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208170Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208245Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208330Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208412Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208489Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208598Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208679Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208761Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8208832Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209042Z               "path": "crates/spt-daemon/src/endpoint.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209123Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209204Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209390Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209480Z               "line": 288
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209556Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209637Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209795Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209881Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8209957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210029Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210138Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210224Z               "line": 1172
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210486Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210566Z               "line": 2092
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210770Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210878Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8210955Z               "line": 2104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211032Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211217Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211299Z               "line": 2145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211456Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211565Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211647Z               "line": 892
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8211919Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212000Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212272Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212352Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212438Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212620Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212753Z               "line": 227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212829Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8212911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213019Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213100Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213254Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213357Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213443Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213752Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213834Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8213992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214105Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214188Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214335Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214444Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214526Z               "line": 439
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214682Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214783Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214865Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8214945Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215127Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215208Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215476Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215551Z               "line": 977
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215812Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8215896Z               "line": 1268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216009Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216086Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216196Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216277Z               "line": 704
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216352Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216530Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216610Z               "line": 23335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216686Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216764Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216844Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8216915Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217035Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217116Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217301Z               "path": "crates/spt/tests/tunnel_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217384Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217464Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217535Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217611Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217694Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217779Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217859Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8217945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218051Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218131Z               "line": 2562
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218395Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218484Z               "line": 2591
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218749Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218829Z               "line": 504
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8218905Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219234Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219316Z               "line": 514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219587Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219669Z               "line": 531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8219931Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220012Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220327Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220411Z               "line": 555
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220483Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220675Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220755Z               "line": 1956
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8220909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221013Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221097Z               "line": 1362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221173Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221245Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221325Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221400Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221476Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221553Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8221640Z       "id": "REQ-SHELL-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8222803Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8222893Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8222979Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223055Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223194Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223274Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223350Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223428Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223505Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223589Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223670Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223834Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223922Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8223998Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224084Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224156Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224284Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224369Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224452Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224661Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224743Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224818Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224895Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8224975Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225052Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225138Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225214Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225401Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225481Z               "line": 1394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225745Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225828Z               "line": 2433
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8225982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226115Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226200Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226276Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226391Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226470Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226546Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226632Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226713Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226898Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8226980Z               "line": 1430
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227057Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227132Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227208Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227285Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227395Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227470Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8227595Z       "id": "REQ-SHELL-ADAPTER-OWNED-DETACHED-SERVICE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245237Z       "title": "RULING OWED (unratified — do NOT satisfy without one): may a shell adapter own a DETACHED process that deliberately OUTLIVES its shell's link-break? Today the answer is 'no, silently, on Windows only'. `shellhost::kill_shell_pid` force-kills with `taskkill /PID <pid> /T /F` — /T is a TREE kill, so `close_shell` takes the shell's descendants with it; the Unix arm is `kill -9 <pid>`, a SINGLE process. So the same adapter's detached child dies on Windows and survives on Linux, undocumented either way. Two ratified positions collide here and neither may be quietly discarded: (a) CONTEXT §Shell model lifecycle states flatly 'the binary never survives a link-break', and the KNOWN-HAZARDS 'stop lies' RCA (two field cases 2026-07-19, one on doyle's own production endpoint) was paid for precisely because a surviving GRANDCHILD was orphaned where 'even a direct-child kill would have missed it' — that hazard is the standing argument FOR /T; (b) a node-singleton service that must not drop every time a shell relinks is a legitimate shape, and flynn's alchemy ships one today (Hub Daemon, CREATE_NO_WINDOW | CREATE_NEW_PROCESS_GROUP, lockfile-guarded), depending on surviving link-breaks to keep a Discord gateway up. Note CREATE_NEW_PROCESS_GROUP does NOT sever ParentProcessId, so it is not an escape from /T — the survival flynn depends on is unverified, not designed-for. MEASURED, not theorized (flynn, this node, 2026-07-25, current spt-core, no branch): the Hub Daemon's ParentProcessId WAS the shell's pid — a direct child, so `/T` reaches it by either reading — and `spt shell teardown alchemy-0` took the daemon to zero processes within 0.1s, still zero across a 15s poll. Nothing restarted it (no bind happens in that window and the adapter's ensure runs only at bind, so 'died and restarted fast' is excluded by construction); recovery needed an operator spawn + re-bind. BLAST RADIUS, the reason this outranks its filing: that daemon also runs alchemy's Watch engine, so tearing down whichever shell happened to parent it silently stops State-change notification delivery NODE-WIDE, for every registered Watch and every owner — cross-Project blocking waits simply never fire, with no error anywhere. It satisfies the LETTER of alchemy's own REQ-HAZARD-WATCH-SILENT-LOSS (the registry entry survives) while its INTENT fails (the delivery engine is dead) — filed separately adapter-side. Option space for the ruling: (1) adapter-owned detached services are UNSUPPORTED — such a service is an AlwaysOnEndpoint (REQ-EP-8 / ADR-0023: resident, daemon-supervised, addressable, independent of agent liveness), NOT a shell's descendant. NOTE this is not a new design: ADR-0023 was ratified 2026-06-21 and EXPLICITLY rejected 'make it a Shell' ('shells are single-owner, driven, control-exclusive; a multi-party bridge inverts every one of those invariants'), and named a Discord bridge as its first consumer — i.e. flynn's exact shape. The gap is DELIVERY (REQ-EP-8 is inactive pending its milestone), not design. (2) allow it behind an explicit manifest declaration that exempts named descendants from the tree kill AND obliges the adapter to reap them — viable only as an EXPLICIT INTERIM with (1) as the stated target, never a permanent answer, because permanence would re-adopt the shape ADR-0023 already rejected. (3) status quo, but then DOCUMENT the platform asymmetry and stop claiming 'never survives' unqualified. CONSUMER LEAN IS (1), argued against his own convenience (flynn 2026-07-25): the service is a shell's descendant only because a shell was the only thing he had that could start something; (2) buys that accident a manifest field plus a reaping obligation he must then honor forever, and leaves 'the next shell that happens to bind' responsible for the service being up — which IS the defect he measured. Available to a consumer TODAY without any core change and without an exemption: start the service out-of-band so no shell parents it (unsupervised, but never tree-killed) — the trade is 'unsupervised but safe' against 'supervised by accident and killed by design'. Whichever wins, the Windows/Unix divergence is a defect in its own right and closes with it — `/T` on one platform and single-pid `kill -9` on the other means adapters cannot reason about descendant lifetime at all. Filed by flynn 2026-07-25 as 'flagging it now rather than after'; code-read by doyle, then field-confirmed by flynn at the cost of one teardown. FIELD CORRECTION (flynn, 2026-07-25, alchemy v0.3.1): the measured kill was NOT /T over-reach — the 'detached' daemon was still the shell's DIRECT CHILD in the process table (CREATE_NO_WINDOW / CREATE_NEW_PROCESS_GROUP / null stdio detach the console and the signal group, never parentage), so any tree walk found it by construction; isolated A/B on this node confirmed a grandchild whose intermediate has exited survives /T. alchemy v0.3.1 ships the fix as one relay hop (the binary re-invokes itself, the intermediate exits, the daemon's ParentProcessId is dead and nothing can walk it) — production-verified (daemon pid 35472, ParentProcessId 11108 dead) — and WITHDREW the Scheduled Task autostart entirely (alchemy ADR-0012 now Rejected; ADR-0013 records the relay hop). alchemy no longer pushes on this seed. What remains core-side is narrowed, not changed in kind: /T's breadth (it reaches detached descendants of any adapter that has NOT done the relay hop) is a hardening item on its own merits, and the Windows/Unix kill asymmetry stands. Job-object caveat filed separately — the relay hop does NOT escape a Job Object: see REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE. PREMISE MOVED UNDERNEATH THIS SEED (BAROMETER, todlando 2026-08-02, REQ-SHELL-KILL-AUTHENTICATED — the ruling itself is UNTOUCHED and still owed): position (a) quotes CONTEXT's flat 'the binary never survives a link-break', and that sentence no longer reads flat. The force-close is now authenticated against the pid+birth pair, so a kill whose target cannot be proven ours is refused and named rather than fired. Option (3)'s demand to 'stop claiming never survives unqualified' is therefore already satisfied in part — but for a DIFFERENT reason than this seed argues (target IDENTITY, not the platform asymmetry), and it changes nothing about the option space here: the Windows /T tree-kill versus Unix single-pid `kill -9` divergence this seed exists to rule on is exactly as it was, and an authenticated kill still takes the whole subtree when it does fire.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245480Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245567Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245643Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245733Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245819Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245892Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8245972Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246057Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246139Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246211Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246291Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246376Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246458Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246540Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246615Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246701Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246783Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246860Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8246982Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8247059Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8247136Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8247254Z       "id": "REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262314Z       "title": "HARDENING SEED (inactive — no defect claimed): a CLI-side `spt shell spawn` rises inside the launching terminal's Job Object when that job denies breakaway. Launch-path census (2026-07-25): `spt shell spawn` calls `shellhost::launch_shell` IN the CLI process, so the shell binary is spawned by a terminal-resident process and is subject to whatever job the terminal wrapped the CLI in; daemon-side (re)launches (`shellwake` relaunch-on-wake, linkhost relink) spawn from the daemon, which is job-neutral once its own cold-start ladder (WMI → schtasks → breakaway → in-job; REQ-HAZARD-VIEWER-CLOSE-DETACH) escaped. The shared spawn primitive (`daemon::detached_no_inherit`) requests CREATE_BREAKAWAY_FROM_JOB best-effort: a job without JOB_OBJECT_LIMIT_BREAKAWAY_OK denies it (ERROR_ACCESS_DENIED) and the DELIBERATE fallback spawns IN-JOB with the loud diagnostic 'DETACH_BREAKAWAY_DENIED: launching Job Object forbids breakaway; spawned IN-JOB (may be reaped if the launching terminal closes)' — chosen so a spawn that once worked never regresses to failure. spt CANNOT grant itself breakaway: BREAKAWAY_OK is a limit only the job's CREATOR (the terminal) sets on the job; a member process has no say. CONSEQUENCE, field-observed (flynn 2026-07-25, verbatim diagnostic in hand, alchemy #22): job membership is inherited by EVERY descendant regardless of parentage — an adapter's detached service that survives the /T tree kill via a relay hop (dead ParentProcessId, alchemy ADR-0013) does NOT thereby escape the job, so if the job sets JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE, closing the launching terminal reaps shell + detached service together, relay hop notwithstanding. Whether any given terminal's job sets KILL_ON_JOB_CLOSE is node-dependent and was NOT measured — the exposure is conditional; the diagnostic is the tell. SELF-HEALING PROPERTY, already true today: the exposure is launch-path-scoped, not instance-permanent — the first daemon-side wake/relaunch re-spawns the binary from the job-neutral daemon while the same canonical id + perch survive (REQ-HAZARD-SHELL-STALE-ONLINE recovery), so cycling an instance through a daemon wake is the zero-code mitigation available now. Option space for the ruling: (a) route CLI-side launch_shell through the same job-neutral ladder the daemon cold-start uses; (b) broker the first spawn through the daemon so no shell ever rises terminal-jobbed; (c) status quo + publicly document the diagnostic as contract, so adapters can read DETACH_BREAKAWAY_DENIED as 'this instance is terminal-coupled until its first daemon wake'. Seeded from flynn's observation; census + fallback semantics code-read by doyle at seed time. FIELD FIRING (2026-07-25 17:47, this node — flynn's owlery fact set + doyle's broker-stderr forensics): the conditional exposure is no longer unmeasured — one field event consistent with KILL_ON_JOB_CLOSE firing. At daemon-stop-begin, flynn's shell (last pid 29036, relaunched 17:15 from flynn's context) and the relay-hopped alchemy Hub Daemon (pid 35472, spawned 16:51 off a DIFFERENT, earlier shell — parent long dead) died in ONE two-second window (17:47:56–58), both abruptly with bookkeeping unrun (info.json still status=online on disk), while the broker itself kept draining to final exit 2m10s LATER (stderr abrupt-end 17:50:05.8) — so the closing job's handle owner was NOT the broker; it was some stop-begin casualty (leading read: the restart-initiating context, see REQ-DAEMON-RESTART-SELF-INTERRUPTION). Disjoint parentage + disjoint spawning contexts + one instant means the job spanned processes from DIFFERENT agent contexts — an INFRA-level job, not a per-terminal one — upgrading the worst case from 'this instance is terminal-coupled' to 'one infra job-close can sweep every shell-descendant on the node at once'. The handle owner is unpinnable post-mortem (4689 process-termination auditing off on this node); recorded open. ⚠ CORRECTION 2026-07-26 (doyle, source-verified answering liam — supersedes this title's launch-path census and its SELF-HEALING claim): local `spt shell relink` AND local wake ALSO spawn IN-PROCESS from the CLI — `spt_daemon::relink_shell` is a LIBRARY call in the CLI process (cli.rs ~12559) → `launch_shell` → `detached_no_inherit` runs its breakaway attempt in the CALLER, so the child inherits the terminal's job on denial; ONLY the cross-node arm (`ref@node`) and daemon-originated relaunches (`shellwake` from the daemon, reconcile) spawn daemon-side. Therefore 'cycling an instance through relink' is NOT the zero-code mitigation for a terminal-invoked local relink — the recorded self-heal holds only for daemon-ORIGINATED wake/relaunch, and a DETACH_BREAKAWAY_DENIED on CLI stdout is local truth about THIS spawn, not a relayed daemon diagnostic. FIX RULED IN (FIELD-TRUTH W1, doyle 2026-07-26, option (b) of the option space scoped to the reachable case): when a daemon is RUNNING, CLI-side `shell spawn`/`relink`/local-wake route the spawn THROUGH the daemon (job-neutral by the cold-start ladder) instead of spawning in-process; daemon not running → today's in-process path UNCHANGED as the fallback, with the diagnostic upgraded to name WHOSE job coupled the child (the launching terminal's, via this CLI process) so a field report can distinguish the paths. The first-spawn-brokered variant (option (b) full) and ladder-in-CLI (option (a)) stay open beyond the reachable-daemon case.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262557Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262642Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262728Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262806Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262887Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8262967Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263052Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263135Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263211Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263291Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263457Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263533Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263697Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263784Z               "line": 1392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8263941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264055Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264137Z               "line": 99
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264399Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264485Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264790Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264875Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8264951Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265138Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265219Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265481Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265558Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265634Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265815Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265905Z               "line": 197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8265978Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266162Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266243Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266319Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266505Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266624Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266886Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8266964Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267049Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267230Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267307Z               "line": 275
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267388Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267622Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267703Z               "line": 320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267859Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8267965Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268045Z               "line": 569
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268318Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268397Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268555Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268668Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268748Z               "line": 601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8268905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269100Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269182Z               "line": 653
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269448Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269535Z               "line": 698
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269606Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269791Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269874Z               "line": 713
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8269954Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270082Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270193Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270273Z               "line": 503
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270426Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270532Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270617Z               "line": 627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270765Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270871Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8270998Z               "line": 726
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271075Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271255Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271336Z               "line": 736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271417Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271493Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271605Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271686Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8271953Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272039Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272192Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272306Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272392Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272474Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272658Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272741Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8272893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273012Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273146Z               "line": 321
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273413Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273493Z               "line": 341
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273756Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273836Z               "line": 406
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8273912Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274139Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274224Z               "line": 23017
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274482Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274562Z               "line": 23062
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274811Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274901Z               "line": 23241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8274979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275150Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275230Z               "line": 23522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275308Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275384Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275460Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275540Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275627Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275713Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275784Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275869Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8275956Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276036Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276223Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276314Z               "line": 1284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276389Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276624Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276708Z               "line": 1302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8276966Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277047Z               "line": 1321
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277127Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277309Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277427Z               "line": 1340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277686Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277770Z               "line": 1363
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8277924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278033Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278119Z               "line": 1392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278196Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278272Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278376Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278453Z               "line": 1411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278715Z               "path": "crates/spt-daemon/src/drivehub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278802Z               "line": 1464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8278878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279157Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279238Z               "line": 1051
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279499Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279637Z               "line": 1064
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279794Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279905Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8279984Z               "line": 1080
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280243Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280323Z               "line": 1093
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280405Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280529Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280638Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280724Z               "line": 1109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280801Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8280981Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281064Z               "line": 1128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281335Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281412Z               "line": 1155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281678Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281769Z               "line": 1170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281849Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8281924Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282034Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282118Z               "line": 1202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282274Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282385Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282466Z               "line": 1230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282542Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282618Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282700Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282776Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282852Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8282933Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8283091Z       "id": "REQ-SHELL-FRAME-VOCAB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8287701Z       "title": "The shell relay frame vocabulary is a PUBLISHED contract, not a reverse-engineered one. (flynn spt-alchemy clean-room audit 2026-07-21, doyle code-verified, seed pair item 1.) TODAY: shellchan.rs composes the exact frames a shell binary must parse — shell_command / shell_text / shell_file (+ shell_close, sensory, drive) — but the published export (docs-site/src/shells/) carries ZERO occurrences of those type names; the docs say only 'the shell child parses its own vocabulary', so every adapter author (notify-shell, alchemy) reverse-engineers the frame shapes compatibly from source. FIX: publish, in the shells section of the docs-site export, the frame type names + their attrs (op, xfer-id, path) + body encodings — a shell_command body is a JSON object of named args (positionals zipped against the manifest's declared arg names), a shell_text body is the raw text, a shell_file body is the original filename with the perch-relative landed path in the path attr, a shell_close body is the manifest's pre_close instruction (NOT vocabulary-checked — the vocabulary gates agent commands, the manifest is its own authority over its own binary). Fold in the quoted-composite-tail sharp edge: the vocabulary check REFUSES extra positionals (an op given more args than its declared arity errs, so a quoted composite tail must be ONE argv element). Docs-drift-gated like every published page. Gate: doc — the shells export carries the full frame vocabulary (type names, attrs, body encodings, shell_close) + the files/ landing contract (published together with REQ-SHELL-PERCH-DIR's key so the path attr is resolvable the day it is documented) + the arity sharp edge.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8287807Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8287883Z         "doc"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8287959Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288074Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288156Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288241Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288326Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288408Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288512Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288594Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288669Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288751Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288823Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8288904Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289076Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289208Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289289Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289367Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289452Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289532Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289612Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289689Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289770Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289853Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8289934Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8290015Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8290097Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8290173Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8290263Z       "id": "REQ-SHELL-HINTS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297161Z       "title": "A SHELL ADAPTER'S [[hints]] ARE LIVE TEXT, READ THROUGH THE NOW-SIGNAL HINTS CATEGORY UNDER A PER-SOURCE CAP (releases#133, operator-authored and operator-GREENLIT into NOW-SIGNAL #23; the cap shape ruled by the gater 2026-08-30). THE SCHEMA WAS NEVER THE GAP: hints is a top-level manifest field with no kind gate, so a kind=shell manifest has always parsed, validated, registered and profile-merged its [[hints]] -- what was missing is a READER, because the only reader resolves the ENDPOINT-BOUND manifest and therefore never looked at any other adapter. THE ONE-HINT-PER-MESSAGE CLAUSE (CONTEXT.md keyword hints, ratified 2026-06-12) IS AMENDED BY REPLACEMENT TO A PER-SOURCE CAP: the harness contributes at most one line and EACH shell adapter contributes at most one line, each still once per session. The authority chain is explicit: the clause was ratified when exactly ONE manifest could speak, its ground was flood protection from a single adapter's chatter, and #133 cannot be delivered under a global cap at all -- so the amendment implements the newer operator decision while preserving the original ground per source, where a global cap would convert every second adapter into a structurally mute one that the ground never asked for. TWO ARMS, DECIDED BY INSTANTIATION AND NEVER BY LINK STATE: an adapter this owner holds an instance of surfaces the FULL hint text regardless of whether that instance is online or offline, and an adapter with no instance surfaces only a teaser naming the trigger keyword and the command that shows the text. THE TEASER'S COMMAND MUST EXIST AT THE HEAD THAT SHIPS IT -- the same class as the SEAL_BRIEF phantom verb, and the shipped surface is spt adapter hints <adapter[:profile]>, verified against the built binary rather than remembered. THE SEEN-SET KEY GAINS ADAPTER IDENTITY, because the existing key hashes only keywords, text and the regex flag, so two adapters shipping identical hint text would otherwise share one entry and the first to fire would silence the other invisibly for the session. THE HARNESS KEY SPELLING IS UNCHANGED: qualification is additive and shell-side only, so no session's seen-set forgets what it has already been told when this lands. The shell key also carries its ARM, so a shell that is instantiated after its teaser fired still delivers the full text once -- a teaser tells the agent the hint exists and acting on it must not be punished by silence. ABSENCE IS SILENCE: no shells, no matching keyword, an unreadable or deregistered adapter, or an endpoint bound to no harness manifest at all each contribute NOTHING, and in particular the shell arm is NOT gated on the harness manifest being present, because an endpoint with no bound manifest can still own shells. THE DOC STAGE LANDS WHERE A SHELL-ADAPTER AUTHOR LOOKS (docs-site shells) rather than only in the ratification text, because a manifest section no author can find is a section that reads as absent.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297324Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297401Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297481Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297552Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297634Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297711Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297791Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297875Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8297956Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298247Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298334Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298595Z               "path": "docs-site/src/shells/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298677Z               "line": 158
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298753Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298834Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8298905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299073Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299154Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299239Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299311Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299429Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299510Z               "line": 431
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299768Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299854Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8299932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300115Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300200Z               "line": 1076
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300466Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300547Z               "line": 1089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8300919Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301005Z               "line": 1111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301263Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301349Z               "line": 1119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301653Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301738Z               "line": 1153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301815Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8301997Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302077Z               "line": 20584
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302340Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302421Z               "line": 20985
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302503Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302579Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302669Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302755Z               "line": 22337
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302828Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302908Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8302978Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8303063Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8303149Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8303229Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8303309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8303433Z               "path": "crates/spt/tests/shell_hints_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8303515Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307007Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307097Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307259Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307341Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307435Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307521Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307603Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307726Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307807Z               "line": 2197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307889Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8307961Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308079Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308160Z               "line": 2241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308370Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308483Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308569Z               "line": 2281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308821Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8308903Z               "line": 26415
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309079Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309160Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309247Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309322Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309399Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309475Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8309585Z       "id": "REQ-SHELL-KILL-AUTHENTICATED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8322655Z       "title": "A RECORDED PID IS NOT KILL AUTHORITY ON THE PRODUCT PATH EITHER: no shell-lifecycle kill fires until the pid+birth PAIR proves the process at that pid is still the one we launched. BAROMETER W2 authenticated the DERIVATION path (`shellinfo::shell_pid_provably_dead` runs the pair test) and left the KILL path believing a bare pid, so the same recycled-pid state that the derived read correctly calls a corpse still routes to `taskkill /PID <pid> /T /F` (unix `kill -9`) against whatever unrelated process now wears that number -- and `/T` takes its whole subtree with it, on the user's machine. Proven reachable by probe, not inferred: a live stranger's pid parked beside a foreign birth stamp is killed by `kill_shell_at` while `shell_pid_provably_dead` calls the same pair a corpse. SITE SHAPE IS TWO CHOKEPOINTS, NOT THREE CALL SITES: `shellhost::kill_shell_at` (reached by `close_shell` and the `spt shell teardown` force path) and `shellwake::kill_waker_at` (reached by `launch_shell`, `close_shell`, `stop_watcher`, and the reconciler), both funnelling into the single `kill_shell_pid` taskkill; the gate therefore lands in the two chokepoints and NO caller changes. THE WAKER HALF NEEDED A WRITE-SIDE MINT BEFORE ANY GATE COULD MEAN ANYTHING: `waker.pid` was written bare, and `relay_liveness(live_pid, None)` is HELD by design (pre-stamp records fail toward alive), so a read-side gate there would have returned Held for every record that exists today and every one written tomorrow -- a VACUOUS gate that proves green. The pair is therefore minted in the waker's single existing write as a two-line `waker.pid` (`<pid>\\n<birth>`): ONE file, ONE write, so the pair is atomic -- a second file has a torn window in which the pid is on disk and the stamp is not, and that window reads Held, which is the vacuous arm reintroduced as a race. Write and every reader move through ONE shared record/read function pair, mirroring `record_shell_launch`/`read_shell_launch`. FAIL-TOWARD-ALIVE IS THE PARSE ARM TOO: an unparseable record reads None and REFUSES the kill while LEAVING the record, because kill-nothing-and-retire-the-pid-file-anyway orphans a live waker while presenting success -- worse than the defect being fixed. UNPROVEN REFUSES: the destructive arm treats unknown as do-not-fire (consequence asymmetry -- a mis-fire force-kills a stranger's tree, a missed kill leaves our own binary running and observable), which FALSIFIES the shipped unconditional promise that a link-break's force-close always kills and \"the binary never survives\", so `close_shell`'s step 3, the REQ-SHELL-2 language, the CONTEXT lifecycle line and KNOWN-HAZARDS 7.58 are amended together with the code rather than one comment patched. THE REFUSAL IS LOUD: every declined kill names the reason and the pid on the channel the close path already speaks, and the bounded confirm loop reports a binary that outlived it -- a quiet wrong state is the un-RCA-able one, and the harm-asymmetry argument has to hold in the log and not only in principle. THIS NARROWS THE MIS-FIRE, IT DOES NOT ELIMINATE IT, AND THE TEXT SAYS SO: on Linux `process_started_at` reads /proc/<pid>/stat field 22, which counts CLK_TCK=100 jiffies, so two processes whose starts fall in the SAME 10ms tick carry an identical stamp and the pair cannot separate them. The window closes from ANY recycled pid to A PID RECYCLED INTO THE SAME 10ms TICK AS THE RECORDED START -- which requires our process to die AND the OS to hand its number to a new process inside one tick, a precondition that is its own mitigation. Windows is unaffected (FILETIME, far finer resolution). Measured by hertz on kitsubito; recorded verbatim so nobody re-derives it. THE ASYMMETRY IS WHY THIS IS THE KILL PATH'S SENTENCE TO WRITE: the same predicate with the same imprecision is SAFE on the derivation side and UNSAFE here -- Held means 'stays stale' for a derived read and 'fire the kill' for a destructive one, so only the kill side carries the residual harm and only the kill side has to declare it. Image-path corroboration (which would unify this rule with the rig-side technique in KNOWN-HAZARDS 7.58) is filed past as releases#120, deliberately not taken in a closing milestone. MIGRATION WINDOW, NAMED NOT SILENT: pre-W2 shell records and pre-fix waker records carry no stamp, read Held on existence alone, and keep today's bare-pid kill until their next launch writes a pair. DOWNGRADE DIRECTION, NAMED: an OLD binary reading the NEW two-line `waker.pid` parse-fails to None, which reads as no-pid and refuses the kill -- missed-kill, not mis-fire, the safe polarity. Gate: impl -- the pair gate in both chokepoints, the shared waker record/read pair with the two-line format, every waker.pid reader moved onto it, the loud refusal arms, and the confirm-loop survivor report; unit -- a recycled pid (live, birth mismatch) is NOT killed where the shipped code kills it, a genuine own-process pair (Held) IS still killed so the gate is not vacuous, an absent stamp keeps the pre-stamp kill, Unproven refuses, an unparseable waker record refuses AND leaves the record in place (asserted together, since retire-anyway passes a kill-count assertion alone), and the refusal is observable rather than silent; int -- hertz's probe inverted: a live stranger parked beside a foreign stamp SURVIVES `kill_shell_at` while `shell_pid_provably_dead` still calls the pair a corpse (the control), with the victim checked through `try_wait` on the held handle rather than a pid-existence probe, which reads alive for an already-killed process while the handle is open.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8322858Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8322935Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323017Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323092Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323173Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323255Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323342Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323417Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323507Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323595Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323774Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323856Z               "line": 910
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8323933Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324014Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324089Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324169Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324250Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324340Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324544Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324621Z               "line": 676
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8324931Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325017Z               "line": 708
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325283Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325373Z               "line": 843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325449Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325640Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325721Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325841Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8325918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326031Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326112Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326190Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326375Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326457Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326717Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326807Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326883Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8326958Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327038Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327115Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327202Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327282Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327488Z               "path": "crates/spt-daemon/tests/shell_kill_auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327569Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327644Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327725Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327803Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327879Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8327964Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328045Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328122Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328274Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328360Z               "line": 1724
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328622Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328703Z               "line": 1739
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328780Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8328856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329048Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329133Z               "line": 1773
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329348Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329462Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329546Z               "line": 1795
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329800Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329889Z               "line": 2209
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8329966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330157Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330237Z               "line": 2236
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330314Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330495Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330580Z               "line": 2264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330848Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8330938Z               "line": 2282
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331016Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331091Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331167Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331244Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331321Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331448Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8331563Z       "id": "REQ-SHELL-LIST-DERIVED-PROVENANCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8334839Z       "title": "SEED (inactive — observability, perri-backed 2026-07-26): a status a reader can act on should be distinguishable from a status a record actually holds. Since REQ-HAZARD-SHELL-STALE-ONLINE, `shell list` renders DERIVED online-ness (recorded status AND pid-liveness), deliberately healing poisoned records at the read gate — but nothing marks WHICH rows were healed, so an agent doing forensics reads the healed view and infers a clean record (field, twice on 2026-07-26: liam inferred close_shell had run when the raw info.json still said online over a corpse pid and proposed spending flynn's live instance to manufacture a specimen they already owned; perri independently named the same misread class from their own work). Shape at activation: an additive marker on the --json row when derived != recorded (e.g. recorded_status alongside status, or derived=true) — additive-evolution posture, text view unchanged or minimally annotated; NEVER a behavior change to the derivation itself. Kin: REQ-DAEMON-BITS-AMBIGUITY (silent wrong-state a human catches only by staring at the right field) and the NEVER-SEALING-OBSERVABILITY candidate — same class, view-vs-truth.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8334989Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335074Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335152Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335243Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335327Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335404Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335486Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335577Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335656Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335738Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335815Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335901Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8335981Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336058Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336135Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336219Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336300Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336431Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336506Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336582Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336658Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8336769Z       "id": "REQ-SHELL-OWNER-ONLINE-RESTORE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8344433Z       "title": "A `persistent` SHELL WHOSE OWNER ENDPOINT WAS NOT YET ONLINE WHEN THE BOOT SWEEP RAN IS RESTORED WHEN THAT OWNER COMES ONLINE, RATHER THAN STAYING DOWN UNTIL A HUMAN RELINKS IT. ROOT (releases#228): daemons boot before endpoints do, so the boot sweep of REQ-SHELL-PERSISTENT-BOOT-RESTORE correctly SKIPS an owner that is not up yet -- an offline owner is owed nothing -- and then nothing ever revisits it: the sweep is once per daemon generation, and bringup from offline produces no rest edge, so the ADR-0048 cascade never fires either. The shell stays down until a `shell cmd` wakes it or an operator relinks by hand, and whether a given node restart strands its shells is an ordering accident. THE ONCE-NESS IS SCHEDULING, NOT SAFETY (doyle, releases#228, re-measured at head): the `launch_predates_boot` corpse-boot discriminant is what preserves the force-kill ruling, and it is MONOTONE WITHIN A MACHINE BOOT -- every launch path restamps `launched_ms`, a kill never restamps, `boot_ms` is the machine boot instant -- so re-evaluating the conjuncts later in a generation can only refuse MORE, never less. FIX: the reconcile loop carries the SAME per-owner restore body the boot sweep runs, triggered on owner offline->online transitions since the last pass. THE TRIGGER IS AN EDGE, NOT A LEVEL, and the distinction is the whole bound: success self-limits because the launch restamps the instance out of eligibility, but a FAILING launch under a level trigger -- owner is online -- retries every five seconds for as long as the owner stays up, while an edge bounds it to one attempt per owner-online event. THE REFUSAL ARMS ARE CARRIED BY CONSTRUCTION, not by restatement: both triggers call one shared per-owner body, so persistent-only, owner online, down in fact via the derived read with the pair test, stamp present, launch predates boot, and no boot oracle means restore nothing can never drift apart between the two paths. THE EDGE STATE IS SEEDED BEFORE THE SWEEP, deliberately: seeded after, an owner that comes online in the window between the sweep and the first tick reads as already-online and never fires -- the exact miss this requirement exists to close -- while seeding before can at worst re-attempt an instance the sweep already restored, which the RESTAMPED BIRTH STAMP refuses -- and NOT the down-in-fact arm, which is the arm that reads like the answer and is not: a launch is not the online switch, so a just-restored instance keeps an `offline` record until its bind-shell handshake and still reads as down in fact; what refuses the second attempt is that the launch moved `launched_ms` past the boot instant. Each trigger names ITSELF in its event line, because the field evidence that diagnosed this ticket was a count of those events and a shared name would leave the next investigation unable to say which trigger fired. Kin REQ-SHELL-PERSISTENT-BOOT-RESTORE (the boot trigger and the shared arms), REQ-HAZARD-RESTART-STRANDS-PERSISTENT-SHELLS (the invariant this closes the remaining seam of), REQ-SHELL-2 (the online/offline mutual exclusivity the edge path holds by stopping an armed watcher before it launches -- mid-generation a watcher CAN be armed for the casualty, unlike at boot).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8344613Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8344700Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8344781Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8344856Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8344937Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345015Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345096Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345180Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345261Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345433Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345516Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345592Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345716Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345798Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345878Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8345959Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346042Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346236Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346318Z               "line": 775
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346394Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346584Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346704Z               "line": 933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346784Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346860Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8346937Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347019Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347108Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347194Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347353Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347442Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347524Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347719Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347809Z               "line": 1357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347889Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8347966Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8348041Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8348121Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8348201Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8348279Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8348374Z       "id": "REQ-SHELL-PERCH-DIR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8353642Z       "title": "A shell binary can mechanically resolve where its files land. (flynn spt-alchemy clean-room audit 2026-07-21, doyle code-verified, seed pair item 2, P1 — HARD-GATES flynn's alchemy W4.) TODAY: `spt shell send --file` lands the blob at <shell-perch>/files/<xfer-id>-<name> and the shell_file frame's path attr is PERCH-RELATIVE (files/...) — but the spawn template substitution keys are ONLY {id}/{adapter_name}/{link_token} (shellhost.rs fill_spawn_command) and the spawned child inherits the BROKER's cwd, so no mechanical perch resolution exists: the binary cannot turn the frame's path into a real file without guessing SPT_HOME layout. DOYLE RULING, both halves binding: the frame KEEPS the perch-relative path (an absolute path in a spooled frame LIES across perch moves and node boundaries — frames outlive layouts); the fix is an ADDITIVE {perch_dir} spawn-template substitution key (opt-in — templates that do not use it are byte-identical, N-1-safe by construction) filled with the shell perch dir so the binary receives its root at spawn and joins the frame's relative path against it. REFUSED, recorded so it is not re-proposed: blessing SPT_HOME layout guessing as an interim contract. Published landing contract rides REQ-SHELL-FRAME-VOCAB's page. Sequence-not-version given to flynn (no version floor before it ships). Gate: doc — the {perch_dir} key on the manifest spawn-template docs + the files/<xfer-id>-<name> landing shape on the frame-vocab page; impl — fill_spawn_command passes perch_dir alongside id/adapter_name/link_token; unit — the filled template carries the perch dir as ONE argv element (the multi-word/space path shape the argv-fill hazard exists for) and a template WITHOUT the key is byte-identical pre/post (the N-1 guarantee); int — a real spawned shell binary given {perch_dir} resolves a shell_file frame's perch-relative path to the landed blob and proves the read.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8353843Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8353924Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354011Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354092Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354168Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354248Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354326Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354406Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354497Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354577Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354821Z               "path": "docs-site/src/shells/frames.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354906Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8354979Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355064Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355140Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355221Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355308Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355393Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355464Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355585Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355666Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355787Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355873Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8355945Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356030Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356114Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356194Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356401Z               "path": "crates/spt/tests/shell_perch_dir_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356486Z               "line": 55
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356563Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356639Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356716Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356791Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356878Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8356959Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357153Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357240Z               "line": 1367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357507Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357589Z               "line": 1462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357664Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357817Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8357936Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8358011Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8358088Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8358209Z       "id": "REQ-SHELL-PERSISTENT-BOOT-RESTORE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8367933Z       "title": "A `persistent` SHELL COMES BACK AFTER A NODE RESTART, WHICH IS THE ONE CASE THE CONTRACT'S OWN SENTENCE PROMISES AND THE IMPLEMENTATION NEVER HANDLED. CONTEXT.md states it plainly -- a persistent shell is automatically brought online whenever its owner endpoint is online -- and the shipped code honors that across a graceful suspend->wake rest edge ONLY. A machine restart produces no such edge and there is no boot-time restoration at all, so after a reboot every persistent shell on the node stays down until a human runs `relink` by hand, with no surface saying so. Field, HFENDULEAM 2026-08-01: the fleet came up at 01:11 and NOT ONE persistent shell came back; the two instances that did were relaunched by a human at 01:27, sixteen minutes later. TWO INDEPENDENT GATES, both of which must fall or the promise stays broken. GATE 1, no restoration path: the five launch sites all require either an explicit command, a rest edge, or a `wake_command` the adapter may deliberately not declare, and daemon boot starts only the servicehost sweep and the wake reconciler. GATE 2, the stale record blocks the cascade even when an edge DOES arrive: the to_active arm gates on the RECORDED status being offline, and a machine death breaks no link, so the close that would write offline never runs and the record says online over a corpse forever. LEG (a) HEALS THE RECORD TO THE TRUTH, with a BIRTH-STAMPED probe rather than bare pid liveness -- a pid namespace resets at boot, so a corpse pid can be REUSED by an unrelated process, and a reused pid reads alive, makes the derived status read online, and makes `relink` refuse SHELL_ALREADY_ONLINE: the one command that recovers the instance refusing on the very state that is wrong. TWO STAMPS ARE PARKED, NOT ONE, AND THE REASON IS A PLATFORM ASYMMETRY THAT WOULD OTHERWISE SHIP SILENTLY BROKEN ON LINUX: `process_started_at` returns a Windows FILETIME (absolute, comparable across boots) but on Linux returns field 22 of /proc/<pid>/stat, which is JIFFIES SINCE BOOT and resets every boot, so a value recorded before a restart is indistinguishable from a fresh one after it. The NATIVE stamp is therefore used for one question only -- the same-pid-different-process PAIR test within a single boot, mirroring `liveness::relay_liveness` -- and an ABSOLUTE epoch-ms launch stamp is parked beside it for the cross-boot question. LEG (b) IS A ONCE-PER-DAEMON-GENERATION BOOT SWEEP relaunching persistent instances whose owners are online, and its discriminant is THE LAUNCH STAMP PREDATES THE BOOT INSTANT, which preserves the class-c force-kill ruling BY CONSTRUCTION rather than by a second rule: a force-kill during steady-state operation leaves a corpse launched AFTER boot, so it is never spontaneously relaunched and the mid-deploy exe-overwrite hazard that ruling protects is untouched. A NAMED SLACK CONSTANT absorbs boot-instant jitter so a process launched moments after boot is never misclassified as a corpse. Gate: impl -- the two stamps parked at the two production pid-write sites (the census is authoritative: five LAUNCH sites funnel through exactly TWO pid writes), the birth-stamped death probe, the record heal in the daemon-side reconciler guarded on an actual change of the recorded value, the boot-instant helper on both platforms, and the boot sweep with its predates-boot discriminant plus slack; unit -- a reused pid (same pid, different birth stamp) reads GONE where bare-pid liveness reads alive (the row the shipped probe cannot pass), a same-pid-same-birth process reads HELD, the heal writes offline over a stale online record and writes NOTHING when the record already matches the truth (the guard asserted by counting writes, since a heal that rewrites every cycle passes any state-only assertion), a corpse launched BEFORE the boot instant is eligible for restore while one launched AFTER it is NOT (the class-c pair, asserted together since either alone passes an implementation that restores everything or nothing), and an instance whose OWNER is offline is not restored even though its corpse predates boot.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368125Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368204Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368290Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368367Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368444Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368519Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368600Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368687Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368806Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8368881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369057Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369142Z               "line": 391
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369222Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369297Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369379Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369461Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369551Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369631Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369828Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369913Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8369990Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370180Z               "path": "crates/spt-daemon/src/shellhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370261Z               "line": 565
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370414Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370523Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370604Z               "line": 614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370687Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370762Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370872Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8370958Z               "line": 658
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371219Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371354Z               "line": 696
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371434Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371627Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371711Z               "line": 773
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8371977Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372054Z               "line": 840
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372359Z               "path": "crates/spt-store/src/proc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372444Z               "line": 348
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372525Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372707Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372797Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8372945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373060Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373145Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373218Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373298Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373374Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373454Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373542Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373632Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373707Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373789Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373871Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8373956Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374140Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374226Z               "line": 1144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374549Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374634Z               "line": 1231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374791Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374897Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8374978Z               "line": 1359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375244Z               "path": "crates/spt-daemon/src/shellwake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375330Z               "line": 1885
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375526Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375640Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375721Z               "line": 443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375879Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8375983Z               "path": "crates/spt-store/src/shellinfo.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376075Z               "line": 488
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376152Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376226Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376307Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376385Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376461Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376537Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8376632Z       "id": "REQ-SHELL-RELINK-FORCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389269Z       "title": "`spt shell relink --force` STOPS A RUNNING SHELL BINARY, PROVES IT STOPPED, AND ONLY THEN RELINKS -- and the already-online refusal stays the DEFAULT, because an unflagged relink that silently killed a running binary would make the recovery verb destructive. Today `relink` is the online switch for an OFFLINE instance and refuses `AlreadyOnline` when the DERIVED liveness probe (REQ-HAZARD-SHELL-STALE-ONLINE: local, record-independent) says the binary is really up; the field ask (releases#6) is the instance that IS up and needs a stop-then-restart without churning its canonical id through teardown+spawn. The stop half is the EXISTING link-break close (`shellhost::close_shell`, REQ-SHELL-2): pre_close instruction, close_timeout_ms termination window, the AUTHENTICATED force-kill (REQ-SHELL-KILL-AUTHENTICATED), link token retired to RETIRED_TOKEN_FILE so pending spool rows survive the rotation, drive slot + tunnel cleared. No second stop path is minted -- a force relink that closed the link any other way would be a second, divergent definition of a link-break. TWO REFUSALS ARE PART OF THE DELIVERABLE, NOT HARDENING AROUND IT. (1) EPHEMERAL REFUSES: `close_shell`'s divergence is `ephemeral => TornDown` -- perch and spool history ERASED, mint slot freed -- so a stop-then-restart built on it converts an ephemeral instance into a teardown and then relinks a record that no longer exists. Force therefore refuses on `ephemeral` with its own diagnostic BEFORE the close runs; an erase is irreversible and a refusal is recoverable, the same polarity KNOWN-HAZARDS applies to every perch-directory decision. THE REFUSAL NAMES THE ESCAPE (doyle, 2026-08-04): it states that an ephemeral instance has no stop-and-restart shape and points at the teardown + spawn pair that does what was meant, so the refusal TEACHES rather than dead-ends -- a consumer who is told only 'no' discovers the reason by losing a spool somewhere else. (2) A SURVIVOR REFUSES THE RELAUNCH: `close_shell` returns `Ok(Offline)` even when it printed `SHELL_CLOSE_SURVIVOR` -- the kill can be REFUSED by the pid+birth authentication (a recycled pid), or the binary can outlive the window -- and launching there yields TWO binaries for one instance, one of them unreachable through the retired token and invisible to the record. Force re-probes the recorded pid after the close and refuses the launch while it is still alive, naming the pid, rather than doubling the instance. THE RE-PROBE IS THE KILL PATH'S OWN AUTHENTICATION, NEVER A BARE PID-ALIVE CHECK (doyle, 2026-08-04): pid reuse is MEASURED on this fleet (a same-boot recycle inside 30s, both processes user-owned), so a bare probe manufactures a false survivor and the refusal then names an innocent process -- it runs `relay_liveness` over the pid+birth PAIR, the identical predicate `kill_shell_at` authenticates with, and the diagnostic states WHICH verdict it got (pair matched = our binary outlived the close; a live pid with no stamp = survivor and recycled pid indistinguishable; unprovable identity) so a reader can tell a true survivor from a stale record. The pair is captured BEFORE the close, because the close retires the record it lives in -- `close_shell` removes the pid file and an authentication-refused kill retires it too, so a probe reading the perch afterwards finds nothing and calls every survivor a success. A pid whose stamp DISAGREES reads Gone and RELAUNCHES: our binary is genuinely dead and the number was recycled, which is the case a bare probe would have called a survivor. Neither refusal is inferable from `CloseOutcome`, which is why the force arm carries them rather than the close. CROSS-NODE WITHOUT A WIRE BUMP: `shell_link_remote` already carries `args: &[String]` and the serve's SHELL_LINK_RELINK arm ignores args today, so an OLD peer handed a force flag runs a PLAIN relink and replies `ok: already online` -- the caller would read its force as honored. The discriminator needs no new op and no version gate: when force was requested, `already online` is a FAILURE, not the goal state. The serve's idempotent-ok reading of AlreadyOnline is correct for an unflagged relink and false under the flag, so the flag changes how the reply is read on both sides. Gate: doc -- the shells overview states the flag, both refusals, and the cross-node skew reading, since the ephemeral refusal is the one a consumer will otherwise discover by losing a spool; impl -- the flag on the CLI verb, the force parameter threaded through relink_shell_from/relink_shell, the pre-close ephemeral refusal, the post-close survivor probe, the remote arm passing the flag and re-reading `already online` as failure; unit -- an ephemeral instance is REFUSED and its perch SURVIVES the call (asserted together: a refusal that still erased would pass a return-value assertion alone), a surviving pid refuses the launch and NO second binary is spawned, an unflagged relink on a genuinely-online instance still refuses AlreadyOnline (the default is not vacuously widened), and a forced relink on an already-OFFLINE instance is the plain relink (the flag is not a second code path for the ordinary case); int -- the e2e stops a real running mock shell binary and relinks it under the SAME canonical id, with the pre-close/kill/relaunch ordering observable rather than assumed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389473Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389555Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389635Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389744Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389827Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389903Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8389982Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390058Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390144Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390230Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390399Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390480Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390751Z               "path": "docs-site/src/shells/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390839Z               "line": 121
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390914Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8390990Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391066Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391149Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391239Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391319Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391515Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391606Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391758Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8391882Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392006Z               "line": 568
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392273Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392359Z               "line": 660
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392442Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392631Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392713Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8392916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393025Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393112Z               "line": 864
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393379Z               "path": "crates/spt-net/src/net/shelllink.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393465Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393621Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393722Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393803Z               "line": 23506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393883Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8393955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394056Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394132Z               "line": 23566
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394212Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394385Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394470Z               "line": 23576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394719Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394799Z               "line": 23615
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394880Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8394957Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395038Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395118Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395203Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395323Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395534Z               "path": "crates/spt/tests/shell_relink_force_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395616Z               "line": 78
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395693Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395769Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395844Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8395921Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396013Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396093Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396327Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396412Z               "line": 1196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396684Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396765Z               "line": 1244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396846Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8396918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397037Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397122Z               "line": 1279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397385Z               "path": "crates/spt-daemon/src/linkhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397471Z               "line": 1301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397548Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397624Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397724Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397815Z               "line": 32361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397892Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8397972Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8398051Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8398127Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8398204Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8398279Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8398397Z       "id": "REQ-SOFT-END-PRESERVES-LIVE-LISTENER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8403720Z       "title": "F-2 (REMOTE-TRUTH triage §F-2, field-repro'd hall-bf 2026-07-04): a /clear must not sever a SURVIVING poll listener's relay address — post-clear owl-path send hit NO_PERCH while ready was present and the inject path healthy. ROOT (source-certain): the relay registry row (id→addr + owning pid, registered by the LISTENER process itself at PollListener::bind, listener.rs:109) is DELETED by the adapter's soft `api session-end` (reporting.rs:231) fired for the DEPARTING session at /clear; but the poll listener SURVIVES /clear (a session-independent process, still bound on its port), so the deletion destroys a TRUE row. The C-2 boundary re-stamp (REQ-HAZARD-BOUNDARY-READY-STRAND) restores ready + status online but CANNOT re-register — only the listener process knows its socket addr — so every subsequent send lookup misses → NO_PERCH forever (until a listener restart re-binds). FIX: the SOFT arm of cmd_session_end unregisters CONDITIONALLY through the single liveness resolver (liveness::is_registry_entry_alive — the KH 2.5-aware resolver clean_stale_entries routes through): a row whose owner is still ALIVE is PRESERVED (the row is LISTENER-scoped truth, not session-scoped; the listener outliving /clear is the designed shape), a dead/offline row is removed (today's cleanup kept). The ERASE arm stays unconditional (a hard wipe orphans any listener; its row dies with the endpoint). Every legitimate teardown keeps its OWN unregister untouched: PollListener close/close_busy/Drop (listener.rs) and the stop verbs (cli.rs:5574/:10924). Defense-in-depth unchanged: a wrongly-preserved dead row still self-heals at delivery (deliver.rs failed-dial sweep, REQ-HAZARD-REGISTRY-STALE-CLEAN). Red-first: soft session-end with a live registered owner → row survives and lookup still resolves (pre-fix: deleted → NO_PERCH).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8403876Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8403958Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404039Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404119Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404205Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404282Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404420Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404505Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404583Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404663Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404749Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404829Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8404912Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405021Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405107Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405183Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405260Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405340Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405469Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405561Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405640Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405721Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405806Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405887Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8405972Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406162Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406244Z               "line": 1845
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406506Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406587Z               "line": 1867
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406849Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8406934Z               "line": 1886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407010Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407087Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407164Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407240Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407316Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407397Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8407512Z       "id": "REQ-SPAWN-COLLISION-GUARD-LIVE-DUP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8415581Z       "title": "W4 (LIFECYCLE-TRUTH): single-flight wake per endpoint — the WAKE/RESUME respawn seam must not launch twice for one wake. ROOT (perri parentage + recovered filing): one wake processed TWICE within 1s — broker (306368) spawned two identical `launch --cli ccs --id flynn --resume <sid>` 1s apart, both survived; check-then-spawn TOCTOU in the spawn-side guard. DAMAGE: duplicate-perch writers STOMP info.json (the duplicate's compact re-stamped an OLD sid over a fresh /clear rotation -> injects routed to the contended record and lost). FIX: single-flight wake per endpoint (claim on the perch record or broker-side in-flight set keyed by id; second wake within the window = no-op ack), and the spawn path re-checks liveness UNDER the claim. Int: two concurrent wake requests -> exactly one launch tree. #235 AMENDMENT (2026-08-29): the claim's stand-down was bounded by a 2s GLOBAL WAIT whose premise -- a spawn overrunning the ceiling is presumed dead and its claim leaked -- is MEASURED FALSE under battery load: the winner's ConPTY create simply runs past 2s, the loser's deadline expires, and the loser DOUBLE-CREATES (REQ-SPAWN-FRESH-TRUTHFUL falsified once at a W2 battery). Extending the clock only moves the window, because a wait bound is a LIVENESS PROXY. The holder is a THREAD IN THIS BROKER, not a process -- it takes the claim and walks the spawn inline stamping a phase at each step -- so the claim's presence already proves an in-flight spawn (the RAII guard releases on success, on an early error, and on a panic) and an existence probe of the holder would be a tautology. The observable is therefore PROGRESS: the claim carries its holder's last phase and the instant it was stamped, written at the breadcrumb sites that already announce each phase, and the gate stands down for as long as the holder keeps progressing -- however slow it is, with NO clock on a live holder. The ONE condition RAII cannot cover, a holder wedged forever inside one phase, is the only takeover: a claim stalled past its phase's wedge ceiling is taken over LOUDLY, the log line naming the phase and the elapsed that decided it. Ceilings are PER-PHASE and err large on the measured-slow phase (the ConPTY create), because taking over a live holder costs the duplicate session this requirement exists to prevent while waiting on it costs only latency; a ceiling is a wedge detector, never a performance budget. EACH CLAIM CARRIES A GENERATION and a guard releases ONLY ITS OWN: a wedged holder that is taken over may still complete and drop later, and a generation-blind release would free the SUCCESSOR's claim mid-spawn, re-opening this very double-create window one wake later. The availability-over-dup tradeoff of the retired arm survives in its honest form -- a taken-over holder that later completes lands in the AlreadyLive dup surface exactly as before, now reached on evidence of a stall instead of on elapsed time.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8415773Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8415853Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8415929Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416014Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416087Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416168Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416248Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416343Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416424Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416499Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416584Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416664Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416746Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8416941Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417022Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417293Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417381Z               "line": 8000
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417457Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417537Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417613Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417743Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417823Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417913Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8417990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418129Z               "path": "crates/spt-daemon/tests/wake_single_flight.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418210Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418286Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418500Z               "path": "crates/spt-daemon/tests/wake_single_flight.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418586Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418697Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8418906Z               "path": "crates/spt-daemon/tests/wake_single_flight.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419068Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419148Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419224Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419300Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419376Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419465Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419546Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419738Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419817Z               "line": 12723
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419898Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8419981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420090Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420170Z               "line": 12747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420329Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420438Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420519Z               "line": 12763
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420600Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420676Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420752Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420834Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420911Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8420986Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8421086Z       "id": "REQ-SPAWN-FRESH-TRUTHFUL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424460Z       "title": "REGISTRY-LIFECYCLE W3 (ADR-0041 decision 5, spawn-fresh): endpoint create is TRUTHFUL at the broker, atomically — spawn policies split Fresh/RejectExisting vs ResumeOrReuse; new KIND_SPAWN_FRESH wire verb with TYPED conflict (distinct kind fails LOUD on an N-1 broker vs a silently-ignored serde-defaulted field), sharing the single-flight/PTY spawn body; Fresh at AlreadyLive/lost-race returns the typed conflict NEVER Spawned(existing); CLI contract exit 1 + stable ENDPOINT_CREATE_CONFLICT:<id> token + no attach + no state mutation + never kills the live session; omitted --resume keeps the documented create-default (fresh-and-conflict, same as explicit --create); preflight stays UX-only (cannot close TOCTOU). Gate: impl — policy split + verb + CLI contract; unit — intent-aware decision matrix; int — create-over-live E2E (exit 1, exact token, no attach, same broker PID) + concurrent-fresh race (one Created one Conflict, never two children, never Reused-as-success) + mixed fresh/resume race + offline/raw-Active+stale-ledger create + N-1 IPC loud-fail never-Created; doc — ADR-0041 + CLI reference regen (docs-drift gate: xtask gen, no internal codes in clap help).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424562Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424638Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424719Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424797Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424873Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8424953Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425030Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425107Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425197Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425282Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425493Z               "path": "docs/adr/0041-endpoint-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425578Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425660Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425736Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425812Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8425964Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426046Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426131Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426323Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426403Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426672Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426752Z               "line": 835
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8426955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427064Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427149Z               "line": 5974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427412Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427496Z               "line": 6356
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427763Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427853Z               "line": 8132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8427931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428126Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428207Z               "line": 364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428284Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428360Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428483Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428570Z               "line": 377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428646Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428831Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8428909Z               "line": 546
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429252Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429341Z               "line": 2992
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429471Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429647Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429736Z               "line": 4624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429812Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8429987Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430067Z               "line": 4722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430326Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430453Z               "line": 4759
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430531Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430612Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430692Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430773Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430855Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8430941Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431016Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431141Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431222Z               "line": 126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431303Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431499Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431579Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431655Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431848Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8431931Z               "line": 203
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8432008Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8432091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8432209Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8435662Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8435752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8435833Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8435972Z               "path": "crates/spt-daemon/tests/spawn_truth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436143Z               "line": 282
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436438Z               "path": "crates/spt/tests/run_no_dup_session_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436519Z               "line": 310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436602Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436677Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436753Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436829Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8436922Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437058Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437241Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437330Z               "line": 5072
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437406Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437481Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437558Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437633Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437709Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437789Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8437890Z       "id": "REQ-SPOOL-TAKE-AUDIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8438786Z       "title": "W5 (LIFECYCLE-TRUTH, RCA cost: proving WHO took delivered=1 rows burned an hour): the spool records the taker per row — leg enum (relay-backlog / hook-poll / idle-inject / psyche) + sid/pid + taken_at ms — surfaced by a --json debug read. Additive column, no schema break (delivered rows already retained).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8438882Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439077Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439159Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439239Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439320Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439401Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439497Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439582Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439663Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439740Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439826Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439906Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8439988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440108Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440249Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440515Z               "path": "crates/spt-daemon/src/relay.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440604Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440685Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440862Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8440942Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441243Z               "path": "crates/spt-msg/src/ready.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441333Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441406Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441590Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441677Z               "line": 597
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441749Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8441939Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442021Z               "line": 615
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442097Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442278Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442355Z               "line": 714
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442617Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442699Z               "line": 794
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442774Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8442954Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443035Z               "line": 854
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443109Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443237Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443343Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443434Z               "line": 703
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443509Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443691Z               "path": "crates/spt/src/api/delivery.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443772Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443847Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8443925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444029Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444105Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444307Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444406Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444491Z               "line": 2519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444564Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444735Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444816Z               "line": 2565
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444893Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8444974Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445054Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445140Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445227Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445307Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445383Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445460Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445547Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445627Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445702Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445806Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445893Z               "line": 1152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8445974Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446164Z               "path": "crates/spt-store/src/spool.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446241Z               "line": 1192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446317Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446393Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446479Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446556Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446632Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446707Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8446852Z       "id": "REQ-STAMP-CONVERGENCE-ORDER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449442Z       "title": "RETIRED at W2 verify-first (doyle 2026-07-22): the C3 poll-vs-reap ordering race (hertz emphasys RCA 2026-07-16, P1) was ALREADY CLOSED by REQ-CONTROL-STAMP-CONVERGENCE (ADR-0041 decision 4, REGISTRY-LIFECYCLE W2 build todlando 2026-07-17 — one day after the RCA). Code-verified chain: the exit-waiter reap (broker.rs stamp_reaped) bumps a per-endpoint StampSlot generation UNDER the stamp-write serial then clears (the comment names the emphasys C3 window); the KIND_SESSIONS handler snapshots stamp_gen under the log lock; converge_perch_stamps validates snap_gen under the same write serial and REFUSES stale (STAMP_STALE_SKIP) — a pre-reap snapshot can never relatch controlled=true. Full stage coverage rides that REQ: unit stale_snapshot_stamp_write_refused_after_reap_generation_bump + int endpoint_lifecycle.rs:488. Kept as a stable pointer; no build owed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449551Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449632Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449709Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449794Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449880Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8449961Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450038Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450123Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450205Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450281Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450363Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450447Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450529Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450606Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450687Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450767Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450851Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450923Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8450999Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451126Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451202Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451283Z       "id": "REQ-START-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451474Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451560Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451637Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451717Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451793Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451874Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8451947Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452032Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452113Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452242Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452319Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452409Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452494Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452567Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452681Z               "path": "crates/spt-store/src/seed.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452762Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452843Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8452920Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453000Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453081Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453162Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453249Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453324Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453404Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453484Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453566Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453749Z               "path": "crates/spt-store/src/seed.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453831Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8453984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454093Z               "path": "crates/spt-store/src/seed.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454174Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454246Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454323Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454398Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454475Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454552Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454623Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454717Z       "id": "REQ-START-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454904Z       "title": "Harness-hosted startup: api seed then listen",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8454989Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455071Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455148Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455223Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455300Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455381Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455453Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455543Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455624Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455700Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455777Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8455914Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456000Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456191Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456271Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456429Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456539Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456619Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456877Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8456958Z               "line": 839
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457030Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457106Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457183Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457258Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457344Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457426Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457616Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457703Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457778Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457854Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8457969Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458046Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458131Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458216Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458394Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458478Z               "line": 1829
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458735Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458814Z               "line": 1862
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8458923Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459087Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459162Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459243Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459320Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459392Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459477Z       "id": "REQ-START-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459635Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459730Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459806Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459882Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8459959Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460040Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460121Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460197Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460283Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460364Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460445Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460521Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460603Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460688Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460885Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8460965Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461238Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461322Z               "line": 227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461649Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461733Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8461987Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462067Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462143Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462321Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462410Z               "line": 36
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462720Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462802Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462879Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8462954Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463035Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463112Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463203Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463282Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463470Z               "path": "crates/spt/tests/contract_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463551Z               "line": 465
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463626Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463703Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463780Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463861Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8463940Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464021Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464211Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464300Z               "line": 531
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464376Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464453Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464558Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464643Z               "line": 552
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464769Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8464953Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465035Z               "line": 562
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465287Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465369Z               "line": 1830
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465450Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465621Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465751Z               "line": 1863
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8465907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466008Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466089Z               "line": 1896
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466164Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466241Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466314Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466395Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466469Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466541Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466633Z       "id": "REQ-START-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466765Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466855Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8466936Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467008Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467085Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467160Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467241Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467323Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467409Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467479Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467560Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467662Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467738Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8467933Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468014Z               "line": 997
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468090Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468166Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468248Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468366Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468457Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468534Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468611Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468686Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468772Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468848Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8468931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469114Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469200Z               "line": 2304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469285Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469369Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469493Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469570Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469647Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469722Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8469808Z       "id": "REQ-START-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472461Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472556Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472631Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472757Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472833Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472913Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8472994Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473076Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473148Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473233Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473314Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473486Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473572Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473896Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8473987Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474064Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474139Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474215Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474292Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474379Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474658Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474738Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474822Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8474898Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475013Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475095Z               "line": 218
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475170Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475352Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475443Z               "line": 227
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475518Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475595Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475700Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475781Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475856Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8475934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476038Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476114Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476200Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476434Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476515Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476602Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476777Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476859Z               "line": 944
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8476931Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477011Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477082Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477164Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477279Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477363Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477439Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477549Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477631Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477782Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477859Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8477940Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478020Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478101Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478179Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478288Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478368Z               "line": 364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478440Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478621Z               "path": "crates/spt-runtime/src/resolve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478707Z               "line": 377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8478861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479060Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479128Z               "line": 1073
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479208Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479279Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479365Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479495Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479574Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479651Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8479736Z       "id": "REQ-STORE-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8480498Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8480587Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8480668Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8480793Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8480869Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8480954Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481026Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481117Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481198Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481274Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481350Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481441Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481517Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481714Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481794Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481870Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8481946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482066Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482141Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482295Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482410Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482490Z               "line": 162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482569Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482646Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482755Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482844Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8482920Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483116Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483259Z               "line": 314
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483341Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483525Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483608Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483756Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483864Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8483951Z               "line": 578
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484022Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484261Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484347Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484422Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484609Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484694Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8484962Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485037Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485308Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485387Z               "line": 184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485651Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485734Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485811Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8485998Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486073Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486378Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486465Z               "line": 226
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486722Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486799Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486880Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8486956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487061Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487176Z               "line": 63
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487439Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487520Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487594Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487666Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487744Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487825Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487909Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8487994Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488075Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488147Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488233Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488313Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488505Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488590Z               "line": 842
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488666Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8488858Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489044Z               "line": 852
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489125Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489315Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489402Z               "line": 874
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489477Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489712Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489801Z               "line": 890
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489877Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8489954Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490069Z               "path": "crates/spt-store/src/branchstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490149Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490410Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490489Z               "line": 598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490804Z               "path": "crates/spt-store/src/contextstore.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490889Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8490961Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491147Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491232Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491311Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491490Z               "path": "crates/spt-store/src/project.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491572Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491649Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491725Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491801Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491872Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8491950Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8492025Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8492130Z       "id": "REQ-STORE-CONTEXT-BRANCH-FILL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8493581Z       "title": "#1 SI-1 (RCA, operator-promoted 2026-07-03): the context store (tracked/.seed.git) holds ZERO p-* branches on a box with months of live-agent use, while kitsubito/enlyzeam stores carry them. Context commits never land -> picker history has no store source (REQ-PICKER-PROJECT-HISTORY-TRUTH's fallback ships regardless, but the store must ALSO fill). RCA the contextstore write->branch-commit path with evidence (commune-ingest/context-commit regression vs store re-init), contrast the healthy stores, land whatever fix the RCA names. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #1 SI-1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8493714Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8493795Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8493872Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8493948Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494024Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494100Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494178Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494249Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494382Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494463Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494639Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494729Z               "line": 664
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494802Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494883Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8494958Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495044Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495127Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495212Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495407Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495489Z               "line": 386
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495754Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495840Z               "line": 1004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495919Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8495994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496104Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496186Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496262Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496342Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496444Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496524Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496605Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496681Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496754Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496877Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8496972Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497054Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497239Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497320Z               "line": 3297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497402Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497478Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497554Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497635Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497712Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497830Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8497911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498017Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498103Z               "line": 3223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498361Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498450Z               "line": 3250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498601Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498707Z               "path": "crates/spt-live/src/ingest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498784Z               "line": 649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498859Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8498930Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8499084Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8499159Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8499235Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8499309Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8499418Z       "id": "REQ-STREAM-INFOS-SERVER-FILTER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501178Z       "title": "REGISTRY-LIFECYCLE W1 (ADR-0040 decision 2, hertz defect B leg 2): broker stream_infos excludes initiated_locally rows SERVER-SIDE (retired already excluded) before cloning/serializing to the dispatcher — the O(history) IPC enumeration cost dies at the source. Dispatcher keeps its client-side guard (double-filter harmless; N-1 compatible both directions: older dispatcher skips those rows anyway, older broker just keeps the old cost). Gate: impl — server-side filter; unit — local rows absent from the reply while peer-initiated rows with bytes remain, opener/re-attach enumeration semantics unchanged.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501322Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501407Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501488Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501565Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501646Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501721Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501856Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8501941Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502026Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502107Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502195Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502280Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502471Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502557Z               "line": 9551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8502718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506289Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506395Z               "line": 1951
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506474Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506554Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506708Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506803Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506883Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8506965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507099Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507188Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507270Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507352Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507428Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507508Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507595Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507681Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8507962Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508052Z               "line": 3224
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508128Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508209Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508282Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508362Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508443Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508515Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8508621Z       "id": "REQ-STREAM-LEASE-CLASSES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512168Z       "title": "REGISTRY-LIFECYCLE W2 (ADR-0040 decision 6 + ADR-0041, emphasys C2 P0): streams declare a lifetime class at open — RC attach/view streams are ConnectionBound (opener conn EOF means the target sees FIN, serve_attach runs detach_session, controller slot + CONTROLLED stamps clear — a dead viewer can never pin a controller across its own connection death; today the raw-closed viewport attach stream is restart-durable forever); inter-brain streams stay Durable (NEVER globally retire on Brain disconnect — brain-swap correctness depends on it). Late-close identity validated (stale opener A close cannot evict newer controller B — rides ADR-0038 Amendment fix-6 generation tokens + W1 seat teardown machinery; same neighborhood, built once per the standing C2 coordination ruling). Lifetime class = additive open field, absent = Durable (N-1 openers keep exact current semantics). Gate: impl — class at open + ConnectionBound EOF chain; unit — class routing + absent-defaults-Durable + late-close identity refusal; int — raw viewport close frees the controller full-chain incl. across broker restart, brain_swap/daemon_refresh/redispatch legs stay green; doc — ADR-0040/0041.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512277Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512362Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512445Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512521Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512601Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512677Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512760Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512887Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8512978Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513074Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513350Z               "path": "docs/adr/0040-bounded-stream-seat-lifecycle-one-way-terminal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513436Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513516Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513751Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513836Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8513985Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514188Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514273Z               "line": 906
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514543Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514629Z               "line": 1985
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514895Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8514978Z               "line": 5952
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515054Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515239Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515331Z               "line": 6099
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515482Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515587Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515674Z               "line": 6323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515759Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515845Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8515951Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516031Z               "line": 9440
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516112Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516304Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516446Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516523Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516703Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516788Z               "line": 1191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516864Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8516950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517063Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517148Z               "line": 859
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517229Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517311Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517387Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517501Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517588Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517669Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517748Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517883Z               "path": "crates/spt-daemon/tests/endpoint_lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8517968Z               "line": 555
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518045Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518121Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518198Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518278Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518364Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518445Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518522Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518626Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518712Z               "line": 12334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518789Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8518866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519055Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519142Z               "line": 1904
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519404Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519486Z               "line": 2515
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519571Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519703Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519779Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519861Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8519941Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8520017Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8520118Z       "id": "REQ-STREAM-LIFETIME-CLASS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536288Z       "title": "RESCOPED at W2 activation 2026-07-22 (doyle verify-first, C3-retirement precedent): the CLEAN-CASE chain this REQ was minted for is ALREADY SHIPPED under REQ-STREAM-LEASE-CLASSES / ADR-0040 decision 6, verified against @7c0f12d — StreamLifetime is opener-declared and on the wire, serde-default Durable so N-1 openers keep exact today-semantics (msg.rs:810-836 + the additive-wire unit @msg.rs:1408); rc attach/view is the SOLE ConnectionBound opener (attach.rs:667-677); the broker binds the class at open (broker.rs:5689) and nethost carries it per StreamEntry (nethost.rs:1059-1076); the conn-exit sweep FINs each ConnectionBound stream toward its target and terminal-retires the local row while Durable rows never enter it (broker.rs:4118-4123/4227-4235/4429-4446); the target's serve_attach EOF arm runs detach_session_gen(serve_gen) so controller/viewer stamps clear on exactly one generation (attach.rs:580-597); the late-close gen guard (broker.rs:2179-2192, unit @8416) and converge_perch_stamps close the race; int coverage rides endpoint_lifecycle.rs:241. Building that again would re-implement shipped code — the C3 lesson. WHAT REMAINS, and what this REQ now owns: RESTART-REPLAY RE-ESTABLISHMENT. ADR-0038 dispatch replay re-serves every retained opener Attach across a dispatcher generation, and a ConnectionBound opener REPLAYING is a class contradiction — the conn that declared the class cannot exist after the restart that killed it, so re-serving resurrects a seat whose declared lifetime already ended. FIX: the dispatcher's restart-durable classification (ADR-0038 decision 2, dispatch.rs first_line) gains lifetime, and the replay filter TERMINAL-RETIRES ConnectionBound openers instead of re-serving them. Deliberately PRECISE, not ADR-0038's rejected clear-table-on-restart: Durable/brain-swap semantics are untouched and the brain_swap / daemon_refresh / redispatch D1+D1b families staying green IS the proof. The filter runs UPSTREAM of the W1 idempotence key (endpoint/session, by, conn, gen, from_seq) — a filtered opener never reaches serve, so the two mechanisms compose rather than overlap. Gate: impl — lifetime on the replay classification + the terminal-retire filter; unit — the filter predicate (ConnectionBound retires / Durable replays / unclassifiable stays terminal as today); int — RED-first: kill the rc opener raw, restart the broker, pre-fix the seat and CONTROLLED stamps re-establish via replay, post-fix they stay clear, with the D-legs green alongside. Kin REQ-STREAM-LEASE-CLASSES (the shipped clean case), REQ-ATTACH-IDEMPOTENT-REPLAY (downstream), REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT (the live no-FIN sibling, same wave). RESCOPE 2 — MEASURED 2026-07-22 (todlando, Leg A rig `restart_replay_lifetime.rs`, GREEN with its sibling probe passing): the FIX ABOVE IS NOT OWED. The premise was pre-registered as falsifiable by doyle BEFORE the rig was built, and the rig falsified it: in the residual ordering (dispatcher generation dies FIRST so no serve worker and no Served report, THEN the rc opener dies RAW with no detach frame) a fresh generation does NOT resurrect the seat — stamps stay clear and no DISPATCH line touches the dead opener's row. The population is closed BY COMPOSITION: the conn-exit sweep fires for this kill shape (`STREAM_CONNBOUND_RETIRE:<id>: opener conn exited — FIN + terminal retire`), the ConnectionBound opener row leaves the table entirely, its peer row carries the FIN as finished=true, and the worker's family-aware finished_row_is_terminal(Attach,true) retires it UNSERVED. TWO PRE-REGISTERED SUB-QUESTIONS ANSWERED, and the first is the non-obvious finding: (1) `retire` does NOT exclude from the CLAIM condition on this path — the dead opener's row is STILL in the dispatcher's claimable enumeration, merely finished=true, so what stops the replay sits DOWNSTREAM of the claim (retire-on-sight in the worker), which is ADR-0038 decision 1's `excluded by lifecycle state` arm and NOT its `removed from the enumeration` arm; (2) the sweep DID run for this kill shape. Consequently NO wire field (already settled independently: the re-served row registers Durable, class-blind by design at nethost.rs:1028-1041 / 1763-1771, so a lifetime field on the opener reply would report Durable for exactly the population a filter exists to catch) and NO broker-side enumeration filter are built. Stages drop to int ONLY — impl/unit are deactivated rather than pre-failed (the `activate, don't pre-fail` rule; the C2/C3 verify-first precedent), and the int evidence is the standing regression guard the property never had. SCOPE LIMIT STATED, NOT IMPLIED — and TIGHTENED 2026-07-22 (doyle rider, todlando self-flagged): the measurement rides the IN-PROCESS DUPLEX, which is the honest word and is tighter than the `loopback` this text first said. net_dial_loopback / open_loopback_pair yield a RecvHalf::Loopback duplex with NO QUIC ANYWHERE and NO idle timeout — a different transport leaf from RecvHalf::Quic; BindScope::Loopback plus a real net_dial WOULD be real QUIC over 127.0.0.1, and the two senses of `loopback` in this repo are NOT the same thing (the naming collision is itself an ADR-0040 amendment item, so future rigs pick their venue deliberately). Consequently the cross-node `conn.closed()` arm (nethost.rs:1000-1021) is a different mechanism reaching the same outcome and is NOT exercised, and a real-QUIC transport death sans FIN remains Leg B's instrument-first residual under REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536532Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536612Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536694Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536770Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536851Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8536937Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537018Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537323Z               "path": "docs/adr/0040-bounded-stream-seat-lifecycle-one-way-terminal.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537405Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537480Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537556Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537638Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537715Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537800Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537889Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8537965Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538042Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538126Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538211Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538321Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538469Z               "path": "crates/spt-daemon/tests/restart_replay_lifetime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538549Z               "line": 345
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538625Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538698Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538774Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8538854Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539032Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539117Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539197Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539275Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539351Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539426Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8539527Z       "id": "REQ-STREAM-OPENER-DURABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8542879Z       "title": "REDISPATCH-TRUTH W1 (ADR-0038, hertz fix B): stream classification identity is RESTART-DURABLE and independent of the evictable data ring — today reconstruction classifies via peek_first_line from ring seq 0, but StreamLog is a bounded 4096-transport-chunk ring (DEFAULT_STREAM_RING_CHUNKS, nethost.rs:111), so a high-traffic ACTIVE stream's opener/Request record evicts and replay classifies Unknown/Failed = active stream permanently abandoned. Pin an immutable bounded opener/classification fact (the complete first NDJSON record, or its derived family+cursor facts) OUTSIDE the data ring per broker-held inbound stream, held until stream close; recovery classifies from that metadata, never ring seq 0. Ring semantics and size untouched (enlarging the ring for a correctness fact is REJECTED). Gate: impl — the pinned opener fact + classification cutover; unit — classification survives full ring roll-over; int — production-path regression D2: push >4096 transport chunks on an active Attach (opener evicted), restart dispatcher, prove durable classification resumes the SAME operator stream. HEAVY nextest group at birth. Kin REQ-DISPATCH-CLAIM-RETRY, REQ-HAZARD-REDISPATCH-CONTROL-STEAL.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543067Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543149Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543234Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543313Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543389Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543466Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543548Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543628Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543713Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543790Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543872Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8543961Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544042Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544229Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544310Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544387Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544568Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544648Z               "line": 2142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544730Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544910Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8544991Z               "line": 9620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545069Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545259Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545336Z               "line": 1206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545413Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545646Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545728Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8545978Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546064Z               "line": 1186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546328Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546405Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546720Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546801Z               "line": 2075
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546876Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8546963Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547035Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547116Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547201Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547282Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547477Z               "path": "crates/spt-daemon/tests/redispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547558Z               "line": 570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547636Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547711Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547787Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547868Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8547956Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548040Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548227Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548308Z               "line": 2705
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548388Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548568Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548705Z               "line": 2730
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548856Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8548933Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8549095Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8549171Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8549244Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8549363Z       "id": "REQ-STREAMLOG-SUBSCRIBER-DISCIPLINE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553213Z       "title": "REDISPATCH-STALL W1 (ADR-0038 Amendment, fixes 2+3+4): StreamLog subscriber write discipline — (a) replay and live fan-out HALT at the first failed subscriber write and the failed subscriber is REMOVED, at ALL sites (attach replay, append, finish; PresenceLog mirrors ride the same change — today let _ = sub.write() discards errors and iteration continues, nethost.rs:322-346); (b) subscriber I/O moves OFF the StreamLog mutex: bounded per-subscriber writer queue, enqueue-under-lock / I/O-outside, overflow = detach + resume-from-cursor (the existing gapless-resume contract), never a producer stall; (c) attach worker completion + forwarding BOUNDED and cancelable — a poisoned brain subscriber cancels its paired serve/wire worker, no orphan forwarding legs (COORDINATE with DAEMON-LIFECYCLE C2 leases at build — same neighborhood, build once). Gate: impl — halt+remove all-sites + writer queue + cancelable pairing; unit — halt-at-first-failure removes the subscriber at each site + queue overflow detaches with cursor intact + producer append never blocks past enqueue; int — T1 (poisoned-replay halt) + T3 (producer latency flat under a wedged subscriber) + T4 (paired worker canceled on poison); doc — ADR-0038 Amendment. Kin REQ-HAZARD-REDISPATCH-STALL, REQ-CONN-POISON-ATTRIBUTION (the telemetry that caught it), REQ-EP-4 (PresenceLog contract unchanged above the write leaf).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553372Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553449Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553528Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553604Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553694Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553766Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553849Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8553973Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554060Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554141Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554360Z               "path": "docs/adr/0038-broker-stream-lifecycle-truth.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554446Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554526Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554597Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554751Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554836Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8554927Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555165Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555251Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555663Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555742Z               "line": 153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8555896Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556010Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556090Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556348Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556428Z               "line": 287
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556504Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556689Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556769Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556845Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8556922Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557032Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557112Z               "line": 489
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557189Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557266Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557375Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557455Z               "line": 525
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557609Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557713Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557794Z               "line": 544
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8557942Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558047Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558172Z               "line": 594
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558438Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558516Z               "line": 729
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558591Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558666Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558777Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8558854Z               "line": 744
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559052Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559128Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559237Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559322Z               "line": 1902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559585Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559669Z               "line": 1926
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8559928Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560012Z               "line": 2187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560156Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560266Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560346Z               "line": 2240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560419Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560495Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560576Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560651Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560739Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560819Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8560895Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561024Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561106Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561387Z               "path": "crates/spt-daemon/tests/redispatch_stall.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561519Z               "line": 404
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561600Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561674Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561750Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561825Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561914Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8561991Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562224Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562305Z               "line": 2911
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562562Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562645Z               "line": 2958
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562901Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8562983Z               "line": 2983
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563245Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563327Z               "line": 3019
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563402Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563584Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563666Z               "line": 3066
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563745Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563821Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8563928Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564009Z               "line": 3109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564083Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564159Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564269Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564354Z               "line": 3161
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564658Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564743Z               "line": 3201
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564815Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8564968Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565044Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565120Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565197Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565283Z       "id": "REQ-SUBNET-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565626Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565716Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565797Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565874Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8565945Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566026Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566107Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566189Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566274Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566350Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566431Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566514Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566603Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566799Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566880Z               "line": 272
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8566955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567150Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567235Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567310Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567487Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567568Z               "line": 12943
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567826Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567907Z               "line": 13554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8567987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568193Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568273Z               "line": 13614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568432Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568521Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568640Z               "line": 13749
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568712Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568789Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8568883Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569047Z               "line": 13799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569128Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569203Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569303Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569381Z               "line": 13976
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569457Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569626Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569708Z               "line": 14059
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8569957Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570035Z               "line": 14366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570111Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570277Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570359Z               "line": 15487
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570444Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570620Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570698Z               "line": 1254
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570773Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570845Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570921Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8570998Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571083Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571164Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571294Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571374Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571455Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571541Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571737Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571818Z               "line": 2441
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8571966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572113Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572200Z               "line": 34057
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572272Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572441Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572522Z               "line": 34303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572671Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572765Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572851Z               "line": 34310
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8572999Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573094Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573175Z               "line": 34374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573418Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573500Z               "line": 34391
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573572Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573752Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573834Z               "line": 34624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573911Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8573986Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574076Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574159Z               "line": 34749
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574405Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574483Z               "line": 34986
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574629Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574705Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574781Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574858Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8574933Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575008Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575093Z       "id": "REQ-SUBNET-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575356Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575447Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575523Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575599Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575675Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575752Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575829Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575905Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8575994Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576299Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576381Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576463Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576538Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576614Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576701Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576783Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576862Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8576939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577050Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577130Z               "line": 1811
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577282Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577393Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577473Z               "line": 9269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577548Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577734Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577851Z               "line": 1279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8577927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578119Z               "path": "crates/spt-daemon/src/nethost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578204Z               "line": 1489
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578280Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578358Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578471Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578552Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578629Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578852Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8578934Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579172Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579282Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579363Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579439Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579520Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579626Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579716Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8579979Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580059Z               "line": 429
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580338Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580418Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580498Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580667Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580747Z               "line": 13701
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580822Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8580991Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581076Z               "line": 14250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581281Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581381Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581461Z               "line": 15317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581535Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581610Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581686Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581810Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581897Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8581977Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582058Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582183Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582259Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582531Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582620Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582697Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582774Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582884Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8582968Z               "line": 1935
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583048Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583125Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583202Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583283Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583363Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583455Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583527Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583640Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583721Z               "line": 1105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583793Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8583964Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584045Z               "line": 34112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584288Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584423Z               "line": 38567
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584504Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584580Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584655Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584733Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584809Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584879Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8584965Z       "id": "REQ-SUBNET-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585213Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585307Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585437Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585511Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585587Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585668Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585745Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585831Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585911Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8585987Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586069Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586155Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586235Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586431Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586512Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586784Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586864Z               "line": 387
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8586941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587137Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587218Z               "line": 632
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587295Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587480Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587561Z               "line": 743
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587823Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8587944Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588019Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588203Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588285Z               "line": 434
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588588Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588669Z               "line": 445
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588750Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8588936Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589097Z               "line": 466
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589179Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589251Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589365Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589450Z               "line": 886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589608Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589717Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589798Z               "line": 897
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8589947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590061Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590143Z               "line": 957
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590219Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590294Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590409Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590491Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590567Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590751Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590828Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8590903Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8591034Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8591145Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8591227Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8594659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8594749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8594876Z               "path": "crates/spt-store/src/hostlabel.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8594959Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595298Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595388Z               "line": 14059
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595545Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595651Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595735Z               "line": 1281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595811Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8595963Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596039Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596133Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596213Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596295Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596377Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596461Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596543Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596743Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596824Z               "line": 2004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596901Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8596981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597100Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597182Z               "line": 2616
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597334Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597448Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597535Z               "line": 1079
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597688Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597797Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8597936Z               "line": 1677
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598011Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598083Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598189Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598260Z               "line": 1733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598393Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598616Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598697Z               "line": 1792
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8598850Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599056Z               "path": "crates/spt-net/src/net/replicate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599133Z               "line": 245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599429Z               "path": "crates/spt-store/src/hostlabel.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599515Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599591Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599773Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599853Z               "line": 34749
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8599934Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600107Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600182Z               "line": 34941
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600436Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600530Z               "line": 38533
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600611Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600688Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600761Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600845Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8600916Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601023Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601132Z       "id": "REQ-SUBNET-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601477Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601595Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601671Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601753Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601825Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601909Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8601986Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602077Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602149Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602444Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602544Z               "line": 60
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602620Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602697Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602773Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602849Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8602935Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603012Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603188Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603260Z               "line": 12943
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603336Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603521Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603609Z               "line": 15223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603689Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603860Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8603943Z               "line": 15317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604018Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604083Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604150Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604221Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604308Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604412Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604493Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604570Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604651Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604732Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604812Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8604957Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605028Z               "line": 34235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605266Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605446Z               "line": 34374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605529Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605600Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605680Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605756Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605834Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605910Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8605985Z       "id": "REQ-SUBNET-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607050Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607132Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607213Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607312Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607389Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607466Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607546Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607632Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607718Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607809Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607885Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8607956Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608042Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608124Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608204Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608352Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608434Z               "line": 143
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608749Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608838Z               "line": 1274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8608915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609078Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609190Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609271Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609343Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609579Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609665Z               "line": 475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609785Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8609969Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610075Z               "line": 1130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610184Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610381Z               "path": "crates/spt-daemon/src/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610466Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610546Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610738Z               "path": "crates/spt-daemon/src/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610819Z               "line": 50
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610899Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8610977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611085Z               "path": "crates/spt-daemon/src/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611166Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611330Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611438Z               "path": "crates/spt-daemon/src/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611520Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611786Z               "path": "crates/spt-net/src/net/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611866Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8611943Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612141Z               "path": "crates/spt-net/src/net/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612280Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612356Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612437Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612551Z               "path": "crates/spt-store/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612628Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612756Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8612933Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613023Z               "line": 15181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613309Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613381Z               "line": 1255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613461Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613572Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613648Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613724Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613810Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8613943Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614024Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614149Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614240Z               "line": 1006
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614320Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614406Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614503Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614583Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614667Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614757Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8614944Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615033Z               "line": 459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615110Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615297Z               "path": "crates/spt-daemon/src/pump/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615377Z               "line": 1992
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615588Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615701Z               "path": "crates/spt-daemon/src/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615793Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8615945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616064Z               "path": "crates/spt-net/src/net/serveprobe.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616146Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616451Z               "path": "crates/spt-store/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616536Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616613Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616689Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616799Z               "path": "crates/spt-store/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616884Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8616964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617045Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617159Z               "path": "crates/spt-store/src/attachment.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617238Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617497Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617576Z               "line": 34136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617658Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617735Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617821Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617901Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8617977Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8618060Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8618150Z       "id": "REQ-SUBNET-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8618798Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8618883Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619037Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619126Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619203Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619280Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619417Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619513Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619600Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619676Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619751Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619836Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8619970Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620049Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620167Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620248Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620325Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620501Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620583Z               "line": 14722
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620834Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8620922Z               "line": 14739
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621002Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621078Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621174Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621260Z               "line": 14792
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621421Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621517Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621599Z               "line": 14815
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621679Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621755Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621832Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621913Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8621998Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622080Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622162Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622242Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622327Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622416Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622644Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622724Z               "line": 34150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622806Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622883Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8622982Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623067Z               "line": 34183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623320Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623450Z               "line": 34192
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623526Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623607Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623678Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623755Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623831Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623907Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8623998Z       "id": "REQ-SUBNET-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8625584Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8625690Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8625767Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8625857Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8625932Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626015Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626095Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626186Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626271Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626348Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626429Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626519Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626600Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626682Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626839Z               "path": "crates/spt-daemon/src/machineid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8626925Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627002Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627078Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627196Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627283Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627586Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627667Z               "line": 312
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627742Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8627937Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628018Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628094Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628285Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628366Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628446Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628643Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628724Z               "line": 636
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8628877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629048Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629138Z               "line": 941
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629401Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629482Z               "line": 1101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629748Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629826Z               "line": 1157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8629973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630044Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630169Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630250Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630330Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630406Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630515Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630600Z               "line": 139
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630670Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630809Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630885Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8630961Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631047Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631128Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631205Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631281Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631371Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631448Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631524Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631633Z               "path": "crates/spt-daemon/src/machineid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631714Z               "line": 140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8631986Z               "path": "crates/spt-daemon/src/machineid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632063Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632225Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632339Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632426Z               "line": 1556
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632703Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632784Z               "line": 1578
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8632934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633058Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633152Z               "line": 1646
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633317Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633476Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633561Z               "line": 1728
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633642Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633720Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633795Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8633923Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8634000Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8634076Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8634162Z       "id": "REQ-SUBNET-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635274Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635364Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635449Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635526Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635603Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635689Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635768Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635853Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8635940Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636017Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636092Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636187Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636269Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636350Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636445Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636531Z               "line": 13800
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636779Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636860Z               "line": 13855
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8636937Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637146Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637228Z               "line": 13872
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637309Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637485Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637566Z               "line": 13895
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637819Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8637943Z               "line": 14367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638018Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638099Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638175Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638256Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638340Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638425Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638502Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638583Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638668Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638749Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638831Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8638921Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639097Z               "line": 34608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639180Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639260Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639364Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639442Z               "line": 34624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639523Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639599Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639679Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639761Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639838Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8639913Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8640022Z       "id": "REQ-SUBNET-ADMIN-CODE-JOIN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8642818Z       "title": "The join ceremony accepts EITHER subnet code: the SPAKE2 responder computes the member-key TOTP and the admin-key TOTP and admits a joiner proving either (ADR-0051 decision 1 — 'an admin key IS a membership key'). Indistinguishable from the joiner's side: the ceremony must not tell a joiner, or an observer of the exchange, WHICH key authenticated beyond what the protocol inherently requires — an oracle that separates admin codes from member codes turns every join attempt into a probe for which secret a machine holds. Rate limiting, transcript binding and replay defenses apply identically to both, so the second acceptable secret does not become the cheaper one to attack. Gate: doc — ADR-0051 decision 1 plus the CONTEXT.md two-key entry; impl — the responder's dual-code computation and admit path; unit — a member code joins, an admin code joins, a wrong code is refused identically to today, and the refusal/accept surface carries no key-kind discriminator.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8642962Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643043Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643123Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643200Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643277Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643358Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643437Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643532Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643613Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643835Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643921Z               "line": 42
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8643998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644079Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644212Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644294Z               "line": 187
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644375Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644450Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644531Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644608Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644699Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644779Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8644989Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645070Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645399Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645480Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645572Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645766Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645849Z               "line": 352
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8645924Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646163Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646249Z               "line": 396
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646328Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646404Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646519Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646601Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646752Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646872Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8646953Z               "line": 530
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647220Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647306Z               "line": 751
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647381Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647577Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647658Z               "line": 999
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647735Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647812Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647887Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8647968Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648054Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648131Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648216Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648297Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648383Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648465Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648711Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648797Z               "line": 484
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8648876Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649163Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649300Z               "line": 506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649590Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649672Z               "line": 548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649749Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649825Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8649943Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650025Z               "line": 1908
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650102Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650291Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650378Z               "line": 1955
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650458Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650650Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650736Z               "line": 2055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650816Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8650887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651008Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651088Z               "line": 2081
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651169Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651256Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651333Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651408Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651483Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651558Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8651669Z       "id": "REQ-SUBNET-ADMIN-RESURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8656461Z       "title": "Rotation re-surfaces the NEW admin key exactly once, to the human who just proved the OLD one, via a PARKED pending seed (ADR-0051 §2a + the parked-pending-key ruling, FF grill 2026-07-30). Choreography: after the revoke's admin gate passes, the pending admin seed is minted where the human is (never at the unattended rotation site), displayed with the same code-free capture-proof ceremony as create, proven captured, and PARKED on the rotation schedule BEFORE the tombstone write — so 'schedule exists but parked seed absent' is a corruption class, never a race. The window-close rotation ADOPTS the parked seed instead of minting; a later revoke in the same window re-displays the SAME parked key behind its own proofs (one pending key per window, however many humans capture it, one epoch bump at the close); --force is the same choreography with the window degenerate (park, rotate now, clear). DEGRADE, ruled: a close with the parked seed absent or corrupt rotates the MEMBER seed anyway — the evicted node must not stay inside member fabric waiting on admin choreography — keeps the OLD admin seed in force, and is LOUD (stderr + a node-scope notif naming the state and the recovery verb, revoke --force-rotate-seed); never a silent skip, never a bricked close. The parked seed is cleared on adoption. The member key never re-surfaces at revoke (show-code covers it). Gate: doc — ADR-0051 §2a; impl — the park/parked schedule fields, the adopt-not-mint rotation, the ceremony driver, and the degrade loudness; unit — park requires an existing entry, never overwrites within a window, round-trips, reads corrupt-as-absent; rotation adopts the parked seed and degrades member-only keeping the old admin key.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8656613Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8656695Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8656776Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8656855Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8656936Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657017Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657098Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657184Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657269Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657532Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657612Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657690Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657771Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657847Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8657975Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658062Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658147Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658353Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658433Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658710Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658790Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8658867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659021Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659133Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659224Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659488Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659569Z               "line": 148
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659840Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8659922Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660004Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660080Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660189Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660271Z               "line": 469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660347Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660527Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660671Z               "line": 481
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660747Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8660924Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661009Z               "line": 14990
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661086Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661162Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661253Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661329Z               "line": 15081
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661414Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661568Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661690Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661767Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661854Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8661940Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662014Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662095Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662176Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662262Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662336Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662455Z               "path": "crates/spt-daemon/src/pump/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662547Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662808Z               "path": "crates/spt-store/src/rotation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662894Z               "line": 250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8662975Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663061Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663167Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663252Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663327Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663404Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663486Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663566Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663647Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663723Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8663844Z       "id": "REQ-SUBNET-ADMIN-SEED-REPLICATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667201Z       "title": "Every member node holds BOTH subnet seeds — the admin seed replicates at join exactly as the member seed does — because empower verification and admin-code joins are LOCAL operations any member node must be able to serve without consulting a privileged peer (ADR-0051 decision 2; the mesh stays symmetric, authority rides a key rather than a node). Carries the NO-REVEAL invariant, which is the load-bearing half: there is no admin show-code, no QR re-provision, no `--json` field, no debug/diagnostic/error/log rendering of the admin seed ANYWHERE — it is displayed exactly once, at creation, and thereafter no node can leak what no node can reveal. A lost authenticator entry is irrecoverable by design (ADR-0051 decision 3): re-mint the subnet. The invariant binds tests too — a test that asserts the seed's VALUE by printing it is itself the leak (secret-probe discipline: never expand a secret into an observable sink). Gate: doc — ADR-0051 decisions 2 and 3; impl — admin-seed replication on the join path and the absence of every reveal surface; unit — a joined node holds both seeds and can verify an admin code locally, and no CLI/JSON/diagnostic output path emits the admin seed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667383Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667463Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667543Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667620Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667702Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667777Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667857Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8667944Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8668026Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8668111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8668245Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8668331Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8668412Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8668487Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672147Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672250Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672332Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672414Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672495Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672579Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672669Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672760Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8672977Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673058Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673216Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673431Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673517Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673793Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673873Z               "line": 571
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8673950Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674145Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674226Z               "line": 686
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674560Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674642Z               "line": 834
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674719Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674909Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8674991Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675071Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675151Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675226Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675303Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675388Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675472Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675553Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675630Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675717Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675797Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8675997Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676083Z               "line": 1814
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676345Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676431Z               "line": 928
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676565Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676641Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676722Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676798Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676875Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8676951Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8677060Z       "id": "REQ-SUBNET-ADMIN-SEED-ROTATION",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8680828Z       "title": "Evicting a node rotates BOTH subnet seeds, not just the member seed. ADR-0005 #10 made removal real revocation by rotating the seed a removed node still holds; the two-key model (ADR-0051) hands every member a SECOND durable secret, and `rotate_seed` does not touch it — so as of the two-key wave an evicted node keeps the admin seed forever. That is worse than residual admin authority: an admin key IS a membership key (REQ-SUBNET-ADMIN-CODE-JOIN), so the evicted node can REJOIN the subnet on its admin TOTP, and eviction becomes toothless against exactly the nodes that were trusted enough to hold elevated credentials. ADR-0051's consequences acknowledge admin-seed rotation as unassigned milestone work; this is that work. Minimum shape: the eviction path rotates both seeds and redistributes both over the same replication machinery the join path uses, with the one-deep prior-generation grace applying to the member seed as today (an admin seed has no re-provisioning surface, so its grace question is answered by the same replication, not by a reveal). Gate: doc — ADR-0051 amended with the rotation rule; impl — the eviction/rotation path covering both seeds; unit — a rotated subnet's admin seed changes, and a node holding only the pre-rotation admin seed neither verifies an admin operation nor rejoins.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8680980Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681066Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681147Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681224Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681304Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681381Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681462Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681552Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681638Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681905Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8681996Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682287Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682373Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682449Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682525Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682602Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682684Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682773Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682902Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8682979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683107Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683206Z               "line": 76
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683363Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683480Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683565Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683828Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683909Z               "line": 748
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8683987Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684171Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684258Z               "line": 766
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684529Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684616Z               "line": 1184
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684691Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8684878Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685020Z               "line": 304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685101Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685293Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685372Z               "line": 349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685531Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685635Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685720Z               "line": 468
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685796Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8685911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686013Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686099Z               "line": 524
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686175Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686257Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686337Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686414Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686500Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686581Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686662Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686776Z               "path": "crates/spt-daemon/tests/reseed.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686858Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8686934Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687019Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687101Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687178Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687267Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687348Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687539Z               "path": "crates/spt-daemon/src/seedproofx.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687630Z               "line": 1216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687706Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687897Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8687978Z               "line": 766
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688055Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688244Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688321Z               "line": 804
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688437Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688621Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688706Z               "line": 839
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688783Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8688860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689035Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689117Z               "line": 888
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689193Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689278Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689355Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689437Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689593Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689670Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8689775Z       "id": "REQ-SUBNET-COUNT-ROUTABLE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691497Z       "title": "Bug #2: a remote node endpoint count drifts (0/2, 1/3) because node_status_rows (cli.rs:5314) increments the per-node total unconditionally, counting non-routable Offline ghost rows; purge is not a registry eviction (it gossips a one-shot Offline row that is immortal on remote viewers — eviction is per whole-node only). Fix: routable-only denominator (total += status.routable()) keeping a separate raw count for the all-Offline liveness branch; plus per-row Offline-TTL eviction so purged endpoints stop accumulating on remote snapshots. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #2.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691587Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691670Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691750Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691835Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691917Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8691999Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692089Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692174Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692252Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692332Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692413Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692551Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692733Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692818Z               "line": 14012
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692891Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8692971Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693046Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693123Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693211Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693291Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693366Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693442Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693530Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693657Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693833Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693914Z               "line": 34861
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8693993Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8694068Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8694145Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8694222Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8694299Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8694373Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8694489Z       "id": "REQ-SUBNET-CREATE-CAPTURE-PROOF",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698147Z       "title": "`subnet create` proves the admin key was captured before anything persists (ADR-0051 §2b, FF grill 2026-07-30). Ceremony order, binding: the admin material displays FIRST — labelled otpauth URI + terminal QR, with NO current TOTP code anywhere on screen, because that absence is the proof's soundness (the typed-back code cannot be produced from what the screen shows, only from an authenticator that captured the seed); the human types a current admin code back, accepted within the same ±1-step window the pairing ceremonies use; the admin material is then cleared, scrollback included; and only then does the member material display, at the very end. Creation does not complete without the proof: the mint persists only after it, so a cancel, three wrong codes, or a non-interactive stdin (refused before any material is written into a pipe) leaves NO subnet — never a subnet whose admin key nobody holds, and decision 3's irrecoverability cost stays a choice rather than an accident of a missed scan. Gate: doc — ADR-0051 §2b; impl — the phased ceremony driver, the code-free capture display, the windowed proof check, and the proof-gated persist; unit — the capture display carries the provisioning material and none of the window's current codes, and the proof check accepts exactly the ±1 window.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698247Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698324Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698410Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698490Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698567Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698683Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698766Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698848Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8698930Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699237Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699338Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699415Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699495Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699571Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699653Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699739Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699819Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699896Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8699992Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700078Z               "line": 13044
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700335Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700421Z               "line": 13089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700673Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700750Z               "line": 13126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700825Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8700955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701078Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701184Z               "line": 13676
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701265Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701340Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701416Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701497Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701582Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701667Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701742Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701823Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8701905Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702043Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702215Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702301Z               "line": 34438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702377Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702458Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702554Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702639Z               "line": 34522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702719Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702797Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702873Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8702949Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8703030Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8703101Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8703207Z       "id": "REQ-SUBNET-DISPLAY-PARITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707430Z       "title": "The `spt endpoint run` picker renders endpoint state IDENTICALLY for local and remote (subnet) rows — bound/unbound, controlled (+driver node), and harness-only are all visible across the subnet, not local-only. Today data.rs:293-294 reduces a remote row to plain green-filled/gray-hollow because those facts aren't propagated. (1) GOSSIP additive per-Instance fields: bound/unbound, controlled + driver-node, harness_only (Offline is never gossiped — node-down is remote-inferred). (2) Derive the full EpDisplay for subnet rows from the gossiped fields, same path as local (remove the remote-reduction). (3) PALETTE rework (fill = ACTIONABLE: filled=can act now (rc-control if online, WAKE if suspended-on-live-node) / hollow=cannot (no control seat / node gone)): green-filled=online+bound+free; blue-filled=online+controlled (desc shows `controlled by <node>`); RED-filled=online+UNBOUND (controlled-or-not; controlled-ness shown via available options not glyph) — replaces green-hollow Unbound + absorbs the dropped UnboundControlled; AMBER-HOLLOW=online+harness-only (no broker seat → can't rc) — was amber-FILLED; GRAY-FILLED=Suspended (cold, node up — wakeable) NEW; gray-hollow=Offline (node down) now REMOTE-ONLY. EpDisplay: drop UnboundControlled, Unbound→red-filled, HarnessOnly→amber-hollow, add Suspended(gray-filled). Picker maps Active|Dormant→online flavor, Suspended→gray-filled, Offline→gray-hollow. (next milestone)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707534Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707615Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707692Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707772Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707848Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8707930Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708011Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708092Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708182Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708260Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708340Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708426Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708502Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708707Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708788Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8708865Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709031Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709155Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709238Z               "line": 645
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709389Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709509Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709590Z               "line": 717
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709807Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8709923Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710008Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710270Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710351Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710426Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710505Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710614Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710746Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710824Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8710904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711013Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711095Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711172Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711247Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711362Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711449Z               "line": 529
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711529Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711715Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711797Z               "line": 533
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8711952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712061Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712142Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712222Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712408Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712490Z               "line": 622
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712756Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712837Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8712989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713147Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713232Z               "line": 64
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713490Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713576Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713828Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8713914Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714115Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714215Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714296Z               "line": 654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714378Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714453Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714558Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714645Z               "line": 659
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714721Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714796Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714900Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8714977Z               "line": 671
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715236Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715322Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715584Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715667Z               "line": 1432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715743Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715818Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8715929Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716052Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716132Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716315Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716395Z               "line": 569
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716476Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716548Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716625Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716705Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716786Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716868Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8716945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717087Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717163Z               "line": 753
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717245Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717419Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717500Z               "line": 839
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717577Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717652Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8717732Z         },
traceability	UNKNOWN STEP	﻿2026-09-09T04:19:35.8719625Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8719715Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8719807Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8719882Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720006Z               "path": "crates/spt-net/src/net/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720093Z               "line": 1243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720164Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720348Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720435Z               "line": 1992
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720587Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720696Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720773Z               "line": 2058
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8720925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721030Z               "path": "crates/spt/src/picker/model.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721112Z               "line": 2155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721464Z               "path": "crates/spt/src/picker/view.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721545Z               "line": 1038
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721621Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721699Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721775Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721846Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721922Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8721994Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8722099Z       "id": "REQ-SUBNET-DUAL-SEED-MINT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8725589Z       "title": "`subnet create` mints TWO TOTP seeds in one ceremony — the member key (today's subnet seed, unchanged) and a second admin key — and provisions both into the creator's authenticator at that single moment (ADR-0051 decision 1, CONTEXT.md 'member key / admin key'). An admin key IS a membership key; a member key is NOT an admin credential. The same ceremony captures the subnet's universal control-surface mode: prompted with NO PRESELECTION (an operator must state open or closed rather than accept a default that a hurried Enter would pick for them), with `--open`/`--closed` bypassing the prompt for scripted creation. This is the moment the whole two-key model depends on: the admin seed has no reveal verb ever (REQ-SUBNET-ADMIN-SEED-REPLICATION), so a creation path that mints it without displaying it, or displays it without persisting it, permanently destroys the subnet's admin authority with no recovery but re-minting the subnet. Gate: doc — the CONTEXT.md two-key entry and ADR-0051; impl — dual mint at create, both authenticator provisionings, the no-preselection mode prompt and its flag bypass; unit — creation yields two DISTINCT seeds, the mode is recorded from prompt or flag, and no code path yields a subnet holding one seed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8725687Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8725767Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8725844Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8725917Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726040Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726121Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726203Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726288Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726368Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726536Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726617Z               "line": 922
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726903Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8726984Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727060Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727265Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727346Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727423Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727495Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727570Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727651Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727733Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727908Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8727984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728094Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728170Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728435Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728512Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728774Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728860Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8728930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729099Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729208Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729288Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729365Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729603Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729689Z               "line": 298
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8729937Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730019Z               "line": 12716
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730095Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730266Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730348Z               "line": 12794
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730639Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730720Z               "line": 12812
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730870Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8730961Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731043Z               "line": 12824
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731123Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731295Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731372Z               "line": 12943
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731452Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731620Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731700Z               "line": 13614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731776Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731852Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8731929Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732005Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732091Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732176Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732249Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732330Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732410Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732491Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732720Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732806Z               "line": 1055
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732883Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8732959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733063Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733148Z               "line": 1090
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733220Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733399Z               "path": "crates/spt-store/src/subnet.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733475Z               "line": 1109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733628Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733723Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733809Z               "line": 34089
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733885Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8733962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734052Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734133Z               "line": 34405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734205Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734433Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734515Z               "line": 34433
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734591Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734758Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734835Z               "line": 34570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734910Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8734982Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8735058Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8735131Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8735207Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8735282Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8735382Z       "id": "REQ-SUBNET-EMPOWER-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740377Z       "title": "empower <subnet-id> --admin-code <admin-totp> grants the engine room authority over that subnet's control-surface modes, lasts until session end or controller detach, and is invocable ONLY by the engine room (ADR-0052 decision 5; doyle ruling (b) 2026-07-29). It ships as an spt api verb gated by the perch capability proof plus an engine-room identity check, NOT as a plain CLI verb: the caller IS an agent — the engine room has a mind and is the specified invoker — so the gate cannot be 'no agent' and must be 'no agent except the reserved one'. The admin TOTP remains the authority proof, verified locally against the replicated admin seed (REQ-SUBNET-ADMIN-SEED-REPLICATION) with no privileged peer consulted; the engine-room binding is what makes the grant session state with a controller lifecycle to die with, which a grant to an arbitrary CLI session would not have. One shared authentication function serves this verb and the capture-refresh (REQ-ACL-ACCESS-REFRESH-ER-ONLY) — two call sites, one gate, unit tested once. Gate: doc — ADR-0052 decision 5 and the CONTEXT.md empower entry; impl — the api verb, the shared engine-room authentication, local admin-TOTP verification, and session-scoped grant storage; unit — a non-engine-room caller is refused, a wrong admin code is refused, a valid grant authorizes mode writes for exactly that subnet, and the grant dies at detach and at take.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740506Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740584Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740664Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740740Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740816Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740898Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8740974Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741059Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741146Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741373Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741458Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741612Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741745Z               "path": "docs/adr/0052-engine-room-endpoint-empower.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741826Z               "line": 323
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8741975Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742055Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742131Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742227Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742308Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742393Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742589Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742670Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742746Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8742932Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743013Z               "line": 48
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743085Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743163Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743270Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743347Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743604Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743737Z               "line": 81
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8743997Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744078Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744335Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744417Z               "line": 149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744564Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744673Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744751Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8744903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745008Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745089Z               "line": 338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745166Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745386Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745466Z               "line": 346
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745537Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745613Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745719Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745795Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745871Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8745947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746053Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746142Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746291Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746397Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746476Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746623Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746737Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746826Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8746979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747056Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747160Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747241Z               "line": 289
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747394Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747493Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747574Z               "line": 746
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747652Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747827Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747903Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8747981Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748051Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748128Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748204Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748329Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748413Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748490Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748577Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748658Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748747Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748819Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8748930Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749099Z               "line": 370
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749175Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749360Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749440Z               "line": 388
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749512Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749689Z               "path": "crates/spt-store/src/empower.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749769Z               "line": 611
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749841Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8749918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750027Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750161Z               "line": 848
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750427Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750509Z               "line": 989
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750657Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750765Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750843Z               "line": 1092
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8750990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751095Z               "path": "crates/spt/src/api/engineroom.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751182Z               "line": 1128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751257Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751333Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751430Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751511Z               "line": 1257
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751585Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751662Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751735Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751868Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8751952Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8752023Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8752129Z       "id": "REQ-SUBNET-KEY-SCREENS-LABELLED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8760082Z       "title": "The `subnet create` ceremony prints TWO secrets minutes apart, and each display LEADS WITH A PROMINENT LABEL naming which key it is — `--- ADMIN KEY (<ceremony>) ---` and `--- MEMBER KEY ---` — then states WHAT THAT KEY IS FOR in the operator's own terms rather than only how to store it. Labelling is the correctness half: two unlabelled code-plus-QR blobs in one ceremony are two chances to scan the more powerful secret into the wrong authenticator entry, and the admin key is the one that cannot be shown again. The ADMIN display names the capability the key actually confers — reaching any `spt endpoint engine-room` linked to the subnet and directing it to change the node's security mode, its access rules for the node and its endpoints, and the grants collaborating agents need — and states that the admin key DOUBLES as a member key, which is the fact deciding whether an operator must keep both. The MEMBER display names joining new nodes from anywhere, sharing with others whose nodes must join, re-viewing the key with `spt subnet show-code`, and scanning the QR into an auth app to pair again later. STRUCK, and it must not return: 'as a second entry' on the admin screen, which described the authenticator's bookkeeping — the one thing the operator does not need told — and made the more powerful of the two keys read as a footnote to the other; and the member blob's trailing re-pair sentence, whose remedy is now stated ONCE, on the bullets that teach what the key is for, because a ceremony stating a remedy twice invites the two spellings to drift. That sentence carried TWO arms and BOTH survive on the list — `show-code` and the auth-app QR — because the issue's own bullets duplicated only the first, so striking the sentence on the strength of that duplication would have dropped operator information the screen used to carry, and a loss needs a positive justification (doyle, releases#175). BOTH halves are asserted: the struck sentence must not return AND the QR arm must not go missing, the second being the row without which the loss passes silently. The one-shot warning SURVIVES the reshape and moves to its own line beneath the header: a header carrying a sentence is a header that reads as prose, and 'shown once, here, and never again' is the whole reason the admin display exists. `show-code` gains no header — it is a single-key surface with nothing to be confused with — and the member blob still carries NO admin material, which the capture-proof requirement already binds. Gate: doc — the networking overview section naming the two labelled screens and what each key is for; impl — the two composers, with the struck phrases removed at their only sites; unit — each display leads with its label, each carries its purpose list, the two struck phrases are asserted ABSENT (a later reword that quietly restored either would otherwise pass), and the ceremony word still distinguishes the create display from the rotation one.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8760286Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8760367Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8760445Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8760525Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8760601Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764325Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764419Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764515Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764598Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764804Z               "path": "docs-site/src/networking/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764890Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8764966Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765050Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765121Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765208Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765299Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765384Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765547Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765652Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765737Z               "line": 12944
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765813Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8765985Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766066Z               "line": 13045
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766147Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766219Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766300Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766376Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766462Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766548Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766624Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766700Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766782Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766863Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8766943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767039Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767126Z               "line": 34333
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767320Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767416Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767497Z               "line": 34467
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767573Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767652Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767729Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767810Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767885Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8767960Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8768065Z       "id": "REQ-SUBNET-MINT-CAPTURES-MODE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775299Z       "title": "THE MINTING NODE CAPTURES ITS OWN DECLARED SUBNET MODE, so a `--closed` subnet stops being asymmetric BY CONSTRUCTION. RCA by hertz 2026-08-01 (releases#100, two-arm live evidence, both nodes 0.49.0): `capture_subnet_mode` had exactly TWO production writers -- the JOIN arm (pairhost) and the engine-room access-refresh -- while `spt subnet create` wrote the declared mode into `subnet.json` and never touched the access store. On the MINTER the captured-subnet-mode tier is therefore ABSENT and the resolution chain bottoms out at the implicit-open tier, per-surface-blind: every joiner enforces while the minter exposes MSG, RC_VIEW/RC_ATTACH, XFER, WAKE/SUSPEND, SHELL_LINK and DIGEST to any origin. Field evidence: the minter's access.json was literally {\"version\": 2}, its named status view printed 'mode captured here: none - chain bottoms out open', and the joiner withheld correctly. THIS IS THE DECLARE-SITE-IS-NOT-ENFORCE-SITE CLASS: writing the posture into the record that DECLARES it is not the same act as writing it into the store that ENFORCES it, and a ceremony that does only the first ships a subnet whose stated posture is unenforced on the very node that stated it. THE CAPTURE RIDES THE PERSIST, NEVER THE RESOLVE: the mint is in-memory until the create ceremony's admin capture-proof passes (a refused proof must leave NO subnet), so a capture written at resolve time would outlive a cancelled create and record a posture for a subnet that does not exist. SWEEP DISCIPLINE IS PART OF THE FIX: `resolve` is shared by create and show-code with the CALLER persisting, so the capture belongs at the ONE persist choke point every mint path funnels through -- a per-call-site capture is one forgotten path away from re-creating the same asymmetry, which is exactly how this defect existed. NO SILENT BOOT-TIME BACKFILL, and this refusal is REQUIRED TEXT rather than an omission: the subnet record carries no minted-here provenance, so 'declared present AND captured absent' cannot distinguish 'I minted this closed' from 'I joined before subnet modes existed', and retro-capturing the latter would silently close a running mesh -- the case the design refuses. A pre-fix minter is healed ONLY by the explicit `spt api access-refresh <subnet>` verb, and the create output NAMES that verb so the operator of an already-minted subnet is not left to discover it. Gate: doc -- the docs-site access page states that the minter captures at the mint and that older minters heal only through the explicit refresh; impl -- the capture at the persist choke point, driven by the mint's own declared mode, plus the create-output line naming the heal; unit -- the mint ceremony CAPTURES the mode it declared (the row that fails on a build persisting the declaration without capturing it, i.e. on the shipped defect), a persist that is NOT a mint captures nothing (the no-backfill arm, asserted rather than assumed), and the captured value is the DECLARED one rather than a constant (a row an always-closed or always-open capture cannot pass).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775489Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775564Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775644Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775724Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775797Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775878Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8775954Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776044Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776126Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776207Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776388Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776474Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776559Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776635Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776712Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776789Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776879Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8776960Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777136Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777217Z               "line": 13003
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777293Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777465Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777546Z               "line": 13210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777617Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777733Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777856Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8777952Z               "line": 13238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778199Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778284Z               "line": 13266
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778361Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778440Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778530Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778611Z               "line": 13572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778687Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778764Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778859Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8778935Z               "line": 13649
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779093Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779169Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779245Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779322Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779412Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779493Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779623Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779708Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779789Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779870Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8779947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780042Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780118Z               "line": 38695
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780366Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780447Z               "line": 38768
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780686Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780770Z               "line": 38803
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780850Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8780927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781021Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781106Z               "line": 38891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781254Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781336Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781411Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781487Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781560Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781635Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8781740Z       "id": "REQ-SUBNET-REVOKE-ADMIN-GATE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8784729Z       "title": "`spt subnet revoke` (both forms, --force-rotate-seed included) requires the subnet's CURRENT admin TOTP — a member code is insufficient, and OS elevation stays on top answering its different question (ADR-0051 §2a, FF grill 2026-07-30). Eviction is a subnet-governance act, and the proof doubles as the identity gate for the re-surface: only the proven incumbent admin is shown the replacement key. The gate runs BEFORE any write, so a cancelled, thrice-wrong, or non-interactive attempt (refused up front — the gate needs a human and the ceremony after it needs one more) leaves roster, schedule, and seeds untouched. Acceptance is the same ±1-step window every other typed-code ceremony uses. A subnet predating the two-key model has no admin authority to prove; it proceeds loudly on elevation alone. Gate: doc — ADR-0051 §2a; impl — the per-subnet gate in the revoke path, ordered before all writes; unit — the windowed code acceptance (shared with the capture proof) and the nothing-written refusal orderings exercised at the gate seam.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8784829Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8784910Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8784996Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785074Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785153Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785230Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785311Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785393Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785478Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785698Z               "path": "docs/adr/0051-two-key-subnet-member-admin.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785835Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785910Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8785991Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786072Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786156Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786237Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786323Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786495Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786575Z               "line": 14989
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786647Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786819Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786899Z               "line": 15129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8786977Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787048Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787200Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787287Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787367Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787448Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787524Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787649Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787734Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787902Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8787983Z               "line": 34523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788059Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788140Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788217Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788293Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788368Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788440Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8788541Z       "id": "REQ-SUBNET-STATUS-MODES",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791415Z       "title": "`spt subnet status <name>` states the subnet's three mode facts (surface ruled 2026-07-30 — the per-subnet view is `subnet status`, no near-synonym `show` verb minted): the mode the subnet DECLARES as this node knows it, the mode this node CAPTURED (the enforced fallback — join-time immutable, changed only through the engine room's access-refresh), and any declared change SEEN but not adopted (`declared_seen`), named PENDING with when it was seen and the explicit statement that this node's posture is unchanged until the engine room adopts it. Absences are stated in words — a pre-mode subnet and an uncaptured fallback each say so — never rendered as blank, and the `--json` rows carry the same facts as optional fields. Gate: doc — the CONTEXT.md access-entity entry's mode-facts sentence; impl — the mode-facts resolver over the two stores that each own one half of the truth and the status-view wiring; unit — the three-way wording including both absence lines and the no-pending case.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791511Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791591Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791670Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791747Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791824Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791901Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8791975Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792066Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792158Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792376Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792463Z               "line": 942
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792539Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792615Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792744Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792825Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792902Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8792977Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793050Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793135Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793216Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793297Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793469Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793550Z               "line": 14338
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793626Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793844Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8793931Z               "line": 14387
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794183Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794263Z               "line": 14420
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794340Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794507Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794592Z               "line": 14491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794669Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794840Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794921Z               "line": 14528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8794994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795160Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795241Z               "line": 14653
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795323Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795447Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795527Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795614Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795699Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795780Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795866Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8795943Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796028Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796109Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796278Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796357Z               "line": 26721
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796433Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796508Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796580Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796656Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796740Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796815Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8796926Z       "id": "REQ-SUBNET-STATUS-MODES-EVERY-VIEW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8800956Z       "title": "THE MODE FACTS RIDE EVERY SUBNET STATUS VIEW, NOT ONLY THE NAMED ONE (ruled 2026-08-02 bag grill, releases#100). REQ-SUBNET-STATUS-MODES put the three mode facts on `spt subnet status <name>`; the BARE `spt subnet status` rendered membership shape alone (subnet, nodes, endpoints), so the precise state releases#100 exists to end -- declared closed, captured nothing, enforcing open -- read as FINE on the view an operator actually runs, and the blindness was itself part of why the defect survived in the field. The bare view therefore carries a compact per-subnet mode plus the captured-here fact for every row. ONE COMPOSER, TWO RENDERINGS: the bare view resolves its facts through the SAME mode-facts resolver and states them from the SAME wording source as the named view, so the two cannot drift into two vocabularies for one truth -- a second literal spelling of 'captured here' is the defect this clause forbids, not a style preference. Absences stay stated in words on both views (an uncaptured fallback says so; a pre-modes subnet says so) -- a blank cell reads as 'nothing to worry about', which is the exact misread this requirement removes. Gate: doc -- the docs-site access page describes ONE consistent surface rather than hedging the bare-vs-named asymmetry; impl -- the bare status view's mode facts, fed by the shared resolver and the shared wording source; unit -- the bare view states both the declared and the captured fact for every row, an uncaptured subnet renders its absence in words rather than blank, and the bare and named renderings agree on the same fixture (the row that fails the moment a second wording is introduced).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801067Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801190Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801266Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801348Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801425Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801505Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801581Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801668Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801796Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8801880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802019Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802099Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802250Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802374Z               "path": "docs-site/src/reference/json-shapes.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802452Z               "line": 418
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802526Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802607Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802680Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802760Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802841Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802922Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8802999Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803094Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803175Z               "line": 13729
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803423Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803552Z               "line": 13736
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803629Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803805Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803886Z               "line": 13781
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8803963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804133Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804210Z               "line": 13816
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804462Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804540Z               "line": 14383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804616Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804701Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804776Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804852Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8804934Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805020Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805095Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805176Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805386Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805554Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805635Z               "line": 38836
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805711Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805787Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805859Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8805940Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8806012Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8806087Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8806188Z       "id": "REQ-TEARDOWN-UNCOOPERATIVE-HOST",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8808702Z       "title": "TEARDOWN-AUTHORITY W1 (ADR-0045 decision 4): the teardown kill NEVER depends on harness cooperation — no graceful-input path, no waiting on PTY EOF, no ask-it-to-exit-first step. A WEDGED host is the design case, not the edge case: it is the situation that produced the ADR (doyle's own endpoint — read-only rc replayed the retained PTY and `rc --take` acquired control, but a direct prompt produced no output for 30+s because the retained harness subtree itself was nonresponsive while the broker correctly preserved and replayed its last PTY state). Any cooperation-dependent step re-imports the exact hang the verb exists to break. Gate: impl — the kill path proves no dependency on session responsiveness; int — a deliberately nonresponsive/wedged hosted harness is still reaped within the bound (broker row gone + subtree gone), asserted against a real broker-hosted session.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8808802Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8808883Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809056Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809131Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809212Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809293Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809375Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809451Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809724Z               "path": "docs/adr/0045-endpoint-teardown-authority.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809822Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809893Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8809969Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810050Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810125Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810210Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810291Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810482Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810562Z               "line": 9714
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810816Z               "path": "crates/spt/src/teardown.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810896Z               "line": 202
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8810974Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811045Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811121Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811201Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811283Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811431Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811512Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811660Z               "path": "crates/spt/tests/endpoint_teardown_authority_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811741Z               "line": 534
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8811894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812037Z               "path": "crates/spt/tests/endpoint_teardown_authority_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812117Z               "line": 790
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812189Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812267Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812347Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812426Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812507Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812593Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812669Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812748Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812824Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812901Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8812987Z       "id": "REQ-TERM-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813143Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813283Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813369Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813444Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813526Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813602Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813678Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813763Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813841Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813917Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8813997Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814078Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814155Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814232Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814336Z               "path": "crates/spt-term/src/pty.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814417Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814490Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814566Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814670Z               "path": "crates/spt-term/src/pty.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814751Z               "line": 234
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8814955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815066Z               "path": "crates/spt-term/src/surface.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815143Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815228Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815303Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815374Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815451Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815542Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815622Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815703Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815784Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815866Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8815946Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816129Z               "path": "crates/spt-term/tests/surface.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816209Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816289Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816509Z               "path": "crates/spt-term/tests/surface.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816595Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816671Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816748Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816824Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816901Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8816976Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817054Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817139Z       "id": "REQ-TERM-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817301Z       "title": "session-surface abstraction; send-keys + send-line injection",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817388Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817463Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817543Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817614Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817695Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817767Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817855Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8817936Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818012Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818094Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818179Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818304Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818489Z               "path": "crates/spt-term/src/surface.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818566Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818719Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818827Z               "path": "crates/spt-term/src/surface.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8818908Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819067Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819142Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819214Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819291Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819372Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819453Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819529Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819606Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819691Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819777Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819853Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8819960Z               "path": "crates/spt-term/tests/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820096Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820250Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820354Z               "path": "crates/spt-term/tests/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820434Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820510Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820587Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820666Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820737Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820812Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820889Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8820971Z       "id": "REQ-TERM-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821099Z       "title": "Byte-stream remote terminal streaming for v1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821185Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821262Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821338Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821414Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821490Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821572Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821657Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821747Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821877Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8821957Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822043Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822119Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822197Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822301Z               "path": "crates/spt-term/src/stream.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822382Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822454Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822530Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822606Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822682Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822764Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822845Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8822921Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823000Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823081Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823163Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823394Z               "path": "crates/spt-term/tests/stream.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823480Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823557Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823737Z               "path": "crates/spt-term/tests/stream.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823819Z               "line": 67
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823895Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8823971Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824047Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824124Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824200Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824281Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824362Z       "id": "REQ-TERM-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824797Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824877Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8824957Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825035Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825116Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825240Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825321Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825412Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825492Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825573Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825645Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825727Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825807Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825887Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8825962Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826073Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826155Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826230Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826301Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826416Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826497Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826573Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826759Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826845Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8826960Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827146Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827222Z               "line": 267
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827304Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827479Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827565Z               "line": 293
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827638Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827822Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827904Z               "line": 311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8827977Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828155Z               "path": "crates/spt-store/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828236Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828539Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828621Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828697Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8828887Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829049Z               "line": 180
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829307Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829392Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829464Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829651Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829731Z               "line": 254
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829807Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8829885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830041Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830127Z               "line": 507
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830205Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830389Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830467Z               "line": 518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830627Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830723Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830805Z               "line": 2628
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830881Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8830956Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831027Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831103Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831184Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831268Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831459Z               "path": "crates/spt-daemon/tests/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831541Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831616Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831740Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831817Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831903Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8831988Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832069Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832251Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832335Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832408Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832485Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832584Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832670Z               "line": 590
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8832927Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833004Z               "line": 600
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833266Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833396Z               "line": 443
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833551Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833660Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833746Z               "line": 463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8833896Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834002Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834079Z               "line": 485
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834230Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834336Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834417Z               "line": 498
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834679Z               "path": "crates/spt-daemon/src/digesthub.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834760Z               "line": 509
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834836Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8834917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835075Z               "path": "crates/spt-store/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835161Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835232Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835413Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835494Z               "line": 207
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835742Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835823Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8835972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836080Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836161Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836367Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836480Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836571Z               "line": 564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836648Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836724Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836833Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836914Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8836986Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837062Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837166Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837249Z               "line": 598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837505Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837587Z               "line": 624
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837734Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837840Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8837921Z               "line": 644
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838035Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838227Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838306Z               "line": 654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838382Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838565Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838644Z               "line": 747
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838720Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8838905Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839065Z               "line": 1981
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839147Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839319Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839394Z               "line": 33463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839471Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839548Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839628Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839709Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839844Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8839920Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8840010Z       "id": "REQ-TERM-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8841446Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8841531Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8841610Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8841687Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8841768Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8841842Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845320Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845496Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845583Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845672Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845753Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845830Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8845935Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846016Z               "line": 605
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846092Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846165Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846241Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846321Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846407Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846490Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846684Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846770Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846847Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8846978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847097Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847184Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847265Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847451Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847532Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847683Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847785Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847865Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8847942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848012Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848119Z               "path": "crates/spt-term/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848199Z               "line": 30
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848476Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848556Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848763Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8848875Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849063Z               "line": 167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849144Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849327Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849409Z               "line": 497
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849559Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849659Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849741Z               "line": 21008
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849822Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8849998Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850084Z               "line": 22421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850160Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850241Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850318Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850394Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850531Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850628Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850709Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850856Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8850937Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851010Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851090Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851161Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851242Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851325Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851414Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851596Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851677Z               "line": 548
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8851930Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852015Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852091Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852170Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852328Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852407Z               "line": 208
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852670Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852751Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8852904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853004Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853084Z               "line": 292
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853328Z               "path": "crates/spt-live/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853408Z               "line": 303
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853480Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853605Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853723Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853814Z               "line": 2477
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8853971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854086Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854163Z               "line": 2560
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854239Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854424Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854507Z               "line": 669
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854761Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854843Z               "line": 697
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8854998Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855102Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855184Z               "line": 709
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855504Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855585Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855737Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855833Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855918Z               "line": 31896
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8855994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856157Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856242Z               "line": 31954
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856313Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856390Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856467Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856543Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856619Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856696Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8856777Z       "id": "REQ-TERM-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8857825Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8857919Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8857996Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858073Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858154Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858229Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858311Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858383Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858479Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858558Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858635Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858717Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858797Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8858877Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859216Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859299Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859450Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859560Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859642Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859897Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8859983Z               "line": 17
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860053Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860234Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860315Z               "line": 149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860625Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860707Z               "line": 329
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860791Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8860973Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861059Z               "line": 459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861130Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861207Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861279Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861360Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861440Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861522Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861593Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861735Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861812Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861885Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8861964Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862036Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862122Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862205Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862336Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862413Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862524Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862603Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862754Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862860Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8862939Z               "line": 215
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863202Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863282Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863358Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863430Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863535Z               "path": "crates/spt-store/src/sessions.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863616Z               "line": 462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863687Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8863878Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864011Z               "line": 809
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864165Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864269Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864350Z               "line": 830
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864428Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864607Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864684Z               "line": 1635
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864762Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864837Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864912Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8864984Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8865062Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8865138Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8865222Z       "id": "REQ-TERM-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8868803Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_commune | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them. THE MIDDLE SUBTYPE WAS `echo_mirror` UNTIL releases#113, AND THE NAME WAS A PHANTOM: nothing ever mirrored an echo-commune into a running context. run_echo_commune writes the brief as a commune DROP FILE whose ingest routes it into the DURABLE context tiers a later session resumes from; record_context_injection only appends a digest line; ADR-0019 defers the read-back loop. The name plus a comment reading `record that spt mirrored an echo-commune brief into the agent's context` were the ENTIRE basis on which releases#113 reported a behavioural divergence from legacy, and the ticket ordered the removal of a behaviour that was never built. Measured at 343df76e (todlando). Re-kinded to `echo_commune` for what it is -- a record that a brief was PRODUCED for this agent -- and the comment corrected in the same commit, because a name that asserts a behaviour is how the phantom gets re-derived. Distinct namespace from spt_proto EVENT_TYPE_ECHO_COMMUNE and the manifest [session.echo_commune] role, which spell the same word for different things.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8868934Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869099Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869176Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869253Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869328Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869405Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869481Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869568Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869648Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869724Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869801Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869883Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8869963Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870039Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870202Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870292Z               "line": 133
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870367Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870442Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870548Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870627Z               "line": 498
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870703Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870885Z               "path": "crates/spt-live/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8870961Z               "line": 16
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871037Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871214Z               "path": "crates/spt-live/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871294Z               "line": 47
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871370Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871447Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871552Z               "path": "crates/spt-store/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871637Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8871957Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872038Z               "line": 290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872300Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872377Z               "line": 330
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872454Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872529Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872606Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872682Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872765Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872844Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8872915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873055Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873135Z               "line": 19
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873215Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873286Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873367Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873499Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873584Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873856Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8873937Z               "line": 629
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874014Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874091Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874194Z               "path": "crates/spt-daemon/src/digest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874275Z               "line": 859
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874349Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874528Z               "path": "crates/spt-live/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874605Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874910Z               "path": "crates/spt-live/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8874993Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875068Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875254Z               "path": "crates/spt-live/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875336Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875415Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875497Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875603Z               "path": "crates/spt-store/src/history.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875683Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875758Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8875939Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876024Z               "line": 755
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876094Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876174Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876280Z               "path": "crates/spt-term/src/projection.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876362Z               "line": 787
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876438Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876551Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876629Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876705Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876781Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876857Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8876962Z       "id": "REQ-TERM-ECHO-CLAMP-WINDOW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8882789Z       "title": "SEED (DAEMON-LIFECYCLE W3 rideout, field-grounded 2026-07-22): the hosted-TUI echo CLAMP WINDOW — a Windows pseudoconsole boots with echo/line input ON (in=0x1f7, measured by the 7.55 instrument @0f74bba) and it is the hosted CHILD that clamps them, so any window in which the TUI has not yet (re-)clamped echoes typed bytes into PTY output SERVER-SIDE with no seam re-enabling anything. FIELD GROUNDING (hertz capture-2 byte timeline, output-only taps): echo onset is NOT resize-instant — first echoed key lands 6003ms after the first resize-associated repaint burst, IMMEDIATELY after a 3225-byte TUI-reinitialization-shaped absolute repaint (no alt-screen/mode CSI anywhere — cursor hide/show + HOME/absolute repaints only); echo CEASES mid-input (isolated c/o/n/f/i, NO g) directly after a 535-byte TUI diff — consistent with a late clamp landing (a WinAPI mode call is invisible to a byte tap). The resize seam itself is measured MODE-PRESERVING (REQ-RESIZE-INPUT-MODE-INTEGRITY rig, four sample points). OPEN AT TRIAGE: (1) whether the clamp is the TUI's own SetConsoleMode or portable-pty/ConPTY-internal; (2) whether spt-core CAN mitigate at all — the daemon structurally cannot read or set the child console's input modes from the master side (platform fact, 7.55), so candidate mitigations are indirect (e.g. hold/queue injected input until first child output after a reinit-shaped burst — evaluate honestly, may be worse than the disease) and the honest outcome may be an OUT-OF-OUR-CODE finding filed upstream (hosted-TUI reinit behavior + Windows boot default); (3) whether the window also explains historical spt-hosted-only echo reports (non-spt sessions bypass the nested ConPTY — KH 7.55 note). Kin: KH 7.55 (hazard + instrument), KH 7.56 / the DNAR class (console boot defaults and clamp ownership = one seam family), REQ-ATTACH-SEED-REQUEST-DOUBLE-SERVE (the rideout-seed precedent). Instrument + rig to reuse: the 7.55 probe child (protocol-line verdict, raw-first precondition, seeded-echo capability probe).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8882908Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8882986Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883061Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883151Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883237Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883315Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883395Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883480Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883562Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883639Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883714Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883799Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8883879Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884004Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884078Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884168Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884254Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884326Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884402Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884478Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884555Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8884684Z       "id": "REQ-TEST-DAEMON-EPHEMERAL-ADVISORY-PORTS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8886936Z       "title": "TEST DAEMONS ON CO-RESIDENT FLEET RUNNERS MUST BIND EPHEMERAL PORTS FOR ADVISORY SURFACES INSTEAD OF PRODUCTION WELL-KNOWN PORTS. An isolated SPT_HOME isolates disk and broker IPC, not globally-numbered TCP ports; engine-room e2e daemons therefore raced the resident fleet for docs port 5474 and intermittently logged DOCS_SERVER_BIND_FAIL os error 10048 beside unrelated precondition failures. A rig-only explicit environment posture selects port 0 for the daemon docs listener while leaving production config, SPT_DOCS_PORT semantics, and `spt docs url` unchanged. The posture wins over a configured or inherited fixed port, the actual bound ephemeral port remains loud in DOCS_SERVER_UP, and a unit holds a real occupied loopback port while proving the docs listener binds elsewhere. This is the first advisory surface; future advisory listeners reuse the same rig posture rather than minting independent test switches. (IR-62)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887073Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887151Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887227Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887303Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887378Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887456Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887532Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887618Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887697Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887771Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887851Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8887932Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888017Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888209Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888327Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888486Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888595Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888676Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888749Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888829Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8888904Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889064Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889148Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889233Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889304Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889409Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889487Z               "line": 98
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889643Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889772Z               "path": "crates/spt/tests/engine_room_bringup_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889858Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8889933Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890011Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890139Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890219Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890383Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890572Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890655Z               "line": 556
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890731Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890806Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890882Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8890960Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8891036Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8891111Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8891206Z       "id": "REQ-TEST-ENV-ONE-LOCK",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8901591Z       "title": "releases#111: a process-global environment variable is guarded by exactly ONE lock, and every test helper that mutates it takes THAT lock. THE FILED MECHANISM IS REFUTED — do not implement on it. The filing said three dispatch.rs sites go through `crate::test_home::with_home`, which writes the process-global SPT_HOME, and that a SIBLING with_home test retargets the home mid-test under threaded cargo test. That cannot happen as described: `with_home` holds its mutex across its ENTIRE body, so with_home callers are already perfectly serialized against one another. REPRODUCED AND MEASURED INSTEAD (hertz, HFENDULEAM 2026-08-02): `cargo test -p spt-daemon --lib dispatch::` loses 1-3 of 26 nondeterministically, and the panic text names the real root — `ACCESS_STORE_MINTED <tmp>\\home\\identity\\trust\\access.json`, a path with a `home` SUBDIR that `with_home` never produces (it sets SPT_HOME to the tempdir root itself). That shape is `spt_test_support::TestHome`, and the lib binary has exactly one caller of it: `dispatch::tests::the_receiver_decides_origin_and_flood_not_the_sender` (dispatch.rs:2536). TWO INDEPENDENT MUTEXES OVER ONE ENV VAR: `spt_daemon::test_home::ENV_LOCK` and `spt_test_support::ENV_LOCK` each serialized their own users flawlessly and guarded nothing between them. Because `spt_store::perch::spt_home()` is NOT memoized (re-reads env every call), a with_home test would `save()` its fixture into home A and load it back from home B — store absent, empty access baseline minted over it, and `an_unadmitted_asker_is_refused_at_this_nodes_own_seam` getting Some(offline) where the rules should have returned None. The other two losers are the same switch seen through a knock store and a byte-identity snapshot. Every loser passes ALONE (single-threaded: no concurrent holder) and 26/26 under nextest (per-test processes), which is why CI's nextest unit lane is structurally blind to it — the filing is right that this burns only whoever hand-runs the module. FIX (far smaller than the previously-ruled `*_at(home)` seam refactor, which was predicated on the refuted story): `spt_test_support` exposes its lease as `env_lock()`, and `spt_daemon::test_home::env_lock` returns THAT guard instead of declaring a second static — one variable, one lock. Explicitly NOT serial_test. Gate: unit — a with_home body holds the lease while a second thread attempts a TestHome, asserting the thread cannot enter and SPT_HOME cannot move; reds on the two-lock code, greens on one, and proceeds after release so a shared lock is proven to be a lock rather than a deadlock. NOT REENTRANT by construction — a TestHome holds the lease for its whole lifetime, so one must never be constructed inside a with_home body; the module doc says so at both ends. SWEEP, because one instance of a class is not the class: every crate declaring an SPT_HOME test helper was checked against whether the SAME binary also reaches `spt_test_support`, which is the only way the collision can form. A SECOND LIVE INSTANCE was found and fixed in the same pass — `crates/spt` carried `testutil::LOCK` while `cli.rs` (two sites) constructed `TestHome` directly, the identical two-mutex shape, latent and unreported; it now takes the shared lease too. The remaining helpers are genuinely single-per-binary and are left alone rather than pre-emptively churned: `spt-live::test_support` and `spt-store::perch`'s in-module helper (neither crate depends on spt-test-support at all), and `spt-msg`, which depends on spt-test-support but declares no helper of its own. The invariant to enforce at review is one-lock-per-variable-per-BINARY — a crate may keep its own ergonomic wrapper, but never its own mutex over a variable another helper in the same binary also writes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8901815Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8901906Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8901986Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902066Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902142Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902223Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902303Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902383Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902469Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902683Z               "path": "docs/KNOWN-HAZARDS.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902769Z               "line": 347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902851Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8902932Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903003Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903084Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903166Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903251Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903447Z               "path": "crates/spt-daemon/src/test_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903528Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903605Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903795Z               "path": "crates/spt-test-support/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903876Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8903952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904023Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904125Z               "path": "crates/spt/src/testutil.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904204Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904281Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904353Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904473Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904547Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904634Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904716Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904793Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904867Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8904952Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905029Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905217Z               "path": "crates/spt-daemon/src/test_home.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905298Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905374Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905446Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905522Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905598Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905675Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905756Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8905879Z       "id": "REQ-TEST-LIVENESS-ORACLE-AUTHENTICATED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912404Z       "title": "IR-15 (INFRA-REGISTER, doyle-ruled 2026-08-03): a TEST that captures a pid and POLLS it to a verdict must poll the process it CAPTURED, never the number. `provably_gone` answers 'is *a* process at this pid', which is correct for a pid just handed over and WRONG for one captured seconds earlier: between capture and verdict the OS may recycle the number onto an unrelated process, and the bare-pid oracle then reads the stranger as the captured process, still alive, until the deadline burns. Specimen: golden 30776330383, daemon::tests::a_tree_teardown_reaches_a_grandchild_the_service_spawned sat the FULL 10s window (10.176s vs 0.19/0.24s passes) on a pid-churning Phase A leg, with a Cargo-dep-pin delta that has no mechanism path to it. THE PRODUCT PATH ALREADY AUTHENTICATES pid against birth stamp (process_identity, ADR-0047 decision 1, KNOWN-HAZARDS 7.51); the TEST oracle is the half that never got the stamp -- two death oracles in one tree and the tests poll the pid-only one. FIX: a PinnedProc identity (pid + birth stamp captured at FIND time, or handed in via from_stamp where a spawn helper or a stored pid_started_at already holds one) whose provably_gone reads Absent=>gone, Present(same stamp)=>not gone, Present(DIFFERENT stamp)=>gone (reuse: ours died), Present(_)+unstamped=>not gone (degrade to bare-pid), Unproven=>not gone. POLARITY IS LOAD-BEARING AND RULED: every uncertain arm errs toward NOT GONE, i.e. toward a red, because the two failure directions are not comparable -- a false GONE hides a real kill-tree miss behind a green gate and is unrecoverable, a false NOT-GONE is a visible recoverable flake. The pre-existing property that this oracle can only ever false-RED is therefore PRESERVED, not traded: a green from a poller built on it stays exactly as conclusive as before, which is what the same-sha-rerun authorization rests on. PLATFORM STRENGTH DIFFERS AND MUST NOT BE FLATTENED: Windows creation FILETIME is 100ns so Present(different) is decisive; Linux starttime is clock ticks since boot at 10ms granularity, so a reuse landing inside one tick reads Present(same) and errs RED (the safe direction) -- this NARROWS the window and does not close it, and Present(same) on Linux is never proof the pinned process survived. Image-path corroboration (releases#120) is the second axis that closes the remainder and composes onto the SAME pinned identity. SCOPE IS THE TEST-SIDE ORACLE: one shared helper covering the swept call sites (daemon.rs teardown test + endpoint_lifecycle.rs relay_pid, the latter not yet red), never a patch to whichever test happened to fire; product-side callers (teardown.rs root_provably_gone, servicehost.rs) stay out and belong to #120's product lane.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912551Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912631Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912707Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912793Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912873Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8912948Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913034Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913120Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913196Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913320Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913406Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913487Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913673Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913760Z               "line": 408
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8913911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914017Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914093Z               "line": 425
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914174Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914355Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914436Z               "line": 478
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914517Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914670Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914751Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914836Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8914922Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915038Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915122Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915203Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915286Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915469Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915550Z               "line": 591
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915622Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915801Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915886Z               "line": 601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8915958Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916035Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916144Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916225Z               "line": 616
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916307Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916379Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916487Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916608Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916688Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916864Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8916951Z               "line": 647
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917021Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917203Z               "path": "crates/spt-procident/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917284Z               "line": 668
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917360Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917431Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917509Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917585Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917660Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917732Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8917852Z       "id": "REQ-TEST-RIG-DAEMON-TEARDOWN-PROVEN",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8926709Z       "title": "releases#99: a test rig that causes a daemon to exist must stop it, and its teardown must be PROVEN to stop it rather than assumed to. Two findings make this a requirement rather than a fixup. (1) OWNERSHIP IS NOT DECLARED BY THE VERB: `api::run` calls `ensure_daemon()` before dispatching ANY subcommand (REQ-DAEMON-3), so a rig whose verbs are pure local reads still owns a real daemon tree one layer out — `psyche_download_e2e`'s own header asserted \"no daemon — it is a pure local read\" and leaked 2 `spt.exe` per run (the detached daemon plus its brain, measured against a 0 baseline) which hold `target/debug/spt.exe` open and break the next cargo build in that tree with os error 5. (2) THE TEARDOWN CAN REFUSE SILENTLY, BY TWO INDEPENDENT ROUTES. `cmd_daemon_stop` denies any caller that resolves as a hosted endpoint via `ceremony_agent_ground()`, a two-rung ladder: rung 1 is a non-empty `OWL_SESSION_ID` / `SPT_AGENT_ID` / `SPT_ENDPOINT_ID` IN THE RUNNER'S ENVIRONMENT, rung 2 is pid-ancestry against the perch records, which a fixture perch seeded with `std::process::id()` satisfies for every child of the harness. `--force` overrides neither. The rungs fire on DIFFERENT machines — rung 1 is dead on a CI runner and live whenever an agent runs the suite from its own hosted session — so a rig validated on one of them can leak on the other, and in EVERY arm the test still passes: the leak is invisible to the assertion. Gate: unit — the rig seeds pid 0, scrubs the three env markers on the commands it tears down with, runs every leg BEFORE any assertion (a panic must not skip the teardown), and keeps the authenticated breadcrumb reap as insurance BEHIND the stop rather than in place of it. Evidence discipline for any future rig of this shape: measure the surviving-process count on both arms; a green test proves nothing about the leak. Kin REQ-TEST-TMPDIR-HYGIENE (the same class one resource over), REQ-HAZARD-TEST-PID-TREE-KILL-IDENTITY (why the reap is authenticated), REQ-DAEMON-3 (the autostart that creates the ownership), REQ-BROKER-STOP-ENDPOINT-DENY (the refusal being worked around). AMENDED BAROMETER H2 (doyle ruling 2026-08-02, folding the releases#110 code remedy in here rather than onto #110): teardown completeness extends to EVERY SURVIVING DESCENDANT, not just direct children — a grandchild inherits the cwd through its parent and outlives a kill aimed one level up, which is precisely what the #110 positive control caught (an orphaned `PING.exe` still pinning a directory after its `cmd` parent was killed). The measurement discipline is unchanged and already meets the extended scope: surviving-process count on BOTH arms, by image path so a live fleet is not miscounted — the daemon's brain is itself a grandchild, so the 2 -> 0 evidence already spans the depth. SECOND CONSEQUENCE, now proven rather than theorized: a survivor does not merely hold `target/debug/spt.exe` open (os error 5 on the next build), it CWD-PINS the package root cargo handed it, leaving a `.worktrees` skeleton that cannot be renamed or deleted while files inside it stay writable — see KNOWN-HAZARDS 5.18 / REQ-HAZARD-TREE-CWD-PIN for the mechanism and for the two spawn-flag fixes refused on evidence.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8926948Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927033Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927105Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927187Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927263Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927347Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927424Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927506Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927581Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927662Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927749Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927821Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927896Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8927982Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928064Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928141Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928268Z               "path": "crates/spt/tests/resident_service_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928389Z               "line": 565
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928465Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928544Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928620Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928701Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928782Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8928866Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929032Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929162Z               "path": "crates/spt/tests/psyche_download_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929242Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929318Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929396Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929472Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929547Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929623Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929696Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8929796Z       "id": "REQ-TEST-TMPDIR-HYGIENE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936391Z       "title": "Windows test fixtures MUST NOT leak their temp dirs — find and fix the leak that accumulated 14,319 `.tmp*` dirs (163 GB) in %TEMP% on hfenduleam over 2026-07-19→26 and ate the box to 0.00 GB free during the v0.44.0 cut (find credit: deployah). The class presents as resource exhaustion wearing a timing-flake mask: the release-blocking red was spt-daemon::sync `two_tier_sync_lands_and_gate_refuses_server_side` dying 'No space left on device' INSIDE its own leaked-class tmpdir, and the PRIOR red (digest_cross_node brain-IPC deadline elapse) was the SAME root through a timing probe — burns release windows and invites false environmental discharges (deployah self-corrected his own). ROOT IS UNPROVEN AT MINT (investigate, don't assume): tempfile-crate dirs self-clean on Drop, so something defeats Drop — candidates from the incident record: process killed mid-drop (fixture children force-killed while owning the dir), detached/leaked children pinning the dir cwd so removal fails, panic paths that never unwind. CANDIDATE ROOT PROMOTED TO PROVEN (hertz, doyle ruling 2026-08-02, releases#110 measurement): the cwd-pin leg is no longer a hypothesis. Positive control on HFENDULEAM — spawn a child with cwd = a scratch dir, then attempt removal: writes INSIDE the dir succeed while delete is BLOCKED (the asymmetry that makes it read as neither a file lock nor a rig failure), and the dir deletes first try the instant the holder dies. The holder in that control was an orphaned GRANDCHILD (`PING.exe`, cwd inherited through `cmd`) that survived its parent's kill, so the defeating mechanism reaches deeper than the direct children this entry names. Corollary that changes where to look: the conhost is NOT the holder (its cwd is OS-assigned — a box-wide census returned 43 readable conhosts, all under `C:\\WINDOWS`, zero under any tree), so a leaked-tmpdir investigation that clears conhosts and declares the path clean has proven nothing. Mechanism and tooling: KNOWN-HAZARDS 5.18 / REQ-HAZARD-TREE-CWD-PIN plus `.github/ci/find-cwd-holders.ps1`, which names the holder of any given directory. Deliverable: name the leaking fixture path(s) with evidence, fix the cleanup (guard/finalizer that survives the kill path, or a fixture-scoped reaper), and prove it with a before/after dir-count on the suite. Second recorded hfenduleam disk-full-CI instance.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936594Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936679Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936751Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936832Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936906Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8936987Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937069Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937150Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937226Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937302Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937389Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937469Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937550Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937670Z               "path": "crates/spt-test-support/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937751Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937828Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937903Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8937980Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938103Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938189Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938270Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938353Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938461Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938542Z               "line": 364
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938619Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938696Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938794Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8938876Z               "line": 764
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939048Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939222Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939304Z               "line": 891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939379Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939454Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939554Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939636Z               "line": 1000
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939713Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8939941Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940032Z               "line": 1064
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940183Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940285Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940365Z               "line": 1162
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940618Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940699Z               "line": 1205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940775Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940851Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8940947Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941028Z               "line": 1299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941104Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941181Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941253Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941333Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941414Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941549Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941629Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941743Z               "path": "crates/spt-test-support/src/lib.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941825Z               "line": 147
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941901Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8941981Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8942056Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8942133Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8942205Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8942282Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8942399Z       "id": "REQ-TRANSLATE-BINARY-LIVENESS-DECAY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8944709Z       "title": "SUPERSEDED by REQ-TRANSLATE-COMMIT-MISS-TOLERANCE (F029 C-1). B6 (F028, perri F-e) was ROOT-PINNED as the commit-deadline-miss fault: at a checkpoint clear boundary the clear-only inject's {commit} was never observed within INJECT_COMMIT_DEADLINE, so the inject worker FAULTED + TERMINATED a HEALTHY translate binary and (by ADR-0022) never respawned → every subsequent force-native reported delivered=false ('no live translation binary'). NOT a dormancy/liveness-registration decay (that hypothesis is dead) — deterministic at every checkpoint-armed boundary. The fix (miss != fault + N=3 strike budget + bounded respawn + perch-visible fault stamp) lives under REQ-TRANSLATE-COMMIT-MISS-TOLERANCE + REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH. See triage addendum C-1.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8944810Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8944891Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8944966Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945058Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945134Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945215Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945290Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945373Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945454Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945530Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945610Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945688Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945820Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945896Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8945977Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946064Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946149Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946225Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946302Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946379Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946450Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8946549Z       "id": "REQ-TRANSLATE-COMMAND",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8949840Z       "title": "`[message-idle-translation-binary]` accepts a `command` (opaque; args + ADAPTER-STATIC {adapter_dir}/{adapter_name} substitution ONLY — ratified v0.16.0 W1, NOT session {key}: the translation binary is a persistent process serving all sessions on the endpoint (session/event ctx arrives per-message via the stdin Init/Event protocol, never the spawn argv) and the live-update respawn site has no session ctx (a {id}-bearing command would MissingKey→spool); program token resolved against install_dir like [digest].extractor/[session.psyche_init]) in addition to the bare `path`. `path` is DEPRECATED — keeps parsing (manifest forward/back-compat) but emits a registration warning steering to command. Exactly one of {path, command} (both-set refused at registration; neither = no translation binary). The spawn lifecycle + stdin/stdout JSON-lines protocol (Init/Event/Input → key/text/delay_ms/commit) are UNCHANGED — command alters only how the executable+args are located/launched (read_translation_path → read_translation_command). Unblocks folding `claude-spt translate` into the one consolidated binary (downstream ADR-0006). (v0.16.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8949986Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950067Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950143Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950224Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950301Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950376Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950458Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950544Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950635Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950859Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8950940Z               "line": 437
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951264Z               "path": "docs/adr/0029-adapter-update-arc-resolve-not-execute.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951344Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951416Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951498Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951573Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951654Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951741Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8951822Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955432Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955521Z               "line": 4657
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955598Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955676Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955808Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8955898Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956257Z               "path": "crates/spt-daemon/src/translation.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956343Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956605Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956685Z               "line": 626
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8956949Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957033Z               "line": 634
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957109Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957297Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957434Z               "line": 1335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957709Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957790Z               "line": 344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8957943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958050Z               "path": "crates/spt-runtime/src/runtime.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958131Z               "line": 537
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958379Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958460Z               "line": 22601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958538Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958614Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958689Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958770Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8958857Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959037Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959205Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959342Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959429Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959619Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959701Z               "line": 12892
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8959967Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960049Z               "line": 536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960314Z               "path": "crates/spt-daemon/src/harnesshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960391Z               "line": 608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960655Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960751Z               "line": 2150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960828Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8960903Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8961032Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8961109Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8961190Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8961265Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8961381Z       "id": "REQ-TRANSLATE-COMMIT-MISS-TOLERANCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964298Z       "title": "C-1 (F029, B6 ROOT — rescope of REQ-TRANSLATE-BINARY-LIVENESS-DECAY, now PINNED): at a checkpoint clear boundary the clear-only inject drives `/clear`; its `{commit}` is never observed within INJECT_COMMIT_DEADLINE (5s, broker.rs:158) so the inject worker FAULTS + TERMINATES a HEALTHY translate binary (broker.rs respool_and_fault + return) and by ADR-0022 design NEVER respawns → every subsequent force-native reports delivered=false ('no live translation binary', cli.rs:5046) = B6's exact field signature; the v0.12.0 checkpoint post-clear WAKE dies with the terminated binary + the fire-and-forget FIRE in the dead window. NOT a race — deterministic at every checkpoint-armed boundary (perri captured-stderr proof: TRANSLATION_FAULT on the F-019 unread daemon-stderr channel). FIX (REVISED, supersedes terminate-then-respawn): miss != fault — preserve the binary; the watchdog's job is ANTI-STALL (release the operator floor), not execution-verification. See addendum C-1 + ADR-0022 amendment.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964402Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964483Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964560Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964636Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964712Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964793Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964870Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8964956Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965041Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965117Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965304Z               "path": "docs/adr/0022-spt-hosted-idle-delivery-translation-binary.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965384Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965531Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965612Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965687Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965772Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965858Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8965935Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966125Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966201Z               "line": 4905
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966278Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966463Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966545Z               "line": 5130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966621Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966697Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966769Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966850Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8966931Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967016Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967231Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967355Z               "line": 1815
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967432Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967509Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967642Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967723Z               "line": 1931
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967800Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8967956Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968033Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968119Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968200Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968384Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968465Z               "line": 11658
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968730Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968811Z               "line": 11681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8968888Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8969117Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8969202Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8969278Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8969355Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8969432Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8969522Z       "id": "REQ-TRUST-WARNING",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984070Z       "title": "When a message reaches an endpoint because an access ENTRY admitted its sender, and the receiving agent holds NO MONIC about that sender, the delivery edge composes a system-authored TRUST WARNING and delivers it alongside the message. The entry is a routing decision — often made by a human at a knock, sometimes weeks earlier — and it says the peer may speak; it says nothing about whether the receiving agent has decided anything ABOUT them, and the warning is what closes that gap before the agent acts. THE CLASSIFICATION QUESTION IS MONIC-ONLY: an access entry naming the peer is NOT a classification, since the entry is the very thing that let them in, and reading it as evidence of judgement would silence the warning exactly when it is warranted. THREE RATIFIED NON-WARNING CASES, stated because a warning that fires on invited traffic teaches agents to ignore warnings, which costs it its only job: SAME-NODE arrivals are inside the node's own trust unit; a REPLY is correlated to the agent's own outbound, so it is traffic the agent itself invited; and a POSTURE-OPEN pass admits nobody in particular — no entry named this peer, the endpoint simply is not refusing anyone. A WILDCARD entry warns exactly as a named one does: it admitted a peer the agent never named at all. THE WARNING NEVER CHANGES DELIVERY. The gate already allowed the message; the warning is advisory text that rides alongside, is skipped for a duplicate (the replay check precedes it, so a retried message does not re-warn), and — when it cannot be delivered at all — costs a loud diagnostic naming the unwarned delivery rather than withholding a message the gate permitted. IT IS NEVER PART OF THE PEER'S BODY, because a warning inside the body is indistinguishable from one the sender wrote — precisely what a stranger would forge. THE CARRIER IS THE DELIVERED MESSAGE'S OWN ENVELOPE (REQ-TRUST-WARNING-ENVELOPE, which changed the carrier and left this rule untouched): the block rides as a `trust-warning` attribute composed by the RECEIVING node, so the caution and the message it is about reach the agent in ONE arrival, and the sender authors the text in neither design — an attribute is not the body, and it is composed exactly where a matched monic's is. Where the body is ALREADY A TYPED ENVELOPE it can carry no attribute, and there the warning keeps its own system-authored delivery under a RESERVED author id (not a legal endpoint id, so no peer can author under it), delivered FIRST over the same cascade the message takes, so the caution is read before the message it is about. THE DECISION CONSUMES THE GATE'S OWN VERDICT AND NOTHING ELSE: the pass reason IS the posture question (an entry matched means the chain never reached a mode tier), so there is no second read of the access store, whose snapshot would be taken after the decision it purports to explain. The receiver's own mind is read as a PLAIN FILE off the tracked root, never through the store's ensure-worktree path, because that path spawns git and this question is asked on the inbound message path. An unreadable monic is not a classification, so a husk makes the warning fire rather than suppressing it. TWO LIMITS, RULED (doyle 2026-07-31, at T6's acceptance): (1) a sender the daemon could not prove IS still warned about, and that warning is UNSUPPRESSIBLE by design rather than merely fail-safe — a peer nobody can name is more of a stranger, not less — since monic-only classification means no provable id yields no monic, so every unproven sender on an entry-admitted pass warns, which is honest — they ARE unproven — and self-heals as the fleet's daemons come to stamp their senders. THE TEXT DISCIPLINE IS THE LIMIT THAT KEEPS WARN-MORE FROM BECOMING WARN-NOISE, and is required, not stylistic: the block names the admitting RULE as the way out and NEVER prints a classify command that cannot be run, because an instruction the reader cannot carry out is what turns an unsuppressible warning into noise the agent learns to skip; (2) the override text (the elevation-gated verb, own requirement) replaces ONLY the advisory paragraph — RATIFIED at the same acceptance, on the grounding that override text is agent-behavior instruction and therefore a prompt-injection surface, so keeping the factual spine unforgeable BOUNDS that surface: a whole-block override would let one elevated write hide who is knocking, which no legitimate override needs — the line naming the sender and stating that no note is held, and the line saying how to classify them, are always core-composed, so an override can change what the agent is cautioned about but never hide who is knocking. Gate: impl — the pure warn-or-not decision over the verdict's pass reason and the monic predicate, the store-free tracked-root read, the composer with its reserved author, and the delivery-alongside at the WAN edge ahead of the message legs; unit — the full table (every pass reason x monic-held/not, with the three non-warning reasons asserted by name and the wildcard case asserted to warn), the composer naming the peer, the three cautions and the exact classify command, the override replacing the advisory while identity survives, the unnamed-sender text carrying no unrunnable command, and the tracked-root read answering identically to the store form while creating no worktree for an agent that has no mind.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984283Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984363Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984445Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984522Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984597Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984678Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984755Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984841Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8984959Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985036Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985132Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985213Z               "line": 1025
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985293Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985485Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985565Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985641Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985719Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985790Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985871Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8985951Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986034Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986218Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986300Z               "line": 136
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986377Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986452Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986561Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986685Z               "line": 744
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8986944Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987036Z               "line": 806
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987108Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987182Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987283Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987365Z               "line": 864
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987613Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987689Z               "line": 994
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987770Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8987947Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988037Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988113Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988342Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988423Z               "line": 43
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988499Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988690Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988771Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988848Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8988920Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989081Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989158Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989249Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989329Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989404Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989489Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989571Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989651Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989726Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989836Z               "path": "crates/spt-daemon/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989917Z               "line": 284
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8989994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990232Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990318Z               "line": 1625
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990393Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990571Z               "path": "crates/spt-store/src/monic.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990652Z               "line": 1686
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990904Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8990985Z               "line": 368
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991061Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991138Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991242Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991323Z               "line": 419
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991448Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991525Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991638Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991719Z               "line": 549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991797Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991872Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8991971Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992051Z               "line": 31069
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992123Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992199Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992273Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992349Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992421Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992498Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.8992598Z       "id": "REQ-TRUST-WARNING-CADENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9007776Z       "title": "The trust warning surfaces ONCE PER SESSION PER PEER, not once per message. THE CONDITION AND THE CADENCE ARE DIFFERENT QUESTIONS and this requirement exists because the first was ratified without the second: REQ-TRUST-WARNING settled WHEN a warning is owed (an entry admitted the sender and the receiver holds no monic) and never said HOW OFTEN, so the shipped edge composed one per admitted message. The dedup already named there is REPLAY dedup — a retried op-id is not re-delivered — which is a different question wearing similar words, and reading it as repetition coverage is what let the gap ship. A 665-byte block ahead of every message from one admitted stranger is a warning an agent learns to skip, which costs it the only job it has. THE DEDUP KEY IS (BOUND SESSION ID, PEER). The session id is the harness session BOUND TO THE RECEIVING PERCH, read from the perch record the delivery edge already holds a path to — one derivation serving both the live case and the offline-spool burst, so a hundred messages spooled while an agent was away surface ONE warning when it returns rather than a hundred. State lives in the node-local per-session scratch dir, one marker file per peer, which is the seam that already re-arms once-per-session state by construction: a `/clear` mints a new session id, hence a fresh dir, hence a re-armed warning. It is per-peer BY FILE and not a single seen-set file, deliberately — the seen-set's read-modify-write lost-update race was acceptable for keyword hints only because that writer is serialized per session, an assumption the WAN inbound path does not share. FOUR PROPERTIES, ALL FAILING TOWARD THE WARNING, stated because each is a place a later reader would 'fix' the caution away: (a) AN UNREADABLE MARKER AND AN ABSENT MARKER BOTH MEAN WARN, and this is CORRECT AND LOAD-BEARING rather than an oversight — it is the husk-reads-as-default shape, named here so a future fixer who reaches for a tidier read finds this sentence at the line they were about to change; a damaged dedup store costs a duplicate warning, never a silent one. (b) TWO MESSAGES FROM ONE PEER ARRIVING CONCURRENTLY MAY BOTH WARN — the check and the claim are not atomic across processes, and that is an ACCEPTED LIMIT, not a defect to close: the failure is a second warning, which is benign and direction-correct, and closing it would mean a lock on the inbound message path to save one duplicated advisory. (c) A MARKER WRITE FAILURE ALSO WARNS: the claim is best-effort, and an edge that could not record 'already warned' must behave as though it never warned. (d) TWO UNNAMED SENDERS ON ONE NODE SHARE ONE MARKER, because the origin node is the only identity there is to key an unprovable sender on — an ACCEPTED LIMIT that is the truth about what the daemon can name, not a collision to repair; a named peer and an unnamed one are never folded together, since the two arms carry distinct marker prefixes and neither class's marker can quiet the other. (e) NO BOUND SESSION RECORD MEANS NO KEY, AND NO KEY MEANS WARN EVERY MESSAGE — correct and rare, and the honest reading of a receiver whose session cannot be named. THE CLAIM IS MADE ONLY AFTER THE WARNING IS ACTUALLY DELIVERED, so the cadence can never eat the one warning a session gets: if every delivery leg fails (the loud undelivered diagnostic), nothing is claimed and the next message warns again — a marker on disk must never assert a caution that no agent ever read. THE CADENCE APPLIES UNIFORMLY, INCLUDING TO SENDERS THE DAEMON COULD NOT PROVE, and this does not loosen the unsuppressible-warning limit ratified in REQ-TRUST-WARNING: that limit is about CLASSIFICATION — no provable id yields no monic, so the monic path can never silence an unnamed peer — and a cadence is not a classification and silences nothing, since the caution still reaches the agent in every session and re-arms with each new one. Exempting unnamed senders would aim the exemption at the one class no monic can ever quiet, preserving the per-message flood exactly where it is unbounded. An unnamed peer's key is NODE-SCOPED because the origin node is the only identity there is to key on, so two unnamed senders on one node share one marker — that is what the daemon can honestly name, not a collision to repair. THE PEER COMPONENT OF THE PATH IS VALIDATED BEFORE IT IS JOINED, on the precedent the override store already sets, because the proven-sender id arrives off the wire: an id that fails validation yields no marker and therefore warns. THE OVERRIDE SEMANTICS ARE UNTOUCHED — cadence decides whether a block is composed at all, never what it says. Gate: impl — the per-peer marker claim over the per-session scratch dir with its validated peer component, the bound-session read at the delivery edge, and the claim-after-delivery wiring at the one surfacing site; unit — a second admitted message from the same peer in the same session composes no second warning, a new session warns again, per-peer isolation (a warning about A leaves B's first warning owed), a spooled burst of N messages from one peer yields ONE warning, an absent perch record warns every message, a marker write failure still warns, an unreadable marker still warns, an invalid peer component claims nothing and warns, two messages from UNNAMED senders on one node in one session yield one warning while a new session re-warns, a named peer and an unnamed sender on the same node neither quiet each other, and an undelivered warning (every delivery leg failed, the loud diagnostic printed) leaves the marker unclaimed so the next message warns again.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008016Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008093Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008175Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008251Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008326Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008403Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008485Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008570Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008650Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008814Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9008904Z               "line": 1029
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009072Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009261Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009347Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009429Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009505Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009586Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009720Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009805Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009887Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9009963Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010068Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010148Z               "line": 146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010402Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010482Z               "line": 776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010562Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010733Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010813Z               "line": 853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9010965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011109Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011198Z               "line": 865
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011447Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011527Z               "line": 1025
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011605Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011795Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011876Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9011953Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012033Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012142Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012219Z               "line": 340
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012297Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012481Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012564Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012879Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9012959Z               "line": 359
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013034Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013110Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013186Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013262Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013347Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013427Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013503Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013580Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013746Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013823Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9013923Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014004Z               "line": 1250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014080Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014152Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014252Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014342Z               "line": 1281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014544Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014643Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014724Z               "line": 1311
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014801Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9014986Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015067Z               "line": 570
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015140Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015215Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015325Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015406Z               "line": 591
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015484Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015558Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015668Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015750Z               "line": 612
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9015901Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016053Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016139Z               "line": 629
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016211Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016287Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016392Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016473Z               "line": 653
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016550Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016736Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016816Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9016964Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017070Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017150Z               "line": 695
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017302Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017446Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017541Z               "line": 724
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017617Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017695Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017770Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017851Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017922Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9017999Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9018099Z       "id": "REQ-TRUST-WARNING-ENVELOPE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9030916Z       "title": "The trust warning RIDES THE DELIVERED MESSAGE'S OWN ENVELOPE as a `trust-warning` attribute composed by the RECEIVING node, so an agent reads the caution and the message it is about in ONE arrival rather than two. THE CARRIER CHANGES; THE RULE DOES NOT — when a warning is owed (REQ-TRUST-WARNING) and how often it surfaces (REQ-TRUST-WARNING-CADENCE) are untouched by this requirement, which settles only WHERE the composed block travels. THE GROUNDING IS THAT A SEPARATE DELIVERY IS A SEPARATE INJECTION: under an spt-hosted harness each delivery becomes its own context injection, so a caution delivered alongside costs the agent a second interruption for a block it must read with the message anyway. THE UNFORGEABILITY REASON IS PRESERVED, NOT TRADED, and this is the distinction the change turns on: the ratified rule forbids SPLICING THE WARNING INTO THE PEER'S BODY, because a warning inside the body is one a sender could have written. An envelope attribute is not the body — it is composed by the receiving node exactly as a matched monic's `mnemonics-json` is, so the sender authors it in neither design. THE ATTRIBUTE IS ADAPTER-VISIBLE BY DECISION, NOT BY ACCIDENT: the surface question was resolved before building and it was decidable rather than preferential, because the payload is text the AGENT MUST READ and any carrier stripped before the EVENT would ship a caution that never surfaces. It therefore enters the PUBLISHED envelope surface, which obliges the public envelope documentation to state it and a re-rendering adapter to surface it. FOR THIS ATTRIBUTE, BEING IGNORED IS THE FAILURE, which INVERTS the mnemonics-json precedent: an adapter safely ignoring an unknown attribute is exactly how a security caution goes missing, so 'additive and N-1-safe' is necessary and NOT sufficient here, and the doc must bind a custody pipeline that re-renders a delivery to carry the attribute through, on the precedent already set for carrying matched monics through intact. THE FAIL-SAFE IS NAMED, NOT DISCOVERED. A body that is ALREADY A TYPED ENVELOPE carries no attribute — it rides verbatim by construction, and splicing into a finished envelope would mean hand-rolling the grammar a second time. For exactly those deliveries the warning KEEPS its own system-authored delivery under the reserved author, unchanged. The second injection therefore survives precisely where no carrier exists and nowhere else, and the caution is never traded for the fix. THE INBOUND VALUE IS INERT BY CONSTRUCTION. A sender-supplied body that is itself a typed envelope rides verbatim through the wire, the spool and every renderer, so a peer can write this attribute into one and have it arrive wearing the receiver's own voice. Every point at which a sender-supplied body enters this node STRIPS the receiver-composed attributes BEFORE any is attached, so the value a recipient reads is the receiver's own by construction rather than by the sender's restraint. THE STRIP IS BY CLASS, NOT BY NAME: receiver-composed attributes are a named set, because two name-strips at one seam authored in two lanes is a drift pair, and inertizing the class costs exactly what inertizing one name costs while holding for the next receiver-composed attribute too. Attributes an envelope's own AUTHOR legitimately carries (`type`, `from`, a notify's id, an alarm's times) ride end-to-end intact — the strip removes named receiver-composed attributes from an otherwise untouched envelope, and it is not the wholesale re-compose that re-stamping an envelope's TYPE performs. A key that could not be re-emitted safely is DROPPED rather than written back unescaped. Gate: doc — the public envelope surface states the attribute, that the receiving node composes it, the MUST-surface obligation on a re-rendering adapter with ignored-is-failure as its reason, and the typed-envelope fail-safe; impl — the attribute constant and the receiver-composed class in the envelope grammar, the class strip at each sender-supplied ingress, the attach at the WAN edge through the envelope renderer so a matched monic still evaluates under the one rule, and the fail-safe branch that keeps the separate delivery when the body carries no attribute; unit — a forged inbound trust-warning attribute is inert on a delivered envelope, an admitted stranger's message carries the warning on its OWN envelope with no second delivery spooled, a typed-envelope body still draws the separate system-authored delivery, the strip preserves every other attribute and the body, and the cadence still claims only after the carrying message was actually delivered.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031117Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031235Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031321Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031403Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031479Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031555Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031639Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031725Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031806Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031881Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9031970Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032056Z               "line": 1027
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032328Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032420Z               "line": 211
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032491Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032567Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032642Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032720Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032811Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032892Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9032971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033135Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033225Z               "line": 807
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033473Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033554Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033635Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033807Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033888Z               "line": 995
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9033964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034150Z               "path": "crates/spt-msg/src/deliver.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034230Z               "line": 159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034490Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034575Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034690Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034866Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9034947Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035096Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035195Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035277Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035354Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035524Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035602Z               "line": 178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035858Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9035940Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036049Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036231Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036313Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036570Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036651Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036725Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036798Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036875Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9036947Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037035Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037116Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037193Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037269Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037350Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037435Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037608Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037688Z               "line": 1780
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9037985Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038069Z               "line": 1828
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038318Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038398Z               "line": 1870
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038475Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038647Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038733Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038810Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9038885Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039061Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039144Z               "line": 393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039403Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039541Z               "line": 711
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039621Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039798Z               "path": "crates/spt-msg/src/emit.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039879Z               "line": 793
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9039955Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040131Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040212Z               "line": 870
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040288Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040465Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040546Z               "line": 1027
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040627Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040804Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040885Z               "line": 1049
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9040965Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9041047Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9041175Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9041256Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9041333Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9041410Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9041509Z       "id": "REQ-TRUST-WARNING-OVERRIDE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9051816Z       "title": "An operator can replace the ADVISORY PARAGRAPH of one endpoint's trust warning with their own text, through `spt endpoint trust-warning set <text> [--owner <id>]`, withdraw it with `reset`, and read what is in force with `show`. THE SCOPE IS PARTIAL BY RATIFICATION (doyle 2026-07-31, at T6's acceptance): custom text replaces the advice and NOTHING ELSE — the line naming who reached the endpoint and stating that no note is held about them, and the line saying how to classify them, are always core-composed. The grounding is that override text is agent-behavior instruction delivered under a RESERVED SYSTEM AUTHOR, which makes it a prompt-injection surface, and an unforgeable factual spine BOUNDS that surface: a whole-block override would let one elevated write hide WHO is knocking, which no legitimate override needs. THE VERB STATES THAT SCOPE IN ITS OWN OUTPUT — required, not stylistic: the operator writing agent-facing instruction is told at the moment they write it which lines they did not reach and why, rather than only in a doc they may never open. WRITES ARE ELEVATION-GATED AND READS ARE NOT, and this is THE ONE ELEVATION GATE IN THE MONIC/TRUST-WARNING FAMILY (REQ-MONIC-VERBS asserts the opposite invariant for the monic verbs, and this requirement must not be read as loosening it): writing is a human-at-the-machine act because an agent must not be able to rewrite the caution it is about to be handed, while showing what an endpoint is told leaks no authority and is exactly the visibility that makes a planted override discoverable — gating the read would protect nothing and hide the only thing worth auditing. Elevation that cannot be POSITIVELY CONFIRMED refuses like no elevation at all. THE TEXT IS STORED NODE-LOCALLY BESIDE THE ACCESS STORE, ONE FILE PER ENDPOINT, AND NEVER IN THE MIND TIER: a mind file replicates between every instance of an agent, so an override filed there would let a peer instance's mind push warning text onto this node — the injection surface the elevation gate exists to hold shut, re-opened by a sync. TWO WRITE-TIME REFUSALS: a blank override (withdrawal is its own verb, so a blank one is a shell mishap far more often than an intent to caution an agent about nothing) and one past a length bound (the block is read ahead of every admitted stranger's message with the classify line BELOW the advisory, so an unbounded advisory buries the line an override may not touch — the harm the whole-block override was refused for, reached by length instead of by scope). THE READ IS FAIL-SAFE AND STORE-FREE: the delivery edge reads the override off a plain path after it has already decided to warn, and an absent, unreadable, or blank record all read as NO override, falling back to the default advisory — what a damaged override costs is the operator's wording, never the caution. An override belongs to ONE endpoint: cautioning one agent never rewrites what another on the same node is told. Gate: impl — the store's per-endpoint node-local record with its validated write, fail-safe read and withdrawal, the pure verb decision keyed on whether the verb WRITES, the three CLI verbs with the scope notice in the set path, and the edge read wired into the composer's custom slot; unit — the gate table (every write refuses under not-elevated and undeterminable, show proceeds under every elevation, and gated-iff-it-writes asserted as the keying property), the refusal naming the endpoint and the elevated re-run, the stored override reaching the composer and a reset restoring the default, per-endpoint isolation, a blank/damaged record falling back to the default advisory, a traversal endpoint id refused on read and write alike, the blank and over-length write refusals, and the surface parsing with a bare `set` refused.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052022Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052150Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052227Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052303Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052383Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052460Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052537Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052623Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052703Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052869Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9052950Z               "line": 1031
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053225Z               "path": "docs-site/src/networking/monics.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053306Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053382Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053457Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053568Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053649Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053734Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053820Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9053998Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054077Z               "line": 791
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054154Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054331Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054411Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054489Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054565Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054664Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054745Z               "line": 459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9054899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055008Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055089Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055166Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055393Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055478Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055559Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055738Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055820Z               "line": 150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055893Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9055972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056077Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056159Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056235Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056416Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056497Z               "line": 176
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056649Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056760Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056878Z               "line": 188
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9056964Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057046Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057155Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057236Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057312Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057488Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057574Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057728Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057826Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057908Z               "line": 6083
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9057981Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058057Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058165Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058246Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058399Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058546Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058627Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058704Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058781Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9058884Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059047Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059123Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059199Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059276Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059353Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059438Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059518Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059596Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059672Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059757Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059838Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9059915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060076Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060162Z               "line": 438
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060424Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060505Z               "line": 462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060581Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060760Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060840Z               "line": 475
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9060990Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061094Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061175Z               "line": 496
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061432Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061513Z               "line": 513
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061732Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061843Z               "path": "crates/spt-store/src/trustwarn.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9061924Z               "line": 539
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062172Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062253Z               "line": 31065
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062405Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062511Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062591Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062845Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9062925Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063078Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063183Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063268Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063580Z               "path": "crates/spt/src/trustwarnverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063660Z               "line": 165
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063736Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063813Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063890Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9063966Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9064042Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9064119Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9064229Z       "id": "REQ-UNLISTED-ANSWERED-CROSS-NODE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9071763Z       "title": "A CROSS-NODE KNOCK WHOSE ANSWER THIS NODE CAN PROVE RENDERS THAT ANSWER, AND EVERY SILENCE THAT CANNOT BE PROVEN STAYS A SILENCE. The `invited-outbound` evidence line said `we knocked them; answer unknown here (releases#87)` for EVERY cross-node knock, on the reasoning -- true when written -- that the approval receipt is produced where the notification is produced, that the notification never crosses, and that no wire carried one. THE WIRE SHIPPED (DOORBELL W5: spt-net answermsg, spt-daemon answerop, the knocker's half), so the line became a stale claim about the SYSTEM rather than a fact about this node -- and it said so in prose the same lane must correct, since three sites asserted the receipt family was `unbuilt` while the built wire sat beside them. THE FILING'S OWN MECHANISM IS WRONG IN ITS SPECIFICS AND THE MEASUREMENT IS THE RULING'S GROUND (doyle 2026-08-21): there is no `Answered` knock state (they are Pending/Approved/Denied/Expired), and the receipt does NOT land on the knock row -- `receipt_ms` has exactly one production writer, at the notification-produce site, whose own doc binds it to a knocker reachable through this node's notification store, which is to say ON THIS MACHINE. What a cross-node answer touches is the knocker's own MUTUAL PRE-AUTHORIZATION: `apply_answer_receipt` marks it consumed only after matching the keyspace, the correlation id, the answerer against the endpoint that was knocked, and the answering node against the HANDSHAKE-PROVEN origin the knocker bound at arm time. A consumed record is therefore a proven answer sitting on this node, and the render REPORTS that proof rather than re-deriving it -- it must not weaken any check the consume already made. THREE SILENCES REMAIN AND NONE MAY BE READ AS AN ANSWER, which is why the unknown line survives with corrected words (`no answer has reached this node` -- a fact about US, never `no wire exists` and never `unanswered`): an ARMED-BUT-UNCONSUMED record means the answer has not arrived; a NEVER-ARMED knock, the non-mutual majority, has nothing for a receipt to land on, so an approval leaves no trace here at all; and a DENIAL REMOVES the record (deliberately -- a consumed record means the reverse rule was written, and a merely-flagged one would read back as the approval it was not), which makes declined and never-armed THE SAME BYTES. Rendering `declined` out of that absence would manufacture a peer's decision, and an operator who read it would stop asking someone who had in fact let them in. Gate: impl -- the consumed-pre-authorization join over the store already in hand (no new read), keyed on BOTH keyspace and correlation id so a redeemed code cannot report an answer for a knock, the split cross-node arms, and the three stale `unbuilt` prose sites corrected in the same change; unit -- the proven row renders approved AND names what proves it; each of the three silences renders the unknown line with the banned vocabulary asserted absent on every one of them; a code-keyspace pre-authorization sharing the correlation id renders a silence (the keyspace half of the key, which an id-only match would lose); and the same-node arms are untouched.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9071949Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072030Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072108Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072183Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072259Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072340Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072423Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072565Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072641Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072717Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072808Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072889Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9072970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073081Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073160Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073414Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073499Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073653Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073748Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073832Z               "line": 233
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073908Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9073984Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074060Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074149Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074272Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074354Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074431Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074516Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074597Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074679Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074855Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9074936Z               "line": 597
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9075013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9075098Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9075193Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9075274Z               "line": 622
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9075351Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9078786Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9078882Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9079062Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9079225Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9079299Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9079413Z       "id": "REQ-UNLISTED-CONTACT-LEDGER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9082900Z       "title": "Recent-traffic evidence rides NEW node-scoped state, and the REQ-SEC-1 recent-outbound correlation log is UNTOUCHED. A firewall's memory and a UI's memory must not be the same row: `RecentOutbound` is keyed (local endpoint, remote node) with no peer endpoint id, its window is REPLY_WINDOW_MS = 15 minutes, and it is the stateful-firewall 'established/related' input -- widening its key or its retention for a listing feature would silently widen an admit verdict, a security regression wearing a feature's clothes. THE CONSTRAINTS RIDE THIS MINT, NOT A LATER REVIEW: rows are (direction inbound/outbound, endpoint id, origin node key, last-seen); the retention window is 14 DAYS; the hard size cap is 512 ROWS, pruned oldest-first, so the ledger is bounded regardless of traffic shape; and it is NODE-LOCAL AND NEVER SYNCED -- it enters no replication feed, in the shape ADR-0046's node-scoped notif rows already established. Write sites: inbound is recorded POST-GATE in the WAN receive funnel (the sender endpoint is daemon-stamped and the origin node is handshake-proven; a message the gate refused is not contact), outbound at the send legs. Gate: doc -- the storage entry naming the window, the cap and the never-synced rule; impl -- the store with record/prune/cap and both write sites; unit -- a row older than the window is dropped, the cap prunes oldest-first at its stated VALUE, a refused inbound writes nothing, and the ledger is absent from every emitted feed.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083053Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083134Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083210Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083292Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083368Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083449Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083530Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083617Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083702Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9083927Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084017Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084092Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084169Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084246Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084322Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084407Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084487Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084672Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084752Z               "line": 933
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9084905Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085024Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085104Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085253Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085367Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085452Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085530Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085767Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085849Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9085926Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086111Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086193Z               "line": 141
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086450Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086526Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086784Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086865Z               "line": 182
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9086978Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087163Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087244Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087318Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087505Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087587Z               "line": 405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087661Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087839Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087920Z               "line": 490
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9087995Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088072Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088154Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088230Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088314Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088397Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088473Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088553Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088634Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088760Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9088840Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089036Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089122Z               "line": 1660
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089196Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089278Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089384Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089465Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089718Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089799Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089873Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9089949Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090055Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090132Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090288Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090451Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090531Z               "line": 308
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090612Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090685Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090794Z               "path": "crates/spt-store/src/contacts.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090879Z               "line": 331
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9090951Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091128Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091208Z               "line": 2362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091457Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091537Z               "line": 2405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091615Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091691Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091775Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091852Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9091925Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9092001Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9092109Z       "id": "REQ-UNLISTED-EVIDENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9097505Z       "title": "An endpoint that this node holds LOCAL EVIDENCE of is knowable to its own operator without a DISCOVER grant and without any change to discovery: `spt endpoint list` auto-qualifies the invoking entity and renders off-node peers drawn from three local sources, each row carrying its provenance -- invited-outbound (a knock this node sent, and the approval receipt where one exists), admits-inbound (this node's OWN access rules naming that endpoint as a subject), and recent-traffic (the contact ledger, REQ-UNLISTED-CONTACT-LEDGER). A row STATES ITS EVIDENCE AND NEVER ASSERTS LIVENESS: a stale rule can name a deleted endpoint, so the evidence is a fact about this node's own records, never a claim about the peer. TWO SILENCES APPLIED TO RECEIPTS, BINDING ON THE RENDERER: the approval receipt is persisted at the notification-PRODUCE site, which exists only for a SAME-NODE approval -- with the receipt wire family unbuilt (releases#87) a cross-node approval produces no receipt on this node at all, so an approved cross-node knock and an ignored one are the same bytes here. A cross-node invited-outbound row therefore states ANSWER UNKNOWN and names releases#87; it must never read as 'unanswered' and never as anything a reader could take for declined. A same-node row may state approved, because there the receipt exists. The outbound knock itself is persisted locally -- the pre-fix `KnockSendOutcome::Queued` arm returned before the upsert, so a cross-node knock left this node holding nothing -- which is what makes 'I knocked them, they exist at node N' real cross-node evidence. SCOPE GUARD: the retained outbound knock is evidence substrate only; whether `knock list` grows an outbound view is NOT this requirement. A bare-terminal invocation mirrors the fork knocking already named (`Knocker::User`): its asker is subject invoking-node / origin user, and the list renders the NODE's evidence. Gate: doc -- the CONTEXT.md UNLISTED-evidence entry; impl -- the three evidence sources, the produce-site receipt, and the Queued-arm persistence; unit -- a cross-node invited-outbound row says answer-unknown while a same-node one says approved (the discriminator pair), a knock sent cross-node is retained locally, and an evidence row never renders a liveness word.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9097705Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9097780Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9097860Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9097935Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098012Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098089Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098170Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098255Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098332Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098499Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098579Z               "line": 844
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098657Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098733Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098809Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9098928Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099104Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099185Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099367Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099453Z               "line": 1645
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099710Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099791Z               "line": 168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9099944Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100044Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100125Z               "line": 177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100201Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100273Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100377Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100457Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100538Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100771Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100852Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9100925Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101001Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101100Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101182Z               "line": 334
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101287Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101378Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101482Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101564Z               "line": 353
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101716Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101821Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9101899Z               "line": 1170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102031Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102107Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102213Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102297Z               "line": 1200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102374Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102445Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102543Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102621Z               "line": 6890
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102698Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102869Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9102948Z               "line": 17731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103024Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103191Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103268Z               "line": 17783
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103420Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103511Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103596Z               "line": 18652
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103719Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103902Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9103987Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104235Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104321Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104469Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104569Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104650Z               "line": 185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104803Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104898Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9104983Z               "line": 266
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105231Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105366Z               "line": 277
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105442Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105517Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105593Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105674Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105759Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105843Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105914Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9105991Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106078Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106154Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106335Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106416Z               "line": 4126
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106674Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106755Z               "line": 1688
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106830Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9106906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107050Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107131Z               "line": 1759
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107389Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107469Z               "line": 1785
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107718Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107798Z               "line": 1822
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9107948Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108051Z               "path": "crates/spt-store/src/knock.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108131Z               "line": 1843
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108207Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108283Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108415Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108505Z               "line": 419
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108582Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108758Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108839Z               "line": 452
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9108916Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109177Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109264Z               "line": 526
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109532Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109617Z               "line": 674
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109865Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9109941Z               "line": 694
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110022Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110151Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110228Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110312Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110389Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110466Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9110566Z       "id": "REQ-UNLISTED-EVIDENCE-ROUTE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114018Z       "title": "A row the operator can see but cannot act on is a worse surface than no row, so an evidence-known peer is REACHABLE BY SEND: when the registry holds no row for an endpoint -- `resolve_among` returns NotFound on an empty live set even for an explicit @node pin -- but the evidence holds (id, origin node key), the send dials THAT NODE directly, on the node-tier address that replicates to every subnet member regardless of endpoint DISCOVER. THE TARGET'S ACCESS GATE STAYS THE SOLE AUTHORITY ON ADMISSION, exactly as it is for every inbound today: routing on evidence is not circumventing hiddenness, because the invitation IS the consent -- the sealed-code route-rides-evidence logic applied to ordinary send. THE ASKER'S OWN VISIBILITY EXCLUSIONS STILL REFUSE, AND THE REQ-INST-12 BOUNDARY IS RE-IMPOSED WITH THE SAME PREDICATE THE RESOLVE PATH RECEIVES -- one shared closure, never a copied condition: the exclusion check lives INSIDE `resolve_visible`, which this route bypasses by construction, so a second hand-written condition would be a boundary that drifts silently from the one it claims to mirror. Gate: doc -- the networking entry stating what evidence routes on and what it does not widen; impl -- the evidence-route leg and the shared exclusion predicate; unit -- the discriminator pair, an excluded id REFUSED through the evidence route and a non-excluded one ADMITTED, plus a refusal that names the boundary rather than reading as a missing endpoint.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114114Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114189Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114270Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114348Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114423Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114504Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114580Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114672Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114795Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9114972Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115053Z               "line": 601
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115129Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115200Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115277Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115354Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115443Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115520Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115697Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115777Z               "line": 11871
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9115926Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116026Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116153Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116413Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116493Z               "line": 196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116742Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116822Z               "line": 433
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116895Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9116972Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117043Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117118Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117205Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117281Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117358Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117433Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117514Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117596Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117672Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117771Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117854Z               "line": 24976
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9117972Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118149Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118230Z               "line": 725
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118484Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118559Z               "line": 751
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118639Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118710Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118810Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9118886Z               "line": 771
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119219Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119304Z               "line": 2432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119380Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119457Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119534Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119610Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119737Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119820Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9119919Z       "id": "REQ-UNLISTED-FOOTER-OMITTED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9124979Z       "title": "THE UNLISTED SECTION RENDERS ITS ROWS AND NOT AN ESSAY ABOUT THEM: `endpoint list` omits the two footer explainer lines under the UNLISTED heading -- the always-printed `evidence is what this node recorded; the presence word is their own node's answer, asked just now`, and the conditional `not asked -- no node is recorded for that row, so there was nobody to ask`. Operator-filed (releases#184, split from releases#149): both were confusing rather than helpful, and they were the only two lines in the family that explained the family to a reader who had already read the rows. WHAT STAYS, EXPLICITLY, because the deletion must not strand the section: the purple heading that NAMES what the section is, every per-row cell and its phrases -- the status word, the provenance label, the node label including the stated `node unknown`, the presence word, the `not asked` cell itself, and the evidence detail -- and the CONDITIONAL `unknown` legend, which the filing does not name and which explains a word an operator is about to act on that its own spelling does not carry (a relay-hosted peer cannot tell busy from offline). The retained legend's own doc comment is corrected in the same change from `the two legends below` to what remains, because a count that no longer matches its code is the stale-carried-forward sentence the next reader trusts. THE RETRACTION SWEEPS THE STRINGS, NOT JUST THE RENDER SITE (doyle Q5): the deleted phrases are hunted through the test estate so no assertion outlives the text it asserts -- an assertion on a deleted string is either a red or, worse, a green on a substring the ROW still carries. THE OMISSION IS PINNED BY A NEGATIVE CELL over a fixture that HAS an unasked row, since a fixture without one would pass on a footer that is merely unreached rather than gone. Gate: impl -- `render_unlisted` without the two lines and with its legend comment corrected; unit -- one rendered fixture carrying an unasked row asserts BOTH phrases absent while the heading, the row's `not asked` cell and the retained `unknown` legend are still present, so the cell separates the footer from the per-row vocabulary rather than merely counting lines.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125116Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125189Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125265Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125341Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125421Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125498Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125585Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125665Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125741Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125823Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125904Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9125984Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126065Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126210Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126294Z               "line": 7072
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126371Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126448Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126525Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126600Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126685Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126765Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126837Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126917Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9126997Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127077Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127245Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127330Z               "line": 28152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127402Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127479Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127550Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127626Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127702Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127780Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9127879Z       "id": "REQ-UNLISTED-PRESENCE-PROBE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9132925Z       "title": "`endpoint list` answers 'is this peer there right now' for UNLISTED rows with a presence probe, and the probe is NOT A MESSAGE: it is its own kind-tagged wire family, in the shape KNOCK_KIND already established, so an N-1 daemon classifies it Unknown and DROPS IT CLEAN. Probes fan out simultaneously and the verb BLOCKS on them under a HARD 10-SECOND PER-PROBE CEILING passed as a PARAMETER -- the shared PROBE_TIMEOUT const stays 2500ms and is untouched -- over the `probe_all` + `run_bounded` fan-out shape, so the wall-time is one ceiling and one wedged dial never drags the batch. TWO SILENCES: a probe that goes unanswered renders UNKNOWN AND NEVER OFFLINE, because an N-1 daemon's clean drop and a dead node produce the same silence. The answer distinguishes LISTENING / BUSY / OFFLINE, and each word has exactly one authority: they are answered from the serving daemon's HONEST SESSION AUTHORITY (the broker's hosted-session map and its activity window), NEVER from perch records -- the derived-view class where `is_online` reads a ready-file and a liveness stamp. BUSY IS A BROKER-AUTHORITY WORD ONLY. A relay-hosted peer holds no broker session, so it answers from a real connect attempt: accepted is LISTENING, and anything else is UNKNOWN -- busy and offline are indistinguishable there, and rendering offline would be a coin flip presented as a fact; the renderer may say why. CONSENT GROUNDING: the target node answers only if its own rules admit the asker for MSG to that endpoint -- enforcement stays owner-side at the owner's seam -- and presence already leaks to exactly this population one message at a time (SENT vs QUEUED), so the probe adds no new information class. Gate: doc -- the networking entry naming the family, the ceiling and the three-plus-unknown vocabulary; impl -- the record, the dispatcher arm, the serve side and the bounded fan-out; unit -- an unanswered probe reads unknown and not offline, a relay-hosted peer never reads busy, an unadmitted asker is refused at the owner's seam, and the ceiling is honoured per probe rather than per batch.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133063Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133138Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133220Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133292Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133373Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133448Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133526Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133612Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133692Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133855Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9133940Z               "line": 618
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134011Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134092Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134165Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134246Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134325Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134415Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134540Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134656Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134742Z               "line": 151
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134818Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9134891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135000Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135080Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135347Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135429Z               "line": 1149
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135501Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135577Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135681Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135763Z               "line": 1962
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9135911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136020Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136102Z               "line": 2013
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136215Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136296Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136397Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136483Z               "line": 2049
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136554Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136741Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136821Z               "line": 2085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136897Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9136974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137080Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137155Z               "line": 2131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137235Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137306Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137416Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137495Z               "line": 2152
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137796Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137876Z               "line": 667
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9137952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138149Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138239Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138315Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138387Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138487Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138563Z               "line": 6252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138811Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9138892Z               "line": 6632
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139059Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139289Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139374Z               "line": 6808
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139454Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139531Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139623Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139703Z               "line": 6941
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139854Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9139945Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140025Z               "line": 6953
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140105Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140267Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140348Z               "line": 6966
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140424Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140596Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140677Z               "line": 7004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9140973Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141059Z               "line": 7042
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141212Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141307Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141388Z               "line": 14172
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141640Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141717Z               "line": 634
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141792Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141865Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9141945Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142021Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142107Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142189Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142260Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142345Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142427Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142513Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142589Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142750Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142831Z               "line": 2538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142908Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9142984Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143092Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143175Z               "line": 3405
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143246Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143427Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143509Z               "line": 3462
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143766Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143847Z               "line": 3498
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9143994Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144109Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144242Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144396Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144510Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144590Z               "line": 258
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144667Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144852Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9144938Z               "line": 273
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145202Z               "path": "crates/spt-net/src/net/presencemsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145279Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145355Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145431Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145522Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145640Z               "line": 27937
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145893Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9145979Z               "line": 27967
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146132Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146227Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146309Z               "line": 28050
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146381Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146456Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146537Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146608Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146686Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146761Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9146856Z       "id": "REQ-UNLISTED-RENDER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9149882Z       "title": "Evidence-known off-node peers render in a NEW status family, UNLISTED, which is deliberately NOT the ratified HIDDEN vocabulary: HIDDEN names an operator-chosen exclusion (REQ-INST-12) and those rows must never read as reachable, so reusing the word would collapse two opposite meanings onto one surface. Rows are provenance-labelled with the source that produced them. COLOUR NEVER CARRIES THE MEANING ALONE -- the status WORD rides the row and `--json` carries the state name, so a colour-blind reader, a piped log and a machine consumer all read the same fact. BOTH SOURCE LEGS OF `endpoint list` CARRY THE FAMILY: the human path and the `--json` path are separate constructions over the same facts, and the reader-parity discipline REQ-LIST-JSON-LIVENESS-PARITY already enforces there applies unchanged -- a family that appears on one leg only is the parity defect that requirement exists to prevent. Gate: doc -- the CONTEXT.md status-vocabulary entry distinguishing UNLISTED from HIDDEN; impl -- the family, its provenance labels and both render legs; unit -- an UNLISTED row renders its status word with colour disabled, a HIDDEN endpoint never renders as UNLISTED, and the human and `--json` legs agree on the same fixture.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150024Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150164Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150249Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150329Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150404Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150481Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150557Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150636Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150721Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150885Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9150961Z               "line": 838
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151036Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151112Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151185Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151266Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151346Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151427Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151599Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151679Z               "line": 6230
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151762Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9151990Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152076Z               "line": 6237
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152148Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152319Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152401Z               "line": 6627
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152477Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152648Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152726Z               "line": 6806
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152806Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9152972Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153050Z               "line": 6838
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153201Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153338Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153425Z               "line": 6891
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153506Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153581Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153672Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153750Z               "line": 7017
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9153992Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154074Z               "line": 7035
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154150Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154321Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154402Z               "line": 38
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154554Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154651Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154741Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9154893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155028Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155112Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155188Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155265Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155338Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155417Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155502Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155583Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155655Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155734Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155819Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155895Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9155972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156068Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156148Z               "line": 27886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156297Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156392Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156472Z               "line": 28085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156549Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156673Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156772Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156854Z               "line": 28129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9156931Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157002Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157101Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157178Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157426Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157508Z               "line": 378
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157585Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157660Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157755Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157837Z               "line": 392
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9157993Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158099Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158181Z               "line": 473
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158294Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158374Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158469Z               "path": "crates/spt/src/unlisted.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158555Z               "line": 784
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158625Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158701Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158777Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158854Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9158926Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159087Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159173Z       "id": "REQ-UPD-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159278Z       "title": "Peer-propagated update over P2P",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159368Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159445Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159521Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159598Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159668Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159745Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159878Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9159974Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9160060Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9160141Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9163798Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9163913Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164000Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164208Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164290Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164442Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164562Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164648Z               "line": 104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164915Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9164995Z               "line": 343
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165081Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165157Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165357Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165443Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165710Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165792Z               "line": 212
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9165945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166053Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166133Z               "line": 320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166210Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166389Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166465Z               "line": 377
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166722Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166809Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9166943Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167027Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167104Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167182Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167267Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167347Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167424Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167543Z               "path": "crates/spt-daemon/tests/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167624Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167700Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167772Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167886Z               "path": "crates/spt-daemon/tests/twohost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9167967Z               "line": 2231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168043Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168121Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168196Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168272Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168358Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168441Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168515Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168678Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168765Z               "line": 558
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168844Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9168915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169143Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169227Z               "line": 684
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169303Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169518Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169599Z               "line": 371
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169676Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169757Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169866Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9169947Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170030Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170100Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170262Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170344Z               "line": 200
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170434Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170510Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170586Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170664Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170739Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170820Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9170901Z       "id": "REQ-UPD-2",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171040Z       "title": "All binaries signature-verified before handoff",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171134Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171216Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171288Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171369Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171444Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171524Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171610Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171691Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171770Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171846Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9171932Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172014Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172137Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172257Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172339Z               "line": 344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172419Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172610Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172691Z               "line": 511
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172838Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9172944Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173024Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173100Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173177Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173282Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173363Z               "line": 358
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173434Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173621Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173749Z               "line": 375
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173831Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9173917Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174020Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174102Z               "line": 495
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174180Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174358Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174434Z               "line": 645
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174516Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174593Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174701Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174782Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174855Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9174931Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175007Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175083Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175170Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175250Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175331Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175461Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175546Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175627Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175809Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175894Z               "line": 945
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9175970Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176047Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176152Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176232Z               "line": 1006
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176308Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176491Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176565Z               "line": 1020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176859Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9176949Z               "line": 1036
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177025Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177102Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177207Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177287Z               "line": 1127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177364Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177441Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177545Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177631Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177708Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177883Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9177969Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178047Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178122Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178236Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178318Z               "line": 504
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178395Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178508Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178584Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178662Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178737Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178813Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9178894Z       "id": "REQ-UPD-3",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179152Z       "title": "No endpoint process terminates/suspends during self-update",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179233Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179315Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179391Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179466Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179541Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179618Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179694Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179778Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179858Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9179935Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180012Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180097Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180183Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180255Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180435Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180516Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180590Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180779Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180861Z               "line": 301
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9180938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181118Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181195Z               "line": 2179
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181271Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181347Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181452Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181534Z               "line": 9123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181610Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181690Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181795Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181878Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9181957Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182190Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182274Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182350Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182425Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182526Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182608Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182683Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182855Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9182931Z               "line": 9336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183007Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183083Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183156Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183237Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183317Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183447Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183523Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183642Z               "path": "crates/spt/tests/brain_survive.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183723Z               "line": 58
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183795Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183871Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9183947Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184023Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184106Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184190Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184261Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184376Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184453Z               "line": 799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184716Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184797Z               "line": 884
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184871Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9184947Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185057Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185186Z               "line": 1041
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185338Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185444Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185529Z               "line": 1413
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185677Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185787Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185863Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9185943Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186021Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186125Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186206Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186463Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186544Z               "line": 316
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186616Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186698Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186850Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9186931Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187003Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187079Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187154Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187225Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187301Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187378Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187461Z       "id": "REQ-UPD-4",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187633Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187715Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187800Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187876Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9187948Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188034Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188110Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188195Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188278Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188358Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188434Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188524Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188658Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188739Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188853Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9188931Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189096Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189288Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189368Z               "line": 125
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189518Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189626Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189707Z               "line": 302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189856Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9189969Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190101Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190178Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190259Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190367Z               "path": "crates/spt-daemon/src/consent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190447Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190519Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190700Z               "path": "crates/spt-daemon/src/consent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190781Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190854Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9190930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191034Z               "path": "crates/spt-daemon/src/consent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191111Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191187Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191372Z               "path": "crates/spt-daemon/src/lifecycle.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191449Z               "line": 965
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191602Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191706Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191845Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9191992Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192103Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192184Z               "line": 522
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192428Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192508Z               "line": 9335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192583Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192658Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192735Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192816Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192900Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9192980Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193057Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193130Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193215Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193295Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193372Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193548Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193629Z               "line": 880
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193887Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9193968Z               "line": 1094
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194045Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194225Z               "path": "crates/spt-daemon/src/config.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194307Z               "line": 502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194379Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194564Z               "path": "crates/spt-daemon/src/consent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194641Z               "line": 102
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194793Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194897Z               "path": "crates/spt-daemon/src/consent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9194980Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195107Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195184Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195290Z               "path": "crates/spt-daemon/src/consent.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195371Z               "line": 142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195627Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195703Z               "line": 1347
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195855Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9195960Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196041Z               "line": 1290
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196285Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196404Z               "line": 31399
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196479Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196561Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196642Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196713Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196789Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196861Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9196948Z       "id": "REQ-UPD-5",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197081Z       "title": "spt-core ripple-updates registered adapters",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197167Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197244Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197324Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197395Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197477Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197549Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197635Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197714Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197790Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197871Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9197952Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198035Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198241Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198364Z               "line": 27
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198440Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198632Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198712Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198784Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9198862Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199070Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199147Z               "line": 145
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199404Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199486Z               "line": 579
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199638Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199743Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199825Z               "line": 633
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9199900Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200029Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200111Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200187Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200272Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200349Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200426Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200502Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200590Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200666Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200856Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9200936Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201012Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201203Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201279Z               "line": 292
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201395Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201589Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201724Z               "line": 306
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201804Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201880Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9201995Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202076Z               "line": 320
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202339Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202419Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202495Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202683Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202762Z               "line": 1844
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202843Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202920Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9202993Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9203115Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9203190Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9203271Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9203362Z       "id": "REQ-UPD-6",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204122Z       "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)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204203Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204286Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204362Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204437Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204513Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204591Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204667Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204743Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204833Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204915Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9204991Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205100Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205230Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205310Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205482Z               "path": "docs/DEBUG-ROLLOUT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205564Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205860Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9205940Z               "line": 3
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206015Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206090Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206167Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206245Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206325Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206405Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206592Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206673Z               "line": 85
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206835Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9206988Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207068Z               "line": 253
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207217Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207326Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207407Z               "line": 279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207479Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207669Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207751Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9207903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208007Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208085Z               "line": 134
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208345Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208426Z               "line": 244
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208540Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208619Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208725Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208801Z               "line": 441
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9208877Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209044Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209154Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209230Z               "line": 569
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209306Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209502Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209582Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209846Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9209978Z               "line": 638
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210056Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210140Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210250Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210328Z               "line": 669
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210404Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210483Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210603Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210690Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210765Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9210957Z               "path": "crates/spt-daemon/src/pump/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211038Z               "line": 318
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211117Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211308Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211393Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211496Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211726Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211806Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211882Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9211974Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212078Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212159Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212236Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212312Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212416Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212497Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212574Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212650Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212755Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212831Z               "line": 329
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212909Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9212979Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213088Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213175Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213403Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213509Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213591Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213741Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213845Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9213926Z               "line": 425
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214001Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214182Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214264Z               "line": 435
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214339Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214415Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214521Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214602Z               "line": 447
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214682Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9214869Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215007Z               "line": 457
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215088Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215161Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215269Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215350Z               "line": 476
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215427Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215499Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215608Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215693Z               "line": 486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215847Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9215956Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216037Z               "line": 94
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216115Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216295Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216420Z               "line": 120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216495Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216580Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216684Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216765Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216843Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9216918Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217027Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217105Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217181Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217256Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217362Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217443Z               "line": 193
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217599Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217706Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217791Z               "line": 264
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9217943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218092Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218177Z               "line": 538
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218253Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218331Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218440Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218520Z               "line": 682
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218597Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218674Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218787Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9218867Z               "line": 171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219250Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219332Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219410Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219484Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219594Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219676Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9219996Z               "path": "crates/spt-net/src/net/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220081Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220339Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220420Z               "line": 2020
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220573Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220672Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220753Z               "line": 2037
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220834Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9220907Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221006Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221087Z               "line": 2091
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221168Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221344Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221478Z               "line": 2161
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221560Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221739Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221820Z               "line": 2309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221896Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9221971Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9222070Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9222152Z               "line": 2459
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9222233Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9222314Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9222390Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226016Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226125Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226215Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226430Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226602Z               "line": 663
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226689Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226768Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226888Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9226970Z               "line": 135
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227051Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227125Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227206Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227282Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227374Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227655Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227741Z               "line": 1014
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227821Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9227893Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228008Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228089Z               "line": 1063
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228246Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228418Z               "path": "crates/spt-daemon/src/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228493Z               "line": 731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228756Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228837Z               "line": 581
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9228910Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229104Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229215Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229291Z               "line": 706
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229366Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229451Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229560Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229641Z               "line": 743
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229902Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9229984Z               "line": 1142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230121Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230308Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230387Z               "line": 1164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230641Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230721Z               "line": 1181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230875Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9230980Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231055Z               "line": 1196
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231214Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231318Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231394Z               "line": 1222
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231714Z               "path": "crates/spt-daemon/src/update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231796Z               "line": 458
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9231952Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232068Z               "path": "crates/spt-daemon/tests/propagate.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232149Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232224Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232299Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232399Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232480Z               "line": 35085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232555Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232630Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232726Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232812Z               "line": 2118
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9232959Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233108Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233194Z               "line": 2140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233279Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233356Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233446Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233527Z               "line": 2600
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233603Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233784Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233861Z               "line": 130
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9233937Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9234009Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9234085Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9234161Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9234237Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9234310Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9234396Z       "id": "REQ-UPD-7",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236361Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236503Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236586Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236666Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236742Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236823Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236896Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9236985Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237066Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237142Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237220Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237314Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237395Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237620Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237705Z               "line": 10705
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237780Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237857Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9237934Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238010Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238095Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238177Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238254Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238329Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238414Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238492Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238668Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238748Z               "line": 35003
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238826Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9238897Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9239068Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9239141Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9239221Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9239297Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9239436Z       "id": "REQ-UPD-8",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9241802Z       "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.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9241944Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242022Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242107Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242188Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242269Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242341Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242432Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242512Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242584Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242661Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242747Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242826Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9242902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243021Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243101Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243176Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243252Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243363Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243453Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243796Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243881Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9243959Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244035Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244144Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244225Z               "line": 220
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244298Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244483Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244565Z               "line": 235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244636Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244711Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244826Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244903Z               "line": 252
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9244979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245160Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245294Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245374Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245449Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245559Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245639Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245714Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245891Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9245968Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246048Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246220Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246301Z               "line": 9190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246377Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246540Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246630Z               "line": 9742
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246701Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246783Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246911Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9246997Z               "line": 9752
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247240Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247321Z               "line": 10706
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247397Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247470Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247569Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247650Z               "line": 1655
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247804Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247898Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9247979Z               "line": 1674
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248057Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248133Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248245Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248321Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248412Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248499Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248579Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248655Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248737Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248818Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9248899Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249104Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249190Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249447Z               "path": "crates/spt-daemon/src/relcache.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249528Z               "line": 648
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249608Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249681Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249777Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249852Z               "line": 35085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9249933Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9250006Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9250138Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9250219Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9250301Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9250378Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9250457Z       "id": "REQ-UPD-9",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9252959Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253057Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253134Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253216Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253293Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253372Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253448Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253524Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253610Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253689Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253860Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9253942Z               "line": 105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254013Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254089Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254185Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254266Z               "line": 692
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254342Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254418Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254495Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254576Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254671Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254800Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9254877Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255004Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255085Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255163Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255234Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255343Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255420Z               "line": 620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255572Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255682Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255764Z               "line": 728
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255836Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9255915Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256019Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256148Z               "line": 858
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256222Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256412Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256494Z               "line": 1389
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256575Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256757Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256837Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256913Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9256989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257086Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257166Z               "line": 21053
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257247Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257323Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257415Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257495Z               "line": 21592
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257647Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257739Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257862Z               "line": 22185
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9257938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258011Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258105Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258182Z               "line": 22232
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258263Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258335Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258425Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258506Z               "line": 22255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258578Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258655Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258745Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258825Z               "line": 22281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9258895Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259054Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259130Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259205Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259292Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259374Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259449Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259583Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259669Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259750Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9259946Z               "path": "crates/spt-daemon/src/adapter_update.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260026Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260103Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260178Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260284Z               "path": "crates/spt-daemon/src/release.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260365Z               "line": 810
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260441Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260517Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260623Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260703Z               "line": 1880
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260779Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260851Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9260947Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261027Z               "line": 28246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261164Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261241Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261321Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261391Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261472Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261544Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9261645Z       "id": "REQ-UPDATE-ADAPTERS-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264065Z       "title": "THE-FORKENING W4 (operator-grilled 2026-07-14): `spt update adapters [<a>[,<b>...]]` = thin ALIAS over the existing `spt adapter update` engine (cli.rs:748 gh_release avenue; the old verb STAYS — published surface) + comma-list accepted on BOTH forms. Semantics: no names -> all gh_release-avenue registrations; names validated FAIL-FAST against the registry BEFORE any update starts (a typo must not leave a half-updated set); per-adapter failure ISOLATION (one failure doesn't stop the rest) with a per-adapter summary line; nonzero exit if any failed; local-path/dev registrations SKIP loud (not error). Gate: unit — name validation, list parsing, isolation + exit-code aggregation, local-path skip; doc — reference regen (drift-gated). Kin REQ-UPDATE-DEFAULT-COMPOSITE (the caller), REQ-ADAPTER-UPDATE-MESSAGE (per-adapter apply notices ride the summary).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264212Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264291Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264372Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264444Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264521Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264601Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264677Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264760Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264845Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9264921Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265011Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265094Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265169Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265245Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265374Z               "path": "docs-site/src/self-update/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265507Z               "line": 68
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265588Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265670Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265747Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265822Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265912Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9265990Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266067Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266165Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266247Z               "line": 2489
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266324Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266494Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266574Z               "line": 21750
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266722Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266815Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266896Z               "line": 21769
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9266972Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267050Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267182Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267273Z               "line": 21811
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267345Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267422Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267511Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267593Z               "line": 21835
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267669Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267835Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267917Z               "line": 21870
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9267994Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268069Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268145Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268222Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268309Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268389Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268465Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268547Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268628Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268713Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9268929Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269080Z               "line": 25797
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269342Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269423Z               "line": 25823
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269494Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269662Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269747Z               "line": 25839
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269823Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9269919Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270009Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270089Z               "line": 26013
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270162Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270239Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270376Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270453Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270529Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270606Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9270724Z       "id": "REQ-UPDATE-APPLY-ALREADY-APPLIED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9272990Z       "title": "`spt update apply` classifies an already-staged / already-applied state as a friendly exit-0 no-op instead of dying at the binary-aside rename with 'Access is denied (os error 5)'. ROOT (F-025): a second apply on an already-applied staged version reaches the two-phase binary-aside rename and fails os-error-5, reading as a hard failure when the machine is simply up to date. FIX: apply gains the same pure classifier `fetch` got in v0.18.0 (REQ-UPDATE-FETCH-CURRENT-UX) — already-applied → clear message + exit 0, and the flow MUST short-circuit BEFORE the binary-aside rename in that state; mirror the classifier at ALL apply reject/entry sites the way the fetch fix covered its three. Genuine errors (bad signature, wrong platform, true downgrade, network) still propagate nonzero. (F-025)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273082Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273210Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273295Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273373Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273449Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273525Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273615Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273698Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273773Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273848Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9273939Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274017Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274216Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274298Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274379Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274455Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274572Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274654Z               "line": 157
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274734Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9274976Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275062Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275138Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275218Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275320Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275400Z               "line": 9204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275552Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275658Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275739Z               "line": 9276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275819Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275891Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9275968Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276048Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276139Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276220Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276298Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276382Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276463Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276555Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276797Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276879Z               "line": 523
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9276956Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277030Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277130Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277211Z               "line": 35116
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277287Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277370Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277447Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277528Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277610Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277685Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9277790Z       "id": "REQ-UPDATE-APPLY-RESTART-NOTICE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9279837Z       "title": "`spt update apply` prints a LOUD restart-required notice whenever the surviving broker will keep running the pre-apply image (which, until broker-restart choreography exists, is ALWAYS on a successful apply). Public wording, no internal CODE:RESULT markers (composes with REQ-ADAPTER-UPDATE-MESSAGE / the update-apply-confident-message rule) — name the user-visible CONSEQUENCE ('daemon-coordinated features run the previous version until the daemon restarts'), not the broker/brain internals. Composes with REQ-UPDATE-RUNNING-IMAGE-SURFACE (the notice tells the user what the version-surface will then show, and how to clear it). (F-025)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9279983Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280064Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280145Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280217Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280297Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280378Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280460Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280546Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280617Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280698Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280784Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280865Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9280993Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281094Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281184Z               "line": 9219
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281251Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281327Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281405Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281480Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281570Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281676Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281748Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281832Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281914Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9281995Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282166Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282246Z               "line": 35138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282323Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282399Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282483Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282559Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282635Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282707Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9282882Z       "id": "REQ-UPDATE-COMPOSITE-EXIT-PRECEDENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291096Z       "title": "THE COMPOSITE UPDATE'S EXIT IS FOLDED BY PRECEDENCE, NEVER BY WRITE ORDER (releases#216): `cmd_update_composite` aggregated leg exits with `worst = code` — the LAST nonzero, not the worst — so under `--restart` (the only plan where a leg runs AFTER the isolated adapters leg) an Adapters FAILURE of 1 followed by a Finish REFUSAL of 3 reported 3, and a refusal MASKED a failure. That inverts REQ-UPDATE-REFUSAL-EXIT-DISTINCT's contract, whose 3 means refusal present AND no failure — the same class of misread as the releases#153 field report where a refused fleet roll recorded itself as rolled. THE TOTAL ORDER IS 0 < 3 < EVERY OTHER NONZERO, classed BY VALUE and never by which constant minted it (the tree holds TWO distinct 3s — `EXIT_NOT_ELEVATED` and `EXIT_REFUSED_NO_WORK` — and a fold that cared which one it saw would grow a second vocabulary to drift from). An UNKNOWN nonzero is FAILURE, not refusal (doyle ruling 1): mapping an unminted code to the polite class would re-create this very defect for a code nobody has designed yet, and clap's usage `2` therefore sits in the failure class too, which is what makes the fold TOTAL. WITHIN A CLASS THE FIRST-SEEN CODE SURVIVES (doyle ruling 2) — the earliest failure is the one whose diagnostics the operator has already read, and later-overwrites-earlier is the defect mechanism itself. THE AGGREGATION CONTRACT IS STATED WHERE BOTH AUDIENCES READ IT: in the function's own doc (it stated the abort-vs-isolate failure policy and said NOTHING about aggregation, which is how the face stayed invisible to a source reader) AND on the published self-update page, because callers SCRIPT on these codes and a consumer misreading this surface is the documented history. SCOPE DECLARED, NOT ASSUMED (doyle ruling 3): this requirement covers the FOLD and the LEG ORDER that makes the defect reachable. That the composite PLUMBING routes each real leg's exit into the fold against the real binary stays UNPROVEN by this lane — an end-to-end arm would have to manufacture an adapters failure and a finish refusal, and what it would add beyond the units is that two legs still return codes their own suites already pin; the gate reads the single fold call-site as the review-arm for it instead. Gate: doc — the published self-update clause naming the precedence and both classes; impl — the pure fold + its ONE call site in the composite loop; unit — BOTH DIRECTIONS asserted together (failure-then-refusal folds to the FAILURE and refusal-then-failure folds to the same failure, since a fold that merely reversed the write order passes either arm alone), an unknown nonzero outranking a refusal, first-seen surviving within the failure class, success never outranking anything, and the leg plan pinning that Adapters PRECEDES Finish under `--restart` (the ordering the defect needs — a later plan change would silently un-reach it and the fold's arms would keep passing).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291297Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291382Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291458Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291539Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291611Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291692Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291773Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291858Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9291941Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292017Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292145Z               "path": "docs-site/src/self-update/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292222Z               "line": 66
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292298Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292374Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292450Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292531Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292613Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292697Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292782Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9292883Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293020Z               "line": 9513
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293104Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293180Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293277Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293362Z               "line": 9536
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293442Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293519Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293592Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293672Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293752Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293839Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9293916Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294001Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294081Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294164Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294240Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294335Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294415Z               "line": 26098
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294669Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294793Z               "line": 26120
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294875Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9294950Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295040Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295123Z               "line": 26140
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295199Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295369Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295447Z               "line": 26153
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295523Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295603Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295678Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295759Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295831Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9295910Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9296014Z       "id": "REQ-UPDATE-DEFAULT-COMPOSITE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299073Z       "title": "THE-FORKENING W4 (operator-grilled 2026-07-14): plain `spt update` = `update fetch --apply` THEN `update adapters` (core-first doctrine order); when core is already current the core leg no-ops and ONLY adapters update; `--core-only`/`-c` skips the adapters leg. GROUNDING (operator-corrected, code-confirmed): fetch --apply cycles the BRAIN only — broker + PTYs survive (apply_staged applyhost.rs:303; the restart-required text is a NOTICE, cli.rs:4615, not behavior) — so the composite's invoking process survives by construction and NO re-run machinery is needed; on a broker-side release the existing F-025 notice remains the composite's closing output. Gate: unit — composite sequencing incl. already-current -> adapters-only and --core-only skip; int — composite on a staged release applies core then updates a registered adapter in one invocation; doc — reference + self-update docs present plain `spt update` as the primary form. Kin REQ-UPDATE-ADAPTERS-VERB, REQ-UPDATE-RESTART-SAFE-SWAP, REQ-UPDATE-APPLY-RESTART-NOTICE.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299229Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299307Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299431Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299525Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299602Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299679Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299754Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299830Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299912Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9299994Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300069Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300159Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300241Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300313Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300388Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300512Z               "path": "docs-site/src/self-update/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300595Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300665Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300741Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300818Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300895Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9300980Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301060Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301189Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301289Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301408Z               "line": 2500
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301571Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301671Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301751Z               "line": 9422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301828Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9301995Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302075Z               "line": 9463
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302152Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302314Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302399Z               "line": 9549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302472Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302548Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302629Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302705Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302791Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9302943Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303019Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303130Z               "path": "crates/spt/tests/composite_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303215Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303291Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303366Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303443Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303519Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303598Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303679Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303755Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303847Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9303932Z               "line": 26033
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304007Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304084Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304176Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304289Z               "line": 26079
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304365Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304447Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304528Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304609Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304685Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304767Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9304871Z       "id": "REQ-UPDATE-FETCH-APPLY-FLAG",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307390Z       "title": "`spt update fetch --apply` is the one-shot get-to-latest: fetch, then INSTALL the staged update REGARDLESS of whether the fetch itself staged anything new — so the brittle `fetch && apply` chain (which broke when fetch no-oped / exited nonzero on an already-staged latest, skipping the chained apply) is unnecessary. Composes with REQ-UPDATE-FETCH-CURRENT-UX: the end state is 'installed latest', reached idempotently from new-staged -> apply / already-staged (applied<candidate) -> STILL apply / already-applied -> noop+exit0 / genuine error (bad signature, no artifact for platform, true downgrade, network) -> do NOT apply, propagate the error + nonzero. Reuses the existing cmd_update_apply core (its own verify + two-phase + auto-rollback own correctness; no duplicated swap/respawn). Additive clap flag (plain doc-comment, no internal codes); reference.md regenerated. (v0.18.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307523Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307600Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307677Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307752Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307828Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307910Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9307996Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308076Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308152Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308235Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308321Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308395Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308569Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308650Z               "line": 10761
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308724Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308801Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9308877Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9309103Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9309199Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9309280Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9309356Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9309432Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9309518Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9312950Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313155Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313241Z               "line": 25762
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313498Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313579Z               "line": 25779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313656Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313733Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313808Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313884Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9313969Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9314046Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9314158Z       "id": "REQ-UPDATE-FETCH-CURRENT-UX",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317007Z       "title": "`spt update fetch` reports an already-staged / already-applied latest as an ACTIONABLE human outcome (exit 0), not a Debug-formatted error. ROOT: cmd_update_fetch (cli.rs) sets the rollback floor = staged_version, so when the published candidate == the already-staged version, verify_update_set_metadata returns Err(RejectReason::Rollback{current,candidate}) — printed as {reason:?} (Debug) at exit 1, reading as a FAILURE when the update is merely already downloaded and just needs `spt update apply` (this bit the operator: fetch kept 'failing', apply was the missing step). FIX: a PURE classifier (reason, applied, staged) -> {AlreadyStaged (latest downloaded, not yet installed) / AlreadyApplied (up to date) / GenuineError}; already-staged + already-applied print a friendly message and exit 0; genuine rejects use RejectReason's Display (release.rs, not Debug) + exit 1 — applied at ALL THREE fetch reject sites (metadata + artifact-verify + plan-verify). (v0.18.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317158Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317239Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317321Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317397Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317478Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317550Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317640Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317721Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317802Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317874Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9317969Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318050Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318126Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318232Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318312Z               "line": 10727
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318388Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318470Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318542Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318622Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318708Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318843Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9318923Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319100Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319182Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319266Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319437Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319513Z               "line": 25718
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319592Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319668Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319744Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319821Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319893Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9319968Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9320078Z       "id": "REQ-UPDATE-FINISH-COMMUNE-FLUSH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9324629Z       "title": "DEFERRED (post-LIFECYCLE-TRUTH, operator-ruled 2026-07-07 — mint now, impl a FUTURE milestone): make the update swap LOSSLESS for live hosted endpoints by flushing a final echo-commune per endpoint BEFORE the brain-subtree reap. ROOT (operator-surfaced probing --finish): `update apply --finish` = daemonless swap -> daemon RESTART; the graceful `daemon stop` path (daemon.rs:316-325) raises brain_stop then reaper.reap() KILLS the brain subtree (brain + shellwake watchers + detached Psyches) as one unit — there is NO per-endpoint final commune before the kill. ENDPOINT-SURVIVAL (REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL) then RESPAWNS each orphaned online spt-hosted endpoint, but from its LAST commune (whatever the ongoing per-event echo-commune cadence last saved), NOT an as-of-swap checkpoint — so mid-turn / uncommuned work is lost across the bounce. Today's mitigation is operator discipline: commune-before-swap. FIX (future): the stop/finish path, before reap, drives each LIVE hosted endpoint's final echo-commune (fire_echo final context save) so the respawn resumes from a swap-fresh checkpoint. Composes with ENDPOINT-SURVIVAL (commune -> reap -> respawn) and the W1 echo pipeline (REQ-ECHO-DROP-DIR-RESOLVE / REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS). Bounded + loud per endpoint (a commune that hangs must not wedge the stop — timeout then reap anyway, never block the swap). Int: a live hosted endpoint with uncommuned state -> --finish -> respawned endpoint's digest/psyche reflects the pre-swap state (RED-first: without the flush the respawn shows only the last-cadence commune).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9324737Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9324822Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9324894Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9324981Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325066Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325142Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325219Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325305Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325386Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325461Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325539Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325620Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325752Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325829Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9325920Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326010Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326091Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326168Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326240Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326315Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326387Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9326507Z       "id": "REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328110Z       "title": "W3 (LIFECYCLE-TRUTH): daemon restart no longer massacres hosted endpoints — daemon start RE-RUNS previously-online spt-hosted endpoints. ROOT rig-proven: daemon stop+start (the apply notice's OWN instruction) kills every hosted endpoint; they stay OFFLINE after start (no resurrection) though records exist (info.json status + adapter + cwd). SCOPE RULING (doyle): re-run-on-start, marked start-reason=daemon-restart; agents' minds ride psyche re-host as today. Int: endpoint online -> daemon stop -> start -> endpoint back ONLINE, same id, harness respawned.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328253Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328343Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328420Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328501Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328573Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328652Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328725Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328811Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9328892Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329050Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329131Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329210Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329292Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329365Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329483Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329569Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329641Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329718Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329831Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329916Z               "line": 520
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9329992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330120Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330232Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330314Z               "line": 528
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330463Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330571Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330648Z               "line": 566
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330905Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9330987Z               "line": 1333
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331063Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331139Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331215Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331292Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331378Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331459Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331539Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331734Z               "path": "crates/spt-daemon/tests/endpoint_survival.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331815Z               "line": 113
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331897Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9331974Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332044Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332121Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332202Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332285Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332469Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332552Z               "line": 2737
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332628Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332707Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332778Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332854Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9332926Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9333003Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9333097Z       "id": "REQ-UPDATE-GH-TRANSPORT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9336852Z       "title": "THE-FORKENING W1 (ADR-0036, operator-ruled 2026-07-14): the release channel is PRIVATE (`BigscreenVR/spt-bs-releases`) and the gh CLI is the mandated carrier — release discovery (`releases/latest`, cli.rs:9717) and asset download (cli.rs:4861 public browser URLs) move to deadline-wrapped `gh` subprocess calls (`gh api`, `gh release download`; run_git pattern). WHY gh not token+HTTP: private-repo `browser_download_url` 404s even with a valid token — the API asset-id dance is gh's job. Default repo flips via the existing SPT_INSTALL_REPO seam (cli.rs:5363) + xtask REPO const (main.rs:729) + notif.rs consent-changelog URL rider. Loud failure classes: gh missing -> UPDATE_FETCH_REJECTED:GhCliRequired with OS-SPECIFIC install hints (winget/apt/brew); gh unauthed -> distinct GhAuthRequired pointing at `gh auth login`. Signature verification unchanged — bytes verified after download, carrier-independent (update-set/counter/anchor continuity per ADR-0036 §2). release_verify_e2e reworked to the gh carrier. Gate: unit — url/invocation construction + both failure classes render OS-correct hints; int — fetch against a real gh-authed channel resolves latest + downloads and verifies an asset; doc — self-update docs name the gh prerequisite. Kin REQ-INSTALL-BOOTSTRAP-VERB (same carrier at first install), ADR-0036.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337004Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337081Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337161Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337243Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337314Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337392Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337467Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337547Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337634Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337711Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337787Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337876Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9337961Z               "line": 681
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338033Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338113Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338245Z               "path": "docs-site/src/self-update/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338384Z               "line": 92
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338465Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338540Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338617Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338694Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338775Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338855Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9338936Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339133Z               "path": "crates/spt-daemon/src/notif.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339212Z               "line": 586
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339290Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339362Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339462Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339542Z               "line": 9177
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339615Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339691Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339785Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339866Z               "line": 9848
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9339939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340020Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340162Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340249Z               "line": 9853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340320Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340400Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340490Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340566Z               "line": 9873
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340643Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340717Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340812Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340893Z               "line": 9893
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9340965Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341041Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341131Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341208Z               "line": 9906
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341361Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341508Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341590Z               "line": 9918
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341666Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341746Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341838Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341919Z               "line": 10779
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9341994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342070Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342157Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342243Z               "line": 10816
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342314Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342390Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342486Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342568Z               "line": 10899
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342642Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342815Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342896Z               "line": 1815
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9342971Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343048Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343174Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343253Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343338Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343419Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343496Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343619Z               "path": "crates/spt/tests/release_verify_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343705Z               "line": 21
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343777Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343854Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9343925Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344005Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344087Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344168Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344244Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344339Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344421Z               "line": 35019
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344492Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344568Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344644Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344726Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344802Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9344878Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9345036Z       "id": "REQ-UPDATE-ONE-SHOT-FINISH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9346591Z       "title": "W3 (LIFECYCLE-TRUTH): update apply works daemonless and one command finishes the cycle. ROOT (operator wart): update fetch/apply run ensure_daemon_announced (cli.rs:4386) -> on a stopped box they BOOT THE OLD broker pre-swap, guaranteeing the mixed old-broker/new-brain pair + a manual bounce. FIX: apply works daemonless (swap + record, next start runs new bytes); `update apply --finish` (name subject to docs-token gate) completes the cycle: swap -> brain cycle -> broker restart onto new bytes (rides REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL so the restart is not a massacre). CLI change -> xtask docs gen, no internal codes in clap ///.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9346678Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9346759Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9346834Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9346915Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9346998Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347073Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347197Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347278Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347355Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347435Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347516Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347598Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347788Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347869Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9347942Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348018Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348127Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348209Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348285Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348361Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348454Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348574Z               "line": 9231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348654Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348729Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348833Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9348911Z               "line": 9250
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349073Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349230Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349307Z               "line": 9268
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349396Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349564Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349645Z               "line": 9337
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349883Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9349964Z               "line": 9650
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350040Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350112Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350194Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350270Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350407Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350495Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350571Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350650Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350731Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350814Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9350890Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351002Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351083Z               "line": 925
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351155Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351338Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351419Z               "line": 966
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351667Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351748Z               "line": 31400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351826Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9351902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352053Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352141Z               "line": 35173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352216Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352292Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352388Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352465Z               "line": 35206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352540Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352611Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352688Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352761Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352836Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9352908Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9353007Z       "id": "REQ-UPDATE-PROMOTE-DRAINED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356370Z       "title": "W3 (LIFECYCLE-TRUTH, mechanic-d MOVED FROM W2 per doyle gate verdict @e5ae7a9 — binding): the update-apply brain-generation promotion completes only when the OLD generation's broker subscriber connection is CLOSED or stall-EVICTED — never while blocked writes still pend on it. ROOT: `brain.ready` != subscribers drained; W2's stall-evict (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) only BOUNDS the false-promote window to BRAIN_WRITE_DEADLINE (15s), it does NOT close it — a new brain can signal ready inside that window while the old gen's conn is still wedged, so the apply 'promotes' onto a still-frozen control plane (the 22:47 incident-night false-promote). FIX: the promotion gate (ADR-0018 brain-trial, brainproc.rs) adds an explicit DRAINED precondition — promote only on ready AND old-gen-subscriber-drained (conn closed OR stall-evicted); the drained signal reads broker truth (the W2 stall-evict tally / the old conn's liveness), no brain round-trip. The residual W2 left open, now closed. Int = a FALSE-PROMOTE rig that exercises the promotion path itself: an old-gen subscriber conn held wedged past ready must NOT promote until it drains (RED-first: ready-alone promotes).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356465Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356546Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356671Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356751Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356826Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356909Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9356990Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357075Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357155Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357229Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357309Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357389Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357470Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357548Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357657Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357742Z               "line": 733
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357814Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9357996Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358086Z               "line": 2775
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358158Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358239Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358348Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358468Z               "line": 5708
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358544Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358725Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358802Z               "line": 5873
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9358879Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359048Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359124Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359205Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359284Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359365Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359442Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359561Z               "path": "crates/spt-daemon/tests/false_promote.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359642Z               "line": 231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359718Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359795Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359871Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9359947Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360032Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360114Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360357Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360439Z               "line": 1832
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360591Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360705Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360787Z               "line": 1880
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360862Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9360939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361045Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361126Z               "line": 12687
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361201Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361272Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361350Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361426Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361502Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361572Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9361686Z       "id": "REQ-UPDATE-REFUSAL-EXIT-DISTINCT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9369915Z       "title": "A REFUSAL AND A FAILURE ARE DIFFERENT ANSWERS AND MUST NOT SHARE AN EXIT CODE OR A SUMMARY WORD (releases#153, doyle ruling 2026-08-21). A guard that DECLINED and did no work leaves the box exactly as it was; a failure means something broke and may have left work half-done. A caller gating on exit status therefore needs THREE answers: applied (0), refused-with-nothing-done (3), failed (1). CODIFICATION, NOT A NEW CONTRACT — the tree already answered refusals with 3 at three sites (EXIT_NOT_ELEVATED, DAEMON_STOP_REFUSED, UPDATE_FINISH_REFUSED) while cli.rs's own module doc called 1 a 'runtime refusal'; there is no migration to look for, and a fourth code would fork a convention that already reads consistently. WHAT THIS REQUIREMENT COVERS is the places the distinction was genuinely MISSING, which is not where the issue filed it: the adapter sweep's outcome type gains a REFUSED variant carrying the guard's own reason, so a declined release stops rendering FAILED and stops exiting 0 (a sweep that installed nothing must not report success — the filed field shape was a fleet roll recording itself as rolled on the majority of nodes); and the core apply's refused-class arm answers 3 rather than 1. PRECEDENCE: a sweep carrying both a failure and a refusal exits 1 — something broke, and a held rule must not mask it. THE DISCRIMINANT IS DECLINE VERSUS FAULT, NOT WHETHER BYTES MOVED (doyle ruling 2026-08-21, stated here because the tempting wrong rule will be re-litigated by the next reader of ApplyStagedOutcome's doc comments): 3 means policy declined, the system is healthy, change your intent or context and ask again. Rejected (at-rest re-verification — tamper, expiry, key trust) stays 1 even though its own doc says nothing was swapped, because that sentence is a statement about BLAST RADIUS and not about outcome class: what is on disk cannot be trusted, which is a fault. The asymmetry settles it independently of the taxonomy — an &&-gated caller reading 3 carries on, and carrying on is the one reading a tampered artifact must never receive, so filing a security-relevant integrity condition under the benign code would make this contract actively harmful at the site where being loud matters most. Quarantined stays 1 as well: a version rolled back after failing readiness had work happen. The UPDATE_FINISH_REFUSED site is explicitly OUT of scope: it already returns 3 (since 559632e0, shipped in v0.50.0) and is already pinned non-zero from an endpoint context by broker_stop_endpoint_deny_e2e, so the filed face was measured fixed before this lane opened. Gate: doc — the cli.rs exit-code contract sentence and the CONTEXT.md update-composite entry naming what a refusal exits; impl — the REFUSED outcome variant, the sweep's exit aggregation with its precedence, and the refused-class arm; unit — a refusal renders REFUSED with its reason and never FAILED, the sweep exits 3 for refused / 1 for failed / 0 for applied, the mixed sweep exits 1, and the refused apply class answers 3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370131Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370216Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370346Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370427Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370498Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370578Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370661Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370741Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370827Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9370994Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371075Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371151Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371227Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371300Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371385Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371470Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371551Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371624Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371728Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371809Z               "line": 22
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371890Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9371972Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372103Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372189Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372261Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372337Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372430Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372511Z               "line": 9317
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372587Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372664Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372754Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372835Z               "line": 21799
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372907Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9372983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373074Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373155Z               "line": 21842
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373227Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373303Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373435Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373513Z               "line": 22060
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373594Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373669Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373745Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373822Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373905Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9373984Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374065Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374142Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374224Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374303Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374380Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374472Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374553Z               "line": 25884
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374628Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374797Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374878Z               "line": 25913
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9374952Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375028Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375161Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375244Z               "line": 25968
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375323Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375394Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375476Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375552Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375628Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375700Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9375806Z       "id": "REQ-UPDATE-RESTART-SAFE-SWAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379139Z       "title": "THE-FORKENING W4 (operator-grilled 2026-07-14; RETIRES findings-backlog seed #12 REQ-UPDATE-ONE-STEP-SAFE-SWAP): `spt update --restart` = the one-step ergonomic path to the SAFE full-cycle swap — fetch -> `update adapters` -> `apply --finish` LAST (lethal-leg-last, ruled: apply --finish restarts the whole daemon incl. broker/PTYs, so it must be the final act — everything completes from ANY invoking context including an spt-hosted session whose PTY dies at that step; accepted cost: a finish FAILURE leaves updated adapters on old-activated core briefly — loud + operator-attended by nature of the flag). Composes with `-c/--core-only` (skip adapters leg). The 0.28.0 wedge lesson closes: the ergonomic one-step no longer picks the riskier path by default for operators who want the full cycle. Gate: unit — flag sequencing incl. lethal-leg-last ordering + -c compose; doc — self-update docs present --restart as the full-cycle form and name the finish-restart consequence. Kin REQ-UPDATE-DEFAULT-COMPOSITE, REQ-UPDATE-FINISH-COMMUNE-FLUSH (deferred commune-flush rides the same finish path when built), seed #12 (retired by this).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379239Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379322Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379401Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379473Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379554Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379632Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379707Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379792Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379874Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9379956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380093Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380177Z               "line": 688
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380249Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380325Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380447Z               "path": "docs-site/src/self-update/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380528Z               "line": 41
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380605Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380677Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380753Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380828Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380915Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9380996Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381172Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381258Z               "line": 2501
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381410Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381550Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381635Z               "line": 9423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381716Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381792Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381888Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9381964Z               "line": 9464
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382040Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382116Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382189Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382265Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382344Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382426Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382504Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382584Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382668Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382749Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382920Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9382999Z               "line": 26175
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383071Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383152Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383277Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383352Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383428Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383511Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9383620Z       "id": "REQ-UPDATE-RUNNING-IMAGE-SURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390114Z       "title": "`spt` surfaces the RUNNING broker image version beside the on-disk version so an updated-looking node reveals broker-side dormancy. ROOT (F-025): `spt update apply` restarts the BRAIN only (ADR-0018 D3-3) — the BROKER process survives and keeps running its pre-apply compiled image, so every broker-side surface of a freshly-applied release (the F015B live-apply matcher, dispatch inject legs, etc.) is silently dormant until a full daemon bounce, with nothing in the CLI revealing the split. FIX: the running broker SELF-REPORTS its compiled image version over IPC (a new request KIND answered by the live broker process from its own compiled build constant) — HARD CONSTRAINT: the version comes FROM the running broker process, NEVER inferred from disk bytes, install manifest, or file timestamps, since the disk is exactly the half that is already ahead; a version-surface command (`spt version` and/or `spt daemon status`) prints the running-broker version beside the on-disk/product version and flags a mismatch. Keeps read-side truth independent of write-side claims (the field lesson from F015B). (F-025) AMENDED 2026-07-27 (FIELD-TRUTH W1 roll-in, operator-directed): (1) `spt daemon status` MUST also divulge the COORDINATOR (brain) image version — the process that executes daemon-coordinated features and the most relevant running version to a status reader; same HARD CONSTRAINT: sourced from the RUNNING brain process (self-report over the broker↔brain channel or equivalent live query), never inferred from disk. (2) The stale-daemon warning RE-KEYS to the coordinator image vs installed: it renders ONLY when the COORDINATOR is outdated — post-apply the brain restarts onto the new bytes while the broker legitimately stays old (ADR-0018 D3-3), so the broker-keyed warning fired exactly backwards on a healthy freshly-updated node. (3) The remedy line recommends solely `spt daemon refresh` (in-place coordinator cycle; hosted terminals and the net layer keep running), never `daemon stop` + `daemon start`; a broker-breaking release still forces its full bounce through the update machinery, not through status advice. (4) The broker image line stays, informational only — no warning, no remedy text. Coordinator-version query unanswered (older daemon) renders not-reported without the warning.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390220Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390300Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390377Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390454Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390526Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390605Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390681Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390766Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390843Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9390969Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391045Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391131Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391213Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391293Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391403Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391485Z               "line": 1665
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391561Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391636Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391737Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391818Z               "line": 1705
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391894Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9391965Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392070Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392152Z               "line": 1737
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392228Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392415Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392496Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392571Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392820Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392904Z               "line": 77
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9392976Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393168Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393242Z               "line": 86
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393323Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393395Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393503Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393588Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393659Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393846Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393926Z               "line": 987
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9393998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394076Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394185Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394303Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394385Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394461Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394570Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394648Z               "line": 564
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394799Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394904Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9394986Z               "line": 5267
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395067Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395148Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395248Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395330Z               "line": 6056
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395405Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395582Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395664Z               "line": 6058
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395748Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395820Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9395969Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396049Z               "line": 9034
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396124Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396195Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396306Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396387Z               "line": 9061
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396467Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396644Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396725Z               "line": 9085
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396796Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396873Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9396964Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397045Z               "line": 8337
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397120Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397250Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397344Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397425Z               "line": 8366
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397507Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397584Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397673Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397754Z               "line": 8658
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397904Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9397997Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398074Z               "line": 8663
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398317Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398397Z               "line": 8805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398469Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398545Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398634Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398715Z               "line": 8814
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398791Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9398901Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399062Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399144Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399230Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399306Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399493Z               "path": "crates/spt-daemon/src/applyhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399578Z               "line": 566
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399653Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399854Z               "path": "crates/spt/tests/coordinator_image_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9399930Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400016Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400088Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400164Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400241Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400321Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400403Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400479Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400593Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400728Z               "line": 10004
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400808Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9400884Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401009Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401091Z               "line": 90
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401165Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401331Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401436Z               "line": 35240
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401609Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401706Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401788Z               "line": 35286
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401863Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9401938Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9402021Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9402097Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9402168Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9402244Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9402350Z       "id": "REQ-UPDATE-TRIAL-DRAIN-DRIVE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9412852Z       "title": "UPDATE-WEDGE (counter-54, doyle-ruled 2026-07-09 — regression of the v0.29.0 seamless brain-swap): a brain generation DRIVES the broker's controller-liveness reap (a KIND_SESSIONS poll) each heartbeat throughout its boot/trial loop, so a hard-KILLED prior generation's black-holed LOCAL controller conn (by:None) is stall-evicted within the trial window and can never permanently strand the promotion DRAINED gate. ROOT (2026-07-09 field freeze, `spt update fetch --apply` v0.30.0->v0.30.2 froze all 7 live PTYs ~30s then rolled back): the promote gate (run_trial, brainproc.rs:657-661) needs BOTH `ready_generation==gen` AND `old_gen_drained()`; `old_gen_drained()` = `!any_local_controller_wedged()` (brainproc.rs:534) is a PURE READ of `write_blocked_since` (broker.rs:2703) — it never DRIVES the evict. The evict (`stall_evict_controller`, broker.rs:1039, same 15s `brain_write_deadline` the wedge-read uses) only runs via `reap_dead_controller` (broker.rs:967, severed->drop ELSE stall-evict) inside the KIND_SESSIONS snapshot closure (broker.rs:2879). During the isolated brain-trial window NOTHING polls KIND_SESSIONS: the old brain was hard-killed (`child.kill()`, brainproc.rs:851) so its local controller conn black-holes (live PTYs keep writing to a dead Windows named pipe -> writer BLOCKS, never EOFs) -> `write_blocked_since=Some` -> wedged=true for the full 30s -> gate false -> `WindowElapsedAlive` -> kill+rollback. The candidate DID reach ready (write_ready, brainproc.rs:211, runs before the loop; the v53 log's NET_FAMILY_GATE/PAIR_MEET_UP prove the loop was entered) — so `BRAIN_TRIAL_TIMEOUT: candidate alive but never ready` is the MISLEADING ready-stamped-but-never-DRAINED case, NOT a resume_sessions hang. SECOND LEG (recovery): post-rollback the gen-2 brain's KIND_SESSIONS poll finally reaps -> `BRAIN_SUBSCRIBER_STALL_EVICT:1` fires >15s late -> a session stayed black-holed through recovery -> continued freeze. ONE root, BOTH legs. FIX (BRAIN-SIDE, self-applying — doyle ruled brain-side to AVOID a broker-side coordinated-restart flag): the boot/trial heartbeat loop (brainproc.rs run_brain, currently only `net_status` at :244) also issues `Brain::sessions()` (KIND_SESSIONS, brain.rs:1397 — already exists) every heartbeat, driving the LIVE older broker's ALREADY-SHIPPED reap (>=v0.29.0 LIFECYCLE-TRUTH; the field-stuck broker is v0.30.0 so it HAS it). The old-gen wedged conn is stall-evicted ~15s < the 30s window -> `old_gen_drained()` flips true -> PROMOTE; the same poll on the rollback/recovery brain reaps promptly -> no >15s black-hole -> kills the STALL_EVICT recovery leg. Drive it on the FIRST heartbeat (no one-tick wait) and on BOTH the trial candidate AND the recovery brain (one loop covers both). SELF-APPLIES because it drives the current broker's existing reap verb — v54's brain fixes the v0.30.0->v54 update with NO coordinated broker restart. Forward-compat: brokers <v0.29.0 have neither the DRAINED gate nor the reap, so older-broker updates never hit this path — no regression. Composes with REQ-UPDATE-PROMOTE-DRAINED (the gate this un-strands) + REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict it drives) + REQ-CONTROLLER-LIVENESS-REAP (the reap verb). Int = the brain-swap-under-live-sessions rig: (1) with a hard-killed prior gen holding a wedged by:None controller past 15s, the new brain PROMOTES within the window AND sessions stay served across the cycle (RED-first: without the drive, WindowElapsedAlive->rollback); (2) a deliberately-failing trial auto-rolls-back AND the restored brain re-drives EVERY session with NO BRAIN_SUBSCRIBER_STALL_EVICT.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413048Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413128Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413205Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413282Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413353Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413434Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413510Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413596Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413677Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413753Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413883Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9413968Z               "line": 701
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9414049Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9414126Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9414203Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9414283Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9417746Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9417850Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9417930Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418060Z               "path": "crates/spt-daemon/src/brainproc.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418146Z               "line": 407
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418221Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418422Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418503Z               "line": 1349
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418579Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418723Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418808Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9418884Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419075Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419156Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419358Z               "path": "crates/spt/tests/trial_drain_drive_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419441Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419594Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419712Z               "path": "crates/spt/tests/trial_drain_drive_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419792Z               "line": 518
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419867Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9419939Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420064Z               "path": "crates/spt/tests/trial_drain_drive_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420139Z               "line": 540
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420216Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420293Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420369Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420449Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420599Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420688Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420769Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420845Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420923Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9420998Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9421098Z       "id": "REQ-USHER-LIFECYCLE-VERBS",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9432526Z       "title": "THE ENDPOINT LIFECYCLE READS AS VERBS, AND `endpoint run` RETIRES WITHOUT A SHIM. One overloaded verb carried the whole lifecycle: `spt endpoint run` minted an endpoint, started a new session on an existing one, resumed a prior session, opened the interactive picker, and (with `--save`) set a startup default — the invocation's MEANING sat in which of nine flags were present, so the CLI could not be read and the picker's doors could not be named. The ratified surface (releases#5 bag grill, 2026-08-04) is: `endpoint create <new-id> [--subnet S] [--adapter A] [--cwd DIR]` = the ONLY mint, subnet immutable after it; `endpoint start <id> [--adapter A] [--cwd DIR]` = a NEW session on the endpoint's most-recent adapter in its most-recent project folder, NEVER the env cwd, and an UNKNOWN id REFUSES pointing at `create` so a typo cannot mint a phantom endpoint; `endpoint resume <id>` = its LATEST session; `endpoint auto-start <id> [--off]` = the standalone lever that was `run --save`; and top-level `go <id>` = the operator's take-me-to-this-endpoint ladder (online+uncontrolled -> rc; online+controlled -> interactive kick confirm over `rc --take`; suspended -> wake then rc; offline WITH sessions -> resume then rc; offline WITHOUT sessions -> mint the first session then rc; engine-room -> defers to the gated `rc engine-room` path). `go`'s offline discriminant reads the SESSION LEDGER (a non-provisional row) and NOT the record's `session_id`, which persists by design after a clean stop as the CAS identity anchor and is never a liveness claim. RETIREMENT IS A CLEAN BREAK: `endpoint run` is removed through a RAW-ARGV PRE-SCAN ahead of `Cli::command()` so its nine args never enter the derive tree, and it answers with a parse error naming the replacement verb — no hidden variant, no silent alias. TWO CAPABILITY NARROWINGS ARE DELIBERATE AND MUST NOT BE RE-ADDED QUIETLY: specific-session resume (`run --resume <session>`) retires with the verb and has no replacement, `resume` being latest-only; and the picker's two argv prefill quadrants (`--adapter`-only pre-select, `--id`-only create-new prefill) retire with their verb, the id-only case's replacement being `start <unknown-id>`'s refusal. `create` MINTS ONLY — skeleton perch, permanent home, recorded adapter/cwd defaults — and does NOT start a session; the first session is `start` (or `go`, which also attaches), so a fresh bringup is TWO commands where `run --start` was one. That is a shape change to every bringup script rather than a lost capability, and it rides the release notes beside the resume narrowing. It was decided rather than read off the table (todlando, ratified by doyle 2026-08-04) on the ladder's own evidence: a first-class offline-WITHOUT-sessions rung is near-unreachable unless zero-session endpoints are routine, so create cannot be starting one. The picker's own door is BARE `spt` on an interactive terminal and this requirement does not touch it, nor does it add a `pick` verb. Generated launcher shortcuts bake the retired argv, so the generated body becomes `spt go <id>` (the launcher's intent IS `go`'s ladder, and it opens a console so the kick confirm has its TTY), the shortcut SENTINEL is bumped so a stale launcher is detectable rather than merely broken, and the refusal text names BOTH the new verb and shortcut regeneration. REGISTRY SUPERSESSION: this requirement is the authority on the bringup SPELLING, and it supersedes every earlier title in this file that names `endpoint run`. Those were swept where they state a CURRENT contract or a CURRENT gate's invocation; where they narrate a PAST failure or a past field observation they are left verbatim, because a failure record rewritten into a spelling that did not exist when it happened stops being a record. Arg budget: the ratified surface is the MIN spelling at 11 leaf args against the retired 9, a net +2 that is only affordable because the pre-scan keeps the retired args out of the tree — and it rides on REQ-CLI-STACK-HEADROOM having deleted the ceiling rather than budgeted under it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9432742Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9432822Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9432902Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9432977Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433054Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433130Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433214Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433294Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433376Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433458Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433548Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433628Z               "line": 421
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433701Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433777Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433853Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9433933Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434058Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434144Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434220Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434320Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434402Z               "line": 283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434478Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434549Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434645Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434726Z               "line": 554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434802Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9434975Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435051Z               "line": 582
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435126Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435202Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435294Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435370Z               "line": 602
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435673Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435757Z               "line": 614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435832Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9435909Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436001Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436082Z               "line": 2276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436157Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436320Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436401Z               "line": 2457
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436476Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436553Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436644Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436720Z               "line": 2469
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436796Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436868Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9436997Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437083Z               "line": 3008
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437241Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437335Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437416Z               "line": 3029
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437493Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437570Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437660Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437741Z               "line": 3062
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9437983Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438060Z               "line": 3731
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438298Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438378Z               "line": 3755
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438459Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438665Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438750Z               "line": 3951
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438827Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9438903Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439098Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439180Z               "line": 3978
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439251Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439423Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439500Z               "line": 4002
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439575Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439651Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439752Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439829Z               "line": 4088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439909Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9439980Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440077Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440163Z               "line": 4117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440314Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440464Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440547Z               "line": 4167
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440790Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440869Z               "line": 4316
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9440945Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441021Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441112Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441189Z               "line": 4367
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441341Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441432Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441513Z               "line": 4380
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441588Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441665Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441756Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441837Z               "line": 4473
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9441917Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442171Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442256Z               "line": 96
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442333Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442409Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442518Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442599Z               "line": 155
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442677Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442752Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442833Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442910Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9442997Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443076Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443153Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443268Z               "path": "crates/spt/tests/cli_stack_smoke.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443350Z               "line": 108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443476Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443552Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443629Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443713Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443793Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443878Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9443951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444047Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444127Z               "line": 3142
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444203Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444276Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444371Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444446Z               "line": 3385
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444532Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444704Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444785Z               "line": 3491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444857Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9444934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445023Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445104Z               "line": 3575
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445235Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445310Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445405Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445486Z               "line": 3608
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445563Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445634Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445729Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445806Z               "line": 3661
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445883Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9445958Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446047Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446128Z               "line": 3798
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446205Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446280Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446369Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446450Z               "line": 3847
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446527Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446712Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446837Z               "line": 205
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446918Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9446989Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447099Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447176Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447256Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447332Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447438Z               "path": "crates/spt/src/picker/shortcut.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447524Z               "line": 280
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447599Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447671Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447747Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447820Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447900Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9447976Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9448087Z       "id": "REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453218Z       "title": "A `rc --view` VIEWER that overflows its broker subscription queue and is EVICTED (OutputLog::append try_send Full → viewers.remove, REQ-HAZARD-VIEWER-ISOLATION session-protection) must SKIP TO LIVE, not die silently. ROOT (v0.13.0, b4 JIT item 2 = p0_paste + post-b4 a_journaled-Linux, ONE root): serve_attach forwards each frame (read_event→b64decode→re-encode AttachRecord→net_stream_send) SLOWER than the drain fans out under flood → its VIEWER_CHANNEL_DEPTH(256) channel overflows → the drain evicts (viewers.remove drops the ViewerSink → drops tx → viewer_writer's rx.recv() Err → the writer returns WRITING NOTHING) → serve_attach's brain.read_event() just STOPS getting Output (no EOF, no error) → serve_attach blocks forever → the operator receives nothing (attach_received_output=FALSE). Eviction-of-a-hopelessly-behind-viewer is CORRECT session-protection (keep it); SILENT+PERMANENT eviction is the bug. VIEWER-only → B2-SAFE (a viewer never advances delivered_through / is not authoritative / exposes no resume cursor). FIX (doyle-gated, skip-to-live = tail -f reconnect): (1) explicit broker→viewer EVICTION SIGNAL (KIND_VIEWER_EVICTED, written in the viewer_writer thread OFF the log lock, DISTINCT from session-exit EOF so serve must NOT tear down on it); (2) serve_attach re-subscribes from the CURRENT ring floor (skip-to-live, replays nothing, sees the next live burst) — resetting the cold serve-brain's next_seq so the post-eviction forward-jump replay is accepted (the legacy reject-gap path, brain.rs:618-626, would otherwise FATAL the forward jump); (3) HARD constraint NO evict→resubscribe busy-loop: serve_attach rate-limits re-subscribes (RESUBSCRIBE_INTERVAL) so under max-flood the operator sees intermittent LIVE bursts, never a CPU spin. (v0.13.0)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453364Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453441Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453523Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453599Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453674Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453751Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453833Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9453910Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454046Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454131Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454208Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454301Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454382Z               "line": 411
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454458Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454535Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454607Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454687Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454772Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454855Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9454931Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455044Z               "path": "crates/spt-daemon/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455121Z               "line": 797
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455198Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455279Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455383Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455470Z               "line": 1223
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455626Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455780Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455865Z               "line": 1472
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9455941Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456017Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456128Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456203Z               "line": 3724
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456279Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456457Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456537Z               "line": 1778
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456612Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456688Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456765Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456840Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9456920Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457000Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457078Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457220Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457305Z               "line": 2906
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457426Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457507Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457583Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457659Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457741Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457821Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9457897Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458003Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458084Z               "line": 2661
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458159Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458236Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458337Z               "path": "crates/spt-daemon/src/brain.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458417Z               "line": 2952
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458494Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458569Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458671Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458794Z               "line": 10355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9458870Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459151Z               "path": "crates/spt-daemon/src/broker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459233Z               "line": 10422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459310Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459386Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459489Z               "path": "crates/spt-daemon/src/msg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459570Z               "line": 2096
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459646Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459719Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459794Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459870Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9459942Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9460014Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9460118Z       "id": "REQ-VIS-REMOTE-NOT-HIDE-NEW",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465066Z       "title": "A REMOTE ENDPOINT'S VISIBILITY IS ITS OWN NODE'S BUSINESS, AND THE ASKING NODE'S `hide_new_endpoints` POSTURE GOVERNS ITS OWN ENDPOINTS ONLY. `VisibilityStore::hidden` resolves an explicit per-(endpoint, subnet) override first and otherwise falls through to `subnet_hide_new || default_hide`; a REMOTE id never has an override or a default-hide row in the ASKING node's local store, so on any node whose subnet has `hide_new_endpoints` ON that fall-through evaluates true for EVERY remote id and the resolve-side exclusion vetoes them all -- `resolve_across_visible` returns NotFound and every remote wan target is refused on that node. IT IS NOT CONSERVATIVE, IT IS BACKWARDS: `hide_new_endpoints` is the OWNING node's advertisement policy, captured at join and enforced at the advertisement/sync gate on the owning side, so a hidden remote endpoint has no registry row on the asking node at all. The asker-side re-application therefore gates nothing the owner has not already gated, and vetoes exactly the rows the owner deliberately advertised. THE OWNING-SIDE GATE IS UNTOUCHED -- this is a resolve-side scoping fix, not a relaxation of who advertises what -- AND EXPLICIT PER-ENDPOINT OVERRIDES KEEP WORKING IN BOTH DIRECTIONS, including on remote ids, because an operator who named a specific endpoint said something the default never said. Gate: impl -- the resolve-side default applying only to ids the local node owns, at one shared seam rather than re-decided per call site (the call-site count is grep-swept, not estimated); unit -- with `hide_new` ON, a remote id with no local rows RESOLVES while a LOCAL id with no local rows is still HIDDEN (the pair asserted together, since either alone passes an implementation that scopes everything one way), an explicit override still HIDES a remote id and still REVEALS a locally-owned one, and -- the vacuity guard, since a fixture whose rows are uniform in the asserted property proves nothing -- the same fixture with `hide_new` OFF is shown resolving both, so the ON-case difference is the posture answering and not the fixture.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465218Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465294Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465376Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465448Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465533Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465609Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465734Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465815Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465900Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9465977Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466054Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466143Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466220Z               "line": 836
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466296Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466373Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466448Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466525Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466606Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466684Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466868Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9466945Z               "line": 960
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467026Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467149Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467248Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467334Z               "line": 6514
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467414Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467585Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467661Z               "line": 6776
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467738Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467814Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467904Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9467986Z               "line": 6911
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468133Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468243Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468319Z               "line": 315
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468396Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468472Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468568Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468653Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468729Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9468839Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469030Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469115Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469192Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469363Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469444Z               "line": 170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469517Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469593Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469663Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469740Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469827Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469908Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9469983Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470111Z               "path": "crates/spt/tests/hide_new_remote_rows_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470192Z               "line": 160
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470345Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470478Z               "path": "crates/spt/tests/hide_new_remote_rows_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470617Z               "line": 169
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470702Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470903Z               "path": "crates/spt/tests/hide_new_remote_rows_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9470984Z               "line": 190
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471059Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471132Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471208Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471284Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471369Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471452Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471528Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471633Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471713Z               "line": 1783
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9471966Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472047Z               "line": 1807
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472209Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472355Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472441Z               "line": 1826
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472517Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472596Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472696Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472778Z               "line": 1850
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9472925Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473021Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473103Z               "line": 1880
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473179Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473254Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473330Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473403Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473479Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473559Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9473655Z       "id": "REQ-VOCAB-ANCHOR-SUBNET",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484177Z       "title": "THE UBIQUITOUS LANGUAGE FOR AN ENDPOINT'S DEFAULT-SCOPE SUBNET IS `anchor subnet`, NOT `home subnet`. Operator-requested (discord:reavo) and GREENLIT as releases#176: `home` reads as a place the endpoint lives, which is precisely the reading the concept must not carry — identity is node-global and advertised into EVERY subnet the node belongs to, and the subnet in question anchors DEFAULTS (sync scope, bare-name qualification) rather than bounding where the endpoint exists. The glossary body already used the word `anchor` to explain what `home` meant, which is the tell: the definition needed a second word to undo the first. THIS INVERTS A RATIFIED GLOSSARY AVOID AND MUST SAY SO INLINE. CONTEXT.md carried an `_Avoid_` line forbidding the term `anchor subnet`, ratified at the 2026-07-28 access-control grill; that line becomes current-truth `anchor subnet` CARRYING A DATED SUPERSEDE NOTE naming both dates and the greenlight, because a bare inversion is what a future grill re-derives as drift (doyle, 2026-08-19). It is an ALIGNMENT rather than a reversal in spirit: operator vocabulary had already drifted this way — SPT_MANTLE was called the engine-room ANCHOR on 2026-08-05 — and the note is what stops the next reader re-litigating it. THE RENAME STOPS AT THE SERIALIZATION BOUNDARY, and that boundary is the whole risk of this requirement. `PerchInfo.home_subnet` is an ON-DISK serde key in every perch `info.json` and rides the pairing/wire path; renaming it would make every existing perch read as anchor-less and every N-1 daemon lose the key. The field KEEPS ITS NAME so the key keeps its spelling by identity — no `#[serde(rename)]` to maintain and no chance of a later rename silently changing the wire (an `alias` would have been WORSE THAN NOTHING: it is READ-compat only and would still WRITE the new spelling — doyle's correction, 2026-08-19). The freeze is stated AT the field, so the next reader meets the reason where the exception lives. DATED RECORDS ARE NOT REWRITTEN: ADR filenames and titles stay (ADR-0010 `immutable-home-subnet`, ADR-0026 `multi-subnet-home`), and their BODIES keep their words too, each gaining a short dated vocabulary note instead — a decision record states what was decided when, and re-spelling its prose would leave the project unable to tell an amended record from an original one. REQ ids carrying HOME (REQ-RUN-PICKER-HOME) are identifiers on the same footing as ADR filenames and do not move. RECORDS ARE NOT SWEPT, and the ROADMAP's delivered-milestone log and the dated `docs/F-0xx` design notes are records on the same footing as the ADRs — they state what was delivered or designed when, under the word in use at the time. WHAT DOES MOVE: every LIVE surface a person reads — CONTEXT.md, PRD, docs/MANIFEST.md, the docs-site operator prose, CLI help and doc comments, picker titles and legends, and ALL THREE user-visible diagnostic tokens, which become `ANCHOR_NOT_MEMBER`, `NO_ANCHOR_SUBNET` and `ANCHOR_REFUSED` — a diagnostic is the loudest vocabulary the CLI has and would otherwise teach the retired word at exactly the moment an operator is looking the concept up, and renaming two of three would read as a typo rather than as a decision. `ANCHOR_REFUSED` is asserted by two e2e files, whose assertions move in the same change. Gate: doc — the CONTEXT.md glossary term renamed with its inline dated supersede, the docs-site/PRD/MANIFEST prose, and the dated vocabulary notes on ADR-0010 and ADR-0026; impl — the CLI/help/picker text, the three diagnostic tokens, and the stated freeze at the serde field; unit — the renamed tokens and picker text are asserted at their own seats AND the retired spellings are asserted ABSENT, because a partial sweep that leaves one surface behind reads as a typo rather than as the boundary this requirement draws.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484335Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484416Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484496Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484573Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484692Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484773Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484849Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9484936Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485021Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485184Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485261Z               "line": 852
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485335Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485412Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485484Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485561Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485646Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485726Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485801Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485907Z               "path": "crates/spt/src/api/startup.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9485991Z               "line": 1231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486066Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486138Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486215Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486287Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486376Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486457Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486573Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486653Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486734Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486816Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486892Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9486987Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487063Z               "line": 31451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487145Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487221Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487302Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487378Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487460Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487536Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9487626Z       "id": "REQ-WAKE-RESUME-LEG",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493133Z       "title": "A-2 (REMOTE-TRUTH triage §A-2 + ADR-0033): the daemon reconcile gains a WAKE-RESUME LEG — an endpoint whose rest INTENT is Active but whose harness session is COLD (status != online) is resumed by the daemon via the adapter's [session.resume] template using the LAST LEDGER session id, so a bare `spt wake <id>` on a suspended live agent actually brings it back (today: reconcile_once start-arm hosts ONLY status==online (livehost.rs:199), so a woken-but-unbound endpoint is skipped forever — neither status reaches online nor does reconcile re-host). This is the ADR-0033 LIFT: the thin `spt wake` edge writes rest intent, the DAEMON does the work. Mirrors shellwake::resolve_wake (read rest state, live-pid double-launch guard, launch, NEVER flip status — the harness self-binds → online). The leg reads the recorded adapter (D-2, REQ-SESSION-ADAPTER-RECORDED); an UNREGISTERED recorded adapter is the Q5 daemon-variant refuse: do NOT spawn, record a LOUD host_error report (F-1 naming the adapter + `spt adapter add`), never silent, never fallback-spawn on a different adapter. BINDS: (1) status=online is set ONLY by a real bind — the resume leg NEVER stamps it (CONTEXT liveness truth; the A-1 effective-state derivation depends on this staying honest). (2) host_error is a REPORT of the most recent host-level failure, NEVER a liveness input — neither liveness nor advertised_status reads it (host_error + online still derives Active); cleared on a successful host/bind; the existing silent `continue` on a deregistered online adapter (livehost.rs:205) folds into the same field. (3) the resume-pid guard marker is CUSTODY-ONLY (F-030 nested-record discipline) — never a liveness input. cold-with-no-ledger-row degrades benign (loud-logged skip, no crash, today's behavior). Single-node; C-2 picker Wake-now unblocks after. --wait is a SEPARATE rider (REQ-WAKE-WAIT).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493244Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493320Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493399Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493475Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493552Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493628Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493702Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493788Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493918Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9493994Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494074Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494170Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494247Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494327Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494446Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494528Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494680Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494790Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494872Z               "line": 324
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9494947Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495027Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495133Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495219Z               "line": 361
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495291Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495366Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495468Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495553Z               "line": 307
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495695Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495877Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9495967Z               "line": 861
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496044Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496116Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496215Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496295Z               "line": 7654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496371Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496448Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496523Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496598Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496683Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496765Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9496955Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497032Z               "line": 2620
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497114Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497185Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497337Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497424Z               "line": 2650
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497500Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497575Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497681Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497762Z               "line": 2679
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497838Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9497914Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498015Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498096Z               "line": 2702
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498171Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498248Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498354Z               "path": "crates/spt/tests/twohost_cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498434Z               "line": 818
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498510Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498586Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498707Z               "path": "crates/spt/tests/wake_resume_bind_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498796Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9498876Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499094Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499175Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499255Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499337Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499418Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499494Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499608Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499685Z               "line": 2572
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499766Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9499962Z               "path": "crates/spt-daemon/src/registryhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500043Z               "line": 2297
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500118Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500194Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500295Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500376Z               "line": 1737
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500499Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500572Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500653Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500734Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500805Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500867Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9500963Z       "id": "REQ-WAKE-WAIT",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9502797Z       "title": "A-2 rider (REMOTE-TRUTH triage §A-2): `spt endpoint wake --wait` blocks on the REAL bind (status reaches online) after the daemon wake-resume lift (REQ-WAKE-RESUME-LEG), instead of the DEFAULT accepted-not-bound print (thin edge writes intent, daemon lifts async — ADR-0033). Reuses the F-027 bind-await machinery if/when it lands, else a bounded poll on status==online with a plain-language timeout (no core lingo, F-1). Default wake is UNCHANGED (accepted-not-bound truth). Separate chunk from the core leg (doyle A-2 ruling: C-2 needs the core leg, not --wait); F-027 bind-await stays design-only until this activates.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9502893Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9502974Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503107Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503198Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503288Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503364Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503442Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503527Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503607Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503679Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503756Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503842Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9503927Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504003Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504079Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504160Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504239Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504320Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504401Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504478Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504550Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9504658Z       "id": "REQ-WAN-DENY-PRECEDES-EXISTENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510387Z       "title": "At the WAN ingress, an ACCESS DENIAL and an ABSENT PERCH are DISTINCT OUTCOMES, and the denial arm runs FIRST. `receive_wan` consults the gate before it asks whether the target's perch exists, so a refused arrival returns `WanOutcome::Refused` whether or not the target is there, and `WanOutcome::NoPerch` is reserved for an ADMITTED arrival with nothing to deliver to. The ordering is the load-bearing half and it is not an accident of layout: reversed, a denied message to an absent perch would report absence, which both mislabels the refusal AND is the precise shape that would make a later `DENIED`-style reword of the NO_PERCH line leak the existence of an endpoint deliberately hidden from the asker (the DISCOVER-denial seam, where `Existence is not advertised` is ratified three times over in `wansend.rs`). The distinctness half is what the two outcomes MEAN downstream: `Refused` rides the wire as `refused` and renders `WAN_REFUSED` at the sender, `NoPerch` rides as `no_perch` and renders the absence line, and an operator diagnosing a silent peer acts differently on each. TWO LANDED UNITS ALREADY LEAN ON THIS UNNAMED � `the_stamp_not_the_from_is_the_sender_subject` and `an_admitted_arrival_records_contact_and_a_refused_one_does_not` both seed NO perch and both assert `Refused` (and its absence) at the ingress, so their green depends entirely on the deny arm preceding the existence test while nothing states that it must. This requirement names the dependency and pins it. MEASURED 2026-08-19 (releases#171 measurement, todlando): with the perch ABSENT in both arms and the deny rule as the only variable, denied-msg => `Refused` and allowed-msg => `NoPerch`. Gate: impl � the deny arm at the head of `receive_wan`, ahead of the perch-existence test; unit � the one-variable both-arms measurement, which fails if either the ordering or the distinctness is broken. Kin REQ-MSG-SENDER-STAMP (whose tier-1 subject decides the deny), REQ-ACL-DISCOVER-DEFAULT-ON (the seam whose camouflage this ordering protects).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510536Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510617Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510702Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510779Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510860Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9510936Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511021Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511103Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511180Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511255Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511336Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511413Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511490Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511594Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511675Z               "line": 915
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511752Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511824Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511903Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9511976Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512057Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512143Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512270Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512351Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512433Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512514Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512694Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512771Z               "line": 1506
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512847Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512923Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9512999Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9513072Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9513148Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9513219Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9513314Z       "id": "REQ-WAN-SEND-DELIVERY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515452Z       "title": "Bug #9/#10: cross-node spt send reports SENT(WAN) but does not deliver, even on stable-IP pairs. Real root: spt send resolves the dial with id-only addr_for_node_hex (endpoint.rs:538) which forces a fresh iroh discovery round-trip every send, while the gossip pump uses cached direct addresses (dial_seeded/PeerAddrStore) so gossip stays green but send rides a marginal discovery path that cannot carry the fire-and-forget payload; the handshake completes so SENT(WAN) prints falsely. Fix: (1) route the WAN dial through the pump seeded-direct-address resolution (PeerAddrStore first, id-only fallback); (2) receiver writes its WanOutcome back so the sender confirms delivery under the QUIC deadline and only reports SENT on confirmed delivery, honest failure otherwise. Access-gate/perch/spool all verified correct (ruled out). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #9-10.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515542Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515619Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515696Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515772Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515847Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9515925Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516006Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516091Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516171Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516249Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516330Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516448Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516529Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516607Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516710Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516791Z               "line": 156
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516869Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9516941Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517039Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517116Z               "line": 195
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517363Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517444Z               "line": 280
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517520Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517592Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517704Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517823Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517900Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9517977Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518085Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518167Z               "line": 210
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518243Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518315Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518414Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518491Z               "line": 808
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518567Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518644Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518719Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518791Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9518878Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519053Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519125Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519225Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519301Z               "line": 2279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519378Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519455Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519531Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519659Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519746Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519827Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9519902Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9520010Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9520086Z               "line": 1370
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9520167Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9520242Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9523718Z               "path": "crates/spt-net/src/net/wanmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9523817Z               "line": 399
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9523898Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9523975Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524089Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524174Z               "line": 2079
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524252Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524328Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524433Z               "path": "crates/spt/src/wansend.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524518Z               "line": 2178
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524600Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524751Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524833Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524915Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9524986Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9525061Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9525165Z       "id": "REQ-WAN-SPT-HOSTED-DELIVERY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9528678Z       "title": "A WAN-ARRIVED `spt send` is DELIVERED to an spt-hosted endpoint (broker holds its PTY, NO api-listen relay), not spooled-forever. Today receive_wan (spt-daemon/wan.rs:271-276) tries deliver_tcp (the harness-hosted relay leg) then falls to spool — it has NO spt-hosted broker-inject leg, which exists ONLY in local cmd_send (REQ-SEND-SPT-HOSTED, Brain::inject_endpoint → KIND_ENDPOINT_INPUT → broker dispatch_endpoint_input → translation-binary idle-inject). So a WAN arrival to an idle spt-hosted perch with a live translation binary ALWAYS sleeps in spool until an adapter hook polls (F-023: perch verifiably idle 7min, binary healthy, zero injection). FIX: factor cmd_send's spt-hosted delivery leg into a SHARED fn; receive_wan calls it after the replay-check (wan_seen_at) + restamp (restamp_wan_user_msg), BEFORE the spool fallback. Claim discipline UNCHANGED: inject delivered=true → wan_mark_seen_at then return the existing 'delivered' wire token (no wire change); delivered=false → the existing spool-with-claim transaction. v0.14.3 LAW: the shared leg is translation-binary-ONLY, NO raw-PTY fallback — a no-binary arrival SPOOLS LOUD, never writes the PTY. (F-023, BUILD-F023-WANIDLE)",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9528785Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9528866Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529046Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529123Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529199Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529279Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529356Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529442Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529528Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529681Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529762Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529851Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9529938Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530137Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530219Z               "line": 35
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530296Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530373Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530480Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530561Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530637Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530723Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530826Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530911Z               "line": 1170
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9530988Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531065Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531140Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531216Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531298Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531380Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531652Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531732Z               "line": 3002
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531812Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531889Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9531962Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532037Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532123Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532199Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532277Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532380Z               "path": "crates/spt-daemon/src/inject.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532466Z               "line": 246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532543Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532620Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532718Z               "path": "crates/spt-daemon/src/wan.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532805Z               "line": 2018
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532882Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9532958Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9533038Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9533115Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9533240Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9533320Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9533419Z       "id": "REQ-WEB-ACCESS-SURFACE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9537921Z       "title": "WEB SERVING GETS ITS OWN ACCESS SURFACE AND IT IS MINTED BEFORE ANYTHING DIALS IT (ADR-0060, releases#272/#249/#246). Mint the `WEB` row in the OPEN surface vocabulary -- one row, no schema change, the FORK precedent -- gating every served resource reached ACROSS THE SUBNET, checked by the OWNING node under the handshake-proven origin. DEFAULT-ON WITHIN THE SUBNET, the DISCOVER shape: content in the serving registry is there by a deliberate act (ADR-0057), so the deny lever is for lockdown and not the default; deny-by-default was rejected because a second gate at every read would make the registry a list of things nobody can fetch. NON-ATTRIBUTABLE for now, and that is stated rather than implied: there is no daemon-stamped sender identity yet (the REQ-ACL-SUBJECT-CHAIN tier-1 inertness), so WEB inherits the note that it is the surface expected next to grow a sender stamp, which moves here from the retiring XFER. IN W0 THE ROW EXISTS AND IS RULE-ADDRESSABLE AND NOTHING DIALS IT -- the gate itself is W1's cross-node stream family. This ordering is deliberate: a surface minted with its first consumer would make the vocabulary change and the enforcement change one diff, and the surface table is the thing every rule and knock code is written against. The `--help` Control surfaces section grows the row BY EXISTING (the table is composed, never hand-listed), which is what keeps the published vocabulary from drifting from the table. XFER's retirement is a SEPARATE close rider on #246 (REQ-XFER-RETIRED) and is NOT part of this requirement. Gate: doc -- the access-surface docs page and CONTEXT.md's surface entry carrying WEB; impl -- the row in the surface vocabulary table and its composition into --help; unit -- the row is present, canonicalizes, is addressable by a rule, and defaults on within a subnet, with a guard that NO call site dials it in W0 so the guard reds on purpose when W1 threads the gate in.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538051Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538127Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538208Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538284Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538356Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538432Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538511Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538597Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538678Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538759Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9538833Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539030Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539115Z               "line": 201
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539191Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539267Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539340Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539416Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539500Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539582Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539706Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539825Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539906Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9539984Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540059Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540168Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540246Z               "line": 217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540322Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540397Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540473Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540546Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540632Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540711Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540788Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540904Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9540984Z               "line": 305
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541139Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541255Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541391Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541471Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541543Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541677Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541762Z               "line": 428
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541839Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9541911Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542034Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542115Z               "line": 568
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542188Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542263Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542340Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542415Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542498Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542578Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542654Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542764Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542851Z               "line": 3262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9542926Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9543055Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9543127Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9543208Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9543278Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9543360Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9543466Z       "id": "REQ-WEB-ADAPTER-DOCS-FACET",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549361Z       "title": "AN INSTALLED ADAPTER'S OWN DOCS ARE SERVED UNDER A RESERVED docs SEGMENT OF ITS ADAPTER FACET, AND THE SEGMENT NEVER FALLS THROUGH (releases#265, WEBSERVE W3, doyle ruled 2026-09-07 12:06Z). The adapter facet already serves the core-owned web root of an adapter; this adds the adapter's OWN documentation BESIDE it at the reserved docs segment rather than replacing what that URL already means -- the alternative, letting docs take over the facet root, would change the meaning of a URL shipped one wave earlier, which is precisely the pasteable-between-machines property the URL grammar was built to buy. THE SEGMENT IS ROUTER-FIRST AND RESERVED, the same posture the reserved facets take: with the manifest key set it serves the adapter's docs directory; with the key absent it answers NOT_FOUND NAMING THE FACET AND THE SEGMENT, and it must NEVER fall through to a docs subdirectory of the core-owned root -- a reserved segment that can resolve as an ordinary served name is how two facets collide later. MEASURED BEFORE RULING, 2026-09-06: none of the seven installed adapters ships a docs directory at all (manifest, executable, strings and state only), so the facet needs a manifest key to point at one; the key is docs_dir, adapter-relative. CONTAINMENT IS ITS OWN CODE AND IS CHECKED TWICE. It is NOT the existing served-name validation, which is a name check and not a path check (measured at the lane base). An absolute path, a parent-directory escape, or a canonical path that does not sit under the adapter directory's own canonical path is REFUSED BY NAME as MANIFEST_DOCS_DIR_OUTSIDE naming the adapter -- at manifest load AND again at request time, because a directory swapped for a link pointing elsewhere after load is a real sequence and the resolve-at-request-time rule already governs every other served path. A MISSPELLED KEY IS ALREADY VISIBLE through the unknown-manifest-key diagnostic, so the failure mode of this key is a named stderr line rather than a silently absent facet. Gate: doc -- the serving docs section naming the segment, the key, and both refusals; impl -- the manifest key, the containment check at load and at serve, the reserved docs segment in the adapter facet router, and the absent-key 404 naming facet and segment; unit -- three refusal shapes (absolute, escape, canonical-outside) and one accept, the reserved segment never reaching the core root, and the absent-key 404 text; int -- a real docs fetch through the running server and the absent-key 404 naming the facet.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549537Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549618Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549703Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549779Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549856Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9549981Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550060Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550137Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550219Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550300Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550486Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550572Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550643Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550719Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550791Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550868Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9550952Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551033Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551220Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551300Z               "line": 595
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551377Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551620Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551704Z               "line": 614
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551776Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551852Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9551965Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552045Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552123Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552200Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552308Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552385Z               "line": 1213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552462Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552647Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552723Z               "line": 552
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552800Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9552876Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553019Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553101Z               "line": 589
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553186Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553261Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553333Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553411Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553495Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553572Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553648Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553768Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553848Z               "line": 394
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9553920Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554007Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554078Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554158Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554244Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554321Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554506Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554586Z               "line": 972
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554663Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554778Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554891Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9554973Z               "line": 1031
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555050Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555121Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555229Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555312Z               "line": 1519
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555388Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555569Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555650Z               "line": 1551
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555727Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555907Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9555989Z               "line": 1573
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556252Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556375Z               "line": 1598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556456Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556532Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556638Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556722Z               "line": 716
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556798Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556869Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9556974Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557053Z               "line": 750
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557129Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557206Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557302Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557387Z               "line": 2831
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557458Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557535Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557612Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557687Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557763Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557840Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9557945Z       "id": "REQ-WEB-ATTACHMENT-PULL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9563746Z       "title": "AN ATTACHMENT IS A SNAPSHOT REGISTERED FOR SERVING AND THE MESSAGE CARRIES ONLY ITS URL (ADR-0058, releases#272/#246). `spt send --attachment <path>` COPIES THE BYTES AT SEND TIME into `$SPT_HOME/serve/snapshots/` and registers an entry of kind attachment, because a message's attachment is as immutable as the message -- this is the ONE place the serving registry does NOT resolve at request time, and it is exactly what distinguishes an attachment from a `serve add` file entry: an edit after the send must NOT change what the receiver pulls, and deleting the source must NOT turn the link into a 404. NOTHING IS PUSHED TO THE RECEIVER. The envelope grows an ADDITIVE `attachments` key -- a list of {name, url, bytes} whose url is the node-prefixed `/<node>/f/<served-name>` (ADR-0056) and whose bytes is the snapshot size, so a receiver can decide BEFORE it pulls. The key is additive because a receiver on an older core must ignore it and deliver the message anyway; nothing on the delivery path may deny unknown fields, and that tolerance is itself under test. LIFETIME IS A TTL, DEFAULT 30 DAYS (operator-set), overridable per send with `--ttl <dur>`: the entry records its expiry and the daemon's EXISTING pulse reaps what has expired, deleting the snapshot file AND its registry entry TOGETHER so a reaped attachment answers not-found rather than serving a hole, and LOGGING THE REAP COUNT, because a silent reaper is indistinguishable from a reaper that never ran. The served name obeys REQ-WEB-SERVING-REGISTRY's disambiguation rule UNCHANGED, so two sends of the same basename get stable distinct URLs and neither link ever changes meaning. Several `--attachment` flags on one send are allowed and each mints its own entry. A MISSING OR UNREADABLE PATH REFUSES THE SEND BY NAME rather than delivering a message whose link is dead on arrival. Gate: doc -- the serving attachments page; impl -- the snapshot store, the attachment entry kind, the send-path registration, the envelope key, the pulse reaper; unit -- snapshot immutability against a post-send edit and against a post-send delete, the additive key round-tripping with an unknown-key receiver tolerating it, the ttl default and the `--ttl` parse, the reaper removing file and entry together and counting what it removed, the refusal on a missing path; int -- a real send whose attachment is fetched back byte-equal through the server.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9563922Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9563999Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564080Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564156Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564233Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564305Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564384Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564461Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564543Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564629Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564703Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564828Z               "path": "docs-site/src/serving/attachments.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9564958Z               "line": 7
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565037Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565113Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565185Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565266Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565347Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565428Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565615Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565695Z               "line": 1243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565771Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565843Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9565953Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566033Z               "line": 1381
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566109Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566291Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566376Z               "line": 37
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566453Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566535Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566682Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566763Z               "line": 91
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566840Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9566916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567025Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567102Z               "line": 128
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567179Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567254Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567358Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567439Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567590Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567698Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567775Z               "line": 432
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567886Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9567966Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568080Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568158Z               "line": 465
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568238Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568309Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568420Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568496Z               "line": 492
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568576Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568652Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568758Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568839Z               "line": 302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9568915Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569177Z               "path": "crates/spt-store/src/msgid.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569258Z               "line": 393
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569335Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569407Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569511Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569592Z               "line": 131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569717Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569797Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569897Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9569974Z               "line": 137
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570131Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570235Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570316Z               "line": 24
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570462Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570570Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570647Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570724Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570800Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570904Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9570981Z               "line": 56
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571287Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571372Z               "line": 302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571444Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571519Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571625Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571706Z               "line": 382
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571782Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571858Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9571959Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572039Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572116Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572187Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572293Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572373Z               "line": 637
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572445Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572521Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572618Z               "path": "crates/spt/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572702Z               "line": 11
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572778Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9572906Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573005Z               "path": "crates/spt/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573085Z               "line": 40
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573160Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573233Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573329Z               "path": "crates/spt/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573409Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573563Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573653Z               "path": "crates/spt/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573733Z               "line": 124
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573809Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573887Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9573982Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574062Z               "line": 11131
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574258Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574353Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574444Z               "line": 11251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574522Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574597Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574687Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574763Z               "line": 11255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574841Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9574916Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575007Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575088Z               "line": 11486
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575161Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575235Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575326Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575408Z               "line": 11533
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575480Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575555Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575635Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575715Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575793Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575879Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9575988Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576122Z               "path": "crates/spt/tests/webserve_attachment_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576208Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576283Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576359Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576480Z               "path": "crates/spt/tests/webserve_attachment_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576565Z               "line": 593
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576641Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576717Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576794Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576875Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9576960Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577037Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577114Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577223Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577303Z               "line": 491
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577377Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577457Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577566Z               "path": "crates/spt-proto/src/event.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577686Z               "line": 987
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577767Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577842Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9577947Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578023Z               "line": 1171
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578173Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578278Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578355Z               "line": 1197
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578431Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578507Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578607Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578688Z               "line": 1221
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578760Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9578836Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579032Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579118Z               "line": 1241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579193Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579270Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579422Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579503Z               "line": 1302
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579580Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579657Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579751Z               "path": "crates/spt/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579832Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579904Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9579981Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580075Z               "path": "crates/spt/src/attach.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580156Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580229Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580305Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580395Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580476Z               "line": 33782
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580553Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580672Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580747Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580823Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580900Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9580975Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9581073Z       "id": "REQ-WEB-CROSS-NODE-PROXY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587363Z       "title": "A NODE-PREFIXED URL FOR A SUBNET PEER IS SERVED BY THE OWNER THROUGH THE LOCAL DAEMON, WITHOUT A CACHE (ADR-0056, ADR-0060, WEBSERVE W1, releases#272/#249). A request on the loopback server for `/<peer>/...` where `<peer>` is a KNOWN subnet member opens ONE Iroh stream of a NEW TAGGED stream family (kind web -- the Knock shape: an N-1 owner has no arm, classifies it Unknown and drops it, so the requester answers 502 naming the node under a DEADLINE, never a hang) and relays the owner's answer back verbatim. THE OWNER DECIDES: it runs access_check on the WEB surface with the origin taken from the HANDSHAKE-PROVEN stream identity (the serve_xfer shape, REQ-HAZARD-WAN-ORIGIN-AUTH), the subject being the served entry's registering endpoint, and a refusal comes back as 403 whose body names the SURFACE and never a sender (WEB is non-attributable in W1). The owner resolves the served name through the SAME router the local facet uses, so an edit is visible on the next fetch, a deleted source is the owner's 404 carried back as 404, and the reserved facets stay router-first on the requester (`/<peer>/f/`, `m/`, `bin/`, `install` answer locally, no stream opened). NO CACHE: nothing is written under the requesting node's SPT_HOME; the body is STREAMED in bounded chunks, never buffered whole. HEAD, Range (forwarded verbatim; the owner's 206 with Content-Range comes back; unsatisfiable is 416) and Content-Type are the owner's. STATUS NAMING, ruled 2026-09-07: unreachable owner / dropped stream / deadline = 502 naming the NODE; owner deny = 403 naming the SURFACE; an UNKNOWN first segment is the docs compatibility 404 UNCHANGED (ADR-0056 Am.1 order), never a 502; a served-name miss is the owner's NOT_FOUND body at 404. Gate: doc -- the cross-node serving page (grammar, statuses, deadline, no-cache) and the access-viewing WEB row text; impl -- the tagged wire family, the dispatcher arm, the owner-side gate + serve, the requester-side resolve-to-proxy, the streaming body; unit -- the record family round-trips and an unknown kind is skipped, the tagged first line classifies as Web and never as a message, the census bijection, the Range grammar (single range, suffix, open-ended, unsatisfiable), the router's proxy-or-local decision per facet, the 502 shape naming the node and the 403 shape naming the surface; int -- two REAL daemons on one box: byte-equal fetch through the requester, a WEB deny rule on the owner answering 403 naming WEB, Range answering 206 with Content-Range, the owner stopped answering 502 naming the node within the deadline, an unknown label answering the docs 404, a reserved facet answered locally; plus the two-host cells on the real rig (fetch, deny, range) as their own #[test] fns.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587558Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587641Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587716Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587797Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587912Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9587989Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588069Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588145Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588232Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588308Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588383Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588511Z               "path": "docs-site/src/networking/access-viewing.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588593Z               "line": 49
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588668Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588743Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9588857Z               "path": "docs-site/src/serving/cross-node.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589025Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589105Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589176Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589258Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589334Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589472Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589554Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589635Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589753Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589835Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589912Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9589982Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590091Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590174Z               "line": 280
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590250Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590326Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590435Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590517Z               "line": 1231
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590593Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590669Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590770Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590851Z               "line": 44
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9590927Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591013Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591118Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591251Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591512Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591587Z               "line": 344
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591662Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591738Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591844Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9591925Z               "line": 423
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592182Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592263Z               "line": 71
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592334Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592412Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592516Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592602Z               "line": 82
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592678Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592912Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9592988Z               "line": 110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593065Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593136Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593245Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593326Z               "line": 274
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593399Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593475Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593579Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593661Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593733Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593808Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593912Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9593993Z               "line": 357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594074Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594144Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594257Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594382Z               "line": 365
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594463Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594538Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594649Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594730Z               "line": 529
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594806Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594891Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9594998Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595078Z               "line": 554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595230Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595336Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595416Z               "line": 32
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595568Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595679Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595798Z               "line": 52
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595878Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9595956Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596064Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596145Z               "line": 70
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596223Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596300Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596407Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596484Z               "line": 116
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596562Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596633Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596741Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596821Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596898Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9596970Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597075Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597155Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597237Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597318Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597465Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597548Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597623Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597804Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597886Z               "line": 216
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9597962Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598038Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598143Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598220Z               "line": 300
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598295Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598477Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598553Z               "line": 659
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598633Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598816Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9598896Z               "line": 685
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599109Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599190Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599303Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599388Z               "line": 771
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599460Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599537Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599646Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599727Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599804Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599880Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9599951Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600032Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600114Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600195Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600275Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600376Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600457Z               "line": 1108
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600533Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600614Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600762Z               "path": ".github/workflows/golden.yml",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600848Z               "line": 1245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9600929Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601000Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601120Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601200Z               "line": 304
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601277Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601349Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601468Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601596Z               "line": 768
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601673Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601750Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601862Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9601943Z               "line": 784
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602095Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602260Z               "path": "crates/spt-daemon/tests/twohost_web.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602346Z               "line": 804
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602428Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602504Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602632Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602710Z               "line": 427
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602786Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602861Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9602986Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603062Z               "line": 511
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603143Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603218Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603291Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603368Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603448Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603528Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603606Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603715Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603796Z               "line": 2659
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9603921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604007Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604115Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604201Z               "line": 774
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604274Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604462Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604543Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604624Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604808Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604885Z               "line": 842
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9604966Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605037Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605146Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605223Z               "line": 854
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605304Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605385Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605528Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605614Z               "line": 1294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605691Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605766Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605872Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9605952Z               "line": 1322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606029Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606105Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606211Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606291Z               "line": 1379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606372Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9606554Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610068Z               "line": 1422
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610163Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610243Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610368Z               "path": "crates/spt-net/src/net/webmsg.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610459Z               "line": 146
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610540Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610693Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610769Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610845Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610921Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9610994Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9611098Z       "id": "REQ-WEB-ENTRY-AUDIENCE",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9615878Z       "title": "A SERVING ENTRY MAY NAME THE ONE ENDPOINT ALLOWED TO FETCH IT, AND THAT AUDIENCE IS ENFORCED WHEREVER THE ORIGIN IS PROVEN (ADR-0058 Amendment 1, operator-directed 2026-09-06, releases#272/#17). `audience` is a PER-ENTRY, KIND-INDEPENDENT field sitting beside ttl: ABSENT means the entry is reachable by anyone the WEB surface admits, which leaves REQ-WEB-ACCESS-SURFACE's default-on subnet posture UNCHANGED; PRESENT means the owner serves the entry ONLY to that endpoint id and answers everyone else 403 NAMING THE SURFACE -- deliberately the SAME refusal shape a WEB deny rule produces, so a narrower audience is not distinguishable from a denial by probing, and the registry does not become an oracle for what exists. IT IS ENFORCED WHERE THE FETCH ORIGIN IS PROVEN: the cross-node stream's handshake-proven identity (REQ-WEB-CROSS-NODE-PROXY, REQ-HAZARD-WAN-ORIGIN-AUTH), which is the only place a requester's endpoint id is evidence rather than a claim. LOOPBACK REMAINS THE TRUSTED MACHINE, and that is STATED rather than implied: a local browser presents no endpoint identity, so a request arriving on the loopback server is served, and an audience is therefore a CROSS-NODE NARROWING -- an operator who needs secrecy from other users of the same machine has file permissions, not this field. THE FIELD IS VISIBLE IN `spt serve list` beside ttl and origin, because the registry's one job is answering what this node exposes AND TO WHOM, and a hidden narrowing would make that answer a half-truth. Gate: doc -- the serving overview page's entry-fields section; impl -- the field on the entry, its persistence, the owner-side check on the cross-node path, the list rendering; unit -- an absent audience admits, a matching audience admits, a NON-matching audience refuses with the same 403 shape as a surface deny, loopback is served regardless of audience, and the field survives a registry round-trip and renders in list; int -- two real daemons where the named endpoint fetches byte-equal and a requester that is not the audience gets 403.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616079Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616160Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616237Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616312Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616389Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616466Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616546Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616621Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616703Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616790Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616860Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9616980Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617062Z               "line": 166
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617138Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617265Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617343Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617425Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617504Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617585Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617663Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617777Z               "path": "crates/spt-daemon/src/webproxy.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617861Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9617932Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618008Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618120Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618199Z               "line": 696
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618275Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618352Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618462Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618542Z               "line": 737
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618619Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618692Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618805Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9618924Z               "line": 355
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619091Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619167Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619273Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619354Z               "line": 107
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619425Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619501Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619602Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619678Z               "line": 119
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619753Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619830Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619902Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9619979Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620073Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620153Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620229Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620357Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620494Z               "line": 583
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620571Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620653Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620728Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620808Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620890Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9620967Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621043Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621147Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621230Z               "line": 927
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621301Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621481Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621563Z               "line": 1283
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621644Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621715Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621825Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621901Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9621982Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9622101Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9622179Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9622254Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9622330Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9622406Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9622498Z       "id": "REQ-WEB-FETCH-VERB",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9626673Z       "title": "`spt fetch <url> [dest]` IS THE ONE-COMMAND PULL AND ITS EXIT CODES SEPARATE REFUSED FROM FAILED (ADR-0058, releases#272/#246). It accepts a full node-prefixed URL or the bare `<node>/f/<name>` shorthand, writes the bytes to `dest` (default: the URL's basename in the current directory), REFUSES TO CLOBBER an existing dest without `--force`, and PRINTS THE WRITTEN PATH on success so a caller can pipe it. THE THREE OUTCOMES ARE DISTINCT AND THAT IS THE WHOLE POINT: exit 0 wrote the file; exit 3 the owner REFUSED (403 -- an access decision, not an error, and a caller that retries it is wrong); exit 1 is everything else (unreachable owner, not-found, a deadline, a local write error), each naming its cause on stderr. This verb's spelling is a PUBLISHED CONTRACT and not an implementation detail, because the FILE_ACCESS_HELPER now-signal emits the line verbatim for an agent to run. It rides the SAME cross-node path a browser does (REQ-WEB-CROSS-NODE-PROXY) rather than minting a second client, and a local-node URL goes through the same loopback server, so there is exactly ONE code path to be wrong about. THE BODY IS STREAMED TO A TEMPORARY FILE AND RENAMED INTO PLACE, so an interrupted or refused fetch never leaves a truncated file sitting at the destination path where a later reader would trust it. Gate: doc -- the attachments page's fetch section; impl -- the verb, the URL and shorthand parse, the dest and clobber rules, the temp-then-rename write, the exit-code mapping; unit -- URL and shorthand parse, default dest from basename, clobber refusal and `--force`, each exit code derived from its status, and an interrupted write leaving no partial at dest; int -- a fetch across two real daemons landing byte-equal, plus a denied fetch exiting 3.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9626772Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9626896Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9626973Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627049Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627125Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627201Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627283Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627360Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627445Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627525Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627721Z               "path": "docs-site/src/serving/attachments.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627802Z               "line": 65
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627878Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9627951Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628027Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628107Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628189Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628275Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628492Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628588Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628665Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628740Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628835Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9628917Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629078Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629154Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629252Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629327Z               "line": 57
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629403Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629585Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629661Z               "line": 103
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629813Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629914Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9629994Z               "line": 154
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630071Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630196Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630299Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630380Z               "line": 186
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630452Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630530Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630609Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630690Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630770Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630852Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9630927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631054Z               "path": "crates/spt/tests/webserve_attachment_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631135Z               "line": 265
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631288Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631412Z               "path": "crates/spt/tests/webserve_cross_node_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631489Z               "line": 679
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631565Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631636Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631712Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631790Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9631927Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632012Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632090Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632190Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632270Z               "line": 278
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632346Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632518Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632594Z               "line": 296
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632670Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632749Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632847Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9632929Z               "line": 309
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633000Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633077Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633171Z               "path": "crates/spt/src/fetchverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633253Z               "line": 319
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633330Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633406Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633529Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633609Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633685Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633761Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9633869Z       "id": "REQ-WEB-LAN-BOOTSTRAP-INTEGRITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9641505Z       "title": "THE BOOTSTRAP LISTENER SERVES THE ARTIFACTS OF THE APPLIED SIGNED SET, PER-TRIPLE SHA-ANCHORED, OR IT SERVES NOTHING (ADR-0059 Amendment 1, ADR-0015 trust roots, releases#266). The puller EXECUTES what it downloads over plain HTTP, so access rules are not the story -- the bytes need provenance, and three conjuncts are ALL required. SET GATE, WHOLE LISTENER: the served set is the release-cache set whose HOST-TRIPLE artifact hash equals the running daemon's own executable (canonical path captured at start, never a per-request current-exe lookup) AND whose applied state reads applied at that set version; failure refuses the start BY NAME -- LAN_BOOTSTRAP_REFUSED with unsigned-exe, sha-mismatch, or set-not-applied -- and serves nothing. There is deliberately NO serve-it-marked-unsigned branch, because that is the supply-chain shape this requirement exists to refuse. A STAGED-BUT-UNAPPLIED NEWER SET IS NEVER SERVED: a stranger gets what this node RUNS, never what it is about to run. PER-TRIPLE GATE, PER PATH: the per-triple binary path serves staged bytes only if they hash to that triple's artifact hash in the SAME signed metadata; a missing or mismatched non-host artifact answers 404 as LAN_BOOTSTRAP_TRIPLE_UNAVAILABLE naming the triple and the reason, and the host triple KEEPS SERVING -- a missing musl artifact must not block a Windows-to-Windows bootstrap. The host triple failing IS the set gate. PROVENANCE BESIDE THE BYTES: a release sidecar sits at the binary path plus a release suffix, carrying the exact signed record (metadata and signature), byte-identical on every triple path, and install on the puller re-runs metadata and artifact verification against its BUILT-IN keys before touching disk. That conjunct is circular alone -- a tampered executable carries tampered roots -- which is why the third exists, but it catches every truncation, corruption and wrong-platform pull for free on the substrate that already ships. OUT-OF-BAND ANCHOR, THE OPERATOR'S EYES: start prints one hash line per served triple, the LAN-EXPOSED now-signal carries the host triple's, the install one-liner bakes the PULLER'S triple hash (chosen by the page's triple segment, never sniffed) into an expect-sha256 flag, and install prints the hash of what it downloaded before verifying. Two machines on one LAN and a human comparing two lines is the only non-circular anchor a bootstrap without transport security can honestly offer. Gate: doc -- the amendment and the install page text stating all three conjuncts; impl -- the set gate at start, the per-triple gate at serve, the sidecar, the printed hashes, the expect-sha256 flag on install; unit -- each refusal code fires on its own cause, a non-host triple 404s by name while the host triple still serves, the sidecar is byte-identical across triple paths, and a wrong expected hash refuses before anything is written; int -- the peer pulls the linux-gnu triple from the REAL installed daemon and the bytes match the signed hash, a wrong expected hash exits non-zero writing nothing, a byte flipped in a non-host staged artifact 404s that triple while the host keeps serving, and a dev-built rig daemon refuses to start the listener at all.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9641686Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9641763Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9641838Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9641915Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9641991Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642068Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642144Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642220Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642383Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642459Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642581Z               "path": "docs-site/src/serving/lan-bootstrap.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642716Z               "line": 53
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642792Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642868Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9642950Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643026Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643107Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643188Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643265Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643374Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643455Z               "line": 281
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643531Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643604Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643713Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643788Z               "line": 97
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643865Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9643943Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644046Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644183Z               "line": 183
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644260Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644439Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644519Z               "line": 238
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644592Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644668Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644772Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644858Z               "line": 251
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9644930Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645006Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645110Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645187Z               "line": 369
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645264Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645340Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645449Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645526Z               "line": 409
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645603Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645678Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645821Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645903Z               "line": 630
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9645979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646060Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646161Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646242Z               "line": 638
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646317Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646500Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646576Z               "line": 650
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646650Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646731Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646845Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646921Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9646995Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647072Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647167Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647250Z               "line": 10241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647444Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647540Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647621Z               "line": 10305
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647691Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647769Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647868Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9647950Z               "line": 199
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648035Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648112Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648188Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648264Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648345Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648422Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648503Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648631Z               "path": "crates/spt-daemon/tests/lan_bootstrap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648708Z               "line": 29
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648790Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9648864Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649133Z               "path": "crates/spt-daemon/tests/lan_bootstrap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649217Z               "line": 379
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649289Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649362Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649439Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649517Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649598Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649679Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649751Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649855Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9649937Z               "line": 847
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650008Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650085Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650194Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650275Z               "line": 908
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650348Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650423Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650585Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650672Z               "line": 1045
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650757Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650833Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650905Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9650987Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9651062Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9651134Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9651238Z       "id": "REQ-WEB-LAN-BOOTSTRAP-LISTENER",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9655557Z       "title": "A SECOND, OPT-IN, OPERATOR-STARTED LISTENER SERVES THE INSTALLED BINARY TO STRANGERS ON THE LAN, AND IT IS NOT THE DOCS SERVER (ADR-0059, releases#266, WEBSERVE W3). The serve lan --bootstrap verb starts a SEPARATE listener on all interfaces at port 5470 (config and env override) whose router knows ONLY the per-triple binary path, the provenance sidecar beside it, and a one-liner install page -- nothing else exists in that process. ITS AUDIENCE IS BY DEFINITION A STRANGER WHO IS NOT YET A NODE: a fresh box has no network identity, so no access chain can run and the listener must never grow a membership concept; the ONLY gate is the operator's explicit start. OFF BY DEFAULT, serve lan --stop takes it down, the LAN URL is printed at start, and the now-signal carries a LAN-EXPOSED line for the whole window it is up (a now-signal category riding the ratified render order, appended at the END). THE DOCS SERVER IS UNCHANGED AND STAYS LOOPBACK: the never-all-interfaces promise of REQ-DOCS-LOCAL-SERVER is asserted WHILE the bootstrap listener is up, because the reason to state it is precisely that a second listener now binds every interface. The bootstrap surface is never reachable through the docs port and the docs facets are never reachable through the bootstrap port. Gate: doc -- the bootstrap page in the serving docs and the decision-record amendment carrying the ruling; impl -- the listener, its three-route router, the start and stop verbs, the printed URL, the now-signal category; unit -- the router answers only its three routes and 404s everything else, the listener is off unless started, the docs bind is loopback while the bootstrap bind is all-interfaces, and the now-signal line appears while up and is gone after stop; int -- a real fetch from the other host over the LAN, with the docs port refusing that same peer.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9655699Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9655772Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9655853Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9655934Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656009Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656081Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656163Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656243Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656324Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656406Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656601Z               "path": "docs-site/src/serving/lan-bootstrap.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656677Z               "line": 9
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656754Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656830Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656905Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9656982Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657069Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657187Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657262Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657372Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657453Z               "line": 114
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657528Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657704Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657785Z               "line": 299
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657861Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9657937Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658043Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658118Z               "line": 360
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658195Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658271Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658372Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658491Z               "line": 480
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658566Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658644Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658748Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658829Z               "line": 629
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9658905Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659063Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659172Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659248Z               "line": 637
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659326Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659401Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659505Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659583Z               "line": 740
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659660Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659735Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659835Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659918Z               "line": 756
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9659989Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660068Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660177Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660311Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660392Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660468Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660573Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660650Z               "line": 75
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660726Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660802Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660913Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9660988Z               "line": 79
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661064Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661135Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661246Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661327Z               "line": 100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661398Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661474Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661580Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661665Z               "line": 109
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661741Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661871Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9661984Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662060Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662137Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662318Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662393Z               "line": 242
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662546Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662649Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662729Z               "line": 271
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662801Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662878Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9662982Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663067Z               "line": 362
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663145Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663222Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663335Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663465Z               "line": 992
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663545Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663616Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663721Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663804Z               "line": 1011
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663879Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9663955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664060Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664137Z               "line": 1026
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664217Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664289Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664390Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664471Z               "line": 198
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664551Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664627Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664700Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664823Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664908Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9664990Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665204Z               "path": "crates/spt-daemon/tests/lan_bootstrap_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665284Z               "line": 28
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665356Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665437Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665511Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665587Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665668Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665750Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665826Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9665930Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666007Z               "line": 997
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666084Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666160Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666264Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666346Z               "line": 1086
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666427Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666541Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666646Z               "path": "crates/spt-daemon/src/lanhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666728Z               "line": 1097
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666803Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9666986Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667061Z               "line": 425
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667136Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667213Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667314Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667395Z               "line": 1759
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667470Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667542Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667648Z               "path": "crates/spt/src/api/nowsignal.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667729Z               "line": 1802
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667798Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667875Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9667956Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9668032Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9668106Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9668182Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9668322Z       "id": "REQ-WEB-SERVING-REGISTRY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675374Z       "title": "THE SERVING REGISTRY IS THE PRIMITIVE AND SERVED NAMES ARE STABLE AND DISAMBIGUATED (ADR-0057, releases#272/#248). The registry is the node's single enumerable list of what it exposes, and exposure is a DELIBERATE ACT of adding an entry -- so what-is-this-node-serving has exactly one answer. A served root (a dir entry an adapter declares in its manifest) is NOT a second mechanism: it is a registry entry of kind dir, which is what keeps the audit to one command. A drop-folder primitive was rejected because exposure would become a property of where a file happens to sit. STORE: `$SPT_HOME/serve/registry`, spt-store owns the format and the read path, the DAEMON IS THE SINGLE WRITER. ENTRY: id, kind (file | dir | attachment), absolute source path (file/dir) or snapshot path (attachment), served name, registered-at, ttl (attachments only), origin (endpoint id). THE SERVED-NAME RULE, exactly as ADR-0057 and binding clause by clause: the first registrant keeps the bare `<stem>.<ext>`; a later entry whose bare name is taken is served as `<stem>~<n>.<ext>` with the suffix BEFORE the extension so the file still opens as its type; `n` increments per (stem, ext) and THAT COUNTER IS PERSISTED, which is the one piece of state the stability promise costs; the assignment is persisted on the entry so an entry's URL NEVER CHANGES for its life; A FREED NAME IS RE-TAKEN ONLY BY THE ABSOLUTE PATH AND KIND IT LAST NAMED (ADR-0057 Amendment 2, doyle-ruled 2026-09-06 off the W0 smoke: the history records name to last path, so an adapter alias survives deactivate/activate and adapter update), so a stale link answers not-found or the very resource it always named and can never silently open a different one; re-registering the SAME ABSOLUTE PATH returns the EXISTING entry rather than minting a new suffix; an explicit `--as <name>` is subject to the same rule. Disambiguation is PER NODE -- across nodes the node prefix (ADR-0056) already separates names. VERBS: `spt serve add <path> [--as <name>]`, `spt serve rm <name|id>`, `spt serve list [--json]` rendering path to URL. MANIFEST: `web_short_path` is a dir entry registered at adapter activation and removed at deactivation. REFERENCE-SERVED (file/dir) RESOLVES AT REQUEST TIME: an edit is visible and a deleted source answers 404, which is the property that distinguishes a plainly registered file from an attachment snapshot (ADR-0058). Gate: doc -- the serving overview page's registry and served-name sections; impl -- the spt-store registry format and read path, the daemon writer, the three verbs, the manifest-declared served root; unit -- EVERY CLAUSE OF THE SERVED-NAME RULE AS ITS OWN CELL (bare to first, suffix after, counter per (stem,ext) and persisted, freed name re-taken only by its last path and kind while a different path or a changed kind takes the next suffix, same absolute path returns the same entry, --as under the same rule), plus the reference-served resolve-at-request-time behaviour; int -- add, list, fetch and rm through the real server.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675555Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675633Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675708Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675783Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675863Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9675940Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676020Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676095Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676185Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676267Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676471Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676552Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676625Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676814Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676897Z               "line": 73
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9676973Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677101Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677216Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677297Z               "line": 115
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677373Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677541Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677621Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677696Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677773Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677865Z               "path": "docs/STORAGE.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9677946Z               "line": 112
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678020Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678097Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678251Z               "path": "docs/adr/0057-serving-registry-is-the-primitive.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678326Z               "line": 80
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678406Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678483Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678559Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678638Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678761Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678843Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9678920Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679124Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679206Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679282Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679357Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679468Z               "path": "crates/spt-daemon/src/seedmap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679549Z               "line": 181
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679625Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679700Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679807Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679887Z               "line": 23
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9679963Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680040Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680146Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680283Z               "line": 127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680359Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680436Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680549Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680630Z               "line": 138
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680708Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680780Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680892Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9680974Z               "line": 294
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681052Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681123Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681230Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681311Z               "line": 322
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681383Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681460Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681569Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681645Z               "line": 332
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681722Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681798Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9681964Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682047Z               "line": 354
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682122Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682198Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682308Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682386Z               "line": 350
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682461Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682536Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682643Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682724Z               "line": 396
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682794Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682875Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9682982Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683062Z               "line": 417
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683142Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683219Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683325Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683414Z               "line": 576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683542Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683618Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683736Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683817Z               "line": 228
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683892Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9683969Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684074Z               "path": "crates/spt-runtime/src/manifest.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684155Z               "line": 1204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684231Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684308Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684412Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684493Z               "line": 383
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684565Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684642Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684746Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684827Z               "line": 412
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684905Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9684980Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685137Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685219Z               "line": 117
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685295Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685371Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685470Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685558Z               "line": 123
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685633Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685815Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685896Z               "line": 144
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9685971Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686149Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686230Z               "line": 164
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686300Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686376Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686514Z               "path": "crates/spt-store/src/perch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686599Z               "line": 189
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686679Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686759Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686865Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9686942Z               "line": 7
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687017Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687093Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687199Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687280Z               "line": 101
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687351Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687427Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687533Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687609Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687684Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687761Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687866Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9687947Z               "line": 248
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688023Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688134Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688242Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688328Z               "line": 532
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688401Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688581Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688662Z               "line": 654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688735Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688811Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9688914Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689081Z               "line": 672
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689156Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689231Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689326Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689407Z               "line": 2510
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689485Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689655Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689737Z               "line": 21400
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689866Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9689946Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690057Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690137Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690213Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690290Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690386Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690470Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690547Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690618Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690696Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690771Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690857Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9690938Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691015Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691133Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691215Z               "line": 34
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691292Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691368Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691534Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691617Z               "line": 295
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691693Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691767Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691881Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9691958Z               "line": 335
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692035Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692110Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692186Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692263Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692344Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692429Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692506Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692617Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692692Z               "line": 451
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692768Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9692997Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693087Z               "line": 593
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693173Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693251Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693354Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693435Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693513Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693585Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693693Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693774Z               "line": 1104
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693851Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9693928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694036Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694116Z               "line": 1127
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694188Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694264Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694372Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694452Z               "line": 1150
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694534Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9694772Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698155Z               "line": 1168
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698244Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698316Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698445Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698526Z               "line": 1204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698607Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698684Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698803Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9698884Z               "line": 1217
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699066Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699141Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699252Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699333Z               "line": 1276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699404Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699488Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699598Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699777Z               "line": 939
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699857Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9699934Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700050Z               "path": "crates/spt-runtime/src/registry.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700129Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700206Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700278Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700388Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700468Z               "line": 805
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700544Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700617Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700721Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700801Z               "line": 853
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700874Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9700951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701055Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701135Z               "line": 871
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701218Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701298Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701455Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701542Z               "line": 886
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701727Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701838Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701919Z               "line": 902
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9701994Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702066Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702172Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702253Z               "line": 923
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702327Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702398Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702499Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702575Z               "line": 946
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702651Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702779Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702885Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9702971Z               "line": 960
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703046Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703119Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703223Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703300Z               "line": 974
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703375Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703448Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703548Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703629Z               "line": 989
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703705Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703777Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703876Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9703962Z               "line": 1009
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704034Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704111Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704210Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704291Z               "line": 1043
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704411Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704492Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704600Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704676Z               "line": 1052
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704753Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9704932Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705012Z               "line": 1066
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705089Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705166Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705270Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705351Z               "line": 1088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705423Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705495Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705599Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705681Z               "line": 1110
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705752Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705829Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9705933Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706053Z               "line": 1129
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706134Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706305Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706387Z               "line": 255
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706462Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706538Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706615Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706693Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706762Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706839Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9706935Z       "id": "REQ-WEB-URL-NODE-PREFIX",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712383Z       "title": "EVERY SERVED URL IS NODE-PREFIXED, LOCAL RESOURCES INCLUDED (ADR-0056, WEBSERVE grill round 1+2, releases#272/#249). ONE GRAMMAR: the 5474 server answers `/<node-name>/...` for every facet, and a resource on this node is reached by the SAME path here and on every other subnet machine -- the local daemon resolves the prefix and proxies to the owner when it is elsewhere. WHY ONE GRAMMAR AND NOT TWO: un-prefixed-local plus prefixed-remote was rejected because a URL would then mean different things depending on which machine it was pasted into, and a URL that cannot be pasted between subnet machines is a path, not a link -- which is exactly what #147 message links and #17 FILE_ACCESS_HELPER need it to be. Bare `/` REDIRECTS (302) to `/<local-node>/`. The docs server's existing bare paths stay reachable as a COMPATIBILITY ALIAS under the local node prefix and must remain BYTE-TRUE -- REQ-DOCS-LOCAL-SERVER's surface contract is untouched by this change, and the alias is not a second grammar. SUB-NAMESPACE PER FACET so a path says what it is: `f/` registry files, `docs/` the docs site, `a/<adapter>/` adapter docs, `m/<short-id>` message views, `bin/` + `install` the bootstrap surface. ALL FIVE ARE RESERVED AT THE ROUTER IN W0 EVEN WHERE THE FACET IS NOT BUILT: an unbuilt facet answers 404 NAMING THE FACET and must never fall through to a registry lookup, because a reserved prefix that resolves as a served name is how two facets collide later. `/<node>/` itself renders the INDEX PAGE -- the serving registry, path to URL, HTML with a `?json` twin for agents -- which is the what-is-this-node-exposing audit in a browser. A request for `/<other-node>/...` answers 502-with-node until W1 builds the proxy. Scheme is plain http only; an spt:// scheme was rejected as needing a handler on every OS to buy nothing. Gate: doc -- the serving overview page carrying the grammar and the reserved list; impl -- the router's node-prefix resolution, the bare-root redirect, the reserved sub-namespaces, the index page and its json twin; unit -- the redirect, each reserved prefix 404ing by NAME rather than reaching the registry, the docs alias answering byte-identically to its pre-change path, and the index rendering an entry's path and URL; int -- a real server answering the grammar end to end.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712526Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712644Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712727Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712808Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712883Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9712954Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713035Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713107Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713193Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713273Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713354Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713483Z               "path": "docs-site/src/harness-contract/manifest.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713564Z               "line": 83
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713640Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713713Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713827Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713902Z               "line": 8
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9713979Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714051Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714141Z               "path": "docs/MANIFEST.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714226Z               "line": 93
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714303Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714432Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714513Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714594Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714676Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714756Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714827Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9714942Z               "path": "crates/spt-daemon/src/daemon.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715025Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715099Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715175Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715280Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715361Z               "line": 106
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715435Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715511Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715615Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715697Z               "line": 415
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715773Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715844Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9715954Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716074Z               "line": 861
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716149Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716226Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716331Z               "path": "crates/spt-daemon/src/pairhost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716412Z               "line": 887
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716488Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716560Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716665Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716745Z               "line": 357
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716817Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716894Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9716993Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717074Z               "line": 753
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717151Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717224Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717332Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717447Z               "line": 770
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717524Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717600Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717709Z               "path": "crates/spt-store/src/hostlabel.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717785Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717863Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9717938Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718042Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718122Z               "line": 621
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718194Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718269Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718373Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718449Z               "line": 654
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718526Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718598Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718702Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718778Z               "line": 672
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718855Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9718927Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719161Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719246Z               "line": 694
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719322Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719393Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719499Z               "path": "crates/spt/src/serveverb.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719580Z               "line": 69
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719651Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719727Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719800Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719875Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9719956Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720037Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720110Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720237Z               "path": "crates/spt-daemon/tests/docs_server_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720319Z               "line": 13
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720391Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720467Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720585Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720670Z               "line": 33
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720799Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720874Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9720992Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721074Z               "line": 132
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721146Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721221Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721331Z               "path": "crates/spt-daemon/tests/webserve_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721408Z               "line": 333
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721484Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721560Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721631Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721708Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721789Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721870Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9721945Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722051Z               "path": "crates/spt-daemon/src/docshost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722132Z               "line": 549
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722285Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722447Z               "path": "crates/spt-daemon/src/servehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722528Z               "line": 631
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722604Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722676Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722780Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722862Z               "line": 1052
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9722938Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723010Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723114Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723195Z               "line": 1074
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723268Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723344Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723447Z               "path": "crates/spt-daemon/src/webserve.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723528Z               "line": 1246
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723599Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723725Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723833Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723919Z               "line": 1088
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9723992Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724068Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724171Z               "path": "crates/spt-store/src/serving.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724249Z               "line": 1159
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724325Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724397Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724471Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724544Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724621Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724691Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9724777Z       "id": "REQ-WHOAMI-1",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9726958Z       "title": "The `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state; whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9) and renders the same description-carrying SELF pin. HISTORY: originally minted whoami as a thin ALIAS of `spt endpoint list` — that alias premise is SUPERSEDED by REQ-WHOAMI-IDENTITY-ONLY (PROJECT-INDEX W1, 2026-07-15): the alias inherited the list's O(perches x branches) git fanout onto hook paths (the 2026-07-15 message-delivery incident), so whoami is now identity-only over the shared render_self_pin. The pin render + parse evidence here stands; the full-roster surface lives solely on `endpoint list`.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727111Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727192Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727268Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727348Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727420Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727502Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727577Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727658Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727740Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727817Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727906Z               "path": "CONTEXT.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9727987Z               "line": 1105
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728065Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728142Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728254Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728336Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728418Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728498Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728574Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728673Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728750Z               "line": 12502
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728825Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9728900Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729057Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729134Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729219Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729300Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729372Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729449Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729534Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729614Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729687Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729782Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729868Z               "line": 29056
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9729943Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730073Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730163Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730244Z               "line": 29339
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730321Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730393Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730469Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730540Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730617Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730689Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9730797Z       "id": "REQ-WHOAMI-EXPLICIT-SID-REFUSAL",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9741947Z       "title": "RULED DESIGN, delivery unowned (doyle 2026-07-26): when a caller hands identity resolution an EXPLICIT non-empty $OWL_SESSION_ID that resolves to NO perch, core must REFUSE identity (unresolved, exit 1, loud distinct diagnostic) rather than fall through to an ambient/inherited one — today `detect_self_id` (roster.rs, legs a→b→b2→c) treats sid-UNMATCHED identically to sid-ABSENT, so the fallback chain re-adopts precisely the identity a sharper claim just failed to prove. MEASURED (perri, this node, 2026-07-26, three read-only whoami calls from a genuine descendant of the perri host process): (1) all SPT_*/OWL_* scrubbed → id null, exit 1 — ancestry resolved nothing (caveat honored from the probe: the perch's recorded pid was not in the caller's chain, so this run refutes lineage-as-the-mechanism for probe v1 without disproving a lineage path in general); (2) inherited SPT_ENDPOINT_ID=perri + explicit OWL_SESSION_ID matching no perch → perri, exit 0 — the mismatch datum was IN HAND (core had already scanned and failed to match the explicit sid) and the ambient id won anyway; (3) real OWL_SESSION_ID with endpoint id scrubbed → correct self — the healthy path any fix must leave untouched. SCOPE OF THE REFUSAL, ruled: only sid-PRESENT-AND-UNMATCHED poisons the fallback, and it poisons ALL weaker legs (b SPT_AGENT_ID, b2 SPT_ENDPOINT_ID, c pid-ancestry) — an explicit failed claim outranks every ambient claim below it; sid-ABSENT/empty keeps today's full chain unchanged, because the leg-b2 field root (live-repro'd 2026-07-10: the adapter surfaces OWL_SESSION_ID to the session shell as an UNEXPORTED var, so the child process legitimately carries endpoint id without sid) is exactly the flow the guard must not break — that flow is sid-absent, never sid-mismatched. WHY CORE AND NOT ONLY THE ADAPTER: the measured entry path is closed adapter-side (perri's REQ-HAZARD-INHERITED-IDENTITY-ADOPTION @ their a7558aa + claude-spt KNOWN-HAZARDS 7.4, shipped: whoami child calls scrub SPT_ENDPOINT_ID/SPT_AGENT_ID; rig discipline now detached AND env-scrubbed — the scrub is the operative half), but the inconsistency being fixed is CORE'S: the adapter fastpath's verified_env_id REFUSES an inherited SPT_ENDPOINT_ID on carrier-proof mismatch (carrier sid != payload sid) and core's fallback then RE-GRANTS what that layer just refused — one layer's refusal must not be another layer's grant, and every other harness/adapter gets the defense only if core holds it. SEVERITY UPGRADE recorded at mint: unlike the KH 7.1–7.3 shapes (lost reads), this adoption was WRITE-CAPABLE in the field — the adopting descendant re-pointed the ANCESTOR's session pin, so the ancestor went dark while the descendant looked healthy (perri's own pin, probe v1). KIN, same review same milestone: leg (b) SPT_AGENT_ID returns UNCONDITIONALLY today — not even perch-checked, weaker than leg b2's bound-perch gate; align it when this lands. MEASURED on the live node, not just code-read (perri, same probe run, reported 2026-07-26): SPT_AGENT_ID=nobody-xyz with a bogus OWL_SESSION_ID returned {'id':'nobody-xyz','ready':false,'alive':true,'unbound':false}, exit 0 — a phantom identity for an endpoint that does not exist, beating both the sid leg and ancestry; the returned shape has no state key and ready:false but a populated id, and the adapter parser takes .id first, so a whoami-trusting adapter writes state under the phantom — the same write-capable class as the inherited-adoption case, sourced from a made-up name instead of a real ancestor. perri's adapter scrub covers SPT_AGENT_ID as well as SPT_ENDPOINT_ID for exactly this reason. POSTURE UNCHANGED: whoami legs remain from-label/routing only, never authentication (KH 7.3/7.5, F-024 stays parked) — refusal tightens label discipline, it promotes nothing to auth. Gate at activation: unit — sid-unmatched + ambient endpoint id present → refusal with the distinct diagnostic (probe shape 2 goes loud); sid-absent + ambient endpoint id on a bound perch → still resolves (leg-b2 field root preserved); sid-matched → unchanged (probe shape 3).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9751980Z       "requiredStages": [],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9752166Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9752345Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9752535Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9752720Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9752892Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9753097Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9753254Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9753445Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9753625Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9753774Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9753935Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9754122Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9754294Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9754437Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9754599Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9754784Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9754948Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9755095Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9755236Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9755376Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9755541Z       "id": "REQ-WHOAMI-IDENTITY-ONLY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9758581Z       "title": "PROJECT-INDEX W1 (F-040, perri filing claude-spt docs/SPT-CORE-FINDINGS.md @d775b38; correctness-critical opener — the 2026-07-15 message-bodies incident root): a core IDENTITY-ONLY resolution — session -> endpoint|null — that touches NO list/registry/project/git/network path, and `spt whoami` DE-ALIASED from cmd_endpoint_list (cli.rs ~6609 aliases the full list = 100+ git children under hook deadlines). endpoint-info is DISQUALIFIED as the carrier (runs latest_project_ref). Adapters/hooks get a bounded-time identity verb; the harness-hosted adapter fallback stays deadline-vulnerable until this ships. Gate: impl — the resolver + whoami de-alias; unit — resolver returns endpoint|null with zero project derivation (assert no git spawn seam); int — whoami on a multi-perch home answers fast-path without touching context branches; doc — harness-contract api.md names the identity verb + its no-derivation bound. Kin REQ-PROJECT-INDEX-READER-CUTOVER (list-shaped verbs), REQ-WHOAMI-1, docs/PROJECT-INDEX-TRIAGE.md.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9761434Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9761619Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9761777Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9761943Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9762092Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9762244Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9762388Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9762545Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9762759Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9762948Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9763109Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9763304Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9763551Z               "line": 642
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9763715Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9763866Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9764005Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9764153Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9764311Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9764486Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9764658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9764830Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765039Z               "line": 12598
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765203Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765484Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765627Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765782Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9765974Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9766188Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9766378Z               "path": "crates/spt/tests/whoami_identity_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9766617Z               "line": 14
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9766779Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9766922Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9767060Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9767204Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9767360Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9767538Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9767699Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9767872Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9768089Z               "line": 29341
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9768254Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9768402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9768578Z               "path": "crates/spt/src/roster.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9768798Z               "line": 797
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769104Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769245Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769389Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769537Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769675Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769817Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9769980Z       "id": "REQ-WORKER-LIST-VISIBILITY",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9771888Z       "title": "V-1 (WORKER-TRUTH triage, operator rider): worker perches leave the DEFAULT `spt endpoint list` view — they are process-local machinery, not subnet citizens; leaked-or-live worker rows rendering as permanent OFFLINE endpoints is the operator-visible symptom root. A dedicated flag (--workers) reveals them (one command + flag per the --all/--detail precedent, NOT a separate list-working command — sister divergence deliberate). Applies to the human render, --json (additive default-absent filter), and the registry/projection legs; verify-and-stop any worker gossip into the subnet registry as peer endpoints.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9773508Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9773688Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9773840Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9774041Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9774189Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9774350Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9774518Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9774698Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9774861Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9775008Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9775171Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9775347Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9775510Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9775676Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9775890Z               "line": 6409
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9776058Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9776205Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9776366Z               "path": "crates/spt/src/cli.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9776581Z               "line": 6424
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9776744Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9776887Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9777029Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9777172Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9777330Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9777563Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9777736Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9777930Z               "path": "crates/spt/tests/worker_visibility_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9778168Z               "line": 18
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9778332Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9778478Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9778668Z               "path": "crates/spt/tests/worker_visibility_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9778923Z               "line": 61
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9779195Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9779344Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9779490Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9779635Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9779796Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9779973Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9780139Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9780278Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9780417Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9780555Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9780720Z       "id": "REQ-WORKER-MINTED-NAME",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9782429Z       "title": "N-1 (WORKER-TRUTH triage, operator rider): worker perch identity is CORE-MINTED and parent-derived — `{parent}-w{N}` with a per-parent counter at registration (sister shape: claude_skill_owl hook_subagent_start.rs) — never the adapter-presented agent id (CC Task ids render as random-named rows). worker-start mints + echoes the id (WORKER_STARTED:{parent}-w{N}); the adapter's agent_id/agent_type ride the record as correlation METADATA, not identity. Verb-shape contract change — freeze with W-2 in ONE coordination with perri.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9783842Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784016Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784164Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784319Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784467Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784615Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784754Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9784906Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9785130Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9785310Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9785473Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9785664Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9785902Z               "line": 554
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786065Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786212Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786357Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786498Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786657Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786831Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9786993Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9787174Z               "path": "crates/spt-store/src/worker_seq.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9787408Z               "line": 31
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9787570Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9787714Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9787890Z               "path": "crates/spt-store/src/worker_seq.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9788109Z               "line": 39
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9788272Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9788419Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9788596Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9788887Z               "line": 45
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9789133Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9789281Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9789421Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9789569Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9789722Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9789894Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9790055Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9790243Z               "path": "crates/spt/tests/worker_lifecycle_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9790481Z               "line": 25
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9790643Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9790790Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9790981Z               "path": "crates/spt/tests/worker_lifecycle_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9791211Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9791376Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9791525Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9791672Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9791817Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9791972Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9792148Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9792364Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9792537Z               "path": "crates/spt-store/src/info.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9792762Z               "line": 1235
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9792937Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9796834Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9797067Z               "path": "crates/spt-store/src/worker_seq.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9797316Z               "line": 74
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9797491Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9797645Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9797834Z               "path": "crates/spt-store/src/worker_seq.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9798068Z               "line": 88
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9798241Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9798392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9798584Z               "path": "crates/spt-store/src/worker_seq.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9798813Z               "line": 111
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9799079Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9799228Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9799413Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9799712Z               "line": 1374
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9799888Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9800048Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9800226Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9800449Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9800610Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9800760Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9800902Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9801046Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9801188Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9801331Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9801497Z       "id": "REQ-WORKER-PICKER-EXCLUDED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9802844Z       "title": "V-2 (WORKER-TRUTH triage, operator rider): non-drivable endpoint classes never render as picker rows — a worker perch cannot be driven, instantiated, or controlled; offering it is a lie the picker then fails on. Filter endpoint_type worker (and the psyche class if it ever surfaces — same non-drivable family) at every picker source leg, extend-not-multiply for future non-drivable classes.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804012Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804193Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804351Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804503Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804652Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804809Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9804971Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9805155Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9805321Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9805472Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9805631Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9805816Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9805978Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9806164Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9806397Z               "line": 204
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9806560Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9806707Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9806889Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9807162Z               "line": 336
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9807328Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9807477Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9807618Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9807767Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9807932Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9808118Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9808285Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9808428Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9808590Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9808767Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9808928Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9809195Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9809411Z               "line": 707
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9809577Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9809721Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9809901Z               "path": "crates/spt/src/picker/data.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9810130Z               "line": 717
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9810295Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9810438Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9810584Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9810724Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9810927Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9811071Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9811233Z       "id": "REQ-WORKER-REAP",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9813919Z       "title": "W-3 (WORKER-TRUTH triage): worker records must not persist indefinitely past their useful life — 6 dead-pid workers leaked OFFLINE on flynn (kill-paths where SubagentStop never fires: parent killed, abort, timeout). The stored rec.pid is the ephemeral worker-start hook process (dead by design — the REQ-HAZARD-DEAD-REC-PID class; NEVER an alive-gate signal). Honest reap signals: (a) parent-session lifecycle — reap the parent's soft-stopped + orphaned workers at parent session-end/boundary and on parent-death detection (a worker cannot outlive its parent's live session); (b) a generous TTL floor since `created` as belt-and-braces. Soft-stop preservation semantics (REQ-HAZARD-SOFT-CLEANUP: results drain before reap) stay honored — reap after drain-or-expiry, never mid-flight hard-delete (cascade-wipe guard rationale stands). Sister shape: claude_skill_owl doctor D-21 orphan-worker GC.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9816181Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9816351Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9816505Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9816652Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9816800Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9816948Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9817101Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9817262Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9817444Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9817620Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9817778Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9817940Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9818126Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9818284Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9818469Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9818697Z               "line": 276
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9818921Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9819155Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9819341Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9819575Z               "line": 59
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9819746Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9819889Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9820070Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9820300Z               "line": 87
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9820461Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9820610Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9820784Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821012Z               "line": 398
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821177Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821322Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821473Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821617Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821773Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9821951Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9822112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9822294Z               "path": "crates/spt-daemon/src/livehost.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9822580Z               "line": 1874
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9822751Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9822905Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9823047Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9823196Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9823357Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9823535Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9823694Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9823875Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9824102Z               "line": 163
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9824269Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9824417Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9824602Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9824832Z               "line": 173
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9824998Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9825146Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9825322Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9825552Z               "line": 191
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9825715Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9825866Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9826101Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9826332Z               "line": 206
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9826497Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9826640Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9826821Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9827046Z               "line": 225
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9827208Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9827351Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9827541Z               "path": "crates/spt-store/src/worker_reap.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9827761Z               "line": 241
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9827923Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9828071Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9828253Z               "path": "crates/spt/src/api/reporting.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9828471Z               "line": 1941
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9828634Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9828781Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9828926Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9829156Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9829296Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9829438Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9829673Z       "id": "REQ-WORKER-SID-SYMMETRIC-AUTH",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9832309Z       "title": "W-2 (WORKER-TRUTH triage, operator-ruled 2026-07-06): worker verbs go sid-symmetric with every sibling id-scoped verb — worker-start mints NO token and worker-stop takes NONE (token custody is undue adapter burden, ruling via perri). Registration STORES the sid it authenticated (the parent's sid at start; today cmd_worker_start hardcodes session_id=\"\" — worker.rs:44 — so a sid-authed stop compares against empty and refuses 100%). Stop accepts the parent's CURRENT sid OR the stored registration sid (a /clear between start and stop rotates the parent's sid; either rotation endpoint is honest custody — the REQ-PSYCHE-SID-CUSTODY rotation reasoning). Under the ruling the field adapter's existing emission (worker-stop <id> --session-id <parent sid>) becomes contract-correct as-is. Publish the frozen verb shape to the docs-site with the landing wave (perri blind-builds from published docs).",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9834529Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9834706Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9834852Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835002Z         "unit",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835153Z         "int"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835302Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835445Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835602Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835769Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9835946Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9836112Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9836299Z               "path": "docs-site/src/harness-contract/api.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9836542Z               "line": 575
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9836703Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9836849Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9836992Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9837142Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9837301Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9837481Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9837701Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9837879Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9838092Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9838259Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9838402Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9838569Z               "path": "crates/spt/src/api/mod.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9838789Z               "line": 1042
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9839051Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9839199Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9839375Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9839593Z               "line": 46
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9839755Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9839899Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9840041Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9840180Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9840336Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9840509Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9840670Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9840866Z               "path": "crates/spt/tests/worker_lifecycle_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9841157Z               "line": 26
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9841329Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9841477Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9841663Z               "path": "crates/spt/tests/worker_lifecycle_e2e.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9841895Z               "line": 194
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9842062Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9842212Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9842351Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9842503Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9842666Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9842842Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9843004Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9843170Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9843386Z               "line": 543
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9843552Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9843705Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9843866Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9844081Z               "line": 553
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9844245Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9844391Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9844631Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9844843Z               "line": 576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845009Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845151Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845313Z               "path": "crates/spt/src/api/auth.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845523Z               "line": 594
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845685Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845828Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9845996Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9846210Z               "line": 213
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9846371Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9846516Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9846686Z               "path": "crates/spt/src/api/worker.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9846897Z               "line": 245
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9847073Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9847221Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9847424Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9847566Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9847707Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9847852Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9848008Z       "id": "REQ-XFER-RETIRED",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9854031Z       "title": "XFER IS RETIRED FROM THE CONTROL-SURFACE VOCABULARY AND ITS TRANSFER MACHINERY LEAVES THE TREE WITH IT (ADR-0060, releases#272/#246, close rider on the WEBSERVE milestone). MEASURED BEFORE THE RULING (main 8a21a3b0): the transfer INITIATORS `fetch_file` and `push_file` have ZERO production callers -- no verb opens the Xfer stream -- while the SERVE side was live: the daemon gated the inbound Xfer stream on `XFER`, knock codes were mintable for it, rules could name it; zero grant rows named it on the measuring node. The pull-model attachment (ADR-0058) supersedes the machinery, so the Xfer stream family, its serve gate, its tests and the surface row leave TOGETHER -- a row left behind would gate traffic that no longer exists, which is a promise the code can no longer keep. RETIRED, NOT RENAMED: repurposing the id to `HTTP` was rejected because an existing id changes meaning under every rule that already names it, and `WEB` is minted instead (REQ-WEB-ACCESS-SURFACE). A STORED RULE THAT NAMES A RETIRED SURFACE IS REPORTED AT LOAD -- `ACCESS_SURFACE_RETIRED` naming the id -- AND NEVER SILENTLY DROPPED: that report IS the fleet census telling us whether anyone ever used the surface, and dropping the row would destroy the only evidence there will ever be. The retired id stays LEGAL in a rule exactly as an unminted id is legal (the ratified-open vocabulary): it governs nothing, and saying so out loud is the difference between a vocabulary that shrank and a rule that vanished under its author. THE PROGRESS RECORD IS NOT THE STREAM FAMILY, stated because the module names collide: `spt_store::xfer`'s `XferProgress` and `transfers_dir` are read by the shell-channel file ops and by the CLI, so they survive the retirement; what leaves is the WAN transfer family, its wire record, its serve gate and its access surface. THE ATTRIBUTABILITY NOTE MOVES: the surface table's `XFER is the expected next to grow a sender stamp` note goes to `WEB`, so no requirement title and no doc line is left pointing at a surface that no longer exists. Gate: doc -- the access-surface docs stating XFER is retired and what a stored rule naming it now does; impl -- the row out of the surface TABLE, the retired list beside it, the load-time report, and the deletion of the Xfer stream family with its serve gate and wire record; unit -- the vocabulary no longer offers XFER while a rule naming it stays legal and governs nothing, a stored rule naming it REPORTS at load rather than disappearing, and the stream-family census no longer carries it.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9860142Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9860319Z         "doc",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9860471Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9860625Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9860775Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9860919Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9861085Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9861248Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9861438Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9861658Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9861848Z               "path": "docs-site/src/serving/overview.md",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9862081Z               "line": 214
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9862249Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9862396Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9862540Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9862687Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9862846Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9863024Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9863186Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9863365Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9863586Z               "line": 236
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9863751Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9863900Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9864076Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9864295Z               "line": 249
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9864515Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9864667Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9864844Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9865060Z               "line": 262
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9865225Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9865375Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9865544Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9865765Z               "line": 1001
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9865939Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9866092Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9866261Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9866481Z               "line": 1576
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9866653Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9866801Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9866943Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9867091Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9867340Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9867525Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9867688Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9867834Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9867993Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9868227Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9868392Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9868577Z               "path": "crates/spt-daemon/src/dispatch.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9868804Z               "line": 2279
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9869057Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9869210Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9869386Z               "path": "crates/spt-store/src/access.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9869601Z               "line": 3100
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9869767Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9869916Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9870058Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9870207Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9870344Z     },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9870488Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9870654Z       "id": "REQ-XTASK-SPT-BIN-TARGET-DIR",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9872999Z       "title": "#13 (F026 micro, tooling): xtask `spt_bin()` (crates/xtask/src/main.rs) BUILDS `spt` via cargo (which honors CARGO_TARGET_DIR) but returns a HARDCODED `<root>/target/debug/spt` path — so under a redirected target dir (CI / isolated-gate rigs that set CARGO_TARGET_DIR to a throwaway) the binary lands in `$CARGO_TARGET_DIR/debug` while xtask looks in `<root>/target/debug` -> NotFound -> `xtask check` (docs-drift gate) spuriously fails. Workaround was running `xtask check` with CARGO_TARGET_DIR unset. FIX: a pure `target_debug_dir(root, CARGO_TARGET_DIR)` seam mirroring cargo's resolution — absolute override as-is, relative resolved against `root` (the dir cargo is invoked in), default `<root>/target` — join `debug`; `spt_bin` returns from it. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md.",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9874956Z       "requiredStages": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9875132Z         "impl",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9875285Z         "unit"
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9875432Z       ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9875576Z       "stages": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9875733Z         "doc": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9875895Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9876081Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9876244Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9876395Z         "impl": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9876604Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9876787Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9876951Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9877126Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9877347Z               "line": 243
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9877508Z             },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9877656Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9877823Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9878033Z               "line": 269
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9878196Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9878347Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9878491Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9878633Z         "int": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9878792Z           "complete": false,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9879061Z           "evidence": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9879237Z         },
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9879388Z         "unit": {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9879603Z           "complete": true,
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9879784Z           "evidence": [
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9879955Z             {
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9880138Z               "path": "crates/xtask/src/main.rs",
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9880360Z               "line": 2647
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9880527Z             }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9880680Z           ]
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9880823Z         }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9880961Z       }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9881110Z     }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9881257Z   ],
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9884987Z   "findings": []
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9885086Z }
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9913143Z ##[group]Run ./traceable-reqs lint || true
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9913281Z [36;1m./traceable-reqs lint || true[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9926090Z shell: /usr/bin/bash -e {0}
traceability	UNKNOWN STEP	2026-09-09T04:19:35.9926177Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0690011Z Requirement quality findings (1386); 892 requirements queued for agent review:
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0690883Z   [must] requirement_quality REQ-ACCESS-RETIRED-VERB-REFUSAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0691880Z   [must] requirement_quality REQ-ACCESS-RETIRED-VERB-REFUSAL criterion=length — title is 459 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0692702Z   [must] requirement_quality REQ-ACCESS-VERDICT-REASON criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0693322Z   [must] requirement_quality REQ-ACCESS-VERDICT-REASON criterion=length — title is 391 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0694515Z   [must] requirement_quality REQ-ACL-ACCESS-REFRESH-ER-ONLY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0695166Z   [must] requirement_quality REQ-ACL-ACCESS-REFRESH-ER-ONLY criterion=length — title is 195 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0695990Z   [must] requirement_quality REQ-ACL-ACCESS-REFRESH-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0696611Z   [must] requirement_quality REQ-ACL-ACCESS-REFRESH-VERB criterion=length — title is 165 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0697432Z   [must] requirement_quality REQ-ACL-DISCOVER-DEFAULT-ON criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0698052Z   [must] requirement_quality REQ-ACL-DISCOVER-DEFAULT-ON criterion=length — title is 489 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0698834Z   [must] requirement_quality REQ-ACL-DISCOVER-GATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0699515Z   [must] requirement_quality REQ-ACL-DISCOVER-GATE criterion=length — title is 215 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0700432Z   [must] requirement_quality REQ-ACL-ER-DISCOVER-CONJUNCTION-NOTICE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0701143Z   [must] requirement_quality REQ-ACL-ER-DISCOVER-CONJUNCTION-NOTICE criterion=length — title is 610 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0701825Z   [must] requirement_quality REQ-ACL-FAIL-CLOSED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0702287Z   [must] requirement_quality REQ-ACL-FAIL-CLOSED criterion=length — title is 401 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0703047Z   [must] requirement_quality REQ-ACL-FORK-WITHOUT-DISCOVER-CONSEQUENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0703714Z   [must] requirement_quality REQ-ACL-FORK-WITHOUT-DISCOVER-CONSEQUENCE criterion=length — title is 511 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0704363Z   [must] requirement_quality REQ-ACL-GRANT-NODES-POLICY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0704864Z   [must] requirement_quality REQ-ACL-GRANT-NODES-POLICY criterion=length — title is 263 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0705507Z   [must] requirement_quality REQ-ACL-INTRA-NODE-SELF criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0706131Z   [must] requirement_quality REQ-ACL-INTRA-NODE-SELF criterion=length — title is 676 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0706828Z   [must] requirement_quality REQ-ACL-LOCAL-ORIGIN-TIERS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0707319Z   [must] requirement_quality REQ-ACL-LOCAL-ORIGIN-TIERS criterion=length — title is 906 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0708445Z   [must] requirement_quality REQ-ACL-LOCAL-SUBJECT-ONE-SHAPE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0709056Z   [must] requirement_quality REQ-ACL-LOCAL-SUBJECT-ONE-SHAPE criterion=length — title is 590 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0709695Z   [must] requirement_quality REQ-ACL-LOCKED-POSTURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0710182Z   [must] requirement_quality REQ-ACL-LOCKED-POSTURE criterion=length — title is 628 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0710960Z   [must] requirement_quality REQ-ACL-MODE-ADVISORY-GOSSIP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0711490Z   [must] requirement_quality REQ-ACL-MODE-ADVISORY-GOSSIP criterion=length — title is 134 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0712190Z   [must] requirement_quality REQ-ACL-MUTATION-HUSK-REFUSAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0712700Z   [must] requirement_quality REQ-ACL-MUTATION-HUSK-REFUSAL criterion=length — title is 493 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0713342Z   [must] requirement_quality REQ-ACL-NODE-MODE-SET criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0713794Z   [must] requirement_quality REQ-ACL-NODE-MODE-SET criterion=length — title is 163 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0714399Z   [must] requirement_quality REQ-ACL-NODE-VIEW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0714842Z   [must] requirement_quality REQ-ACL-NODE-VIEW criterion=length — title is 124 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0715486Z   [must] requirement_quality REQ-ACL-ORIGIN-QUALIFIER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0715974Z   [must] requirement_quality REQ-ACL-ORIGIN-QUALIFIER criterion=length — title is 355 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0716706Z   [must] requirement_quality REQ-ACL-POSITIONAL-ALLOW-HONORS-FLAGS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0717283Z   [must] requirement_quality REQ-ACL-POSITIONAL-ALLOW-HONORS-FLAGS criterion=length — title is 666 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0718002Z   [must] requirement_quality REQ-ACL-PRECISE-ALLOW-WRITE-CONTRACT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0718578Z   [must] requirement_quality REQ-ACL-PRECISE-ALLOW-WRITE-CONTRACT criterion=length — title is 854 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0719282Z   [must] requirement_quality REQ-ACL-RC-VIEW-SPLIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0719754Z   [must] requirement_quality REQ-ACL-RC-VIEW-SPLIT criterion=length — title is 164 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0720383Z   [must] requirement_quality REQ-ACL-RULE-MUTATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0720860Z   [must] requirement_quality REQ-ACL-RULE-MUTATION criterion=length — title is 346 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0721487Z   [must] requirement_quality REQ-ACL-SUBJECT-CHAIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0721967Z   [must] requirement_quality REQ-ACL-SUBJECT-CHAIN criterion=length — title is 511 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0722750Z   [must] requirement_quality REQ-ACL-SUBNET-MODE-CAPTURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0723260Z   [must] requirement_quality REQ-ACL-SUBNET-MODE-CAPTURE criterion=length — title is 193 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0723969Z   [must] requirement_quality REQ-ACL-SURFACE-ATTRIBUTABILITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0724673Z   [must] requirement_quality REQ-ACL-SURFACE-ATTRIBUTABILITY criterion=length — title is 236 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0725345Z   [must] requirement_quality REQ-ACL-SURFACE-DESCRIPTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0725856Z   [must] requirement_quality REQ-ACL-SURFACE-DESCRIPTION criterion=length — title is 319 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0726519Z   [must] requirement_quality REQ-ACL-SURFACE-MODE-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0727113Z   [must] requirement_quality REQ-ACL-SURFACE-MODE-VERB criterion=length — title is 553 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0727595Z   [must] requirement_quality REQ-ACL-SURFACE-VOCAB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0727895Z   [must] requirement_quality REQ-ACL-SURFACE-VOCAB criterion=length — title is 255 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0728295Z   [must] requirement_quality REQ-ACL-VIEW-DRILLDOWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0728696Z   [must] requirement_quality REQ-ACL-VIEW-DRILLDOWN criterion=length — title is 161 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0729389Z   [must] requirement_quality REQ-ACL-VIEW-ROSTER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0729866Z   [must] requirement_quality REQ-ACL-VIEW-ROSTER criterion=length — title is 209 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0730343Z   [must] requirement_quality REQ-ACTIVITY-INFO-PULL criterion=length — title is 45 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0730982Z   [must] requirement_quality REQ-ACTIVITY-LINK-PUSH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0731443Z   [must] requirement_quality REQ-ACTIVITY-LINK-PUSH criterion=length — title is 169 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0731910Z   [must] requirement_quality REQ-ACTIVITY-LIST-JSON criterion=length — title is 46 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0732585Z   [must] requirement_quality REQ-ADAPTER-ADD-SURFACE-ERRORS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0733099Z   [must] requirement_quality REQ-ADAPTER-ADD-SURFACE-ERRORS criterion=length — title is 77 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0733762Z   [must] requirement_quality REQ-ADAPTER-FLOOR-ENFORCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0734255Z   [must] requirement_quality REQ-ADAPTER-FLOOR-ENFORCE criterion=length — title is 419 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0734952Z   [must] requirement_quality REQ-ADAPTER-FLOOR-VS-STAGED-CORE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0735505Z   [must] requirement_quality REQ-ADAPTER-FLOOR-VS-STAGED-CORE criterion=length — title is 1130 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0736149Z   [must] requirement_quality REQ-ADAPTER-GH-TRANSPORT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0736644Z   [must] requirement_quality REQ-ADAPTER-GH-TRANSPORT criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0737126Z   [must] requirement_quality REQ-ADAPTER-LIVE-UPDATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0737516Z   [must] requirement_quality REQ-ADAPTER-LIVE-UPDATE criterion=length — title is 168 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0737836Z   [must] requirement_quality REQ-ADAPTER-MULTIPLATFORM-SPT criterion=length — title is 123 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0738145Z   [must] requirement_quality REQ-ADAPTER-PROOF-DIR-OVERRIDE criterion=length — title is 76 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0738675Z   [must] requirement_quality REQ-ADAPTER-TEMPLATE-KEY-VALIDATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0739085Z   [must] requirement_quality REQ-ADAPTER-TEMPLATE-KEY-VALIDATION criterion=length — title is 110 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0739503Z   [must] requirement_quality REQ-ADAPTER-TRANSLATE-PROOF criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0739815Z   [must] requirement_quality REQ-ADAPTER-TRANSLATE-PROOF criterion=length — title is 182 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0740292Z   [must] requirement_quality REQ-ADAPTER-UNRESOLVED-HINT-FORM criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0740622Z   [must] requirement_quality REQ-ADAPTER-UNRESOLVED-HINT-FORM criterion=length — title is 116 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0741022Z   [must] requirement_quality REQ-ADAPTER-UPDATE-INPLACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0741332Z   [must] requirement_quality REQ-ADAPTER-UPDATE-INPLACE criterion=length — title is 82 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0741628Z   [must] requirement_quality REQ-ADAPTER-UPDATE-MESSAGE criterion=length — title is 64 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0741924Z   [must] requirement_quality REQ-ADAPTER-UPDATE-POST criterion=length — title is 124 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0742323Z   [must] requirement_quality REQ-ADAPTER-VERSION-CMD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0742621Z   [must] requirement_quality REQ-ADAPTER-VERSION-CMD criterion=length — title is 59 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0742969Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0743312Z   [must] requirement_quality REQ-API-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0743564Z   [must] requirement_quality REQ-API-4 criterion=length — title is 67 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0743851Z   [must] requirement_quality REQ-API-ENDPOINT-INFO criterion=length — title is 138 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0744241Z   [must] requirement_quality REQ-ATTACH-AWAY-ALERTS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0744542Z   [must] requirement_quality REQ-ATTACH-AWAY-ALERTS criterion=length — title is 372 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0744866Z   [must] requirement_quality REQ-ATTACH-IDEMPOTENT-REPLAY criterion=length — title is 257 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0745244Z   [must] requirement_quality REQ-ATTACH-LINK-PUSH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0745530Z   [must] requirement_quality REQ-ATTACH-LINK-PUSH criterion=length — title is 364 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0745935Z   [must] requirement_quality REQ-ATTACH-RESIZE-REPAINT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0746236Z   [must] requirement_quality REQ-ATTACH-RESIZE-REPAINT criterion=length — title is 328 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0746676Z   [must] requirement_quality REQ-ATTACH-SEED-REQUEST-DOUBLE-SERVE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0747019Z   [must] requirement_quality REQ-ATTACH-SEED-REQUEST-DOUBLE-SERVE criterion=length — title is 310 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0747471Z   [must] requirement_quality REQ-BENCH-STEP-LEDGER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0747766Z   [must] requirement_quality REQ-BENCH-STEP-LEDGER criterion=length — title is 336 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0748161Z   [must] requirement_quality REQ-BIND-HONEST-SELF-STAMP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0748592Z   [must] requirement_quality REQ-BIND-HONEST-SELF-STAMP criterion=length — title is 182 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0749100Z   [must] requirement_quality REQ-BIND-PSYCHE-CUSTODY-SQUAT-GUARD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0749449Z   [must] requirement_quality REQ-BIND-PSYCHE-CUSTODY-SQUAT-GUARD criterion=length — title is 134 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0749880Z   [must] requirement_quality REQ-BOUNDARY-ROTATION-CREDENTIAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0750258Z   [must] requirement_quality REQ-BOUNDARY-ROTATION-CREDENTIAL criterion=length — title is 53 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0750542Z   [must] requirement_quality REQ-BRAIN-HASH-ONCE criterion=length — title is 127 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0750967Z   [must] requirement_quality REQ-BRAIN-READY-WINDOW-OBSERVABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0751300Z   [must] requirement_quality REQ-BRAIN-READY-WINDOW-OBSERVABLE criterion=length — title is 363 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0751730Z   [must] requirement_quality REQ-BRAIN-RESUME-NO-CONN-DEADLOCK criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0752054Z   [must] requirement_quality REQ-BRAIN-RESUME-NO-CONN-DEADLOCK criterion=length — title is 477 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0752489Z   [must] requirement_quality REQ-BRAIN-RESUME-NO-CONTROL-STEAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0752808Z   [must] requirement_quality REQ-BRAIN-RESUME-NO-CONTROL-STEAL criterion=length — title is 498 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0753237Z   [must] requirement_quality REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0753585Z   [must] requirement_quality REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE criterion=length — title is 282 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0754011Z   [must] requirement_quality REQ-BROKER-ATTACH-JOURNAL-RESILIENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0754349Z   [must] requirement_quality REQ-BROKER-ATTACH-JOURNAL-RESILIENT criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0754796Z   [must] requirement_quality REQ-BROKER-EXIT-EVERY-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0755111Z   [must] requirement_quality REQ-BROKER-EXIT-EVERY-REAP criterion=length — title is 381 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0755521Z   [must] requirement_quality REQ-BROKER-OUTPUT-BEFORE-EXIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0755842Z   [must] requirement_quality REQ-BROKER-OUTPUT-BEFORE-EXIT criterion=length — title is 133 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0756190Z   [must] requirement_quality REQ-BROKER-OUTPUT-BEFORE-EXIT criterion=tbd-todo — title contains placeholder marker 'XXX'
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0756572Z   [must] requirement_quality REQ-BROKER-SCREEN-GRID criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0756863Z   [must] requirement_quality REQ-BROKER-SCREEN-GRID criterion=length — title is 126 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0757288Z   [must] requirement_quality REQ-BROKER-STOP-DENY-NAMES-BLAST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0757612Z   [must] requirement_quality REQ-BROKER-STOP-DENY-NAMES-BLAST criterion=length — title is 364 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0758026Z   [must] requirement_quality REQ-BROKER-STOP-ENDPOINT-DENY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0758439Z   [must] requirement_quality REQ-BROKER-STOP-ENDPOINT-DENY criterion=length — title is 485 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0758841Z   [must] requirement_quality REQ-BUILD-UNIQUE-BIN-NAMES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0759213Z   [must] requirement_quality REQ-BUILD-UNIQUE-BIN-NAMES criterion=length — title is 124 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0759608Z   [must] requirement_quality REQ-CARRIER-CLAIM-EXCLUSIVE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0759975Z   [must] requirement_quality REQ-CARRIER-CLAIM-EXCLUSIVE criterion=length — title is 218 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0760357Z   [must] requirement_quality REQ-CI-DOCS-ONLY-THIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0760685Z   [must] requirement_quality REQ-CI-DOCS-ONLY-THIN criterion=length — title is 176 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0761093Z   [must] requirement_quality REQ-CI-FREE-SPACE-PREFLIGHT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0761398Z   [must] requirement_quality REQ-CI-FREE-SPACE-PREFLIGHT criterion=length — title is 653 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0761789Z   [must] requirement_quality REQ-CI-LINK-HEALTH-PROBE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0762094Z   [must] requirement_quality REQ-CI-LINK-HEALTH-PROBE criterion=length — title is 444 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0762504Z   [must] requirement_quality REQ-CI-LOAD-BEARING-PATCH-PIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0762818Z   [must] requirement_quality REQ-CI-LOAD-BEARING-PATCH-PIN criterion=length — title is 469 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0763219Z   [must] requirement_quality REQ-CI-LOCAL-GATE-DISPOSAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0763528Z   [must] requirement_quality REQ-CI-LOCAL-GATE-DISPOSAL criterion=length — title is 124 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0763931Z   [must] requirement_quality REQ-CI-NOTIFY-CANCELLED-CLASS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0764241Z   [must] requirement_quality REQ-CI-NOTIFY-CANCELLED-CLASS criterion=length — title is 269 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0764689Z   [must] requirement_quality REQ-CI-POSTJOB-DAEMON-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0764990Z   [must] requirement_quality REQ-CI-POSTJOB-DAEMON-REAP criterion=length — title is 461 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0765405Z   [must] requirement_quality REQ-CI-PRERELINK-EXE-LOCK-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0765734Z   [must] requirement_quality REQ-CI-PRERELINK-EXE-LOCK-REAP criterion=length — title is 436 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0766142Z   [must] requirement_quality REQ-CI-TOOLCHAIN-VERSION-PRINT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0766464Z   [must] requirement_quality REQ-CI-TOOLCHAIN-VERSION-PRINT criterion=length — title is 395 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0766866Z   [must] requirement_quality REQ-CI-WINDOWS-PHASE-A-BOUND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0767223Z   [must] requirement_quality REQ-CI-WINDOWS-PHASE-A-BOUND criterion=length — title is 466 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0767471Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 97 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0767709Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0768042Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0768281Z   [must] requirement_quality REQ-CLI-4 criterion=length — title is 89 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0768596Z   [must] requirement_quality REQ-CLI-BROKEN-PIPE-TOLERANT criterion=length — title is 78 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0769038Z   [must] requirement_quality REQ-CLI-HELP-MARKDOWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0769324Z   [must] requirement_quality REQ-CLI-HELP-MARKDOWN criterion=length — title is 156 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0769582Z   [must] requirement_quality REQ-CLI-JSON criterion=length — title is 95 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0769988Z   [must] requirement_quality REQ-CLI-MONIC-TRIGGER-SECTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0770297Z   [must] requirement_quality REQ-CLI-MONIC-TRIGGER-SECTION criterion=length — title is 399 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0770699Z   [must] requirement_quality REQ-CLI-NODE-VERB-PRIMARY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0771000Z   [must] requirement_quality REQ-CLI-NODE-VERB-PRIMARY criterion=length — title is 540 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0771387Z   [must] requirement_quality REQ-CLI-OUTPUT-MARKDOWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0771682Z   [must] requirement_quality REQ-CLI-OUTPUT-MARKDOWN criterion=length — title is 199 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0772073Z   [must] requirement_quality REQ-CLI-STACK-HEADROOM criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0772368Z   [must] requirement_quality REQ-CLI-STACK-HEADROOM criterion=length — title is 384 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0772783Z   [must] requirement_quality REQ-CLI-SURFACE-SECTION-SITED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0773098Z   [must] requirement_quality REQ-CLI-SURFACE-SECTION-SITED criterion=length — title is 368 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0773479Z   [must] requirement_quality REQ-CLI-WIN-VT-ENABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0773760Z   [must] requirement_quality REQ-CLI-WIN-VT-ENABLE criterion=length — title is 110 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0774264Z   [must] requirement_quality REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0774601Z   [must] requirement_quality REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS criterion=length — title is 147 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0775006Z   [must] requirement_quality REQ-CONN-POISON-ATTRIBUTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0775316Z   [must] requirement_quality REQ-CONN-POISON-ATTRIBUTION criterion=length — title is 227 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0775712Z   [must] requirement_quality REQ-CONN-POISON-DIAL-SCOPE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0776027Z   [must] requirement_quality REQ-CONN-POISON-DIAL-SCOPE criterion=length — title is 245 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0776289Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0776607Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0776859Z   [must] requirement_quality REQ-CONSENT-3 criterion=length — title is 82 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0777174Z   [must] requirement_quality REQ-CONTROL-STAMP-CONVERGENCE criterion=length — title is 82 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0777688Z   [must] requirement_quality REQ-CONTROLLER-LEASE-IDENTITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0778003Z   [must] requirement_quality REQ-CONTROLLER-LEASE-IDENTITY criterion=length — title is 374 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0778413Z   [must] requirement_quality REQ-CONTROLLER-LIVENESS-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0778723Z   [must] requirement_quality REQ-CONTROLLER-LIVENESS-REAP criterion=length — title is 370 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0779310Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0779699Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0779966Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0780300Z   [must] requirement_quality REQ-CRC-SWAP-OLD-DISPLACE criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0780762Z   [must] requirement_quality REQ-CREATE-BIND-REST-ACTIVE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0781105Z   [must] requirement_quality REQ-CREATE-BIND-REST-ACTIVE criterion=length — title is 249 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0781487Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0781819Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0782275Z   [must] requirement_quality REQ-DAEMON-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0782581Z   [must] requirement_quality REQ-DAEMON-6 criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0783028Z   [must] requirement_quality REQ-DAEMON-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0783362Z   [must] requirement_quality REQ-DAEMON-7 criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0783677Z   [must] requirement_quality REQ-DAEMON-8 criterion=length — title is 44 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0784126Z   [must] requirement_quality REQ-DAEMON-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0784445Z   [must] requirement_quality REQ-DAEMON-9 criterion=length — title is 114 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0785099Z   [must] requirement_quality REQ-DAEMON-BITS-AMBIGUITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0785476Z   [must] requirement_quality REQ-DAEMON-BITS-AMBIGUITY criterion=length — title is 905 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0785957Z   [must] requirement_quality REQ-DAEMON-REFRESH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0786310Z   [must] requirement_quality REQ-DAEMON-REFRESH criterion=length — title is 147 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0786849Z   [must] requirement_quality REQ-DAEMON-RESTART-SELF-INTERRUPTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0787282Z   [must] requirement_quality REQ-DAEMON-RESTART-SELF-INTERRUPTION criterion=length — title is 312 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0787671Z   [must] requirement_quality REQ-DAEMON-SERVICE-INSTALL criterion=length — title is 88 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0788272Z   [must] requirement_quality REQ-DAEMON-STATUS-JSON-TRUTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0805130Z   [must] requirement_quality REQ-DAEMON-STATUS-JSON-TRUTH criterion=length — title is 73 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0805537Z   [must] requirement_quality REQ-DAEMON-STDERR-PERSIST criterion=length — title is 55 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0806029Z   [must] requirement_quality REQ-DAEMON-STOP-LIVE-SESSION-WARN criterion=length — title is 28 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0806520Z   [must] requirement_quality REQ-DIAL-FAILED-ADDR-MEMORY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0806835Z   [must] requirement_quality REQ-DIAL-FAILED-ADDR-MEMORY criterion=length — title is 213 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0807249Z   [must] requirement_quality REQ-DIAL-ROUTE-LEG-ATTRIBUTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0807578Z   [must] requirement_quality REQ-DIAL-ROUTE-LEG-ATTRIBUTION criterion=length — title is 275 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0807974Z   [must] requirement_quality REQ-DIGEST-CROSS-NODE-PULL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0808278Z   [must] requirement_quality REQ-DIGEST-CROSS-NODE-PULL criterion=length — title is 127 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0808657Z   [must] requirement_quality REQ-DIGEST-CURSOR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0808924Z   [must] requirement_quality REQ-DIGEST-CURSOR criterion=length — title is 181 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0809402Z   [must] requirement_quality REQ-DIGEST-FETCHER-STRATEGY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0809716Z   [must] requirement_quality REQ-DIGEST-FETCHER-STRATEGY criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0810135Z   [must] requirement_quality REQ-DIGEST-GENERATION-SUPERSEDE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0810450Z   [must] requirement_quality REQ-DIGEST-GENERATION-SUPERSEDE criterion=length — title is 353 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0810869Z   [must] requirement_quality REQ-DIGEST-JSON-SELF-CONTAINED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0811188Z   [must] requirement_quality REQ-DIGEST-JSON-SELF-CONTAINED criterion=length — title is 404 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0811578Z   [must] requirement_quality REQ-DIGEST-PROFILE-ENV criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0811874Z   [must] requirement_quality REQ-DIGEST-PROFILE-ENV criterion=length — title is 96 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0812323Z   [must] requirement_quality REQ-DIGEST-SEAL-ON-IDLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0812615Z   [must] requirement_quality REQ-DIGEST-SEAL-ON-IDLE criterion=length — title is 166 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0813009Z   [must] requirement_quality REQ-DISK-FLOOR-PREFLIGHT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0813310Z   [must] requirement_quality REQ-DISK-FLOOR-PREFLIGHT criterion=length — title is 328 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0813688Z   [must] requirement_quality REQ-DISPATCH-CLAIM-RETRY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0813980Z   [must] requirement_quality REQ-DISPATCH-CLAIM-RETRY criterion=length — title is 117 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0814384Z   [must] requirement_quality REQ-DISPATCH-FALLBACK-CIRCUIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0814765Z   [must] requirement_quality REQ-DISPATCH-FALLBACK-CIRCUIT criterion=length — title is 160 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0815085Z   [must] requirement_quality REQ-DISPATCH-HYGIENE-TELEMETRY criterion=length — title is 126 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0815366Z   [must] requirement_quality REQ-DOC-DELIVERY-VOCAB criterion=length — title is 52 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0815778Z   [must] requirement_quality REQ-DOC-ECHO-COMMUNE-CONTRACT criterion=length — title is 60 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0816097Z   [must] requirement_quality REQ-DOC-ENDPOINT-DROP-RESOLUTION criterion=length — title is 57 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0816481Z   [must] requirement_quality REQ-DOCS-CHANGELOG-PAGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0816770Z   [must] requirement_quality REQ-DOCS-CHANGELOG-PAGE criterion=length — title is 313 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0817051Z   [must] requirement_quality REQ-DOCS-LOCAL-SERVER criterion=length — title is 181 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0817452Z   [must] requirement_quality REQ-DOCS-NO-INTERIOR-SPACE-RUNS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0817772Z   [must] requirement_quality REQ-DOCS-NO-INTERIOR-SPACE-RUNS criterion=length — title is 359 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0818175Z   [must] requirement_quality REQ-DOCS-NO-INTERNAL-CODES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0818472Z   [must] requirement_quality REQ-DOCS-NO-INTERNAL-CODES criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0818749Z   [must] requirement_quality REQ-DOCS-RELEASE-ASSET criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0819236Z   [must] requirement_quality REQ-DRIVEN-BY-OWN-NODE-NORMALIZE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0819555Z   [must] requirement_quality REQ-DRIVEN-BY-OWN-NODE-NORMALIZE criterion=length — title is 463 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0819913Z   [must] requirement_quality REQ-DSR-SINGLE-CPR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0820194Z   [must] requirement_quality REQ-DSR-SINGLE-CPR criterion=length — title is 91 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0820648Z   [must] requirement_quality REQ-ECHO-BOUNDARY-INPUT-BEFORE-ROTATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0820996Z   [must] requirement_quality REQ-ECHO-BOUNDARY-INPUT-BEFORE-ROTATION criterion=length — title is 291 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0821386Z   [must] requirement_quality REQ-ECHO-BRIEF-DIRECT-ROUTE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0821743Z   [must] requirement_quality REQ-ECHO-BRIEF-DIRECT-ROUTE criterion=length — title is 353 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0822053Z   [must] requirement_quality REQ-ECHO-DROP-DIR-RESOLVE criterion=length — title is 127 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0822439Z   [must] requirement_quality REQ-ECHO-IDLE-AGE-GATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0822735Z   [must] requirement_quality REQ-ECHO-IDLE-AGE-GATE criterion=length — title is 337 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0823141Z   [must] requirement_quality REQ-EFFECTIVE-INSTANCE-STATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0823451Z   [must] requirement_quality REQ-EFFECTIVE-INSTANCE-STATE criterion=length — title is 160 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0823800Z   [must] requirement_quality REQ-ELEVATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0824049Z   [must] requirement_quality REQ-ELEVATE-1 criterion=length — title is 121 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0824396Z   [must] requirement_quality REQ-ENDPOINT-AUTOSTART criterion=length — title is 249 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0824782Z   [must] requirement_quality REQ-ENDPOINT-CYCLE-HONEST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0825083Z   [must] requirement_quality REQ-ENDPOINT-CYCLE-HONEST criterion=length — title is 104 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0825587Z   [must] requirement_quality REQ-ENDPOINT-DROP-DIR-SURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0825902Z   [must] requirement_quality REQ-ENDPOINT-DROP-DIR-SURFACE criterion=length — title is 394 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0826347Z   [must] requirement_quality REQ-ENDPOINT-LIST-JOINED-SUBNETS-LABEL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0826695Z   [must] requirement_quality REQ-ENDPOINT-LIST-JOINED-SUBNETS-LABEL criterion=length — title is 278 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0827012Z   [must] requirement_quality REQ-ENDPOINT-LIST-MERGE-LOCAL criterion=length — title is 95 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0827421Z   [must] requirement_quality REQ-ENDPOINT-LIST-NODE-GROUPED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0827740Z   [must] requirement_quality REQ-ENDPOINT-LIST-NODE-GROUPED criterion=length — title is 237 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0828084Z   [must] requirement_quality REQ-ENDPOINT-LIST-NODE-IDENT criterion=length — title is 57 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0828507Z   [must] requirement_quality REQ-ENDPOINT-LIST-OWN-NESTED-SECTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0828846Z   [must] requirement_quality REQ-ENDPOINT-LIST-OWN-NESTED-SECTION criterion=length — title is 384 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0829309Z   [must] requirement_quality REQ-ENDPOINT-LIST-PALETTE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0829603Z   [must] requirement_quality REQ-ENDPOINT-LIST-PALETTE criterion=length — title is 106 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0829906Z   [must] requirement_quality REQ-ENDPOINT-LIST-PROJECT-COL criterion=length — title is 79 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0830226Z   [must] requirement_quality REQ-ENDPOINT-LIST-RENDER-POLISH criterion=length — title is 122 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0830531Z   [must] requirement_quality REQ-ENDPOINT-LIST-REST-FILTER criterion=length — title is 110 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0830950Z   [must] requirement_quality REQ-ENDPOINT-MESSAGE-ONLY-DISPLAY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0831269Z   [must] requirement_quality REQ-ENDPOINT-MESSAGE-ONLY-DISPLAY criterion=length — title is 243 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0831627Z   [must] requirement_quality REQ-ENDPOINT-ONLINE-TRUTH criterion=length — title is 145 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0831994Z   [must] requirement_quality REQ-ENDPOINT-PURGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0832265Z   [must] requirement_quality REQ-ENDPOINT-PURGE criterion=length — title is 220 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0832570Z   [must] requirement_quality REQ-ENDPOINT-STOP-OFFLINE criterion=length — title is 58 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0832961Z   [must] requirement_quality REQ-ENDPOINT-STOP-RESOLVES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0833261Z   [must] requirement_quality REQ-ENDPOINT-STOP-RESOLVES criterion=length — title is 262 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0833672Z   [must] requirement_quality REQ-ENDPOINT-TEARDOWN-AUTHORITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0834064Z   [must] requirement_quality REQ-ENDPOINT-TEARDOWN-AUTHORITY criterion=length — title is 539 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0834458Z   [must] requirement_quality REQ-ENDPOINT-UNBOUND-ATTACH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0834757Z   [must] requirement_quality REQ-ENDPOINT-UNBOUND-ATTACH criterion=length — title is 122 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0835284Z   [must] requirement_quality REQ-ENGINEROOM-ADMIN-BRINGUP-EMPOWERS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0835629Z   [must] requirement_quality REQ-ENGINEROOM-ADMIN-BRINGUP-EMPOWERS criterion=length — title is 391 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0836034Z   [must] requirement_quality REQ-ENSURE-DAEMON-STOP-INHIBIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0836348Z   [must] requirement_quality REQ-ENSURE-DAEMON-STOP-INHIBIT criterion=length — title is 252 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0836682Z   [must] requirement_quality REQ-EP-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0836931Z   [must] requirement_quality REQ-EP-6 criterion=length — title is 58 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0837164Z   [must] requirement_quality REQ-EP-7 criterion=length — title is 68 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0837401Z   [must] requirement_quality REQ-EP-8 criterion=length — title is 114 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0837723Z   [must] requirement_quality REQ-EP-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0837957Z   [must] requirement_quality REQ-EP-9 criterion=length — title is 76 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0838347Z   [must] requirement_quality REQ-ER-BRIEFING-PRESENTED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0838653Z   [must] requirement_quality REQ-ER-BRIEFING-PRESENTED criterion=length — title is 655 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0839130Z   [must] requirement_quality REQ-ER-BRIEFING-SESSION-SCOPED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0839440Z   [must] requirement_quality REQ-ER-BRIEFING-SESSION-SCOPED criterion=length — title is 482 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0839850Z   [must] requirement_quality REQ-ER-BRIEFING-SURFACE-VOCAB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0840158Z   [must] requirement_quality REQ-ER-BRIEFING-SURFACE-VOCAB criterion=length — title is 340 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0840585Z   [must] requirement_quality REQ-ER-BRINGUP-ABSENT-CODE-UNCOUNTED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0840980Z   [must] requirement_quality REQ-ER-BRINGUP-ABSENT-CODE-UNCOUNTED criterion=length — title is 384 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0841382Z   [must] requirement_quality REQ-ER-BRINGUP-ANCHORS-PERCH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0841687Z   [must] requirement_quality REQ-ER-BRINGUP-ANCHORS-PERCH criterion=length — title is 604 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0842093Z   [must] requirement_quality REQ-ER-BRINGUP-ATTEMPT-BOUND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0842398Z   [must] requirement_quality REQ-ER-BRINGUP-ATTEMPT-BOUND criterion=length — title is 320 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0842811Z   [must] requirement_quality REQ-ER-BRINGUP-INFLIGHT-LEDGER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0843117Z   [must] requirement_quality REQ-ER-BRINGUP-INFLIGHT-LEDGER criterion=length — title is 432 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0843526Z   [must] requirement_quality REQ-ER-BRINGUP-LAUNCH-PHASE-TRACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0843903Z   [must] requirement_quality REQ-ER-BRINGUP-LAUNCH-PHASE-TRACE criterion=length — title is 392 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0844280Z   [must] requirement_quality REQ-ER-BRINGUP-PROMPT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0844652Z   [must] requirement_quality REQ-ER-BRINGUP-PROMPT criterion=length — title is 174 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0845066Z   [must] requirement_quality REQ-ER-BRINGUP-PROMPT-NAMES-SEAT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0845382Z   [must] requirement_quality REQ-ER-BRINGUP-PROMPT-NAMES-SEAT criterion=length — title is 318 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0845777Z   [must] requirement_quality REQ-ER-BRINGUP-SPAWNS-SESSION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0846088Z   [must] requirement_quality REQ-ER-BRINGUP-SPAWNS-SESSION criterion=length — title is 1377 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0846470Z   [must] requirement_quality REQ-ER-BRINGUP-TOTP-GATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0846760Z   [must] requirement_quality REQ-ER-BRINGUP-TOTP-GATE criterion=length — title is 200 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0847138Z   [must] requirement_quality REQ-ER-CEREMONY-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0847414Z   [must] requirement_quality REQ-ER-CEREMONY-VERB criterion=length — title is 237 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0847825Z   [must] requirement_quality REQ-ER-CONTROLLER-BOUND-POSTURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0848142Z   [must] requirement_quality REQ-ER-CONTROLLER-BOUND-POSTURE criterion=length — title is 197 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0848569Z   [must] requirement_quality REQ-ER-GRANT-ANNOUNCE-AFTER-ATTACH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0848893Z   [must] requirement_quality REQ-ER-GRANT-ANNOUNCE-AFTER-ATTACH criterion=length — title is 349 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0849337Z   [must] requirement_quality REQ-ER-INBOUND-LOCK criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0849612Z   [must] requirement_quality REQ-ER-INBOUND-LOCK criterion=length — title is 186 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0850010Z   [must] requirement_quality REQ-ER-INBOUND-LOCK-ALL-PATHS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0850315Z   [must] requirement_quality REQ-ER-INBOUND-LOCK-ALL-PATHS criterion=length — title is 993 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0850746Z   [must] requirement_quality REQ-ER-NOT-ADVERTISED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0851026Z   [must] requirement_quality REQ-ER-NOT-ADVERTISED criterion=length — title is 178 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0851437Z   [must] requirement_quality REQ-ER-OFFLINE-BRINGUP-REACHABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0851756Z   [must] requirement_quality REQ-ER-OFFLINE-BRINGUP-REACHABLE criterion=length — title is 500 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0852123Z   [must] requirement_quality REQ-ER-PURGE-RESETS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0852399Z   [must] requirement_quality REQ-ER-PURGE-RESETS criterion=length — title is 181 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0852776Z   [must] requirement_quality REQ-ER-RC-INTENT-LOCKS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0853114Z   [must] requirement_quality REQ-ER-RC-INTENT-LOCKS criterion=length — title is 210 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0853494Z   [must] requirement_quality REQ-ER-RESERVED-ENDPOINT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0853790Z   [must] requirement_quality REQ-ER-RESERVED-ENDPOINT criterion=length — title is 190 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0854301Z   [must] requirement_quality REQ-ER-RESERVED-ID-SPAWN-REFUSAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0854615Z   [must] requirement_quality REQ-ER-RESERVED-ID-SPAWN-REFUSAL criterion=length — title is 500 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0855015Z   [must] requirement_quality REQ-ER-ROLE-STATIC-IMMUTABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0855321Z   [must] requirement_quality REQ-ER-ROLE-STATIC-IMMUTABLE criterion=length — title is 420 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0855711Z   [must] requirement_quality REQ-ER-RULESET-NODE-NAMES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0856004Z   [must] requirement_quality REQ-ER-RULESET-NODE-NAMES criterion=length — title is 309 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0856376Z   [must] requirement_quality REQ-ER-RULESET-TABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0856657Z   [must] requirement_quality REQ-ER-RULESET-TABLE criterion=length — title is 310 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0857030Z   [must] requirement_quality REQ-ER-SEQUESTERED-CWD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0857315Z   [must] requirement_quality REQ-ER-SEQUESTERED-CWD criterion=length — title is 742 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0857698Z   [must] requirement_quality REQ-ER-SESSION-BRIEFING criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0857984Z   [must] requirement_quality REQ-ER-SESSION-BRIEFING criterion=length — title is 579 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0858375Z   [must] requirement_quality REQ-EVENT-ATTR-PASSTHROUGH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0858688Z   [must] requirement_quality REQ-EVENT-ATTR-PASSTHROUGH criterion=length — title is 281 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0859143Z   [must] requirement_quality REQ-FIXTURE-BIN-BUILD-EDGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0859439Z   [must] requirement_quality REQ-FIXTURE-BIN-BUILD-EDGE criterion=length — title is 910 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0859834Z   [must] requirement_quality REQ-FIXTURE-BIN-PERJOB-DRIFT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0860202Z   [must] requirement_quality REQ-FIXTURE-BIN-PERJOB-DRIFT criterion=length — title is 845 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0860594Z   [must] requirement_quality REQ-FLAKE-LEDGER-KEYED-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0860899Z   [must] requirement_quality REQ-FLAKE-LEDGER-KEYED-ROWS criterion=length — title is 344 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0861362Z   [must] requirement_quality REQ-FORK-ACCESS-GATED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0861644Z   [must] requirement_quality REQ-FORK-ACCESS-GATED criterion=length — title is 396 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0862025Z   [must] requirement_quality REQ-FORK-CONTROL-SURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0862316Z   [must] requirement_quality REQ-FORK-CONTROL-SURFACE criterion=length — title is 812 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0862744Z   [must] requirement_quality REQ-FORK-MIND-COMPLETE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0863026Z   [must] requirement_quality REQ-FORK-MIND-COMPLETE criterion=length — title is 343 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0863388Z   [must] requirement_quality REQ-GOLDEN-CI-LANE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0863674Z   [must] requirement_quality REQ-GOLDEN-CI-LANE criterion=length — title is 133 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0864045Z   [must] requirement_quality REQ-GOLDEN-RESPIN-TEST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0864336Z   [must] requirement_quality REQ-GOLDEN-RESPIN-TEST criterion=length — title is 246 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0864732Z   [must] requirement_quality REQ-GOSSIP-ADAPTER-PROJECTS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0865037Z   [must] requirement_quality REQ-GOSSIP-ADAPTER-PROJECTS criterion=length — title is 82 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0865420Z   [must] requirement_quality REQ-GOSSIP-CONTROLLED-ANY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0865715Z   [must] requirement_quality REQ-GOSSIP-CONTROLLED-ANY criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0866040Z   [must] requirement_quality REQ-GOSSIP-CONTROLLED-CROSS-NODE criterion=length — title is 108 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0866357Z   [must] requirement_quality REQ-GOSSIP-PROJECT-DERIVE-ONCE criterion=length — title is 160 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0866789Z   [must] requirement_quality REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0867127Z   [must] requirement_quality REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP criterion=length — title is 199 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0867508Z   [must] requirement_quality REQ-HAZARD-ADAPTER-PROFILE-STAMP-CLOBBER criterion=length — title is 114 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0867818Z   [must] requirement_quality REQ-HAZARD-ATOMIC-TMP-COLLISION criterion=length — title is 29 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0868199Z   [must] requirement_quality REQ-HAZARD-ATTACH-WEDGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0868500Z   [must] requirement_quality REQ-HAZARD-ATTACH-WEDGE criterion=length — title is 244 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0868912Z   [must] requirement_quality REQ-HAZARD-BIND-CONFLICT-PID-ABA criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0869295Z   [must] requirement_quality REQ-HAZARD-BIND-CONFLICT-PID-ABA criterion=length — title is 741 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0869788Z   [must] requirement_quality REQ-HAZARD-BIND-CWD-UNSET criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0870089Z   [must] requirement_quality REQ-HAZARD-BIND-CWD-UNSET criterion=length — title is 130 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0870495Z   [must] requirement_quality REQ-HAZARD-BIND-REST-STATE-CARRY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0870905Z   [must] requirement_quality REQ-HAZARD-BIND-REST-STATE-CARRY criterion=length — title is 115 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0871319Z   [must] requirement_quality REQ-HAZARD-BOUNDARY-READY-STRAND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0871634Z   [must] requirement_quality REQ-HAZARD-BOUNDARY-READY-STRAND criterion=length — title is 175 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0872036Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0872398Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=length — title is 119 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0872856Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0873229Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0873662Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0874002Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP criterion=length — title is 199 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0874426Z   [must] requirement_quality REQ-HAZARD-BROKER-FLOOR-LOCK-POISON criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0874764Z   [must] requirement_quality REQ-HAZARD-BROKER-FLOOR-LOCK-POISON criterion=length — title is 333 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0875186Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0875511Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=length — title is 114 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0875927Z   [must] requirement_quality REQ-HAZARD-BROKER-QUIC-DEADLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0876242Z   [must] requirement_quality REQ-HAZARD-BROKER-QUIC-DEADLINE criterion=length — title is 162 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0876657Z   [must] requirement_quality REQ-HAZARD-BROKER-SEED-WIRE-SKEW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0876978Z   [must] requirement_quality REQ-HAZARD-BROKER-SEED-WIRE-SKEW criterion=length — title is 193 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0877415Z   [must] requirement_quality REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0877773Z   [must] requirement_quality REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE criterion=length — title is 192 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0878102Z   [must] requirement_quality REQ-HAZARD-CEREMONY-CLOCK-STEP criterion=length — title is 139 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0878513Z   [must] requirement_quality REQ-HAZARD-CODE-SEAL-SEED-ORACLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0878828Z   [must] requirement_quality REQ-HAZARD-CODE-SEAL-SEED-ORACLE criterion=length — title is 236 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0879356Z   [must] requirement_quality REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE criterion=length — title is 263 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0879755Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0880193Z   [must] requirement_quality REQ-HAZARD-CONTROL-STAMP-CONVERGENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0880531Z   [must] requirement_quality REQ-HAZARD-CONTROL-STAMP-CONVERGENCE criterion=length — title is 193 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0881045Z   [must] requirement_quality REQ-HAZARD-CONTROL-STAMP-LIFETIME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0881370Z   [must] requirement_quality REQ-HAZARD-CONTROL-STAMP-LIFETIME criterion=length — title is 100 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0881785Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-GAP-RESUME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0882109Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-GAP-RESUME criterion=length — title is 297 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0882615Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0882988Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND criterion=length — title is 134 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0883388Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-LEASE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0883703Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-LEASE criterion=length — title is 124 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0884127Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-RETAKE-FLOOR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0884452Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-RETAKE-FLOOR criterion=length — title is 184 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0884886Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-WRITER-REORDER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0885223Z   [must] requirement_quality REQ-HAZARD-CONTROLLER-WRITER-REORDER criterion=length — title is 643 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0885662Z   [must] requirement_quality REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0886029Z   [must] requirement_quality REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE criterion=length — title is 275 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0886353Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0886767Z   [must] requirement_quality REQ-HAZARD-DAEMON-STOP-BARRIER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0887087Z   [must] requirement_quality REQ-HAZARD-DAEMON-STOP-BARRIER criterion=length — title is 80 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0887486Z   [must] requirement_quality REQ-HAZARD-DAEMON-STOP-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0887794Z   [must] requirement_quality REQ-HAZARD-DAEMON-STOP-REAP criterion=length — title is 90 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0888181Z   [must] requirement_quality REQ-HAZARD-DEAD-REC-PID criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0888476Z   [must] requirement_quality REQ-HAZARD-DEAD-REC-PID criterion=length — title is 175 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0888877Z   [must] requirement_quality REQ-HAZARD-DEFERRED-MANIFEST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0889248Z   [must] requirement_quality REQ-HAZARD-DEFERRED-MANIFEST criterion=length — title is 112 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0889722Z   [must] requirement_quality REQ-HAZARD-DELIVERY-STARVATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0890041Z   [must] requirement_quality REQ-HAZARD-DELIVERY-STARVATION criterion=length — title is 151 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0890466Z   [must] requirement_quality REQ-HAZARD-DETACHED-DAEMON-STDIO criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0890899Z   [must] requirement_quality REQ-HAZARD-DETACHED-DAEMON-STDIO criterion=length — title is 255 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0891223Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0891668Z   [must] requirement_quality REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0892006Z   [must] requirement_quality REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT criterion=length — title is 232 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0892464Z   [must] requirement_quality REQ-HAZARD-DRIVEN-BY-SELFHEAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0892777Z   [must] requirement_quality REQ-HAZARD-DRIVEN-BY-SELFHEAL criterion=length — title is 77 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0893228Z   [must] requirement_quality REQ-HAZARD-ECHO-NEVER-WRITES-AGENT-DROP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0893577Z   [must] requirement_quality REQ-HAZARD-ECHO-NEVER-WRITES-AGENT-DROP criterion=length — title is 159 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0894005Z   [must] requirement_quality REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0894349Z   [must] requirement_quality REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE criterion=length — title is 440 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0894763Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0895088Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0895523Z   [must] requirement_quality REQ-HAZARD-EMPOWER-SESSION-RESURRECT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0895864Z   [must] requirement_quality REQ-HAZARD-EMPOWER-SESSION-RESURRECT criterion=length — title is 625 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0896274Z   [must] requirement_quality REQ-HAZARD-ENDPOINT-LIFECYCLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0896589Z   [must] requirement_quality REQ-HAZARD-ENDPOINT-LIFECYCLE criterion=length — title is 99 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0897017Z   [must] requirement_quality REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0897367Z   [must] requirement_quality REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT criterion=length — title is 228 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0897739Z   [must] requirement_quality REQ-HAZARD-ENV-SUBST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0898027Z   [must] requirement_quality REQ-HAZARD-ENV-SUBST criterion=length — title is 168 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0898451Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-ATTR-LINESAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0898779Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-ATTR-LINESAFE criterion=length — title is 179 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0899361Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0899751Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=length — title is 73 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0900161Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0900447Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0900980Z   [must] requirement_quality REQ-HAZARD-FAILED-ADDR-REINSTALL-LOOP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0901332Z   [must] requirement_quality REQ-HAZARD-FAILED-ADDR-REINSTALL-LOOP criterion=length — title is 176 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0901721Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0902055Z   [must] requirement_quality REQ-HAZARD-HOSTED-LIVENESS-RECONCILE criterion=length — title is 175 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0902628Z   [must] requirement_quality REQ-HAZARD-IDLE-SILENT-NONDELIVERY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0902956Z   [must] requirement_quality REQ-HAZARD-IDLE-SILENT-NONDELIVERY criterion=length — title is 436 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0903389Z   [must] requirement_quality REQ-HAZARD-INJECT-CONTROL-COEXIST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0903716Z   [must] requirement_quality REQ-HAZARD-INJECT-CONTROL-COEXIST criterion=length — title is 340 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0904122Z   [must] requirement_quality REQ-HAZARD-INJECT-SETTLE-REARM criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0904437Z   [must] requirement_quality REQ-HAZARD-INJECT-SETTLE-REARM criterion=length — title is 184 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0904851Z   [must] requirement_quality REQ-HAZARD-INJECT-WORKER-POISON criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0905180Z   [must] requirement_quality REQ-HAZARD-INJECT-WORKER-POISON criterion=length — title is 136 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0905604Z   [must] requirement_quality REQ-HAZARD-INPUT-ACK-BACKPRESSURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0905928Z   [must] requirement_quality REQ-HAZARD-INPUT-ACK-BACKPRESSURE criterion=length — title is 343 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0906238Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0906638Z   [must] requirement_quality REQ-HAZARD-IOLOG-SEQ-MONOTONIC criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0906948Z   [must] requirement_quality REQ-HAZARD-IOLOG-SEQ-MONOTONIC criterion=length — title is 48 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0907387Z   [must] requirement_quality REQ-HAZARD-LISTEN-ORPHAN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0907679Z   [must] requirement_quality REQ-HAZARD-LISTEN-ORPHAN criterion=length — title is 93 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0908022Z   [must] requirement_quality REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE criterion=length — title is 122 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0908430Z   [must] requirement_quality REQ-HAZARD-LIVEHOST-BOOT-RACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0908742Z   [must] requirement_quality REQ-HAZARD-LIVEHOST-BOOT-RACE criterion=length — title is 158 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0909248Z   [must] requirement_quality REQ-HAZARD-LIVEHOST-NONRESIDENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0909583Z   [must] requirement_quality REQ-HAZARD-LIVEHOST-NONRESIDENT criterion=length — title is 171 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0910049Z   [must] requirement_quality REQ-HAZARD-MESH-BOOTSTRAP-TRAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0910363Z   [must] requirement_quality REQ-HAZARD-MESH-BOOTSTRAP-TRAP criterion=length — title is 154 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0911002Z   [must] requirement_quality REQ-HAZARD-MONITOR-GREEN-SELF-PRODUCIBLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0911364Z   [must] requirement_quality REQ-HAZARD-MONITOR-GREEN-SELF-PRODUCIBLE criterion=length — title is 402 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0911776Z   [must] requirement_quality REQ-HAZARD-MUTUAL-PREAUTH-SIBLING criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0912101Z   [must] requirement_quality REQ-HAZARD-MUTUAL-PREAUTH-SIBLING criterion=length — title is 317 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0912416Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0912725Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0913136Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0913579Z   [must] requirement_quality REQ-HAZARD-PERCH-GC-LIVENESS-INVERSION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0913916Z   [must] requirement_quality REQ-HAZARD-PERCH-GC-LIVENESS-INVERSION criterion=length — title is 184 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0914358Z   [must] requirement_quality REQ-HAZARD-PROBE-CONTEXT-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0914706Z   [must] requirement_quality REQ-HAZARD-PROBE-CONTEXT-ISOLATION criterion=length — title is 170 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0915177Z   [must] requirement_quality REQ-HAZARD-PROCESS-GLOBAL-ONE-RESOLUTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0915544Z   [must] requirement_quality REQ-HAZARD-PROCESS-GLOBAL-ONE-RESOLUTION criterion=length — title is 127 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0915970Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0916299Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0916736Z   [must] requirement_quality REQ-HAZARD-PSYCHE-RESIDENCY-EXPECTATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0917145Z   [must] requirement_quality REQ-HAZARD-PSYCHE-RESIDENCY-EXPECTATION criterion=length — title is 130 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0917561Z   [must] requirement_quality REQ-HAZARD-PTY-INPUT-WRITER-WEDGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0917890Z   [must] requirement_quality REQ-HAZARD-PTY-INPUT-WRITER-WEDGE criterion=length — title is 287 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0918304Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0918614Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=length — title is 38 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0919094Z   [must] requirement_quality REQ-HAZARD-RC-ATTACH-FAILFAST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0919406Z   [must] requirement_quality REQ-HAZARD-RC-ATTACH-FAILFAST criterion=length — title is 163 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0919823Z   [must] requirement_quality REQ-HAZARD-RC-ATTACH-ONLINE-RACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0920204Z   [must] requirement_quality REQ-HAZARD-RC-ATTACH-ONLINE-RACE criterion=length — title is 184 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0920599Z   [must] requirement_quality REQ-HAZARD-RC-ATTACH-TRUTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0920990Z   [must] requirement_quality REQ-HAZARD-RC-ATTACH-TRUTH criterion=length — title is 89 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0921363Z   [must] requirement_quality REQ-HAZARD-RC-EOF criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0921634Z   [must] requirement_quality REQ-HAZARD-RC-EOF criterion=length — title is 208 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0922053Z   [must] requirement_quality REQ-HAZARD-RC-INPUT-KEY-ENCODING criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0922380Z   [must] requirement_quality REQ-HAZARD-RC-INPUT-KEY-ENCODING criterion=length — title is 222 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0922809Z   [must] requirement_quality REQ-HAZARD-REDISPATCH-CONTROL-STEAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0923152Z   [must] requirement_quality REQ-HAZARD-REDISPATCH-CONTROL-STEAL criterion=length — title is 141 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0923557Z   [must] requirement_quality REQ-HAZARD-REDISPATCH-STALL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0923857Z   [must] requirement_quality REQ-HAZARD-REDISPATCH-STALL criterion=length — title is 152 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0924259Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0924581Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 152 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0924980Z   [must] requirement_quality REQ-HAZARD-REGISTRY-STALL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0925276Z   [must] requirement_quality REQ-HAZARD-REGISTRY-STALL criterion=length — title is 135 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0925586Z   [must] requirement_quality REQ-HAZARD-RENDER-LIFECYCLE criterion=length — title is 85 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0926048Z   [must] requirement_quality REQ-HAZARD-RESTART-STRANDS-PERSISTENT-SHELLS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0926424Z   [must] requirement_quality REQ-HAZARD-RESTART-STRANDS-PERSISTENT-SHELLS criterion=length — title is 387 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0926734Z   [must] requirement_quality REQ-HAZARD-RESUME-CUSTODY-ABA criterion=length — title is 68 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0927193Z   [must] requirement_quality REQ-HAZARD-RING-PERCH-ADOPTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0927506Z   [must] requirement_quality REQ-HAZARD-RING-PERCH-ADOPTION criterion=length — title is 566 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0927816Z   [must] requirement_quality REQ-HAZARD-ROLLBACK-STATE-COMPAT criterion=length — title is 72 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0928207Z   [must] requirement_quality REQ-HAZARD-ROSTER-GHOST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0928493Z   [must] requirement_quality REQ-HAZARD-ROSTER-GHOST criterion=length — title is 116 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0928827Z   [must] requirement_quality REQ-HAZARD-SEEDMAP-CONNECT-UNBOUNDED criterion=length — title is 171 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0929303Z   [must] requirement_quality REQ-HAZARD-SELF-DETECT-TIE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0929659Z   [must] requirement_quality REQ-HAZARD-SELF-DETECT-TIE criterion=length — title is 284 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0930049Z   [must] requirement_quality REQ-HAZARD-SELF-ELEVATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0930339Z   [must] requirement_quality REQ-HAZARD-SELF-ELEVATE criterion=length — title is 101 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0930844Z   [must] requirement_quality REQ-HAZARD-SELF-ROW-LEASE-FREEZE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0931173Z   [must] requirement_quality REQ-HAZARD-SELF-ROW-LEASE-FREEZE criterion=length — title is 183 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0931565Z   [must] requirement_quality REQ-HAZARD-SESSION-PIN-WEDGE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0931879Z   [must] requirement_quality REQ-HAZARD-SESSION-PIN-WEDGE criterion=length — title is 320 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0932375Z   [must] requirement_quality REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0932763Z   [must] requirement_quality REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK criterion=length — title is 461 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0933173Z   [must] requirement_quality REQ-HAZARD-SHELL-STALE-ONLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0933492Z   [must] requirement_quality REQ-HAZARD-SHELL-STALE-ONLINE criterion=length — title is 1795 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0933827Z   [must] requirement_quality REQ-HAZARD-SPOOL-SENTINEL-CREATE-FAIL criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0934279Z   [must] requirement_quality REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0934636Z   [must] requirement_quality REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0934961Z   [must] requirement_quality REQ-HAZARD-STOP-RESPAWN-CONVOY criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0935362Z   [must] requirement_quality REQ-HAZARD-STORE-INIT-RACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0935668Z   [must] requirement_quality REQ-HAZARD-STORE-INIT-RACE criterion=length — title is 149 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0935973Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0936374Z   [must] requirement_quality REQ-HAZARD-TEARDOWN-DEADEND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0936742Z   [must] requirement_quality REQ-HAZARD-TEARDOWN-DEADEND criterion=length — title is 240 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0937156Z   [must] requirement_quality REQ-HAZARD-TEMPLATE-ARGV-FILL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0937471Z   [must] requirement_quality REQ-HAZARD-TEMPLATE-ARGV-FILL criterion=length — title is 166 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0937922Z   [must] requirement_quality REQ-HAZARD-TEST-PID-TREE-KILL-IDENTITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0938270Z   [must] requirement_quality REQ-HAZARD-TEST-PID-TREE-KILL-IDENTITY criterion=length — title is 305 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0938585Z   [must] requirement_quality REQ-HAZARD-THRASH-GUARD-BLIND criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0939144Z   [must] requirement_quality REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0939573Z   [must] requirement_quality REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH criterion=length — title is 91 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0939960Z   [must] requirement_quality REQ-HAZARD-TREE-CWD-PIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0940249Z   [must] requirement_quality REQ-HAZARD-TREE-CWD-PIN criterion=length — title is 581 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0940775Z   [must] requirement_quality REQ-HAZARD-UNHOST-PSYCHE-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0941099Z   [must] requirement_quality REQ-HAZARD-UNHOST-PSYCHE-REAP criterion=length — title is 161 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0941505Z   [must] requirement_quality REQ-HAZARD-VIEWER-CLOSE-DETACH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0941824Z   [must] requirement_quality REQ-HAZARD-VIEWER-CLOSE-DETACH criterion=length — title is 437 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0942226Z   [must] requirement_quality REQ-HAZARD-VIEWER-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0942536Z   [must] requirement_quality REQ-HAZARD-VIEWER-ISOLATION criterion=length — title is 118 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0942963Z   [must] requirement_quality REQ-HAZARD-VIEWER-RING-ROLL-SNAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0943280Z   [must] requirement_quality REQ-HAZARD-VIEWER-RING-ROLL-SNAP criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0943786Z   [must] requirement_quality REQ-HAZARD-VIEWER-STARVE-UNDER-CONTROLLER-BACKPRESSURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0944201Z   [must] requirement_quality REQ-HAZARD-VIEWER-STARVE-UNDER-CONTROLLER-BACKPRESSURE criterion=length — title is 235 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0944506Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0944934Z   [must] requirement_quality REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0945259Z   [must] requirement_quality REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE criterion=length — title is 96 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0945677Z   [must] requirement_quality REQ-HAZARD-WIRE-UNTAGGED-RECORD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0945999Z   [must] requirement_quality REQ-HAZARD-WIRE-UNTAGGED-RECORD criterion=length — title is 332 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0946305Z   [must] requirement_quality REQ-HAZARD-WMI-DAEMON-WINDOW criterion=length — title is 101 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0946715Z   [must] requirement_quality REQ-HEAVY-UNIT-CLASSIFICATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0947087Z   [must] requirement_quality REQ-HEAVY-UNIT-CLASSIFICATION criterion=length — title is 197 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0947350Z   [must] requirement_quality REQ-HOST-RUN-1 criterion=length — title is 88 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0947612Z   [must] requirement_quality REQ-HOST-RUN-2 criterion=length — title is 97 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0948050Z   [must] requirement_quality REQ-HOSTING-AUTHORITY-CONTROLLABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0948383Z   [must] requirement_quality REQ-HOSTING-AUTHORITY-CONTROLLABLE criterion=length — title is 302 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0948769Z   [must] requirement_quality REQ-IDLE-PARKED-DELIVERY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0949159Z   [must] requirement_quality REQ-IDLE-PARKED-DELIVERY criterion=length — title is 116 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0949660Z   [must] requirement_quality REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0950008Z   [must] requirement_quality REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY criterion=length — title is 181 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0950529Z   [must] requirement_quality REQ-INBOUND-PROVIDER-FIREWALL-DOCS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0950856Z   [must] requirement_quality REQ-INBOUND-PROVIDER-FIREWALL-DOCS criterion=length — title is 98 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0951279Z   [must] requirement_quality REQ-INBOUND-RECORD-WIRE-FIDELITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0951603Z   [must] requirement_quality REQ-INBOUND-RECORD-WIRE-FIDELITY criterion=length — title is 492 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0952050Z   [must] requirement_quality REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0952418Z   [must] requirement_quality REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED criterion=length — title is 292 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0954470Z   [must] requirement_quality REQ-INBOUND-VERDICT-SURFACED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0954790Z   [must] requirement_quality REQ-INBOUND-VERDICT-SURFACED criterion=length — title is 642 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0955246Z   [must] requirement_quality REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0955605Z   [must] requirement_quality REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH criterion=length — title is 263 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0955934Z   [must] requirement_quality REQ-INJECT-MULTILINE-INTEGRITY criterion=length — title is 118 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0956242Z   [must] requirement_quality REQ-INPUT-CONTROLLER-FENCE criterion=length — title is 190 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0956487Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0956745Z   [must] requirement_quality REQ-INSTALL-1 criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0957108Z   [must] requirement_quality REQ-INSTALL-10 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0957361Z   [must] requirement_quality REQ-INSTALL-10 criterion=length — title is 58 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0957618Z   [must] requirement_quality REQ-INSTALL-11 criterion=length — title is 78 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0957867Z   [must] requirement_quality REQ-INSTALL-12 criterion=length — title is 116 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0958281Z   [must] requirement_quality REQ-INSTALL-13 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0958535Z   [must] requirement_quality REQ-INSTALL-13 criterion=length — title is 131 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0958787Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0959119Z   [must] requirement_quality REQ-INSTALL-5 criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0959482Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0959734Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0960077Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0960334Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 410 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0960649Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0961041Z   [must] requirement_quality REQ-INSTALL-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0961307Z   [must] requirement_quality REQ-INSTALL-9 criterion=length — title is 62 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0961791Z   [must] requirement_quality REQ-INSTALL-BOOTSTRAP-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0962096Z   [must] requirement_quality REQ-INSTALL-BOOTSTRAP-VERB criterion=length — title is 177 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0962473Z   [must] requirement_quality REQ-IO-BOUNDARY-EVENTS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0962763Z   [must] requirement_quality REQ-IO-BOUNDARY-EVENTS criterion=length — title is 553 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0963155Z   [must] requirement_quality REQ-IO-COMMUNE-EVENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0963426Z   [must] requirement_quality REQ-IO-COMMUNE-EVENT criterion=length — title is 244 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0963817Z   [must] requirement_quality REQ-IO-COMMUNE-FAIL-EVENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0964121Z   [must] requirement_quality REQ-IO-COMMUNE-FAIL-EVENT criterion=length — title is 163 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0964543Z   [must] requirement_quality REQ-IO-DISPATCH-RESULT-VOCABULARY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0964877Z   [must] requirement_quality REQ-IO-DISPATCH-RESULT-VOCABULARY criterion=length — title is 160 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0965255Z   [must] requirement_quality REQ-IO-DISPATCH-RESULTS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0965560Z   [must] requirement_quality REQ-IO-DISPATCH-RESULTS criterion=length — title is 145 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0965950Z   [must] requirement_quality REQ-IO-EVENT-ADAPTER-LOG criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0966237Z   [must] requirement_quality REQ-IO-EVENT-ADAPTER-LOG criterion=length — title is 311 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0966603Z   [must] requirement_quality REQ-IO-EVENT-BUS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0966869Z   [must] requirement_quality REQ-IO-EVENT-BUS criterion=length — title is 169 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0967249Z   [must] requirement_quality REQ-IO-EVENT-POLL-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0967597Z   [must] requirement_quality REQ-IO-EVENT-POLL-VERB criterion=length — title is 517 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0967968Z   [must] requirement_quality REQ-IO-EVENT-TAXONOMY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0968254Z   [must] requirement_quality REQ-IO-EVENT-TAXONOMY criterion=length — title is 183 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0968650Z   [must] requirement_quality REQ-IO-INGEST-STATE-PAYLOAD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0969042Z   [must] requirement_quality REQ-IO-INGEST-STATE-PAYLOAD criterion=length — title is 329 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0969423Z   [must] requirement_quality REQ-IO-MIDTURN-SPAN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0969693Z   [must] requirement_quality REQ-IO-MIDTURN-SPAN criterion=length — title is 372 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0970051Z   [must] requirement_quality REQ-IO-MSG-EDGES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0970366Z   [must] requirement_quality REQ-IO-MSG-EDGES criterion=length — title is 148 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0970776Z   [must] requirement_quality REQ-IO-SEAL-SHORTFORM-CEREMONY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0971091Z   [must] requirement_quality REQ-IO-SEAL-SHORTFORM-CEREMONY criterion=length — title is 193 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0971582Z   [must] requirement_quality REQ-IO-SEAL-SHORTFORM-GRAMMAR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0971890Z   [must] requirement_quality REQ-IO-SEAL-SHORTFORM-GRAMMAR criterion=length — title is 368 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0972251Z   [must] requirement_quality REQ-IO-SEND-VERDICT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0972531Z   [must] requirement_quality REQ-IO-SEND-VERDICT criterion=length — title is 267 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0972924Z   [must] requirement_quality REQ-IO-SHORTFORM-DISPATCH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0973219Z   [must] requirement_quality REQ-IO-SHORTFORM-DISPATCH criterion=length — title is 158 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0973601Z   [must] requirement_quality REQ-IO-SHORTFORM-GATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0973873Z   [must] requirement_quality REQ-IO-SHORTFORM-GATE criterion=length — title is 168 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0974268Z   [must] requirement_quality REQ-IO-SUPPRESSION-GRAMMAR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0974565Z   [must] requirement_quality REQ-IO-SUPPRESSION-GRAMMAR criterion=length — title is 168 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0974993Z   [must] requirement_quality REQ-IPC-DEADLINE-UNHONORABLE-REFUSED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0975327Z   [must] requirement_quality REQ-IPC-DEADLINE-UNHONORABLE-REFUSED criterion=length — title is 491 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0975718Z   [must] requirement_quality REQ-JOIN-DEFERRED-ELEVATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0976033Z   [must] requirement_quality REQ-JOIN-DEFERRED-ELEVATION criterion=length — title is 156 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0976406Z   [must] requirement_quality REQ-JOIN-DIAGNOSTICS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0976677Z   [must] requirement_quality REQ-JOIN-DIAGNOSTICS criterion=length — title is 137 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0976953Z   [must] requirement_quality REQ-JOIN-TWO-PHASE criterion=length — title is 161 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0977386Z   [must] requirement_quality REQ-JOIN-VERBOSE-CLOCK criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0977679Z   [must] requirement_quality REQ-JOIN-VERBOSE-CLOCK criterion=length — title is 108 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0978018Z   [must] requirement_quality REQ-KICK-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0978265Z   [must] requirement_quality REQ-KICK-1 criterion=length — title is 133 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0978658Z   [must] requirement_quality REQ-KNOCK-ANSWER-RECEIPT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0979048Z   [must] requirement_quality REQ-KNOCK-ANSWER-RECEIPT criterion=length — title is 417 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0979439Z   [must] requirement_quality REQ-KNOCK-AUTHORITY-SPLIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0979816Z   [must] requirement_quality REQ-KNOCK-AUTHORITY-SPLIT criterion=length — title is 271 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0980181Z   [must] requirement_quality REQ-KNOCK-BARE-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0980458Z   [must] requirement_quality REQ-KNOCK-BARE-VERB criterion=length — title is 204 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0980969Z   [must] requirement_quality REQ-KNOCK-CODE-INERT-RULE-REPAIR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0981298Z   [must] requirement_quality REQ-KNOCK-CODE-INERT-RULE-REPAIR criterion=length — title is 276 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0981703Z   [must] requirement_quality REQ-KNOCK-CODE-MULTI-ENVELOPE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0982008Z   [must] requirement_quality REQ-KNOCK-CODE-MULTI-ENVELOPE criterion=length — title is 703 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0982384Z   [must] requirement_quality REQ-KNOCK-CODE-ROUTE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0982649Z   [must] requirement_quality REQ-KNOCK-CODE-ROUTE criterion=length — title is 309 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0983015Z   [must] requirement_quality REQ-KNOCK-CODE-SEALED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0983297Z   [must] requirement_quality REQ-KNOCK-CODE-SEALED criterion=length — title is 420 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0983697Z   [must] requirement_quality REQ-KNOCK-COUNTER-KNOCK-TRAVELS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0984011Z   [must] requirement_quality REQ-KNOCK-COUNTER-KNOCK-TRAVELS criterion=length — title is 400 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0984409Z   [must] requirement_quality REQ-KNOCK-DEFAULT-SURFACE-MSG criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0984709Z   [must] requirement_quality REQ-KNOCK-DEFAULT-SURFACE-MSG criterion=length — title is 231 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0985115Z   [must] requirement_quality REQ-KNOCK-DIRECTIONALITY-EXPLICIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0985451Z   [must] requirement_quality REQ-KNOCK-DIRECTIONALITY-EXPLICIT criterion=length — title is 534 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0985850Z   [must] requirement_quality REQ-KNOCK-DIRECTIONALITY-SENDER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0986160Z   [must] requirement_quality REQ-KNOCK-DIRECTIONALITY-SENDER criterion=length — title is 452 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0986526Z   [must] requirement_quality REQ-KNOCK-EVIDENCE-ROUTE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0986869Z   [must] requirement_quality REQ-KNOCK-EVIDENCE-ROUTE criterion=length — title is 416 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0987218Z   [must] requirement_quality REQ-KNOCK-FLOOD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0987475Z   [must] requirement_quality REQ-KNOCK-FLOOD criterion=length — title is 311 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0987985Z   [must] requirement_quality REQ-KNOCK-HUMAN-PRESENTER-NOT-DEAD-ENDED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0988331Z   [must] requirement_quality REQ-KNOCK-HUMAN-PRESENTER-NOT-DEAD-ENDED criterion=length — title is 371 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0988722Z   [must] requirement_quality REQ-KNOCK-INBOX-DAEMON-OWNED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0989102Z   [must] requirement_quality REQ-KNOCK-INBOX-DAEMON-OWNED criterion=length — title is 218 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0989532Z   [must] requirement_quality REQ-KNOCK-KNOCKER-STAMP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0989818Z   [must] requirement_quality REQ-KNOCK-KNOCKER-STAMP criterion=length — title is 184 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0990234Z   [must] requirement_quality REQ-KNOCK-MINT-MUTUAL-IS-A-REQUEST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0990553Z   [must] requirement_quality REQ-KNOCK-MINT-MUTUAL-IS-A-REQUEST criterion=length — title is 689 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0990924Z   [must] requirement_quality REQ-KNOCK-MONIC-IMPART criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0991205Z   [must] requirement_quality REQ-KNOCK-MONIC-IMPART criterion=length — title is 459 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0991563Z   [must] requirement_quality REQ-KNOCK-MUTUAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0991820Z   [must] requirement_quality REQ-KNOCK-MUTUAL criterion=length — title is 417 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0992211Z   [must] requirement_quality REQ-KNOCK-NOTIFY-INSTIGATOR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0992512Z   [must] requirement_quality REQ-KNOCK-NOTIFY-INSTIGATOR criterion=length — title is 706 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0992929Z   [must] requirement_quality REQ-KNOCK-PRESCRIBED-REMEDY-HONORED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0993261Z   [must] requirement_quality REQ-KNOCK-PRESCRIBED-REMEDY-HONORED criterion=length — title is 458 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0993656Z   [must] requirement_quality REQ-KNOCK-PRESCRIBES-FORK-PAIR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0993976Z   [must] requirement_quality REQ-KNOCK-PRESCRIBES-FORK-PAIR criterion=length — title is 335 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0994377Z   [must] requirement_quality REQ-KNOCK-REDEEM-MUTUAL-RECEIPT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0994692Z   [must] requirement_quality REQ-KNOCK-REDEEM-MUTUAL-RECEIPT criterion=length — title is 418 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0995101Z   [must] requirement_quality REQ-KNOCK-REDEEM-SERVE-INTENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0995412Z   [must] requirement_quality REQ-KNOCK-REDEEM-SERVE-INTENT criterion=length — title is 273 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0995778Z   [must] requirement_quality REQ-KNOCK-REDEEM-WIRE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0996053Z   [must] requirement_quality REQ-KNOCK-REDEEM-WIRE criterion=length — title is 602 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0996504Z   [must] requirement_quality REQ-KNOCK-UNRESOLVED-REFUSES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0996809Z   [must] requirement_quality REQ-KNOCK-UNRESOLVED-REFUSES criterion=length — title is 449 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0997153Z   [must] requirement_quality REQ-KNOCK-VERBS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0997506Z   [must] requirement_quality REQ-KNOCK-VERBS criterion=length — title is 201 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0997908Z   [must] requirement_quality REQ-LIST-JSON-LIVENESS-PARITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0998208Z   [must] requirement_quality REQ-LIST-JSON-LIVENESS-PARITY criterion=length — title is 240 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0998638Z   [must] requirement_quality REQ-LISTEN-PRESERVES-HOSTING-TOPOLOGY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0999085Z   [must] requirement_quality REQ-LISTEN-PRESERVES-HOSTING-TOPOLOGY criterion=length — title is 404 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0999497Z   [must] requirement_quality REQ-LISTEN-SEED-CONSUME-AFTER-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.0999830Z   [must] requirement_quality REQ-LISTEN-SEED-CONSUME-AFTER-BIND criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1000225Z   [must] requirement_quality REQ-LISTEN-SESSION-ID-FALLBACK criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1000535Z   [must] requirement_quality REQ-LISTEN-SESSION-ID-FALLBACK criterion=length — title is 185 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1000936Z   [must] requirement_quality REQ-LIVE-AGENT-NO-INJECT-DELIVERY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1001268Z   [must] requirement_quality REQ-LIVE-AGENT-NO-INJECT-DELIVERY criterion=length — title is 312 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1001693Z   [must] requirement_quality REQ-LIVEHOST-RECONCILE-TRIAL-SILENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1002013Z   [must] requirement_quality REQ-LIVEHOST-RECONCILE-TRIAL-SILENT criterion=length — title is 214 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1002456Z   [must] requirement_quality REQ-LIVENESS-ORACLE-SOUND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1002747Z   [must] requirement_quality REQ-LIVENESS-ORACLE-SOUND criterion=length — title is 674 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1003151Z   [must] requirement_quality REQ-LOCK-TOUCHING-LANE-PROCEDURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1003475Z   [must] requirement_quality REQ-LOCK-TOUCHING-LANE-PROCEDURE criterion=length — title is 326 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1003825Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1004075Z   [must] requirement_quality REQ-MANIFEST-3 criterion=length — title is 26 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1004323Z   [must] requirement_quality REQ-MANIFEST-4 criterion=length — title is 31 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1004585Z   [must] requirement_quality REQ-MANIFEST-5 criterion=length — title is 132 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1004836Z   [must] requirement_quality REQ-MANIFEST-6 criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1005080Z   [must] requirement_quality REQ-MANIFEST-7 criterion=length — title is 117 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1005328Z   [must] requirement_quality REQ-MANIFEST-8 criterion=length — title is 77 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1005756Z   [must] requirement_quality REQ-MANIFEST-NODE-KEY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1006038Z   [must] requirement_quality REQ-MANIFEST-NODE-KEY criterion=length — title is 187 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1006404Z   [must] requirement_quality REQ-MANIFEST-SUBST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1006764Z   [must] requirement_quality REQ-MANIFEST-SUBST criterion=length — title is 121 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1007175Z   [must] requirement_quality REQ-MANIFEST-UNKNOWN-KEY-WARN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1007476Z   [must] requirement_quality REQ-MANIFEST-UNKNOWN-KEY-WARN criterion=length — title is 253 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1007718Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1008061Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1008352Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1008681Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1008914Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1009340Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1009583Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 138 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1009908Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1010142Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1010480Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1010714Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1011053Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1011452Z   [must] requirement_quality REQ-MONIC-DELIVERY-TRIGGER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1011762Z   [must] requirement_quality REQ-MONIC-DELIVERY-TRIGGER criterion=length — title is 1117 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1012138Z   [must] requirement_quality REQ-MONIC-HUSK-PRESENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1012420Z   [must] requirement_quality REQ-MONIC-HUSK-PRESENT criterion=length — title is 508 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1012782Z   [must] requirement_quality REQ-MONIC-STORE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1013040Z   [must] requirement_quality REQ-MONIC-STORE criterion=length — title is 846 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1013388Z   [must] requirement_quality REQ-MONIC-VERBS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1013650Z   [must] requirement_quality REQ-MONIC-VERBS criterion=length — title is 758 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1013885Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1014116Z   [must] requirement_quality REQ-MSG-5 criterion=length — title is 38 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1014343Z   [must] requirement_quality REQ-MSG-6 criterion=length — title is 65 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1014781Z   [must] requirement_quality REQ-MSG-CLI-ORIGIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1015053Z   [must] requirement_quality REQ-MSG-CLI-ORIGIN criterion=length — title is 107 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1015425Z   [must] requirement_quality REQ-MSG-DELIVERY-AXES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1015706Z   [must] requirement_quality REQ-MSG-DELIVERY-AXES criterion=length — title is 291 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1016198Z   [must] requirement_quality REQ-MSG-ENVELOPE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1016466Z   [must] requirement_quality REQ-MSG-ENVELOPE criterion=length — title is 153 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1016837Z   [must] requirement_quality REQ-MSG-IDLE-EDGE-DRAIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1017131Z   [must] requirement_quality REQ-MSG-IDLE-EDGE-DRAIN criterion=length — title is 202 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1017586Z   [must] requirement_quality REQ-MSG-IDLE-TRANSLATION-BINARY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1017896Z   [must] requirement_quality REQ-MSG-IDLE-TRANSLATION-BINARY criterion=length — title is 269 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1018311Z   [must] requirement_quality REQ-MSG-INJECT-LEG-DROP-VISIBLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1018621Z   [must] requirement_quality REQ-MSG-INJECT-LEG-DROP-VISIBLE criterion=length — title is 239 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1019098Z   [must] requirement_quality REQ-MSG-SELF-DETECT-ANCESTRY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1019403Z   [must] requirement_quality REQ-MSG-SELF-DETECT-ANCESTRY criterion=length — title is 153 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1019772Z   [must] requirement_quality REQ-MSG-SENDER-STAMP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1020059Z   [must] requirement_quality REQ-MSG-SENDER-STAMP criterion=length — title is 537 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1020406Z   [must] requirement_quality REQ-MSG-SHORT-ID criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1020678Z   [must] requirement_quality REQ-MSG-SHORT-ID criterion=length — title is 383 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1021045Z   [must] requirement_quality REQ-NET-FAMILY-GATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1021312Z   [must] requirement_quality REQ-NET-FAMILY-GATE criterion=length — title is 118 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1021688Z   [must] requirement_quality REQ-NET-PINNED-UDP-PORT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1021979Z   [must] requirement_quality REQ-NET-PINNED-UDP-PORT criterion=length — title is 93 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1022252Z   [must] requirement_quality REQ-NOTIF-COALESCE criterion=length — title is 44 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1022646Z   [must] requirement_quality REQ-NOTIF-DRAIN-ROW-VALIDITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1022952Z   [must] requirement_quality REQ-NOTIF-DRAIN-ROW-VALIDITY criterion=length — title is 288 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1023214Z   [must] requirement_quality REQ-NOTIF-MIGRATE criterion=length — title is 46 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1023495Z   [must] requirement_quality REQ-NOTIF-QUIET-DELIVERY criterion=length — title is 55 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1023848Z   [must] requirement_quality REQ-NOTIF-SCOPE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1024163Z   [must] requirement_quality REQ-NOTIF-SCOPE criterion=length — title is 65 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1024534Z   [must] requirement_quality REQ-NOTIF-SEAM-DISMISS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1024819Z   [must] requirement_quality REQ-NOTIF-SEAM-DISMISS criterion=length — title is 56 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1025065Z   [must] requirement_quality REQ-NOTIF-TTL criterion=length — title is 44 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1025580Z   [must] requirement_quality REQ-NOTIF-UPDATE-ROW-VERSION-RETIRE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1025913Z   [must] requirement_quality REQ-NOTIF-UPDATE-ROW-VERSION-RETIRE criterion=length — title is 450 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1026305Z   [must] requirement_quality REQ-NOW-SIGNAL-CATEGORIES-V1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1026615Z   [must] requirement_quality REQ-NOW-SIGNAL-CATEGORIES-V1 criterion=length — title is 205 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1027078Z   [must] requirement_quality REQ-NOW-SIGNAL-DEFERRED-CATEGORIES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1027397Z   [must] requirement_quality REQ-NOW-SIGNAL-DEFERRED-CATEGORIES criterion=length — title is 80 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1027770Z   [must] requirement_quality REQ-NOW-SIGNAL-DELTA criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1028042Z   [must] requirement_quality REQ-NOW-SIGNAL-DELTA criterion=length — title is 202 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1028456Z   [must] requirement_quality REQ-NOW-SIGNAL-EDGE-SUBJECT-NAMING criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1028776Z   [must] requirement_quality REQ-NOW-SIGNAL-EDGE-SUBJECT-NAMING criterion=length — title is 190 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1029282Z   [must] requirement_quality REQ-NOW-SIGNAL-FILE-ACCESS-HELPER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1029597Z   [must] requirement_quality REQ-NOW-SIGNAL-FILE-ACCESS-HELPER criterion=length — title is 473 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1029982Z   [must] requirement_quality REQ-NOW-SIGNAL-SEAL-BRIEF criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1030281Z   [must] requirement_quality REQ-NOW-SIGNAL-SEAL-BRIEF criterion=length — title is 206 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1030637Z   [must] requirement_quality REQ-NOW-SIGNAL-SPEC criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1030914Z   [must] requirement_quality REQ-NOW-SIGNAL-SPEC criterion=length — title is 146 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1034880Z   [must] requirement_quality REQ-NOW-SIGNAL-UPDATES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1035318Z   [must] requirement_quality REQ-NOW-SIGNAL-UPDATES criterion=length — title is 285 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1035711Z   [must] requirement_quality REQ-NOW-SIGNAL-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1035988Z   [must] requirement_quality REQ-NOW-SIGNAL-VERB criterion=length — title is 182 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1036293Z   [must] requirement_quality REQ-ONEWAY-STREAM-TERMINAL criterion=length — title is 102 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1036693Z   [must] requirement_quality REQ-OPID-MINTER-NAMESPACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1036989Z   [must] requirement_quality REQ-OPID-MINTER-NAMESPACE criterion=length — title is 337 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1037365Z   [must] requirement_quality REQ-OPID-TRACING-RETRY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1037656Z   [must] requirement_quality REQ-OPID-TRACING-RETRY criterion=length — title is 222 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1037999Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1038246Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1038720Z   [must] requirement_quality REQ-PAIR-NTP-LOUD-FAIL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1039102Z   [must] requirement_quality REQ-PAIR-NTP-LOUD-FAIL criterion=length — title is 104 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1039475Z   [must] requirement_quality REQ-PAIR-NTP-MULTIHOME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1039761Z   [must] requirement_quality REQ-PAIR-NTP-MULTIHOME criterion=length — title is 131 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1040199Z   [must] requirement_quality REQ-PEER-ABSENCE-VERDICT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1040486Z   [must] requirement_quality REQ-PEER-ABSENCE-VERDICT criterion=length — title is 453 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1040883Z   [must] requirement_quality REQ-PEER-COUNT-TARGET-SCOPED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1041184Z   [must] requirement_quality REQ-PEER-COUNT-TARGET-SCOPED criterion=length — title is 340 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1041592Z   [must] requirement_quality REQ-PEER-HEALTH-PARTIAL-DEGRADE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1041902Z   [must] requirement_quality REQ-PEER-HEALTH-PARTIAL-DEGRADE criterion=length — title is 272 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1042289Z   [must] requirement_quality REQ-PEER-PUMP-CHURN-STALL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1042580Z   [must] requirement_quality REQ-PEER-PUMP-CHURN-STALL criterion=length — title is 97 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1042948Z   [must] requirement_quality REQ-PEER-ROUTE-CHAIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1043238Z   [must] requirement_quality REQ-PEER-ROUTE-CHAIN criterion=length — title is 177 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1043618Z   [must] requirement_quality REQ-PEERADDR-INVARIANT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1043895Z   [must] requirement_quality REQ-PEERADDR-INVARIANT criterion=length — title is 138 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1044291Z   [must] requirement_quality REQ-PERCH-GC-REFUSAL-REPORT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1044644Z   [must] requirement_quality REQ-PERCH-GC-REFUSAL-REPORT criterion=length — title is 192 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1045039Z   [must] requirement_quality REQ-PERCH-GC-RESIDUE-PREDICATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1045349Z   [must] requirement_quality REQ-PERCH-GC-RESIDUE-PREDICATE criterion=length — title is 388 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1045725Z   [must] requirement_quality REQ-PICK-FIDELITY-AUDIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1046009Z   [must] requirement_quality REQ-PICK-FIDELITY-AUDIT criterion=length — title is 416 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1046352Z   [must] requirement_quality REQ-PICKER-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1046600Z   [must] requirement_quality REQ-PICKER-1 criterion=length — title is 156 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1046848Z   [must] requirement_quality REQ-PICKER-2 criterion=length — title is 77 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1047135Z   [must] requirement_quality REQ-PICKER-3 criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1047473Z   [must] requirement_quality REQ-PICKER-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1047720Z   [must] requirement_quality REQ-PICKER-4 criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1048160Z   [must] requirement_quality REQ-PICKER-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1048413Z   [must] requirement_quality REQ-PICKER-5 criterion=length — title is 147 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1048811Z   [must] requirement_quality REQ-PICKER-ADAPTER-DESCRIPTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1049215Z   [must] requirement_quality REQ-PICKER-ADAPTER-DESCRIPTION criterion=length — title is 64 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1049581Z   [must] requirement_quality REQ-PICKER-BACK-NAV criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1049849Z   [must] requirement_quality REQ-PICKER-BACK-NAV criterion=length — title is 140 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1050263Z   [must] requirement_quality REQ-PICKER-CHANGE-ADAPTER-FLOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1050563Z   [must] requirement_quality REQ-PICKER-CHANGE-ADAPTER-FLOW criterion=length — title is 117 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1050951Z   [must] requirement_quality REQ-PICKER-CHOOSE-DEDUP-ALL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1051244Z   [must] requirement_quality REQ-PICKER-CHOOSE-DEDUP-ALL criterion=length — title is 72 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1051570Z   [must] requirement_quality REQ-PICKER-CONTROL-LINE-STATUS-GATE criterion=length — title is 71 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1051968Z   [must] requirement_quality REQ-PICKER-CONTROLLED-LOCAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1052258Z   [must] requirement_quality REQ-PICKER-CONTROLLED-LOCAL criterion=length — title is 129 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1052568Z   [must] requirement_quality REQ-PICKER-CURRENT-DIR-LABEL criterion=length — title is 114 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1052955Z   [must] requirement_quality REQ-PICKER-FORK-LABEL-CWD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1053241Z   [must] requirement_quality REQ-PICKER-FORK-LABEL-CWD criterion=length — title is 58 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1053527Z   [must] requirement_quality REQ-PICKER-HISTORY-FRESH criterion=length — title is 51 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1053900Z   [must] requirement_quality REQ-PICKER-HISTORY-FRESH criterion=tbd-todo — title contains placeholder marker 'TBD'
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1054226Z   [must] requirement_quality REQ-PICKER-KEY-GATE-LAUNCH-CAPABLE criterion=length — title is 89 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1054598Z   [must] requirement_quality REQ-PICKER-LIST-SCROLL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1054889Z   [must] requirement_quality REQ-PICKER-LIST-SCROLL criterion=length — title is 547 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1055176Z   [must] requirement_quality REQ-PICKER-NODE-GROUPING criterion=length — title is 73 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1055476Z   [must] requirement_quality REQ-PICKER-OFFLINE-NO-VIEW criterion=length — title is 46 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1055762Z   [must] requirement_quality REQ-PICKER-ONLINE-ACTION criterion=length — title is 74 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1056086Z   [must] requirement_quality REQ-PICKER-ONLINE-ACTION criterion=tbd-todo — title contains placeholder marker 'TBD'
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1056456Z   [must] requirement_quality REQ-PICKER-PROJECT-DISPLAY-NAME criterion=length — title is 103 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1056774Z   [must] requirement_quality REQ-PICKER-PROJECT-HISTORY-TRUTH criterion=length — title is 128 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1057156Z   [must] requirement_quality REQ-PICKER-PURGE-SHORTCUT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1057546Z   [must] requirement_quality REQ-PICKER-PURGE-SHORTCUT criterion=length — title is 180 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1057941Z   [must] requirement_quality REQ-PICKER-PURGE-STRUCTURED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1058237Z   [must] requirement_quality REQ-PICKER-PURGE-STRUCTURED criterion=length — title is 151 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1058615Z   [must] requirement_quality REQ-PICKER-REMOTE-WAKE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1058895Z   [must] requirement_quality REQ-PICKER-REMOTE-WAKE criterion=length — title is 296 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1059399Z   [must] requirement_quality REQ-PICKER-RESUME-CONTEXT-PANEL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1059717Z   [must] requirement_quality REQ-PICKER-RESUME-CONTEXT-PANEL criterion=length — title is 53 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1060132Z   [must] requirement_quality REQ-PICKER-SHORTCUT-LABEL-FILENAME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1060451Z   [must] requirement_quality REQ-PICKER-SHORTCUT-LABEL-FILENAME criterion=length — title is 75 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1060752Z   [must] requirement_quality REQ-PICKER-START-PROJECT-CHOICE criterion=length — title is 86 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1061128Z   [must] requirement_quality REQ-PICKER-UX-V013 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1061395Z   [must] requirement_quality REQ-PICKER-UX-V013 criterion=length — title is 86 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1061672Z   [must] requirement_quality REQ-PICKER-WINDOW-TITLE criterion=length — title is 68 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1062050Z   [must] requirement_quality REQ-PID-ROLE-EVIDENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1062332Z   [must] requirement_quality REQ-PID-ROLE-EVIDENCE criterion=length — title is 503 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1062693Z   [must] requirement_quality REQ-PLATFORM-MUSL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1062962Z   [must] requirement_quality REQ-PLATFORM-MUSL criterion=length — title is 106 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1063385Z   [must] requirement_quality REQ-PLATFORM-REGISTRY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1063666Z   [must] requirement_quality REQ-PLATFORM-REGISTRY criterion=length — title is 126 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1064048Z   [must] requirement_quality REQ-POOL-CLAIM-TREE-MATCH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1064344Z   [must] requirement_quality REQ-POOL-CLAIM-TREE-MATCH criterion=length — title is 143 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1064743Z   [must] requirement_quality REQ-POOL-FOREIGN-TREE-REFUSED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1065053Z   [must] requirement_quality REQ-POOL-FOREIGN-TREE-REFUSED criterion=length — title is 427 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1065440Z   [must] requirement_quality REQ-POOL-GC-ORPHAN-RECLAIM criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1065788Z   [must] requirement_quality REQ-POOL-GC-ORPHAN-RECLAIM criterion=length — title is 382 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1066193Z   [must] requirement_quality REQ-POOL-GUARD-NOT-SILENCEABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1066507Z   [must] requirement_quality REQ-POOL-GUARD-NOT-SILENCEABLE criterion=length — title is 222 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1066973Z   [must] requirement_quality REQ-POOL-LANE-IDENTITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1067262Z   [must] requirement_quality REQ-POOL-LANE-IDENTITY criterion=length — title is 299 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1067663Z   [must] requirement_quality REQ-POOL-ONE-LIVENESS-PREDICATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1067973Z   [must] requirement_quality REQ-POOL-ONE-LIVENESS-PREDICATE criterion=length — title is 127 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1068321Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1068559Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1069054Z   [must] requirement_quality REQ-PRESENCE-CONTROL-REAP-ON-EXIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1069379Z   [must] requirement_quality REQ-PRESENCE-CONTROL-REAP-ON-EXIT criterion=length — title is 139 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1069675Z   [must] requirement_quality REQ-PRESENCE-LIVENESS-TRUTH criterion=length — title is 215 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1069982Z   [must] requirement_quality REQ-PROJECT-INDEX-INVALIDATION criterion=length — title is 124 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1070386Z   [must] requirement_quality REQ-PROJECT-INDEX-READER-CUTOVER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1070710Z   [must] requirement_quality REQ-PROJECT-INDEX-READER-CUTOVER criterion=length — title is 143 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1070993Z   [must] requirement_quality REQ-PROJECT-INDEX-STORE criterion=length — title is 90 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1071288Z   [must] requirement_quality REQ-PROJECT-INDEX-WRITER criterion=length — title is 151 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1071693Z   [must] requirement_quality REQ-PSYCHE-ACCOUNT-REFUSAL-EXIT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1072003Z   [must] requirement_quality REQ-PSYCHE-ACCOUNT-REFUSAL-EXIT criterion=length — title is 321 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1072426Z   [must] requirement_quality REQ-PSYCHE-CONTEXT-FILE-INDIRECTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1072816Z   [must] requirement_quality REQ-PSYCHE-CONTEXT-FILE-INDIRECTION criterion=length — title is 206 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1073239Z   [must] requirement_quality REQ-PSYCHE-CRASHLOOP-BACKOFF-SHUTDOWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1073573Z   [must] requirement_quality REQ-PSYCHE-CRASHLOOP-BACKOFF-SHUTDOWN criterion=length — title is 90 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1073973Z   [must] requirement_quality REQ-PSYCHE-EPHEMERAL-DRIVER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1074270Z   [must] requirement_quality REQ-PSYCHE-EPHEMERAL-DRIVER criterion=length — title is 146 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1074705Z   [must] requirement_quality REQ-PSYCHE-FAULT-SLOTS-SURVIVE-RESTART criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1075039Z   [must] requirement_quality REQ-PSYCHE-FAULT-SLOTS-SURVIVE-RESTART criterion=length — title is 586 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1075498Z   [must] requirement_quality REQ-PSYCHE-HARD-BUDGET-PER-KIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1075803Z   [must] requirement_quality REQ-PSYCHE-HARD-BUDGET-PER-KIND criterion=length — title is 441 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1076204Z   [must] requirement_quality REQ-PSYCHE-INGEST-FAILURE-LOUD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1076601Z   [must] requirement_quality REQ-PSYCHE-INGEST-FAILURE-LOUD criterion=length — title is 631 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1077020Z   [must] requirement_quality REQ-PSYCHE-INGEST-FAULT-BRIEF-WARN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1077348Z   [must] requirement_quality REQ-PSYCHE-INGEST-FAULT-BRIEF-WARN criterion=length — title is 296 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1077750Z   [must] requirement_quality REQ-PSYCHE-INGEST-INTENT-MARKER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1078065Z   [must] requirement_quality REQ-PSYCHE-INGEST-INTENT-MARKER criterion=length — title is 372 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1078456Z   [must] requirement_quality REQ-PSYCHE-INGEST-SERIALIZED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1078766Z   [must] requirement_quality REQ-PSYCHE-INGEST-SERIALIZED criterion=length — title is 556 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1079281Z   [must] requirement_quality REQ-PSYCHE-INVOCATION-BUDGET-PER-ROLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1079615Z   [must] requirement_quality REQ-PSYCHE-INVOCATION-BUDGET-PER-ROLE criterion=length — title is 341 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1080020Z   [must] requirement_quality REQ-PSYCHE-LEGACY-RESIDENT-SWEEP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1080343Z   [must] requirement_quality REQ-PSYCHE-LEGACY-RESIDENT-SWEEP criterion=length — title is 282 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1080728Z   [must] requirement_quality REQ-PSYCHE-NESTED-RESOLUTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1081027Z   [must] requirement_quality REQ-PSYCHE-NESTED-RESOLUTION criterion=length — title is 147 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1081434Z   [must] requirement_quality REQ-PSYCHE-OUTCOME-CLASSIFIED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1081739Z   [must] requirement_quality REQ-PSYCHE-OUTCOME-CLASSIFIED criterion=length — title is 260 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1082139Z   [must] requirement_quality REQ-PSYCHE-ROLE-ABSENT-STATUS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1082496Z   [must] requirement_quality REQ-PSYCHE-ROLE-ABSENT-STATUS criterion=length — title is 333 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1082891Z   [must] requirement_quality REQ-PSYCHE-ROLE-OPTIONAL-SKIP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1083194Z   [must] requirement_quality REQ-PSYCHE-ROLE-OPTIONAL-SKIP criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1083570Z   [must] requirement_quality REQ-PSYCHE-SID-CUSTODY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1083856Z   [must] requirement_quality REQ-PSYCHE-SID-CUSTODY criterion=length — title is 134 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1084249Z   [must] requirement_quality REQ-PSYCHE-SOFT-TIMEOUT-BUDGET criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1084558Z   [must] requirement_quality REQ-PSYCHE-SOFT-TIMEOUT-BUDGET criterion=length — title is 250 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1085006Z   [must] requirement_quality REQ-PSYCHE-SPAWN-ENV-PARITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1085298Z   [must] requirement_quality REQ-PSYCHE-SPAWN-ENV-PARITY criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1085715Z   [must] requirement_quality REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1086139Z   [must] requirement_quality REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS criterion=length — title is 276 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1086541Z   [must] requirement_quality REQ-PSYCHE-TURN-STREAM-EVIDENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1086851Z   [must] requirement_quality REQ-PSYCHE-TURN-STREAM-EVIDENCE criterion=length — title is 156 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1087232Z   [must] requirement_quality REQ-PUBLIC-ERROR-SURFACES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1087532Z   [must] requirement_quality REQ-PUBLIC-ERROR-SURFACES criterion=length — title is 387 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1087899Z   [must] requirement_quality REQ-PUMP-DIAL-FASTFAIL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1088188Z   [must] requirement_quality REQ-PUMP-DIAL-FASTFAIL criterion=length — title is 324 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1088568Z   [must] requirement_quality REQ-PUMP-PEER-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1088850Z   [must] requirement_quality REQ-PUMP-PEER-ISOLATION criterion=length — title is 199 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1089306Z   [must] requirement_quality REQ-PUMP-STAGE-TRUTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1089584Z   [must] requirement_quality REQ-PUMP-STAGE-TRUTH criterion=length — title is 168 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1089818Z   [must] requirement_quality REQ-RC-1 criterion=length — title is 94 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1090194Z   [must] requirement_quality REQ-RC-CROSS-NODE-ATTACH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1090475Z   [must] requirement_quality REQ-RC-CROSS-NODE-ATTACH criterion=length — title is 95 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1090875Z   [must] requirement_quality REQ-RC-DISPLAY-SOLE-WRITER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1091164Z   [must] requirement_quality REQ-RC-DISPLAY-SOLE-WRITER criterion=length — title is 351 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1091559Z   [must] requirement_quality REQ-RC-DRIVER-READ-LIVENESS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1091912Z   [must] requirement_quality REQ-RC-DRIVER-READ-LIVENESS criterion=length — title is 446 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1092299Z   [must] requirement_quality REQ-RC-HARNESS-ONLY-REFUSAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1092590Z   [must] requirement_quality REQ-RC-HARNESS-ONLY-REFUSAL criterion=length — title is 129 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1092910Z   [must] requirement_quality REQ-RC-HONEST-SESSION-AUTHORITY criterion=length — title is 144 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1093258Z   [must] requirement_quality REQ-RC-IDENTITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1093518Z   [must] requirement_quality REQ-RC-IDENTITY criterion=length — title is 122 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1093888Z   [must] requirement_quality REQ-RC-IDMARKER-DISABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1094174Z   [must] requirement_quality REQ-RC-IDMARKER-DISABLE criterion=length — title is 73 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1094589Z   [must] requirement_quality REQ-RC-KEY-VT-TRANSLATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1094871Z   [must] requirement_quality REQ-RC-KEY-VT-TRANSLATE criterion=length — title is 249 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1095346Z   [must] requirement_quality REQ-RC-MOUSE-FORWARD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1095618Z   [must] requirement_quality REQ-RC-MOUSE-FORWARD criterion=length — title is 218 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1096034Z   [must] requirement_quality REQ-RC-NEWLINE-PRESENTATION-TRUTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1096346Z   [must] requirement_quality REQ-RC-NEWLINE-PRESENTATION-TRUTH criterion=length — title is 174 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1096675Z   [must] requirement_quality REQ-RC-QUALIFIED-TARGET-CANONICAL criterion=length — title is 117 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1097029Z   [must] requirement_quality REQ-RC-RECONNECT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1097286Z   [must] requirement_quality REQ-RC-RECONNECT criterion=length — title is 244 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1097668Z   [must] requirement_quality REQ-RC-RECONNECT-TRUTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1097940Z   [must] requirement_quality REQ-RC-RECONNECT-TRUTH criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1098331Z   [must] requirement_quality REQ-RC-RESIZE-GEOMETRY-EPOCH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1098634Z   [must] requirement_quality REQ-RC-RESIZE-GEOMETRY-EPOCH criterion=length — title is 1038 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1099143Z   [must] requirement_quality REQ-RC-RESIZE-PRESENTATION-BARRIER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1099472Z   [must] requirement_quality REQ-RC-RESIZE-PRESENTATION-BARRIER criterion=length — title is 1140 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1099853Z   [must] requirement_quality REQ-RC-SINGLE-PUMP-BRAIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1100148Z   [must] requirement_quality REQ-RC-SINGLE-PUMP-BRAIN criterion=length — title is 171 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1100510Z   [must] requirement_quality REQ-RC-VT-TEARDOWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1100774Z   [must] requirement_quality REQ-RC-VT-TEARDOWN criterion=length — title is 149 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1101126Z   [must] requirement_quality REQ-RC-WIN-PASTE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1101573Z   [must] requirement_quality REQ-RC-WIN-PASTE criterion=length — title is 226 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1101934Z   [must] requirement_quality REQ-RC-WIN-VT-OUTPUT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1102206Z   [must] requirement_quality REQ-RC-WIN-VT-OUTPUT criterion=length — title is 150 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1102620Z   [must] requirement_quality REQ-RCVIEW-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1102873Z   [must] requirement_quality REQ-RCVIEW-1 criterion=length — title is 197 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1103217Z   [must] requirement_quality REQ-REACH-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1103461Z   [must] requirement_quality REQ-REACH-1 criterion=length — title is 82 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1103842Z   [must] requirement_quality REQ-READY-AGENT-RESUME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1104173Z   [must] requirement_quality REQ-READY-AGENT-RESUME criterion=length — title is 164 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1104591Z   [must] requirement_quality REQ-RECONCILE-FAILED-ADDR-REFUSE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1105010Z   [must] requirement_quality REQ-RECONCILE-FAILED-ADDR-REFUSE criterion=length — title is 154 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1105325Z   [must] requirement_quality REQ-REDISPATCH-FINISHED-RETIRE criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1105741Z   [must] requirement_quality REQ-REGISTRY-APPLY-TRANSACTIONAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1106056Z   [must] requirement_quality REQ-REGISTRY-APPLY-TRANSACTIONAL criterion=length — title is 129 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1106361Z   [must] requirement_quality REQ-REGISTRY-REPLAY-BOUNDED criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1106695Z   [must] requirement_quality REQ-REL-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1106930Z   [must] requirement_quality REQ-REL-1 criterion=length — title is 61 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1107337Z   [must] requirement_quality REQ-RELAY-DEATH-CONVERGENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1107633Z   [must] requirement_quality REQ-RELAY-DEATH-CONVERGENCE criterion=length — title is 304 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1107928Z   [must] requirement_quality REQ-RELAY-NO-BUSY-DELIVER criterion=length — title is 159 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1108233Z   [must] requirement_quality REQ-RELEASE-CHANNEL-PRIVATE criterion=length — title is 97 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1108528Z   [must] requirement_quality REQ-RELEASE-MUSL-ARTIFACT criterion=length — title is 114 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1108930Z   [must] requirement_quality REQ-RELEASE-VERSION-TAG-ASSERT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1109322Z   [must] requirement_quality REQ-RELEASE-VERSION-TAG-ASSERT criterion=length — title is 348 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1109707Z   [must] requirement_quality REQ-RESIDENT-SERVICE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1109989Z   [must] requirement_quality REQ-RESIDENT-SERVICE criterion=length — title is 3453 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1110389Z   [must] requirement_quality REQ-RESIZE-INPUT-MODE-INTEGRITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1110708Z   [must] requirement_quality REQ-RESIZE-INPUT-MODE-INTEGRITY criterion=length — title is 465 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1111158Z   [must] requirement_quality REQ-REST-TERMINAL-NORMALIZE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1111459Z   [must] requirement_quality REQ-REST-TERMINAL-NORMALIZE criterion=length — title is 130 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1111825Z   [must] requirement_quality REQ-REST-VERB-ROUTING criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1112194Z   [must] requirement_quality REQ-REST-VERB-ROUTING criterion=length — title is 326 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1112622Z   [must] requirement_quality REQ-RESUME-ADAPTER-FOLLOWS-SESSION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1112946Z   [must] requirement_quality REQ-RESUME-ADAPTER-FOLLOWS-SESSION criterion=length — title is 275 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1113328Z   [must] requirement_quality REQ-RESUME-CONTEXT-PULL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1113666Z   [must] requirement_quality REQ-RESUME-CONTEXT-PULL criterion=length — title is 460 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1114053Z   [must] requirement_quality REQ-RESUME-CUSTODY-IDENTITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1114354Z   [must] requirement_quality REQ-RESUME-CUSTODY-IDENTITY criterion=length — title is 206 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1114657Z   [must] requirement_quality REQ-RESUME-HARNESS-SESSION-ID criterion=length — title is 128 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1114965Z   [must] requirement_quality REQ-RESUME-REAP-PRIOR-HARNESS criterion=length — title is 54 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1115260Z   [must] requirement_quality REQ-RESUME-ROW-PER-PROJECT criterion=length — title is 59 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1115643Z   [must] requirement_quality REQ-RESUME-UNBOUND-STAMP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1115938Z   [must] requirement_quality REQ-RESUME-UNBOUND-STAMP criterion=length — title is 153 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1116291Z   [must] requirement_quality REQ-RING-BLOCKS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1116558Z   [must] requirement_quality REQ-RING-BLOCKS criterion=length — title is 826 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1116945Z   [must] requirement_quality REQ-RING-TIMEOUT-MINUTES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1117231Z   [must] requirement_quality REQ-RING-TIMEOUT-MINUTES criterion=length — title is 387 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1117620Z   [must] requirement_quality REQ-ROSTER-SELF-LEASE-HEAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1117911Z   [must] requirement_quality REQ-ROSTER-SELF-LEASE-HEAL criterion=length — title is 320 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1118326Z   [must] requirement_quality REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1118645Z   [must] requirement_quality REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP criterion=length — title is 144 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1118931Z   [must] requirement_quality REQ-RUN-EMPTY-CREATE criterion=length — title is 63 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1119403Z   [must] requirement_quality REQ-RUN-ID-REUSES-ADAPTER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1119688Z   [must] requirement_quality REQ-RUN-ID-REUSES-ADAPTER criterion=length — title is 174 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1120072Z   [must] requirement_quality REQ-RUN-MULTISUBNET-HOME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1120420Z   [must] requirement_quality REQ-RUN-MULTISUBNET-HOME criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1120792Z   [must] requirement_quality REQ-RUN-NO-DUP-SESSION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1121079Z   [must] requirement_quality REQ-RUN-NO-DUP-SESSION criterion=length — title is 137 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1121621Z   [must] requirement_quality REQ-RUN-PICKER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1121884Z   [must] requirement_quality REQ-RUN-PICKER criterion=length — title is 203 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1122256Z   [must] requirement_quality REQ-RUN-PICKER-HOME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1122522Z   [must] requirement_quality REQ-RUN-PICKER-HOME criterion=length — title is 154 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1122881Z   [must] requirement_quality REQ-RUN-SHORTCUT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1123191Z   [must] requirement_quality REQ-RUN-SHORTCUT criterion=length — title is 232 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1123612Z   [must] requirement_quality REQ-SCREENGRID-REPAINT-MODE-REPLAY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1123946Z   [must] requirement_quality REQ-SCREENGRID-REPAINT-MODE-REPLAY criterion=length — title is 100 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1124313Z   [must] requirement_quality REQ-SCREENGRID-WIDTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1124585Z   [must] requirement_quality REQ-SCREENGRID-WIDTH criterion=length — title is 254 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1124976Z   [must] requirement_quality REQ-SEAL-AUTH-BACKEND-SEAM criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1125274Z   [must] requirement_quality REQ-SEAL-AUTH-BACKEND-SEAM criterion=length — title is 535 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1125688Z   [must] requirement_quality REQ-SEAL-CEREMONY-CONTENT-SHOWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1126007Z   [must] requirement_quality REQ-SEAL-CEREMONY-CONTENT-SHOWN criterion=length — title is 310 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1126416Z   [must] requirement_quality REQ-SEAL-CEREMONY-ESC-CANCEL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1126731Z   [must] requirement_quality REQ-SEAL-CEREMONY-ESC-CANCEL criterion=length — title is 190 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1127113Z   [must] requirement_quality REQ-SEAL-CEREMONY-FIDO2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1127399Z   [must] requirement_quality REQ-SEAL-CEREMONY-FIDO2 criterion=length — title is 417 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1127800Z   [must] requirement_quality REQ-SEAL-CEREMONY-RC-CLIENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1128103Z   [must] requirement_quality REQ-SEAL-CEREMONY-RC-CLIENT criterion=length — title is 206 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1128485Z   [must] requirement_quality REQ-SEAL-CEREMONY-TOTP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1128782Z   [must] requirement_quality REQ-SEAL-CEREMONY-TOTP criterion=length — title is 436 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1129233Z   [must] requirement_quality REQ-SEAL-DESCRIBE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1129500Z   [must] requirement_quality REQ-SEAL-DESCRIBE criterion=length — title is 470 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1129944Z   [must] requirement_quality REQ-SEAL-ENROLL-RECORD-SUBNET-MATERIAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1130353Z   [must] requirement_quality REQ-SEAL-ENROLL-RECORD-SUBNET-MATERIAL criterion=length — title is 425 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1130742Z   [must] requirement_quality REQ-SEAL-ENROLL-SHORTCUT-E criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1131137Z   [must] requirement_quality REQ-SEAL-ENROLL-SHORTCUT-E criterion=length — title is 232 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1131514Z   [must] requirement_quality REQ-SEAL-ENROLL-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1131790Z   [must] requirement_quality REQ-SEAL-ENROLL-VERB criterion=length — title is 535 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1132172Z   [must] requirement_quality REQ-SEAL-ENVELOPE-ATTR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1132458Z   [must] requirement_quality REQ-SEAL-ENVELOPE-ATTR criterion=length — title is 300 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1132898Z   [must] requirement_quality REQ-SEAL-FIDO2-RC-CLIENT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1133196Z   [must] requirement_quality REQ-SEAL-FIDO2-RC-CLIENT criterion=length — title is 284 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1133590Z   [must] requirement_quality REQ-SEAL-FIDO2-SIG-VERIFY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1133886Z   [must] requirement_quality REQ-SEAL-FIDO2-SIG-VERIFY criterion=length — title is 406 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1134253Z   [must] requirement_quality REQ-SEAL-MINT-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1134530Z   [must] requirement_quality REQ-SEAL-MINT-VERB criterion=length — title is 295 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1134934Z   [must] requirement_quality REQ-SEAL-NO-CEREMONY-SURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1135249Z   [must] requirement_quality REQ-SEAL-NO-CEREMONY-SURFACE criterion=length — title is 199 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1135606Z   [must] requirement_quality REQ-SEAL-RECORD criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1135872Z   [must] requirement_quality REQ-SEAL-RECORD criterion=length — title is 281 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1136248Z   [must] requirement_quality REQ-SEAL-SEND-SEALED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1136523Z   [must] requirement_quality REQ-SEAL-SEND-SEALED criterion=length — title is 485 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1136971Z   [must] requirement_quality REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1137325Z   [must] requirement_quality REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED criterion=length — title is 439 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1137736Z   [must] requirement_quality REQ-SEAL-SUBNET-BINDING-DEFAULT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1138060Z   [must] requirement_quality REQ-SEAL-SUBNET-BINDING-DEFAULT criterion=length — title is 255 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1138441Z   [must] requirement_quality REQ-SEAL-TOKEN-FORMAT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1138731Z   [must] requirement_quality REQ-SEAL-TOKEN-FORMAT criterion=length — title is 239 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1139231Z   [must] requirement_quality REQ-SEAL-VERIFY-CONTENT-BOUND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1139603Z   [must] requirement_quality REQ-SEAL-VERIFY-CONTENT-BOUND criterion=length — title is 505 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1139874Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1140267Z   [must] requirement_quality REQ-SEAT-LIFETIME-BOUNDED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1140562Z   [must] requirement_quality REQ-SEAT-LIFETIME-BOUNDED criterion=length — title is 144 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1141078Z   [must] requirement_quality REQ-SEC-REPLY-EXEMPTION-SEND-LEG criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1141402Z   [must] requirement_quality REQ-SEC-REPLY-EXEMPTION-SEND-LEG criterion=length — title is 650 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1141816Z   [must] requirement_quality REQ-SELF-ADDR-REBIND-READVERTISE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1142141Z   [must] requirement_quality REQ-SELF-ADDR-REBIND-READVERTISE criterion=length — title is 199 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1142575Z   [must] requirement_quality REQ-SELF-DETECT-PARENT-PID criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1142871Z   [must] requirement_quality REQ-SELF-DETECT-PARENT-PID criterion=length — title is 224 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1143275Z   [must] requirement_quality REQ-SELF-ENDPOINT-ADDR-SURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1143590Z   [must] requirement_quality REQ-SELF-ENDPOINT-ADDR-SURFACE criterion=length — title is 226 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1143987Z   [must] requirement_quality REQ-SELF-ID-TRUST-INJECTED-ENV criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1144293Z   [must] requirement_quality REQ-SELF-ID-TRUST-INJECTED-ENV criterion=length — title is 232 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1144683Z   [must] requirement_quality REQ-SEND-REPLYTO-REMOVE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1144965Z   [must] requirement_quality REQ-SEND-REPLYTO-REMOVE criterion=length — title is 159 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1145332Z   [must] requirement_quality REQ-SEND-SPT-HOSTED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1145608Z   [must] requirement_quality REQ-SEND-SPT-HOSTED criterion=length — title is 169 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1145977Z   [must] requirement_quality REQ-SEND-STAMP-AGENT-ID criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1146261Z   [must] requirement_quality REQ-SEND-STAMP-AGENT-ID criterion=length — title is 189 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1146650Z   [must] requirement_quality REQ-SEND-WINDOW-DRAIN-HONOR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1146959Z   [must] requirement_quality REQ-SEND-WINDOW-DRAIN-HONOR criterion=length — title is 359 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1147269Z   [must] requirement_quality REQ-SERVE-OWNERSHIP-GENERATION criterion=length — title is 131 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1147652Z   [must] requirement_quality REQ-SESSION-ADAPTER-RECORDED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1147962Z   [must] requirement_quality REQ-SESSION-ADAPTER-RECORDED criterion=length — title is 205 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1148352Z   [must] requirement_quality REQ-SESSION-RESUME-TEMPLATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1148649Z   [must] requirement_quality REQ-SESSION-RESUME-TEMPLATE criterion=length — title is 287 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1149156Z   [must] requirement_quality REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1149572Z   [must] requirement_quality REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1149814Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1150149Z   [must] requirement_quality REQ-SHELL-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1150492Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 104 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1150735Z   [must] requirement_quality REQ-SHELL-3 criterion=length — title is 80 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1151069Z   [must] requirement_quality REQ-SHELL-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1151302Z   [must] requirement_quality REQ-SHELL-4 criterion=length — title is 84 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1151590Z   [must] requirement_quality REQ-SHELL-5 criterion=length — title is 49 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1152032Z   [must] requirement_quality REQ-SHELL-ADAPTER-OWNED-DETACHED-SERVICE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1152381Z   [must] requirement_quality REQ-SHELL-ADAPTER-OWNED-DETACHED-SERVICE criterion=length — title is 1004 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1152797Z   [must] requirement_quality REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1153112Z   [must] requirement_quality REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE criterion=length — title is 759 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1153389Z   [must] requirement_quality REQ-SHELL-FRAME-VOCAB criterion=length — title is 253 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1153742Z   [must] requirement_quality REQ-SHELL-HINTS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1154003Z   [must] requirement_quality REQ-SHELL-HINTS criterion=length — title is 479 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1154402Z   [must] requirement_quality REQ-SHELL-KILL-AUTHENTICATED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1154700Z   [must] requirement_quality REQ-SHELL-KILL-AUTHENTICATED criterion=length — title is 878 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1155120Z   [must] requirement_quality REQ-SHELL-LIST-DERIVED-PROVENANCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1155440Z   [must] requirement_quality REQ-SHELL-LIST-DERIVED-PROVENANCE criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1155840Z   [must] requirement_quality REQ-SHELL-OWNER-ONLINE-RESTORE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1156202Z   [must] requirement_quality REQ-SHELL-OWNER-ONLINE-RESTORE criterion=length — title is 520 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1156566Z   [must] requirement_quality REQ-SHELL-PERCH-DIR criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1156840Z   [must] requirement_quality REQ-SHELL-PERCH-DIR criterion=length — title is 275 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1157257Z   [must] requirement_quality REQ-SHELL-PERSISTENT-BOOT-RESTORE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1157578Z   [must] requirement_quality REQ-SHELL-PERSISTENT-BOOT-RESTORE criterion=length — title is 655 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1157949Z   [must] requirement_quality REQ-SHELL-RELINK-FORCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1158231Z   [must] requirement_quality REQ-SHELL-RELINK-FORCE criterion=length — title is 831 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1158655Z   [must] requirement_quality REQ-SOFT-END-PRESERVES-LIVE-LISTENER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1159074Z   [must] requirement_quality REQ-SOFT-END-PRESERVES-LIVE-LISTENER criterion=length — title is 246 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1159490Z   [must] requirement_quality REQ-SPAWN-COLLISION-GUARD-LIVE-DUP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1159904Z   [must] requirement_quality REQ-SPAWN-COLLISION-GUARD-LIVE-DUP criterion=length — title is 480 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1160203Z   [must] requirement_quality REQ-SPAWN-FRESH-TRUTHFUL criterion=length — title is 162 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1160476Z   [must] requirement_quality REQ-SPOOL-TAKE-AUDIT criterion=length — title is 50 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1160866Z   [must] requirement_quality REQ-STAMP-CONVERGENCE-ORDER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1161219Z   [must] requirement_quality REQ-STAMP-CONVERGENCE-ORDER criterion=length — title is 108 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1161552Z   [must] requirement_quality REQ-START-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1161796Z   [must] requirement_quality REQ-START-5 criterion=length — title is 129 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1162043Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1162345Z   [must] requirement_quality REQ-STORE-CONTEXT-BRANCH-FILL criterion=length — title is 73 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1162651Z   [must] requirement_quality REQ-STREAM-INFOS-SERVER-FILTER criterion=length — title is 81 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1162931Z   [must] requirement_quality REQ-STREAM-LEASE-CLASSES criterion=length — title is 168 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1163324Z   [must] requirement_quality REQ-STREAM-LIFETIME-CLASS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1163619Z   [must] requirement_quality REQ-STREAM-LIFETIME-CLASS criterion=length — title is 764 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1163996Z   [must] requirement_quality REQ-STREAM-OPENER-DURABLE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1164292Z   [must] requirement_quality REQ-STREAM-OPENER-DURABLE criterion=length — title is 155 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1164710Z   [must] requirement_quality REQ-STREAMLOG-SUBSCRIBER-DISCIPLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1165041Z   [must] requirement_quality REQ-STREAMLOG-SUBSCRIBER-DISCIPLINE criterion=length — title is 192 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1165290Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1165680Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1165933Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1166267Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1166506Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1166757Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1167145Z   [must] requirement_quality REQ-SUBNET-ADMIN-CODE-JOIN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1167438Z   [must] requirement_quality REQ-SUBNET-ADMIN-CODE-JOIN criterion=length — title is 155 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1167827Z   [must] requirement_quality REQ-SUBNET-ADMIN-RESURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1168266Z   [must] requirement_quality REQ-SUBNET-ADMIN-RESURFACE criterion=length — title is 274 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1168675Z   [must] requirement_quality REQ-SUBNET-ADMIN-SEED-REPLICATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1169172Z   [must] requirement_quality REQ-SUBNET-ADMIN-SEED-REPLICATION criterion=length — title is 196 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1169582Z   [must] requirement_quality REQ-SUBNET-ADMIN-SEED-ROTATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1169887Z   [must] requirement_quality REQ-SUBNET-ADMIN-SEED-ROTATION criterion=length — title is 209 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1170177Z   [must] requirement_quality REQ-SUBNET-COUNT-ROUTABLE criterion=length — title is 78 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1170586Z   [must] requirement_quality REQ-SUBNET-CREATE-CAPTURE-PROOF criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1170901Z   [must] requirement_quality REQ-SUBNET-CREATE-CAPTURE-PROOF criterion=length — title is 211 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1171278Z   [must] requirement_quality REQ-SUBNET-DISPLAY-PARITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1171583Z   [must] requirement_quality REQ-SUBNET-DISPLAY-PARITY criterion=length — title is 166 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1171961Z   [must] requirement_quality REQ-SUBNET-DUAL-SEED-MINT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1172252Z   [must] requirement_quality REQ-SUBNET-DUAL-SEED-MINT criterion=length — title is 198 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1172622Z   [must] requirement_quality REQ-SUBNET-EMPOWER-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1172910Z   [must] requirement_quality REQ-SUBNET-EMPOWER-VERB criterion=length — title is 221 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1173311Z   [must] requirement_quality REQ-SUBNET-KEY-SCREENS-LABELLED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1173616Z   [must] requirement_quality REQ-SUBNET-KEY-SCREENS-LABELLED criterion=length — title is 509 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1174017Z   [must] requirement_quality REQ-SUBNET-MINT-CAPTURES-MODE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1174322Z   [must] requirement_quality REQ-SUBNET-MINT-CAPTURES-MODE criterion=length — title is 483 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1174708Z   [must] requirement_quality REQ-SUBNET-REVOKE-ADMIN-GATE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1175061Z   [must] requirement_quality REQ-SUBNET-REVOKE-ADMIN-GATE criterion=length — title is 164 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1175441Z   [must] requirement_quality REQ-SUBNET-STATUS-MODES criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1175724Z   [must] requirement_quality REQ-SUBNET-STATUS-MODES criterion=length — title is 160 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1176155Z   [must] requirement_quality REQ-SUBNET-STATUS-MODES-EVERY-VIEW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1176484Z   [must] requirement_quality REQ-SUBNET-STATUS-MODES-EVERY-VIEW criterion=length — title is 273 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1176884Z   [must] requirement_quality REQ-TEARDOWN-UNCOOPERATIVE-HOST criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1177198Z   [must] requirement_quality REQ-TEARDOWN-UNCOOPERATIVE-HOST criterion=length — title is 136 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1177532Z   [must] requirement_quality REQ-TERM-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1177823Z   [must] requirement_quality REQ-TERM-5 criterion=length — title is 71 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1178159Z   [must] requirement_quality REQ-TERM-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1178464Z   [must] requirement_quality REQ-TERM-6 criterion=length — title is 53 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1178803Z   [must] requirement_quality REQ-TERM-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1179131Z   [must] requirement_quality REQ-TERM-7 criterion=length — title is 216 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1179517Z   [must] requirement_quality REQ-TERM-ECHO-CLAMP-WINDOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1179818Z   [must] requirement_quality REQ-TERM-ECHO-CLAMP-WINDOW criterion=length — title is 291 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1180253Z   [must] requirement_quality REQ-TEST-DAEMON-EPHEMERAL-ADVISORY-PORTS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1180600Z   [must] requirement_quality REQ-TEST-DAEMON-EPHEMERAL-ADVISORY-PORTS criterion=length — title is 133 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1180980Z   [must] requirement_quality REQ-TEST-ENV-ONE-LOCK criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1181262Z   [must] requirement_quality REQ-TEST-ENV-ONE-LOCK criterion=length — title is 539 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1181691Z   [must] requirement_quality REQ-TEST-LIVENESS-ORACLE-AUTHENTICATED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1182034Z   [must] requirement_quality REQ-TEST-LIVENESS-ORACLE-AUTHENTICATED criterion=length — title is 410 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1182458Z   [must] requirement_quality REQ-TEST-RIG-DAEMON-TEARDOWN-PROVEN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1182782Z   [must] requirement_quality REQ-TEST-RIG-DAEMON-TEARDOWN-PROVEN criterion=length — title is 515 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1183153Z   [must] requirement_quality REQ-TEST-TMPDIR-HYGIENE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1183447Z   [must] requirement_quality REQ-TEST-TMPDIR-HYGIENE criterion=length — title is 348 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1183871Z   [must] requirement_quality REQ-TRANSLATE-BINARY-LIVENESS-DECAY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1184195Z   [must] requirement_quality REQ-TRANSLATE-BINARY-LIVENESS-DECAY criterion=length — title is 94 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1184624Z   [must] requirement_quality REQ-TRANSLATE-COMMAND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1184901Z   [must] requirement_quality REQ-TRANSLATE-COMMAND criterion=length — title is 137 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1185320Z   [must] requirement_quality REQ-TRANSLATE-COMMIT-MISS-TOLERANCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1185655Z   [must] requirement_quality REQ-TRANSLATE-COMMIT-MISS-TOLERANCE criterion=length — title is 131 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1186006Z   [must] requirement_quality REQ-TRUST-WARNING criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1186279Z   [must] requirement_quality REQ-TRUST-WARNING criterion=length — title is 898 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1186662Z   [must] requirement_quality REQ-TRUST-WARNING-CADENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1186953Z   [must] requirement_quality REQ-TRUST-WARNING-CADENCE criterion=length — title is 961 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1187405Z   [must] requirement_quality REQ-TRUST-WARNING-ENVELOPE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1187697Z   [must] requirement_quality REQ-TRUST-WARNING-ENVELOPE criterion=length — title is 724 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1188187Z   [must] requirement_quality REQ-TRUST-WARNING-OVERRIDE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1188477Z   [must] requirement_quality REQ-TRUST-WARNING-OVERRIDE criterion=length — title is 624 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1188890Z   [must] requirement_quality REQ-UNLISTED-ANSWERED-CROSS-NODE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1189291Z   [must] requirement_quality REQ-UNLISTED-ANSWERED-CROSS-NODE criterion=length — title is 518 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1189682Z   [must] requirement_quality REQ-UNLISTED-CONTACT-LEDGER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1189982Z   [must] requirement_quality REQ-UNLISTED-CONTACT-LEDGER criterion=length — title is 234 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1190344Z   [must] requirement_quality REQ-UNLISTED-EVIDENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1190630Z   [must] requirement_quality REQ-UNLISTED-EVIDENCE criterion=length — title is 348 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1191017Z   [must] requirement_quality REQ-UNLISTED-EVIDENCE-ROUTE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1191311Z   [must] requirement_quality REQ-UNLISTED-EVIDENCE-ROUTE criterion=length — title is 237 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1191697Z   [must] requirement_quality REQ-UNLISTED-FOOTER-OMITTED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1191997Z   [must] requirement_quality REQ-UNLISTED-FOOTER-OMITTED criterion=length — title is 368 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1192389Z   [must] requirement_quality REQ-UNLISTED-PRESENCE-PROBE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1192689Z   [must] requirement_quality REQ-UNLISTED-PRESENCE-PROBE criterion=length — title is 345 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1193057Z   [must] requirement_quality REQ-UNLISTED-RENDER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1193328Z   [must] requirement_quality REQ-UNLISTED-RENDER criterion=length — title is 191 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1193655Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1193953Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1194282Z   [must] requirement_quality REQ-UPD-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1194512Z   [must] requirement_quality REQ-UPD-7 criterion=length — title is 88 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1194836Z   [must] requirement_quality REQ-UPD-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1195079Z   [must] requirement_quality REQ-UPD-8 criterion=length — title is 115 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1195314Z   [must] requirement_quality REQ-UPD-9 criterion=length — title is 110 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1195600Z   [must] requirement_quality REQ-UPDATE-ADAPTERS-VERB criterion=length — title is 113 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1196010Z   [must] requirement_quality REQ-UPDATE-APPLY-ALREADY-APPLIED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1196385Z   [must] requirement_quality REQ-UPDATE-APPLY-ALREADY-APPLIED criterion=length — title is 120 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1196783Z   [must] requirement_quality REQ-UPDATE-APPLY-RESTART-NOTICE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1197093Z   [must] requirement_quality REQ-UPDATE-APPLY-RESTART-NOTICE criterion=length — title is 81 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1197618Z   [must] requirement_quality REQ-UPDATE-COMPOSITE-EXIT-PRECEDENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1197951Z   [must] requirement_quality REQ-UPDATE-COMPOSITE-EXIT-PRECEDENCE criterion=length — title is 479 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1198346Z   [must] requirement_quality REQ-UPDATE-DEFAULT-COMPOSITE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1198652Z   [must] requirement_quality REQ-UPDATE-DEFAULT-COMPOSITE criterion=length — title is 135 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1199032Z   [must] requirement_quality REQ-UPDATE-FETCH-APPLY-FLAG criterion=length — title is 123 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1199421Z   [must] requirement_quality REQ-UPDATE-FETCH-CURRENT-UX criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1199711Z   [must] requirement_quality REQ-UPDATE-FETCH-CURRENT-UX criterion=length — title is 134 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1200127Z   [must] requirement_quality REQ-UPDATE-FINISH-COMMUNE-FLUSH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1200438Z   [must] requirement_quality REQ-UPDATE-FINISH-COMMUNE-FLUSH criterion=length — title is 215 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1200757Z   [must] requirement_quality REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL criterion=length — title is 74 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1201134Z   [must] requirement_quality REQ-UPDATE-GH-TRANSPORT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1201420Z   [must] requirement_quality REQ-UPDATE-GH-TRANSPORT criterion=length — title is 169 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1201806Z   [must] requirement_quality REQ-UPDATE-ONE-SHOT-FINISH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1202105Z   [must] requirement_quality REQ-UPDATE-ONE-SHOT-FINISH criterion=length — title is 94 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1202533Z   [must] requirement_quality REQ-UPDATE-PROMOTE-DRAINED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1202835Z   [must] requirement_quality REQ-UPDATE-PROMOTE-DRAINED criterion=length — title is 167 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1203239Z   [must] requirement_quality REQ-UPDATE-REFUSAL-EXIT-DISTINCT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1203622Z   [must] requirement_quality REQ-UPDATE-REFUSAL-EXIT-DISTINCT criterion=length — title is 490 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1204018Z   [must] requirement_quality REQ-UPDATE-RESTART-SAFE-SWAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1204316Z   [must] requirement_quality REQ-UPDATE-RESTART-SAFE-SWAP criterion=length — title is 158 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1204734Z   [must] requirement_quality REQ-UPDATE-RUNNING-IMAGE-SURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1205053Z   [must] requirement_quality REQ-UPDATE-RUNNING-IMAGE-SURFACE criterion=length — title is 337 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1205439Z   [must] requirement_quality REQ-UPDATE-TRIAL-DRAIN-DRIVE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1205748Z   [must] requirement_quality REQ-UPDATE-TRIAL-DRAIN-DRIVE criterion=length — title is 464 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1206174Z   [must] requirement_quality REQ-USHER-LIFECYCLE-VERBS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1206465Z   [must] requirement_quality REQ-USHER-LIFECYCLE-VERBS criterion=length — title is 647 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1206955Z   [must] requirement_quality REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1207267Z   [must] requirement_quality REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT criterion=length — title is 227 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1207653Z   [must] requirement_quality REQ-VIS-REMOTE-NOT-HIDE-NEW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1207944Z   [must] requirement_quality REQ-VIS-REMOTE-NOT-HIDE-NEW criterion=length — title is 326 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1208320Z   [must] requirement_quality REQ-VOCAB-ANCHOR-SUBNET criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1208611Z   [must] requirement_quality REQ-VOCAB-ANCHOR-SUBNET criterion=length — title is 605 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1208878Z   [must] requirement_quality REQ-WAKE-RESUME-LEG criterion=length — title is 274 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1209217Z   [must] requirement_quality REQ-WAKE-WAIT criterion=length — title is 89 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1209625Z   [must] requirement_quality REQ-WAN-DENY-PRECEDES-EXISTENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1209942Z   [must] requirement_quality REQ-WAN-DENY-PRECEDES-EXISTENCE criterion=length — title is 301 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1210305Z   [must] requirement_quality REQ-WAN-SEND-DELIVERY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1210591Z   [must] requirement_quality REQ-WAN-SEND-DELIVERY criterion=length — title is 117 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1210887Z   [must] requirement_quality REQ-WAN-SPT-HOSTED-DELIVERY criterion=length — title is 156 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1211254Z   [must] requirement_quality REQ-WEB-ACCESS-SURFACE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1211540Z   [must] requirement_quality REQ-WEB-ACCESS-SURFACE criterion=length — title is 320 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1211923Z   [must] requirement_quality REQ-WEB-ADAPTER-DOCS-FACET criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1212218Z   [must] requirement_quality REQ-WEB-ADAPTER-DOCS-FACET criterion=length — title is 412 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1212593Z   [must] requirement_quality REQ-WEB-ATTACHMENT-PULL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1212932Z   [must] requirement_quality REQ-WEB-ATTACHMENT-PULL criterion=length — title is 388 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1213314Z   [must] requirement_quality REQ-WEB-CROSS-NODE-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1213600Z   [must] requirement_quality REQ-WEB-CROSS-NODE-PROXY criterion=length — title is 439 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1213976Z   [must] requirement_quality REQ-WEB-ENTRY-AUDIENCE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1214253Z   [must] requirement_quality REQ-WEB-ENTRY-AUDIENCE criterion=length — title is 322 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1214615Z   [must] requirement_quality REQ-WEB-FETCH-VERB criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1214881Z   [must] requirement_quality REQ-WEB-FETCH-VERB criterion=length — title is 291 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1215284Z   [must] requirement_quality REQ-WEB-LAN-BOOTSTRAP-INTEGRITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1215646Z   [must] requirement_quality REQ-WEB-LAN-BOOTSTRAP-INTEGRITY criterion=length — title is 501 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1216046Z   [must] requirement_quality REQ-WEB-LAN-BOOTSTRAP-LISTENER criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1216443Z   [must] requirement_quality REQ-WEB-LAN-BOOTSTRAP-LISTENER criterion=length — title is 309 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1216824Z   [must] requirement_quality REQ-WEB-SERVING-REGISTRY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1217111Z   [must] requirement_quality REQ-WEB-SERVING-REGISTRY criterion=length — title is 484 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1217477Z   [must] requirement_quality REQ-WEB-URL-NODE-PREFIX criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1217772Z   [must] requirement_quality REQ-WEB-URL-NODE-PREFIX criterion=length — title is 376 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1218109Z   [must] requirement_quality REQ-WHOAMI-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1218362Z   [must] requirement_quality REQ-WHOAMI-1 criterion=length — title is 101 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1218781Z   [must] requirement_quality REQ-WHOAMI-EXPLICIT-SID-REFUSAL criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1219195Z   [must] requirement_quality REQ-WHOAMI-EXPLICIT-SID-REFUSAL criterion=length — title is 602 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1219582Z   [must] requirement_quality REQ-WHOAMI-IDENTITY-ONLY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1219867Z   [must] requirement_quality REQ-WHOAMI-IDENTITY-ONLY criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1220257Z   [must] requirement_quality REQ-WORKER-LIST-VISIBILITY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1220551Z   [must] requirement_quality REQ-WORKER-LIST-VISIBILITY criterion=length — title is 82 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1220919Z   [must] requirement_quality REQ-WORKER-MINTED-NAME criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1221204Z   [must] requirement_quality REQ-WORKER-MINTED-NAME criterion=length — title is 67 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1221495Z   [must] requirement_quality REQ-WORKER-PICKER-EXCLUDED criterion=length — title is 58 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1221843Z   [must] requirement_quality REQ-WORKER-REAP criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1222158Z   [must] requirement_quality REQ-WORKER-REAP criterion=length — title is 116 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1222555Z   [must] requirement_quality REQ-WORKER-SID-SYMMETRIC-AUTH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1222860Z   [must] requirement_quality REQ-WORKER-SID-SYMMETRIC-AUTH criterion=length — title is 125 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1223211Z   [must] requirement_quality REQ-XFER-RETIRED criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1223482Z   [must] requirement_quality REQ-XFER-RETIRED criterion=length — title is 425 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1223779Z   [must] requirement_quality REQ-XTASK-SPT-BIN-TARGET-DIR criterion=length — title is 98 words; want 3..=25
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1223812Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1223907Z # Requirement quality review
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1223936Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224122Z You are reviewing 892 requirement(s) from `traceable-reqs.toml` against a quality
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224316Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224550Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224694Z this command's output. Your task is the rubric items below.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224723Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224804Z ## Rubric
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1224832Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1225076Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1225398Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1225610Z - **atomic** — cannot be split into two requirements without losing meaning.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1225754Z - **active-voice** — clear subject and active verb.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1225787Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1225996Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226088Z clear concerns.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226116Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226201Z ## Requirements
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226230Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226316Z ### REQ-ARCH-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226430Z - Title: Many small acyclically-layered crates
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226563Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226592Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226674Z ### REQ-ARCH-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226817Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226907Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1226935Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227051Z ### REQ-ARCH-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227231Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227328Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227357Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227441Z ### REQ-ARCH-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227590Z - Title: Copy-verbatim the commodity layer from the sister project
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227676Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227704Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227794Z ### REQ-DAEMON-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1227933Z - Title: One per-machine spt-daemon owning all per-machine state
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228033Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228061Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228151Z ### REQ-DAEMON-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228270Z - Title: Broker/brain split for seamless self-update
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228369Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228397Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228477Z ### REQ-DAEMON-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228616Z - Title: Any api invocation auto-starts the daemon if absent
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228707Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228735Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228816Z ### REQ-DAEMON-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1228922Z - Title: Honor every KNOWN-HAZARDS invariant
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1229102Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1229130Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1229212Z ### REQ-STORE-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1229979Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230137Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230166Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230252Z ### REQ-MANIFEST-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230409Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230505Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230539Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1230623Z ### REQ-MANIFEST-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1231091Z - Title: Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1231187Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1231217Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1231302Z ### REQ-MANIFEST-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1231869Z - Title: Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1232012Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1232040Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1232123Z ### REQ-MANIFEST-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1232851Z - Title: Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1232951Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1232980Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1233067Z ### REQ-MANIFEST-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1235787Z - Title: File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = "rel/path" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1235890Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1235915Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1236001Z ### REQ-MANIFEST-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1237963Z - Title: Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled ("ccs is a profile; cross-adapter fallback may target <adapter>:<profile>"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1238063Z - Required stages: doc, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1238087Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1238179Z ### REQ-MANIFEST-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1241017Z - Title: Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1241178Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1241206Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1241296Z ### REQ-MANIFEST-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243355Z - Title: [adapter] host_binaries declares the harness executable basenames a kind="harness" adapter hosts agents inside (e.g. host_binaries = ["claude"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = "Vec::is_empty")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243598Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243627Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243712Z ### REQ-SEAM-SPAWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243807Z - Title: spawn-session seam
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243899Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1243927Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244018Z ### REQ-SEAM-POSTSPAWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244135Z - Title: post-spawn / api bind seam with boot nonce
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244230Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244264Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244350Z ### REQ-SEAM-PSYCHE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244478Z - Title: spawn-psyche seam (fresh + resume templates)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244574Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244603Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244684Z ### REQ-SEAM-HISTORY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244845Z - Title: History subsystem (fetcher / locate-normalize / native store)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244937Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1244966Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245056Z ### REQ-SEAM-ACTIVITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245223Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245313Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245346Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245432Z ### REQ-SEAM-INJECT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245576Z - Title: inject-input methods configurable per activity-state
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245666Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245694Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245789Z ### REQ-SEAM-RESUME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1245943Z - Title: resume-session seam (fresh-with-preload / continue-existing)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246027Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246057Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246152Z ### REQ-SEAM-CAPABILITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246286Z - Title: Hostable endpoint-types capability declaration
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246380Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246409Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246504Z ### REQ-SEAM-UPDATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1246650Z - Title: Adapter-update avenue (file-pull / delegated command)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1249907Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1249950Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250056Z ### REQ-API-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250222Z - Title: api prefix and adapter_name on every machinery invocation
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250323Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250352Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250437Z ### REQ-API-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250628Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250723Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250832Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1250923Z ### REQ-API-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1251048Z - Title: commune/signoff are file-drops, not commands
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1251137Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1251166Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1251247Z ### REQ-API-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1252732Z - Title: api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1252831Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1252860Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1252947Z ### REQ-START-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253127Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253285Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253314Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253399Z ### REQ-START-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253523Z - Title: Harness-hosted startup: api seed then listen
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253623Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253652Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253733Z ### REQ-START-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1253887Z - Title: spt-hosted startup: spawn-session then api bind (no file)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254071Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254100Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254187Z ### REQ-START-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254309Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254401Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254429Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1254512Z ### REQ-START-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257187Z - Title: Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure "a harness session exists at this pid" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257295Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257323Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257410Z ### REQ-EP-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257524Z - Title: Day-one endpoint types; open type system
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257619Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257652Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257734Z ### REQ-EP-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257881Z - Title: Agent endpoints vs Shells distinction in the type model
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1257972Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258001Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258083Z ### REQ-EP-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258248Z - Title: Messaging payloads carry typed operation commands + file blobs
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258335Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258369Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258454Z ### REQ-EP-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258587Z - Title: PresenceChannel broker endpoint (seam day-one)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258674Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258703Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1258787Z ### REQ-EP-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1259479Z - 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
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1259638Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1259666Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1259750Z ### REQ-EP-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1261139Z - Title: Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1261241Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1261270Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1261349Z ### REQ-EP-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1262911Z - Title: Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1263086Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1263111Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1263192Z ### REQ-EP-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1265951Z - Title: AlwaysOnEndpoint: a resident, addressable, mindless endpoint whose adapter binary the daemon supervises continuously — register-triggered by an adapter-option's `[always-on]` manifest section, one supervised binary per `<adapter>[:profile]`, running independent of agent liveness. It self-manages its `#`-addressed channel endpoints via the existing `api bind` (one connection fronts many). The SECOND class of spt-core-boot-launched third-party binary (after the shell wake-watcher); supervision reuses the wake-watcher scaffolding (backoff / give-up latch / one-per-instance lock / orphan-kill / brain-side reconcile) MINUS the offline-only flip — always online, never resting (no dormant/suspended states). Two-way: agents message it; it may call `endpoint wake <id>`, target-side authorized (REQ-INST-3/6 wake resolution + access whitelist + shell_wake_spawn_anywhere — no caller-ownership gate). First consumer downstream: spt-discord.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1266047Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1266086Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1266167Z ### REQ-EP-9
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1267691Z - Title: `#` always-on address sigil: a reserved LEADING sigil marking an AlwaysOnEndpoint, extending the REQ-INST-10 grammar to `[subnet:]#id[@node]`. Mandatory + bijective — `#name` ⟺ always-on endpoint, bare `name` ⟺ agent endpoint — so the router resolves endpoint class from the address alone, before any registry lookup. Sits ABOVE REQ-HAZARD-ID-CHARSET: the address parser strips the single leading `#` before id validation, so the bare/stored id stays charset-clean and a mid-id `#` remains rejected (the charset contract is unchanged).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1267784Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1267812Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1267897Z ### REQ-INST-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268037Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268122Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268145Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268227Z ### REQ-INST-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268337Z - Title: Per-node files, synced Psyche mind
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268432Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268465Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268541Z ### REQ-INST-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268671Z - Title: Dormant (warm) / suspended (cold) resting states
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268766Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268794Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1268871Z ### REQ-INST-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269113Z - Title: active to dormant/suspended fires a transition echo commune
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269258Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269291Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269372Z ### REQ-INST-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269525Z - Title: Two-tier context sync (live to all, project to same-project)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269620Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269653Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269734Z ### REQ-INST-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269902Z - Title: Deferred messages not delivered to dormant/suspended instances
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1269996Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270024Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270116Z ### REQ-INST-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270250Z - Title: Subnet registry + bare-id resolution policy
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270339Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270372Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270452Z ### REQ-INST-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270581Z - Title: Remote-control mode distinct from local operation
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270674Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270708Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270784Z ### REQ-INST-9
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1270999Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271089Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271118Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271200Z ### REQ-INST-10
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271390Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271481Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271510Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271591Z ### REQ-INST-11
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271881Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1271976Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272010Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272091Z ### REQ-INST-12
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272344Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272440Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272469Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272548Z ### REQ-INST-13
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272707Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272798Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272826Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1272906Z ### REQ-INST-14
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1273232Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1273326Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1273351Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1273437Z ### REQ-INST-15
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1274076Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1274166Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1274195Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1274275Z ### REQ-REACH-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1275559Z - Title: Off-node remote-drive detection. THE FILE-TRANSFER HALF IS STRUCK (ADR-0060, releases#246, doyle-ruled 2026-09-07): the WAN transfer family it named is retired -- see REQ-XFER-RETIRED -- so this requirement now covers detection only. What survives is what never depended on the transport: the daemon-side fact of WHICH node is driving an endpoint's session, stamped by the serve path and read back by the endpoint. The int stage stands on the remote-drive cell in tests/dispatch.rs; the transfer int arms left with the family they covered.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1275660Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1275688Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1275772Z ### REQ-REACH-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1275901Z - Title: Remote command execution (deferred, consent-gated)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1275987Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276016Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276097Z ### REQ-MSG-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276487Z - 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__)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276622Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276650Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276727Z ### REQ-MSG-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1276960Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277050Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277079Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277159Z ### REQ-MSG-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277508Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277604Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277628Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1277712Z ### REQ-MSG-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1278448Z - 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
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1278592Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1278622Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1278710Z ### REQ-MSG-ENVELOPE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1282322Z - Title: The <EVENT type="msg" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1282441Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1282469Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1282560Z ### REQ-MSG-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1283214Z - Title: user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1283310Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1283334Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1283423Z ### REQ-MSG-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1284913Z - Title: cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1285008Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1285036Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1285132Z ### REQ-MSG-SENDER-STAMP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295210Z - Title: Daemon-stamped authenticated sender: a NEW additive `WanMessage.sender_proven` field (serde-default) carrying the SESSION-PROVEN sender endpoint id, which lights up the REQ-ACL-SUBJECT-CHAIN tier-1 sender-endpoint rule that shipped schema-real but unfed in W1. The stamp is sourced from the session-proven path (`roster::detect_self_id` / the bound perch), NEVER from the caller-supplied `--from`: cli.rs `resolve_from` lets an explicit `--from` win over session detection, which is exactly why KNOWN-HAZARDS 7.5 binds `from` as reply-routing metadata and never an authorization subject. `from` is untouched and keeps its meaning; this is an addition, never a repurposing. TRUST BOUNDARY, stated so no later reader inflates "authenticated sender": the stamp proves the origin NODE cryptographically (QUIC handshake); the endpoint WITHIN that node is asserted by the sending daemon; strength therefore equals REQ-MSG-6's ratified boundary (trust = subnet membership, node = human-proxy). It DEFEATS agents forging `--from` on a box — the adversary milestone A's threat model actually names — and does NOT defend against a malicious member node. Same-node delivery is strictly stronger (the daemon knows the authenticated perch directly). Tier 1 ABSTAINS on absence (no stamp -> None -> the chain continues to the node tier), so N-1 senders, older daemons, and the five gate families that carry no sender endpoint keep today's behavior byte-for-byte. Adapter-invisible: a decision INPUT only, never entering the EVENT envelope, so no published adapter contract changes. Gate: doc — ADR-0009 amended (its "not the sender endpoint's identity" sentence becomes false the moment tier 1 fires) plus the wanmsg.rs module-doc carve-out stating that sender_proven IS decoded-and-acted-on, what bounds it, and that it never becomes the node subject (the origin-node paragraph stays verbatim — origin_node remains never-read-from-bytes, and `forged_origin_field_is_inert` stays untouched); impl — the additive field, the session-proven stamp at the send path, the receive-side threading into `AccessRequest.sender_endpoint`; unit — additive round-trip both directions (new field decodes, absent field defaults), a `--from` that disagrees with the stamp never becomes the subject, tier 1 fires on a proven stamp and abstains without one, and the W1 inertness guards REPLACED by their positive counterparts (the deliberate flip is the record). LATENT-RULE SCAN: REMOVED, AND NO LONGER REQUIRED BY THIS REQUIREMENT (releases#167, operator-ruled 2026-08-19: 'i never asked for it to be added, and never approved of its addition'). It was ruled in on 2026-07-29 as mechanism-not-memory — on the load where the tier went live, count existing SenderEndpoint rules and say loudly, once, that they were inert and are now live — and it found ZERO by construction in the coupled release, since no shipped version accepts a v2 store while the tier is inert. releases#155 asked for that unverifiable history claim to be made honest; the removal DISCHARGES it, because a banner that does not exist cannot claim a node's past or re-fire every boot. THE STAMP ITSELF IS UNTOUCHED: this strikes the announcement, not the tier — the additive wire field, the session-proven stamp, the receive-side threading and every tier-1 decision keep their evidence. The population accessor the scan used (`sender_endpoint_rule_ids`) survives with its other consumer under REQ-UNLISTED-EVIDENCE, which is where its unit now lives. If the DECOUPLING scenario this was written for ever becomes real, it returns as its own item with its own operator decision, never as a residue of this one.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295415Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295449Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295534Z ### REQ-NODE-IDENTITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295734Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295826Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295854Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1295935Z ### REQ-NET-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296093Z - Title: WAN messaging first-class, behind default-on net feature flag
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296183Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296211Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296288Z ### REQ-NET-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296442Z - Title: n0 relay default + self-host knob + plain-language disclosure
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296583Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296617Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296694Z ### REQ-NET-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296846Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296935Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1296963Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297049Z ### REQ-PAIR-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297151Z - Title: TOTP-seeded SPAKE2 pairing
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297241Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297269Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297422Z ### REQ-PAIR-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297546Z - Title: Local trust store with TOFU + warn-on-change
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297631Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297660Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297742Z ### REQ-PAIR-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297865Z - Title: Fetch current pairing code from any paired node
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297965Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1297989Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298071Z ### REQ-PAIR-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298170Z - Title: Subnet naming on first pairing
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298294Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298323Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298404Z ### REQ-PAIR-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298677Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298767Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298795Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1298876Z ### REQ-PAIR-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299194Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299285Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299314Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299394Z ### REQ-PAIR-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299535Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299621Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299650Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1299732Z ### REQ-SUBNET-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300018Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300113Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300140Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300222Z ### REQ-SUBNET-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300422Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300512Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300536Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300623Z ### REQ-SUBNET-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300870Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300962Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1300990Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301071Z ### REQ-SUBNET-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301324Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301414Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301442Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301520Z ### REQ-DOCS-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301806Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301897Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1301926Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1302014Z ### REQ-SEC-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1302412Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1302546Z - Required stages: impl, unit, doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1302574Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1302669Z ### REQ-NOTIF-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1302984Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303079Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303108Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303190Z ### REQ-NOTIF-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303413Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303575Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303604Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1303694Z ### REQ-NOTIF-SCOPE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1305274Z - Title: Notif scope is a per-row producer-chosen attribute node|subnet: node-scoped rows (update/consent/rollback kinds) live and die on their node and NEVER enter a replication feed; subnet-scoped rows keep the full ADR-0007 machinery (replication, cross-node dismiss, semilattice join); scope determines the first-fire candidate set (node-scoped targets the most-recently-active endpoint ON that node). New row fields additive serde-defaulted (host_binaries pattern) — old peers parse clean, schema regen drift-gated
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1305379Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1305409Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1305494Z ### REQ-NOTIF-COALESCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1306599Z - Title: Coalesce-key supersession: producer-stamped key REQUIRED in namespaced form <owner>:<key> (e.g. spt-core:update-staged) — the produce front door rejects un-namespaced keys; producing a new row with the same (scope-target, kind, key) auto-dismisses the prior rows, latest-wins; supersession expresses through the existing dismissed one-way latch (semilattice unchanged)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1306748Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1306776Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1306867Z ### REQ-NOTIF-SEAM-DISMISS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1308001Z - Title: Staleness is dismissed at the seam that knows, never evaluated at surface: a successful update apply dismisses spt-core:update-staged; the update worker's next check, seeing running >= staged, dismisses it too (covers out-of-band installs); a later successful update dismisses a rollback row; the primitive stores rows and latches — NO relevance predicates, nothing evaluated at surface time
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1308101Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1308129Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1308225Z ### REQ-NOTIF-QUIET-DELIVERY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1309289Z - Title: The notify kind rides the active_only window UNCONDITIONALLY, rollback included: spool-only, never live TCP, never a wake, for EVERY producer; loudness = resurface-until-dismissed persistence, never PTY interruption; boundary resurface (clear/compact/new-session/wake) + the adapter safe-point drain are the surfacing paths; a future interrupting alert needs a new kind + its own ADR, not an exception here
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1309397Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1309426Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1309513Z ### REQ-NOTIF-TTL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1310433Z - Title: Producer-optional TTL for informational kinds with no dismissal seam (node-paired, agent-issued): expired row auto-dismissed instead of surfaced — a timestamp compare, not a predicate; expiry IGNORES seen-state (TTL means stale-after-this; a producer that cannot accept silent expiry must not set one); no global default
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1310529Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1310554Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1310653Z ### REQ-NOTIF-MIGRATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1311655Z - Title: One-shot field migration: on first run the new binary auto-dismisses existing rows with from_id = spt-update (kinds consent/rollback) — the known-stale class; idempotent; the dismissals replicate so cleanup reaches not-yet-upgraded peers; agent/psyche rows untouched; the update worker re-produces any genuinely-current update notif within one check cadence
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1311760Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1311789Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1311874Z ### REQ-UPD-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1311988Z - Title: Peer-propagated update over P2P
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312080Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312109Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312189Z ### REQ-UPD-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312317Z - Title: All binaries signature-verified before handoff
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312414Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312438Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312518Z ### REQ-UPD-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312669Z - Title: No endpoint process terminates/suspends during self-update
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312821Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312849Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1312929Z ### REQ-UPD-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313091Z - Title: Update gated on user confirmation by default; opt-in full-auto
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313183Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313211Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313296Z ### REQ-UPD-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313421Z - Title: spt-core ripple-updates registered adapters
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313517Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313630Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1313717Z ### REQ-UPD-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1314455Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1314550Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1314584Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1314709Z ### REQ-UPD-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1316598Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1316697Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1316726Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1316807Z ### REQ-UPD-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1319253Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1319357Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1319385Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1319468Z ### REQ-UPD-9
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1321871Z - Title: `gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = "gh_release", repo = "user/repo"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1321981Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322010Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322096Z ### REQ-TERM-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322252Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322402Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322434Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322510Z ### REQ-TERM-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322673Z - Title: session-surface abstraction; send-keys + send-line injection
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322763Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322791Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1322877Z ### REQ-TERM-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323002Z - Title: Byte-stream remote terminal streaming for v1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323097Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323125Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323296Z ### REQ-TERM-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323723Z - Title: Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323822Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323846Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1323928Z ### REQ-TERM-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1325357Z - Title: Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1325526Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1325555Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1325635Z ### REQ-TERM-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1326609Z - Title: Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1326704Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1326733Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1326814Z ### REQ-TERM-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330442Z - Title: Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_commune | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them. THE MIDDLE SUBTYPE WAS `echo_mirror` UNTIL releases#113, AND THE NAME WAS A PHANTOM: nothing ever mirrored an echo-commune into a running context. run_echo_commune writes the brief as a commune DROP FILE whose ingest routes it into the DURABLE context tiers a later session resumes from; record_context_injection only appends a digest line; ADR-0019 defers the read-back loop. The name plus a comment reading `record that spt mirrored an echo-commune brief into the agent's context` were the ENTIRE basis on which releases#113 reported a behavioural divergence from legacy, and the ticket ordered the removal of a behaviour that was never built. Measured at 343df76e (todlando). Re-kinded to `echo_commune` for what it is -- a record that a brief was PRODUCED for this agent -- and the comment corrected in the same commit, because a name that asserts a behaviour is how the phantom gets re-derived. Distinct namespace from spt_proto EVENT_TYPE_ECHO_COMMUNE and the manifest [session.echo_commune] role, which spell the same word for different things.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330542Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330570Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330652Z ### REQ-FRONT-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330804Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330889Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1330979Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1331069Z ### REQ-HOST-RUN-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1333389Z - Title: spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind="harness" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1333486Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1333515Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1333596Z ### REQ-RC-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1335500Z - Title: `spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1335647Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1335670Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1335757Z ### REQ-HOST-RUN-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1337360Z - Title: Project-scoped working directory for spt-hosted bringup: an spt-hosted bringup lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1337469Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1337498Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1337588Z ### REQ-RUN-PICKER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1342089Z - Title: Interactive `spt endpoint run` picker (ratatui TUI): bare `spt` on an interactive terminal enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind="harness" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue "attached" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1342258Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1342286Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1342371Z ### REQ-RUN-SHORTCUT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1346840Z - Title: `<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root whose body is `spt go <id>` (since U3 it bakes no selection; pre-U3 it baked the non-interactive flags: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1346987Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1347021Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1347114Z ### REQ-RUN-PICKER-HOME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1350465Z - Title: Home-subnet selection LAYER in the `spt endpoint run` ratatui Create-new picker (v0.14.1; the deferred half of REQ-RUN-MULTISUBNET-HOME's interactive path — ADR-0026 §3 'the interactive picker lists subnets MRU-ordered'). On a MULTI-SUBNET node the Create-new flow gains a `CreateHome` screen (CreateAdapter → CreateId → CreateHome → Confirm) that lists the node's MEMBER subnets MRU-ordered (reusing recent_home::mru_preference + order_by_mru), default cursor = MRU head; the chosen subnet rides Outcome::Run{subnet} into cmd_endpoint_run's --subnet, so decide_run_home resolves Home directly and the post-TUI `Ok to proceed? Y/n` confirm NEVER fires for the picker path. Single-subnet / local-only nodes SKIP the layer (assign_home auto-homes; CreateId → Confirm unchanged). The CLI `endpoint create` path KEEPS the decide_run_home Y/n confirm + the non-interactive MULTI_SUBNET_HOME refuse (operator: the confirm stays useful for CLI-only bringup, just not in the TUI). Esc backs CreateHome → CreateId; Enter selects → Confirm. Pure front-end invariant preserved: the layer only collects --subnet, routes through the one bringup core.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1350570Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1350599Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1350684Z ### REQ-ELEVATE-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1353585Z - Title: Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1353743Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1353771Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1353951Z ### REQ-BENCH-STEP-LEDGER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1358604Z - Title: BUILD-STEP TIMINGS ARE RECORDED AS ONE JSONL ROW SHAPE, READ ON DEMAND, AND GATE NOTHING. Coverage is CI workflow steps AND the local mechanical steps agents invoke on this box (gate-rig prebuilds, wave gate lanes, assembly compile-gate, release packaging) -- the local gate builds are the largest measured wall-clock sink and are invisible to CI timing entirely. Instrumentation lives in the workflow and in xtask timing wraps; it is NOT an spt binary feature. ONE ROW SHAPE: step name, sha or input-key, host, duration, timestamp -- plus an ok flag, because an aggregate that blends a three-second failure with a twenty-minute success under one step name describes neither, so failures are excluded rather than averaged in. TWO WRITERS, ONE FORMAT: the local wrap is xtask, the CI wrap is a shell snippet (the xtask binary cannot time the build that produces it), and a parity test pins the snippet against the single field list, because a format that drifts silently makes the history unreadable at exactly the moment somebody wants a trend. THE LEDGER IS NEVER COMMITTED: CI emits a per-run artifact, local steps append to a gitignored directory; a hand-maintained ledger file in git is the conflict-magnet class every lane would touch. REDUNDANCY IS KEYED ON THE INPUT, never on the run count: two runs of one step at the SAME key is repeated work and two runs at DIFFERENT keys is just work, and a counter that cannot tell them apart flags every honest build as waste; a repeat is reported as a CANDIDATE, since a rerun after a fix is legitimate. WRAPPING IS TRANSPARENT: the wrapped command's stdio is inherited untouched and its exit code is propagated, so instrumenting a step cannot change what that step does or how a caller reads it. Consumption is `xtask bench-report` on demand, read at milestone close-out, findings become filings. NO dashboard and NO per-run regression gate: this box's wall-clock moves with whatever else is building on it, so a threshold would manufacture reds out of load.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1358756Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1358785Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1358890Z ### REQ-POOL-FOREIGN-TREE-REFUSED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1364826Z - Title: A SOURCE TREE MUST NOT SILENTLY BUILD INTO A CARGO TARGET DIRECTORY THAT BELONGS TO ANOTHER SOURCE TREE. Two trees sharing one pool overwrite each other artifacts -- measured, not inferred: two packages of the same name and version built from two DIFFERENT paths resolve to ONE build-script output dir. In the v0.51.0 BAROMETER W1/H1 window that fabricated an E0308 in a gate lane which vanished on re-run, a red belonging to neither tree. THE REFUSAL KEYS ON THE RELATIONSHIP, NEVER ON A PATH: the incident that motivated the filing was reached by CARGO_TARGET_DIR pointed at the primary checkout, a directory no path-shaped rule about .worktrees/ would have covered, and a path rule also leaves the primary checkout target as the one unowned pool every agent can name from memory. THE HARM IS INTERLEAVING, NOT SIMULTANEITY -- cargo already holds an exclusive .cargo-lock for a build duration, so two builds are never literally concurrent; what bit was one lane artifacts being invalidated by another between that lane own steps. So the unit of ownership is the LANE, and a lease keyed on a cargo process would be stale seconds after every claim, making every crossing a takeover and the refusal arm UNREACHABLE -- a gate whose failure signature is silence, refused on that evidence. CLAIM AND ENFORCEMENT ARE SPLIT: the lane claim is written at lane start by the rig and names a long-lived holder (pid plus pid_started_at, because a pid alone is unsound across a reboot and a recycled pid would read as a live lane forever); the build script never claims, only enforces. STALENESS IS PROVEN BY THE PROCESS TABLE WITH THE BIRTH STAMP -- holder absent, or present with a mismatched birth -- and mtime or any derived view never counts; UNKNOWN IS NOT STALE, so an unresolvable holder proceeds with a warning and is neither taken over nor refused. A stale holder is a LOUD TAKEOVER rather than a refusal, because sequential sharing is the cheap correct case and refusing it would demand a pool per lane (30+ worktrees at 7-15 GB measured = 210-450 GB, several times the disk the incident was about). An OWNERLESS pool imprints its first builder and proceeds -- a developer own fresh target is never refused -- while an imprinted pool with NO lane claim refuses a foreign tree and prints the claim command, which is how the discipline gap becomes loud instead of permissive. The escape hatch is an env var and prints EVEN WHEN IT WORKS: a silent override would reproduce the original incident exactly.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1365036Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1365064Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1365161Z ### REQ-POOL-LANE-IDENTITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1369188Z - Title: A LANE'S STATE IS READ FROM ITS GIT IDENTITY, AND THE HOLDER PROCESS IS ADVISORY. MEASURED, not inferred: a sweep of this box's pool claims found 3 of 3 holder processes dead while one of those three lanes was demonstrably LIVE -- the holder was an agent session that had been cleared, re-forked or re-parented, which is routine and says nothing about whether the lane finished. A claim that decides FINISHED from a dead holder hands the pool to a second tree mid-lane, which is releases#103's original interleaving hazard reached through the guard rather than around it. So the claim records the lane's GIT IDENTITY -- its branch and the base sha that branch carried at claim time -- and the finished question is answered by ancestry: the lane is IN FLIGHT while its tip is not contained in the integration head, and SETTLED once it is merged, once its branch is gone, or once its branch no longer contains the claimed base (a branch name re-pointed onto other work is the branch-level twin of a recycled pid, and must not read as the same lane). THE BASE SHA IS ALSO THE REPO-IDENTITY WITNESS: ancestry is read in the ARRIVING tree, and a branch that is simply absent from a DIFFERENT repository would otherwise read as a finished lane, so a claimed base whose object is unknown here yields UNKNOWN rather than SETTLED. PRECEDENCE IS ASYMMETRIC ON PURPOSE: a provably live holder still refuses (it can only ever ADD a refusal), ancestry alone may declare a lane settled, and a claim carrying no git identity at all falls back to the pre-identity holder predicate and says so in the line it prints. A stamp written before this field existed therefore keeps its old behaviour instead of silently changing polarity.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1369287Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1369316Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1369413Z ### REQ-POOL-CLAIM-TREE-MATCH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1371809Z - Title: POOL-CLAIM MUST REFUSE BEFORE WRITING WHEN --POOL BELONGS TO A DIFFERENT GIT WORKTREE THAN THE CALLER'S CWD, UNLESS THE CALLER EXPLICITLY OPTS INTO THE SANCTIONED SEQUENTIAL TAKEOVER WITH --foreign-pool. The claim verb harvests owner_tree, branch, and base from cwd; an accidental crossing therefore writes a confidently wrong ownership record and reports success. A deliberate crossing is required by the build guard's own takeover remedy: it remains cwd-authored so the arriving lane becomes the owner, but the flag and diagnostic make that identity source loud. The guard's printed cross-tree pool-claim remedies carry the flag, and an executable test proves the verb admits that exact shape. This validates identity harvest only: pool-claim still writes without adjudicating admission, and every ownership enforcement arm remains in the subsequent build (IR-42). Default-refusal discovery resolves the pool's worktree from its nearest existing ancestor, including before the pool exists. (IR-56)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1371953Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1371982Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1372071Z ### REQ-PICK-FIDELITY-AUDIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1377648Z - Title: AN ASSEMBLY PICK MUST BE AUDITED FOR FIDELITY ON ITS CHANGED-LINE SET, AND THE COUNT AND DIGEST ARMS MUST BE REPORTED AS SEPARATE VERDICTS BECAUSE THEY FAIL IN OPPOSITE DIRECTIONS. MEASURED on the TURNKEY #212 assembly (IR-57): a cherry-pick's conflict resolution silently dropped exactly two lines and the assembled head did not compile, while every instrument in the assembly path reported success -- the pick completed with no conflict remaining, traceable-reqs check returned 797/797 exit 0 because it parses tags and never invokes the compiler, and the lanes themselves were green and stayed provably clean. Lane-green plus conflict-free is not a claim about the assembled head. The audit compares ONLY the + and - lines of git show --format= for the lane source and for its pick, excluding the +++ and --- file headers: hunk headers and context lines legitimately drift once the head's copy of a file has moved, so a whole-diff comparison returns a confident wrong answer. Of 24 picks on that chain two did not match and they were DIFFERENT CLASSES -- one differed in COUNT (302 lane against 300 pick by the prescribed header-excluding pipeline; the register originally cited 310/308, which is the raw count including the 8 file-header lines of its 4 files, and the delta is 2 either way), the real defect; the other had the SAME count and a different digest, a paragraph the head had already amended for another lane whose merged result correctly carries both lanes' sentences. A count check MISSES the first class entirely and a digest check FLAGS the second as if it were a defect, so neither alone classifies a pick: the verb reports both arms per pick, fails the run on a count mismatch only, and prints the digest-only class loudly as a human read rather than reddening on it, because a check that reds on the measured benign class gets disabled and takes the count arm with it. A pick the audit cannot pair to a lane source is UNAUDITED and exits non-zero in its own class rather than reading as a pass, since a silent skip is the same failure the entry documents wearing a green. Both sides of every comparison are read at ONE layer -- git's own diff output for two commits in one repository -- because a comparison taking one side from the working tree and the other from git's normalized view lies toward MISMATCH in a checkout that carries CRLF against LF blobs, which this one does.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1377797Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1377825Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1377919Z ### REQ-DISK-FLOOR-PREFLIGHT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1382222Z - Title: A RIG OR GATE RUN MUST RECORD FREE SPACE AT RUN START, AND REFUSE TO START UNDER A FLOOR. MEASURED (IR-59): a full volume reds as a LINKER defect that names no disk -- LNK1318 Unexpected PDB error with a varying parenthesised code, beside LNK4209 debugging information corrupt, and once as a traceable-reqs check PANIC carrying os error 112, so even a REGISTRY red can be the disk's. Nothing in any of those failure texts says disk, two agents spent hours on a mechanism for one of them, and neither read free space. THE FALSIFIER IS FREE SPACE AT THE TIME OF THE RUN, not the shape of the leg table, and a reading that appears only on refusal leaves every red already in hand uninterpretable -- which is the state the fleet was in, since local gate legs run as plain per-run scripts with no preflight path to amend. So the reading is printed on EVERY run, passing or not, in the golden runner's own key shape (disk preflight: drive= free_bytes= floor_bytes=, and RESOURCE=disk on refusal) so one grep reads a local rig log and a CI log alike, and an optional label attributes readings on a box carrying several lanes. The default floor is the golden runner's 32 GiB, so a local rig and a golden leg refuse at ONE number rather than two; a floor of ZERO is print-only mode for informational call sites and never refuses, which is why the default arm must still refuse the same reading a zero floor admits. A run that starts under the floor produces reds that belong to nothing: they are re-run, never re-read. AND ONE READING IS AN INSTANT, NOT HEADROOM (IR-46): the danger window is the TAIL of a cold build -- the measured instance died linking the last and largest artifact of a 74 GB pool while that same build drained the volume out from under itself, and the reading taken before it looked fine.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1382369Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1382397Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1382498Z ### REQ-POOL-GC-ORPHAN-RECLAIM
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1387651Z - Title: BUILD-CACHE POOLS ARE RECLAIMABLE ON EVIDENCE, NOT ON AGE OR NAME. Cargo never GCs a target directory and pools OUTLIVE the lanes that made them: this box carried gate-target-h1 at 17.5 GB with ZERO links pointing at it -- unreachable, unowned, and un-reclaimable by any mechanism that existed, because nothing recorded whose it was. The ownership stamp supplies the missing facts, so a sweep can classify rather than guess: IN USE (a lane holder live by the process-table-plus-birth-stamp predicate) is never touched; OWNED (owner tree still on disk, no live lane) is somebody's WARM CACHE and is reclaimed only when explicitly asked; ORPHANED (owner tree gone, or unstamped with nothing linking to it) is the safe row. WHAT MAKES A DIRECTORY A POOL IS CARGO'S OWN CACHEDIR.TAG SIGNATURE, never its name -- a sweep that decided by the word target could delete a source directory somebody happened to call that, and the point of this leg is a reclaim an operator can run without auditing it first. UNSTAMPED DOES NOT MEAN UNWANTED: an unstamped pool with inbound links is a pre-guard pool still in use, and getting that backwards would reclaim a live lane's cache on the very first sweep, since the pools predating the stamp are exactly the ones most likely to be somebody's. UNKNOWN LIVENESS COUNTS AS IN USE here, the opposite polarity from the guard's proceed-with-warning, because the consequences are asymmetric: an unresolvable holder that blocks a reclaim costs disk, while one that permits it costs a lane its cache. THE INBOUND SWEEP COMPLETES BEFORE ANY VERDICT -- a link found after the verdict is a link that did not save the pool -- and path comparison is normalized, since Windows records a junction target with a verbatim device prefix and arbitrary case and a raw compare would report zero inbound links for a pool half the box points at, orphaning every one of them. DRY RUN IS THE DEFAULT: the failure mode of a wrong reclaim is silent, nobody notices a deleted warm cache until the next build takes twenty minutes. Deletion re-asserts real-directory-not-link at the point of removal, because a reparse point removed as a tree takes its TARGET with it, and reports size and free space so the reclaim is a number rather than a claim.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1387803Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1387831Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1387942Z ### REQ-POOL-GUARD-NOT-SILENCEABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1391022Z - Title: THE POOL GUARD BUILD SCRIPT MUST EMIT NO `rerun-if` DIRECTIVE, AND A TEST MUST ENFORCE THAT RATHER THAN A COMMENT. MEASURED on a two-tree rig sharing one pool with the trees made BYTE-IDENTICAL (diff -r empty), sequence A B A A B: with no directives the script ran FOUR times (A, B, A, B) and the consecutive A A ran it once; with ONE cargo:rerun-if-changed added it ran ONCE and the foreign tree never ran it again at all. A script with no directives is re-run whenever cargo unit fingerprint changes, and that fingerprint carries CARGO_MANIFEST_DIR -- so it fires on exactly the source-tree ALTERNATION the guard exists to catch, fires even when the differing crate is one the script does not live in (the trigger is the tree PATH, not file content), and does not fire when a tree rebuilds itself. Adding a directive does not slow the guard, it SILENCES it, and only on the crossings that matter. A comment forbidding one is a prohibition, not a boundary -- it depends on the next reader -- so the canary reads the checked-in build script and reds if a directive appears. The canary carries its own POSITIVE CONTROL, because an assertion that no line matches is satisfied equally by a detector that matches nothing, including one broken by a later refactor.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1391256Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1391289Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1391404Z ### REQ-POOL-ONE-LIVENESS-PREDICATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1393592Z - Title: THERE IS EXACTLY ONE PROCESS-IDENTITY PREDICATE IN THIS WORKSPACE, AND THE BUILD-SCRIPT GUARD USES THAT ONE. A cargo build script sees only [build-dependencies], so the pid-plus-birth-stamp predicate could not be reached where it lived in spt-store::proc. The alternative was a second copy -- a second source under exactly the hazard the first exists for (pid reuse; ADR-0047 decision 1 custody pair test; KNOWN-HAZARDS 7.50/7.51), and a liveness predicate that disagrees with itself across two call sites is worse than either copy alone. So the identity core (process_exists, process_started_at, parent_pid_of, process_identity, ProcIdentity, process_table) moved VERBATIM into a leaf crate below spt-store, and spt-store::proc re-exports every item, leaving every call site, doc link and test untouched. The move is behaviour-preserving by construction: nothing was rewritten, only relocated and re-exported.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1393736Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1393764Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1393849Z ### REQ-WHOAMI-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1395950Z - Title: The `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state; whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9) and renders the same description-carrying SELF pin. HISTORY: originally minted whoami as a thin ALIAS of `spt endpoint list` — that alias premise is SUPERSEDED by REQ-WHOAMI-IDENTITY-ONLY (PROJECT-INDEX W1, 2026-07-15): the alias inherited the list's O(perches x branches) git fanout onto hook paths (the 2026-07-15 message-delivery incident), so whoami is now identity-only over the shared render_self_pin. The pin render + parse evidence here stands; the full-roster surface lives solely on `endpoint list`.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1396059Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1396087Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1396163Z ### REQ-RCVIEW-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1400468Z - Title: Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1400643Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1400672Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1400754Z ### REQ-KICK-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1403198Z - Title: Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1403356Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1403384Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1403475Z ### REQ-PICKER-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1406815Z - Title: The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1406933Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1406962Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1407043Z ### REQ-PICKER-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1408771Z - Title: The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1408871Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1408904Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1409086Z ### REQ-PICKER-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1411404Z - Title: A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1411561Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1411585Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1411667Z ### REQ-PICKER-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1413563Z - Title: The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!("{l} ({}…)", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1413664Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1413739Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1413820Z ### REQ-PICKER-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1416726Z - Title: `spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1416826Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1416850Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1416945Z ### REQ-SEND-SPT-HOSTED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1420518Z - Title: An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1420629Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1420657Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1420746Z ### REQ-HAZARD-RC-EOF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1424481Z - Title: A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1424671Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1424705Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1424801Z ### REQ-HAZARD-DEFERRED-MANIFEST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1426996Z - Title: A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1427091Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1427119Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1427209Z ### REQ-HAZARD-ENV-SUBST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1430502Z - Title: `spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1430611Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1430644Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1430739Z ### REQ-HAZARD-ROSTER-GHOST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1433024Z - Title: A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1433177Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1433206Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1433301Z ### REQ-WAN-SPT-HOSTED-DELIVERY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1436773Z - Title: A WAN-ARRIVED `spt send` is DELIVERED to an spt-hosted endpoint (broker holds its PTY, NO api-listen relay), not spooled-forever. Today receive_wan (spt-daemon/wan.rs:271-276) tries deliver_tcp (the harness-hosted relay leg) then falls to spool — it has NO spt-hosted broker-inject leg, which exists ONLY in local cmd_send (REQ-SEND-SPT-HOSTED, Brain::inject_endpoint → KIND_ENDPOINT_INPUT → broker dispatch_endpoint_input → translation-binary idle-inject). So a WAN arrival to an idle spt-hosted perch with a live translation binary ALWAYS sleeps in spool until an adapter hook polls (F-023: perch verifiably idle 7min, binary healthy, zero injection). FIX: factor cmd_send's spt-hosted delivery leg into a SHARED fn; receive_wan calls it after the replay-check (wan_seen_at) + restamp (restamp_wan_user_msg), BEFORE the spool fallback. Claim discipline UNCHANGED: inject delivered=true → wan_mark_seen_at then return the existing 'delivered' wire token (no wire change); delivered=false → the existing spool-with-claim transaction. v0.14.3 LAW: the shared leg is translation-binary-ONLY, NO raw-PTY fallback — a no-binary arrival SPOOLS LOUD, never writes the PTY. (F-023, BUILD-F023-WANIDLE)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1436916Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1436945Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1437036Z ### REQ-MSG-IDLE-EDGE-DRAIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1441028Z - Title: On an endpoint's ACTIVE→IDLE transition the daemon DRAINS its pending spool (NON-DEFERRED ONLY — AMENDED 2026-07-26) through the same shared spt-hosted inject leg — closing the SECOND F-023 gap for the classes an inject may carry: an spt-hosted endpoint (no api-listen relay to wake it) strands its 'IDLE+no-binary → non-deferred for a relay that does not exist' class without this drain. AMENDMENT 2026-07-26 (FIELD-TRUTH W1 roll-in, operator ruling; doyle spool-audit RCA — spt-shells shell-context rows on a LIVE-AGENT perch showed taken_leg=idle-inject ~200ms after boundary spooling, each injection STARTING A TURN): the deferred (active_only) class is EXCLUDED from the idle-edge and parked-re-offer claims UNCONDITIONALLY. active_only means what ADR-0028 says — 'active hook window only; never wakes an idle agent' — so the hook poll is its SOLE carrier on every endpoint class; a deferred row with no hook cadence WAITS (starves-by-design), it is never injected. This knowingly revokes the original F-023 leg-2 rescue of the deferred class (that rescue was the operator-visible defect: background context starting turns). Mechanics unchanged for non-deferred: shared inject leg, REUSE of the hook-poll take/ack (ONE drain path, TWO triggers), v0.14.3 LAW on both triggers (translation-binary-ONLY, no-binary drain SPOOLS LOUD, never writes the PTY). (F-023 as amended; kin REQ-SEND-WINDOW-DRAIN-HONOR)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1441138Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1441171Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1441266Z ### REQ-HAZARD-DELIVERY-STARVATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1444200Z - Title: A NON-DEFERRED message that has REACHED a node's spool (WAN-arrived or locally spooled-while-active) is NEVER dependent on an adapter HOOK-POLL cadence for its eventual delivery to an spt-hosted (relay-less) endpoint — the daemon itself drives delivery on the events it owns (WAN ingress + the ACTIVE→IDLE edge). Hazard class: delivery starvation. Without this, cross-node and post-active messages to an spt-hosted perch strand indefinitely whenever the adapter's hooks are quiet (idle session, no user turns), presenting as 'sent but never lands' with a healthy binary and an idle perch (F-023). SCOPE NARROWED 2026-07-26 (FIELD-TRUTH W1 roll-in, operator ruling): the deferred (active_only) class is EXPLICITLY OUTSIDE this guarantee — per ADR-0028 it is hook-carried background context that never wakes an idle agent; with no hook cadence it waits by design. The no-starvation guarantee binds the default and idle_only classes only. Guarded by REQ-WAN-SPT-HOSTED-DELIVERY (WAN ingress leg) + REQ-MSG-IDLE-EDGE-DRAIN (idle-edge drain, as amended). (F-023)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1444367Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1444486Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1444578Z ### REQ-MSG-CLI-ORIGIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1446335Z - Title: A bare non-perch CLI `spt send` (no owning perch to name as origin) stamps from = `cli@<node-label>` at compose time (bare `cli` when no node label is known — never a dangling `cli@`), and WAN ingress renders an EMPTY from as the origin node DISPLAY (`node_label_display(origin_node, None)` = the QUIC-proven origin node's key-prefix; never blank) — a delivered message NEVER shows a blank sender. Scoped to `spt send`: a from-less send is LEGAL (stamped, never refused), while `spt ring` keeps its NO_SELF refusal (a ring needs a routable self for the reply leg; `cli@<node>` is a display origin, not a perch address). (F-024C item 3, doyle ruled)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1446488Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1446517Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1446616Z ### REQ-HAZARD-SESSION-PIN-WEDGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1453025Z - Title: A perch PINNED to a DEAD session-id self-heals instead of wedging forever. authenticate() (spt/src/api/auth.rs:78) gates api poll/state/boundary on proof-sid == info.json.session_id; if ONE boundary rotation is lost (transient env corruption kills the /clear-era hook), the perch stays pinned to the dead sid and EVERY id-scoped hook call refuses — INCLUDING boundary itself (it presents the new sid), a permanent strand (ready:false, stale .idle, drain no-ops, WAN spool sleeps forever; AUTH_REFUSED is stderr-only = invisible inside a hook). FIX: authenticate() gains a DEAD-OWNER fallback — when the sid MISMATCHES AND the perch's recorded pid is dead (proc::is_process_alive==false), ACCEPT the caller's sid and RE-PIN (rotate session_id + log SESSION_REPIN loud). Same trust model as establish_perch's conflict gate (api/startup.rs:207-210), which already allows rebind exactly when owner_alive==false (an orphaned perch accepts a new LOCAL owner). A LIVE-owner mismatch STILL refuses (squat protection UNCHANGED). ADDITIVE to token auth — the existing token-auth recovery path is UNTOUCHED; the new branch fires only on (no token) AND (sid mismatch) AND (owner dead). COVERAGE SPLIT (explicit, perri clean-room 2026-07-02 — the wedge latches on /clear even in a CLEAN env, so the corruption domino was sufficient but NOT necessary): the dead-owner re-pin rescues CRASHED/DEAD sessions ONLY; a LIVE-pid rotation (/clear, /compact — same process, new sid) is CORRECTLY refused without the departed session's prior-sid proof and MUST NOT be widened to live owners. The live-rotation contract is adapter-side: the adapter PERSISTS the prior sid across rotation and PRESENTS it as boundary proof (perri's state-file pattern = the reference); a silent boundary skip on an unresolvable id, or a boundary call with NO auth proof, strands the perch (perri's court). Core rescues only the dead-owner orphan; live-rotation proof is the harness-contract's job (see the harness-contract boundary section, which cross-refs this hazard). PARKED (not this wave, logged): pid-ancestry self-proving rotation (core walks the caller's real ancestry vs info.json.pid) — needs an ADR + Windows parent-spoof caveats. (F-024C, F024C-AUTHWEDGE-ADDENDUM + F024D-DOCSCOPE)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1453133Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1453162Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1453259Z ### REQ-HAZARD-STORE-INIT-RACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1456180Z - Title: Concurrent first-touch of ONE fresh BranchStore must ALL succeed, never a hard error. BranchStore::open_or_init (spt-store/src/branchstore.rs:47) is a TOCTOU: it gates on HEAD.exists() then runs a NON-ATOMIC init (`git init --bare` + `git config core.autocrlf false` + best-effort worktree.useRelativePaths). Two processes that both observe !HEAD.exists() on one fresh store race the `git config` step, which takes git's per-repo config.lock — the loser fails with 'could not lock config file …/config: File exists', an io::Error that strands the caller (the G3-gate pump.rs:442 flake, doyle-ledgered). FIX: make init race-tolerant — `git init --bare` is idempotent, and `git config` is idempotent (same bytes), so tolerate a concurrent winner (open-after-lose: if init errors but HEAD now exists, proceed as opened) and retry a transient config.lock collision a bounded number of times so the required core.autocrlf=false is guaranteed set. N concurrent open_or_init on ONE fresh dir must ALL return Ok. (F-025 wave, doyle Item 2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1456322Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1456351Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1456467Z ### REQ-HAZARD-SPOOL-SENTINEL-CREATE-FAIL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1458241Z - Title: A persistent failure to (re)create the spool has-messages sentinel is SURFACED, never silently swallowed. touch_has_messages (spt-store/src/spool.rs:147) does `let _ = File::create(...)` — a live field defect on ENLYZEAM left a stale .has-messages (2026-06-29) beside a fresh spool.db insert (06:59:17Z) in ONE directory, i.e. the create silently failed while rows accumulated (suspected read-only-attrib / share-lock). FIX: on File::create failure emit a LOUD-ONCE-per-perch stderr diagnostic naming the concrete io::Error (self-identifying regardless of kind); do NOT make it fatal (spool writes still proceed). (F-024C item 2, doyle)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1458385Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1458413Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1458503Z ### REQ-MANIFEST-NODE-KEY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1462615Z - Title: A new session-scoped manifest fill key `{node}` resolves to THIS node's advertised label — available wherever the session-scoped keys ({id}/{session_id}/{session_name}) populate: BOTH topologies' spawn-prep catalogs (harnesshost.rs:111-118 self-spawn guaranteed-fill + lifecycle.rs:280 base lifecycle keys, at minimum [session.self] and [session.resume]) AND lazy [strings] eligibility (ADR-0029 family). VALUE (design-true per CONTEXT §node label / REQ-SUBNET-3): the node's ADVERTISED LABEL — the same value node_label_display renders — read from the label store (NodeLabel, registry.rs:118/220, OS-hostname default re-checked at daemon startup), NOT the pubkey and NOT a fresh gethostname at fill time when the store already holds the refreshed label; fall back to the OS hostname only if no label is known. perri's concrete use: templating `--remote-control {id}--{node}` in the claude-spt launch/resume commands. CAVEAT (documented in the manifest.md key-table row AND here): SINGLE-TOKEN fills only — tokenize-then-fill (REQ post-F-009) cannot produce a space-carrying argv element, so composite display names like `<id> @ <node>` remain adapter-shim territory (claude-spt v0.10.3's launch shim stays the reference for those); {node} COMPLEMENTS the shim for tokenizable args, it does not replace it. Origin: perri fill-catalog-gap finding 2026-07-02, operator-promoted into BUILD-F023-WANIDLE (additive, independent of the delivery legs). (NODEKEY-FOLD)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1462725Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1462758Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1462859Z ### REQ-HAZARD-HOSTED-LIVENESS-RECONCILE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1466679Z - Title: B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1466835Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1466863Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1466959Z ### REQ-HAZARD-RC-ATTACH-FAILFAST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1470175Z - Title: B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1470552Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1470580Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1470675Z ### REQ-ENDPOINT-STOP-OFFLINE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1471912Z - Title: H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1472011Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1472034Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1472131Z ### REQ-HAZARD-DAEMON-STOP-BARRIER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1473779Z - Title: B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1473929Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1473958Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1474073Z ### REQ-HAZARD-SEEDMAP-CONNECT-UNBOUNDED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1477363Z - Title: SEED (doyle-filed, 2026-07-05, from the REQ-HAZARD-DAEMON-STOP-BARRIER B2 fix): the PRODUCTION seedmap connect callers (put / take / is_running) inherit the SAME interprocess WaitNamedPipeW-forever hazard the stop path just bounded — a Windows named-pipe connect to a name that EXISTS but has NO accepting instance parks in NMPWAIT_WAIT_FOREVER, so a slow / half-dead seed daemon could wedge a live `api seed` / `api listen` / `daemon start`. UPDATE (2026-07-05, doyle reversed the stop-path scope-guard): request_stop's OWN initial connect became load-bearing (a stop-guard re-dialing an already-dying name parked forever, resurrecting the convoy) → it is now bounded via connect_bounded under REQ-HAZARD-DAEMON-STOP-BARRIER (every dial on the STOP path is bounded). REMAINING deferred here = the put / take / is_running production clients. FIX (deferred, needs its own ruling): a shared bounded seed-control connect for those — but a 2s-style cap on a legitimately slow daemon-start connect is a real behavior change (a slow-but-fine start could become a spurious failure), so the timeout + degrade semantics need design first. NOT built — activate when scoped.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1477461Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1477490Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1477592Z ### REQ-HAZARD-DAEMON-STOP-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1479385Z - Title: Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1479552Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1479581Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1479690Z ### REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1481913Z - Title: B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1482023Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1482052Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1482171Z ### REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1484604Z - Title: B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1484743Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1484771Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1484875Z ### REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1488457Z - Title: A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1488565Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1488632Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1488734Z ### REQ-HAZARD-UNHOST-PSYCHE-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1491828Z - Title: On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1491929Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1491954Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1492048Z ### REQ-ENDPOINT-PURGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1496476Z - Title: `spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1496637Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1496666Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1496763Z ### REQ-READY-AGENT-RESUME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1500133Z - Title: An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint resume <id>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1500291Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1500320Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1500419Z ### REQ-PICKER-ADAPTER-DESCRIPTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1501744Z - Title: The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1501831Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1501860Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1501959Z ### REQ-HAZARD-VIEWER-ISOLATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1504044Z - Title: A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1504141Z - Required stages: unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1504169Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1504250Z ### REQ-INSTALL-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1505681Z - Title: Two install paths (harness-bootstrapped calls into standalone); OS-service registration deferred. HISTORY: originally 'signed one-line script' — the hosted one-liner retired as the PUBLIC install surface at THE-FORKENING W1/W2 (ADR-0036; the canonical bootstrap is gh + the spt install verb, REQ-INSTALL-BOOTSTRAP-VERB); installer/ scripts remain in-repo as the hermetic oneliner_e2e fixture + air-gap/mirror fallback, which is what this REQ's evidence now attests (doyle-ratified 2026-07-14).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1505839Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1505867Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1505962Z ### REQ-INSTALL-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506083Z - Title: Marketplace-repackaging-friendly install
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506173Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506201Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506282Z ### REQ-INSTALL-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506402Z - Title: Idempotent + interactive-optional first run
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506492Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506521Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1506606Z ### REQ-INSTALL-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507169Z - 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
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507309Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507337Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507417Z ### REQ-MIGRATE-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507565Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507652Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507680Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507832Z ### REQ-INFRA-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1507985Z - Title: GitHub issue tracking for v1; tangled.org as migration target
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1508070Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1508098Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1508178Z ### REQ-INSTALL-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1509695Z - Title: Non-interactive install path: the install path doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration. HISTORY: 'the canonical one-liner' — since THE-FORKENING (ADR-0036) the canonical path is gh + the spt install verb (itself non-interactive, REQ-INSTALL-BOOTSTRAP-VERB); the scripts this REQ's evidence attests remain as the hermetic CI fixture + air-gap fallback, still non-interactive by construction (doyle-ratified 2026-07-14).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1509795Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1509824Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1509906Z ### REQ-INSTALL-9
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1511065Z - Title: Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1511160Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1511195Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1511280Z ### REQ-INSTALL-10
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1512473Z - Title: Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1512566Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1512600Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1512691Z ### REQ-INSTALL-11
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1514367Z - Title: Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1514518Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1514547Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1514633Z ### REQ-INSTALL-12
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1517081Z - Title: Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → "adapter[:profile]" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1517234Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1517257Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1517343Z ### REQ-INSTALL-13
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1520280Z - Title: Adapter add is non-destructive & idempotent-safe (F-018): `spt adapter add --github|--release` REFUSES when the target `_github/<safe>` home already backs an ACTIVE registered record — emitting an actionable code (ADAPTER_ADD_ALREADY_REGISTERED) that routes to `spt adapter update <name>` (refresh in place) or `spt adapter remove <name>` then re-add (replace) — instead of clobbering the live install (the perri footgun: `add --github` over a `--release` pointer git-cloned a source tree over the extracted built binaries → registered pointer dangled → cryptic `os error 2`). And when it DOES (re)populate the home it STAGES-THEN-SWAPS (clone/extract to a sibling staging dir, swap into place only on success) so a failed fetch/clone never strands the previously-extracted manifest+binaries as a dangling pointer (the os-2 / DeferredManifest class). Mirrors the safe stage-then-swap `adapter update` already uses (REQ-UPD-9, apply_release_crc_swap). (v0.14.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1520384Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1520414Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1520494Z ### REQ-REL-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1521982Z - Title: HISTORICAL (superseded by ADR-0036 / REQ-RELEASE-CHANNEL-PRIVATE + REQ-DOCS-LOCAL-SERVER): spt-releases publish-target repo — README public face, licensing split, Pages docs at the ADR-0014 canonical URL. The Pages pipeline retired at THE-FORKENING (docs-publish.yml deleted W2, xtask site() deleted W3); the licensing-split artifacts (releases-repo/LICENSE-*) remain in-repo and the repo-topology story lives in CONTEXT §Project infrastructure. doc stage retained as the historical record on ADR-0014.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522079Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522107Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522188Z ### REQ-REL-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522612Z - Title: Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522699Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522727Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1522808Z ### REQ-REL-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523198Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523290Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523314Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523399Z ### REQ-DOCS-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523571Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523658Z - Required stages: doc, impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523742Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523822Z ### REQ-DOCS-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1523960Z - Title: Sub-10-minute runnable killer quickstart per audience
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524050Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524082Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524158Z ### REQ-DOCS-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524321Z - Title: Diátaxis structure; one canonical way to do X
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524406Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524435Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524511Z ### REQ-DOCS-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524683Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524778Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524807Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1524888Z ### REQ-DOCS-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525050Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525145Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525169Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525270Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525431Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525576Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525608Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525703Z ### REQ-HAZARD-INFO-JSON-TORN-READ
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525833Z - Title: State-file reads tolerate concurrent writes (1.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525923Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1525947Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526041Z ### REQ-HAZARD-STALE-INDEX-LOCK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526157Z - Title: Sweep stale lockfiles on daemon boot (1.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526313Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526342Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526436Z ### REQ-HAZARD-DEFERRED-DRAIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526588Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526678Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526706Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526796Z ### REQ-HAZARD-WORKER-PATH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1526945Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527035Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527068Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527165Z ### REQ-HAZARD-PARENT-PID-PREFER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527326Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527407Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527435Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527526Z ### REQ-HAZARD-STDIN-SESSION-ID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527641Z - Title: Stdin session_id precedence over env (2.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527726Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527760Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527860Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1527998Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528084Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528114Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528204Z ### REQ-HAZARD-GEN-START-NOW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528327Z - Title: gen_start = now() on cold-start and handoff (2.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528414Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528443Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528551Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528680Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528767Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528791Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1528890Z ### REQ-HAZARD-RING-PERCH-ADOPTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1538649Z - Title: A ring NEVER adopts — and therefore never deletes — a perch directory it did not create in THIS invocation (3.4). The twin of REQ-HAZARD-EPHEMERAL-CLEANUP, which guarded the LEAK direction only: cleanup runs on every exit path, so the moment `ring` mistakes somebody's REAL perch for its own ephemeral one, that same guaranteed cleanup becomes a guaranteed DELETION — ready marker, info.json, spool.db and the dir itself, by silent CLI-side fs ops with no daemon log (field 2026-07-27: emphasys lost a live endpoint and its spooled mail this way). DELETION IS ONLY THE DURABILITY HALF: while the ring holds the adopted perch, its reply-wait `drain_one_at` CONSUMES whatever is in the victim's spool and RENDERS it to the ringer as the reply. When ringer and victim are the SAME agent (the field case) that is at worst loss — anything drained goes to its intended recipient. When a THIRD party rings a live agent it is CROSS-AGENT MAIL DISCLOSURE: the victim's inbox is drained into the ringer's output, with no trace on either side once the dir is removed, and on a subnet spanning machines that is a CONFIDENTIALITY failure, not merely a durability one. Proven by the red-first artifact — with the guard disabled the survival unit returns `Replied{from:"someone", body:"mail that must survive"}` instead of a refusal. (Field-bounded by emphasys 2026-07-27: his own 66-second ring window returned TIMEOUT with no `Replied`, so nothing was drained in THAT incident — the disclosure shape was available and did not fire.) SELF-CAMOUFLAGING, which is why it went unattributed: the damage — perch gone, roster row ghosted — MIMICS the stale-liveness condition people reach for `ring` to diagnose, so the field caller was probing a ghost-roster symptom and the probe manufactured a fresh one; debuggers of stale liveness are disproportionately its victims and read the wreckage as more of the symptom they were chasing. The misjudgement source is READY-MARKER-FIRST liveness: an existing perch whose ready marker is momentarily down (busy turn, soft session-end, stale re-bind — and on hosted OMP endpoints marker-down is the NORMAL steady state during work, since the extension owns the listener and publishes busy/idle through `api state`) reads 'caller is perchless', so marker-first misjudges HEALTHY endpoints routinely, not rarely. INVARIANT: before creating an ephemeral reply perch, probe the perch DIRECTORY, not the marker — a dir carrying a record or a spool is OCCUPIED and the ring refuses to adopt it; an UNREADABLE record (corrupt/truncated info.json) or an unreadable dir counts as OCCUPIED, never as residue, because deletion is irreversible and refusal is recoverable, so every ambiguity resolves toward refusal; a pre-existing EMPTY dir is refused too (it is not provably ring's own residue — `endpoint run` mid-create owns an empty perch dir for a window, and deleting it is the same race wearing a different hat). Refusal is never silent and never blocks: the message is DELIVERED, the call declines to block-wait (the reply lands on the caller's own listener), and the caller gets a distinct loud report — RING_PERCH_EXISTS (record/spool) or RING_STALE_DIR (empty, naming the path and the manual remedy), so the permanent-refusal failure mode is solved by LOUDNESS rather than by a self-heal that would re-introduce the deletion race. Structural, not advisory: the leaf dir is created with `create_dir` (fails AlreadyExists), so even a perch that appears between the probe and the create cannot be adopted, and the occupied-refusal path never calls cleanup.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1538863Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1538892Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1539064Z ### REQ-PERCH-GC-RESIDUE-PREDICATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1546352Z - Title: A perch directory is RESIDUE only on a POSITIVE record-absence predicate, and the store that answers it is the owlery tree itself (3.4 extension; releases#109, doyle-ruled 2026-08-04). There is NO independent endpoint-existence store on a node: `spt::roster::enumerate`, the daemon's `projwriter::enumerate_perches` and `perch::list_self_perch_ids_checked` all derive the endpoint set from `read_dir(owlery)`, and a dir with no `info.json` is not a perch — so THE PERCH DIRECTORY PLUS ITS PARSEABLE RECORD IS THE ENDPOINT RECORD. The local registry is NOT that store and must never be asked: KNOWN-HAZARDS 4.3 has `clean_stale_entries` DELETE dead-pid rows and `unregister_address` fire on an ordinary stop, so registry-absence is the normal steady state of every OFFLINE endpoint (measured HFENDULEAM 2026-08-04: 6 of 14). PREDICATE: residue iff no `info.json` is present on ANY read attempt. Positive, present-tense, one read, and NEVER an age/mtime heuristic — a dormant endpoint, a suspended session and a long-idle live agent are indistinguishable from 'old' by mtime. Absent is the ONLY answer that authorizes deletion, so the read keeps NotFound distinct from every other I/O error: unreadable ⇒ occupied, corrupt (present, unparseable) ⇒ occupied (a destroyed record belongs to an endpoint that exists). REAP POPULATION IS NARROWER THAN RESIDUE: recordless AND spool-less AND non-empty AND no record-write in flight (`.info.lock` held ⇒ a bringup mid-create) AND every nested/shells child independently reapable (deepest-first; a recordless parent holding ANY non-reaped child is itself refused). A REFUSED DIRECTORY SHIELDS ITS WHOLE SUBTREE (doyle, ruled 2026-08-04): a descendant that would qualify on its own is reported SHIELDED-BY-REFUSED-PARENT and left alone, because refusing a directory must mean not modifying its CONTENTS either — carving a child out destroys part of what the refusal report just asked the operator to look at, and can move the parent's own classification on the next pass, and a sweep whose refusals are unstable across its own runs is untrustworthy. A recordless dir carrying a SPOOL is refused permanently — undeliverable-by-construction settles deliverability, not VALUE, and that spool is the only surviving copy of what was queued. An EMPTY dir is refused permanently — the mid-create race 3.4 protects exists here identically and no positive discriminator for 'not mid-create' exists for an empty dir. A reparse point anywhere in the subtree is refused. Store unavailable (`read_dir` on the root fails) ⇒ DO NOTHING and say so, reported distinctly from an empty owlery.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1546556Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1546585Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1546682Z ### REQ-PERCH-GC-REFUSAL-REPORT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1550767Z - Title: The perch GC is REPORT-ONLY BY DEFAULT and every refusal is LOUD, distinct and per-path (releases#109, doyle-ruled 2026-08-04 — 3.4's own doctrine transplanted: loudness, not a self-heal, is what keeps a PERMANENT refusal from being a silent one). Bare `spt endpoint gc` classifies every perch directory and deletes NOTHING; `--reap` removes exactly the ruled population. There is deliberately NO `--dry-run`: when the default deletes nothing, a dry-run flag is a synonym that implies the default is dangerous. The classification pass completes BEFORE any removal, so the census prints IDENTICALLY with and without `--reap` (same subjects, same tokens, same order) and the two runs compare line for line — a bare run is a faithful preview. Each refused row names its own token (RESIDUE-WITH-SPOOL, RESIDUE-EMPTY, OCCUPIED-RECORD, OCCUPIED-CORRUPT-RECORD, OCCUPIED-UNREADABLE-RECORD, OCCUPIED-UNREADABLE-DIR, OCCUPIED-REPARSE-POINT, OCCUPIED-WRITE-IN-FLIGHT, OCCUPIED-CHILD-HELD) rather than one lumped 'skipped', and each PERMANENTLY-refused residue row carries the manual remedy that is the operator's only remaining handle. A removal that fails is reported by path with its error and exits non-zero; an unreadable owlery root exits non-zero having classified and removed nothing. The report is the evidence layer the daemon-fired sweep (releases#158) must earn its automation from.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1550878Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1550906Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1551020Z ### REQ-HAZARD-PERCH-GC-LIVENESS-INVERSION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554239Z - Title: A perch GC must NEVER key on `is_perch_alive` — on the residue population that predicate is INVERTED (3.5; measured HFENDULEAM 2026-08-04). `spt_store::liveness::is_perch_alive` returns TRUE for a directory with no `info.json` (`RawRead::Absent ⇒ true`, interim parity: an absent record means a listener between polls), and FALSE for a daemon-hosted endpoint whose status is `offline`. So on a real box every one of the 24 recordless residue directories read ALIVE and all 6 offline REAL endpoints read DEAD: a sweep keyed on `!is_perch_alive` does not merely under-perform, it authorizes EXACTLY THE INVERSE SET — it would have spared every stray probe dir and deleted six resting agents' records. The predicate is correct for its own job (fail toward alive is the safe direction for DELIVERY) and wrong for this one, which is why the inversion is a hazard rather than a bug. INVARIANT: the GC classifies on record PRESENCE only and never calls a liveness resolver; the unit pinning this asserts BOTH arms with the shipped resolver as the witness (residue reads alive and is still reaped; an offline endpoint reads dead and is still kept).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554398Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554426Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554535Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554679Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554778Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554806Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1554912Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555070Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555165Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555193Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555357Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555488Z - Title: Envelope decode order, ampersand decoded last (4.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555583Z - Required stages: impl, unit, doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555612Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1555707Z ### REQ-HAZARD-ENVELOPE-CR-LINESAFE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1557440Z - 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`).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1557537Z - Required stages: impl, unit, doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1557571Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1557683Z ### REQ-HAZARD-ENVELOPE-ATTR-LINESAFE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1558159Z - Title: Envelope ATTR-linesafety (4.1): attribute values are line-safe because the escaper MAKES them so, not "by construction" — `event_attr_escape` folds CRLF/lone-CR to `
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1558245Z ` and then encodes `
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1560964Z ` as the `&#10;` entity, so no attribute value can split the line-framed EVENT. The falsifier is the composed trust-warning (releases#170), a multi-line block that rides as a `trust-warning` ATTRIBUTE: under the old escaper one delivery rendered as SEVEN lines under the default advisory (measured at the red, 2026-08-21), six of which are not envelopes. The count varies with the operator override, which is why the invariant is stated as "no attribute value can split the frame" and not as a number. Decode is amp-last-preserving: `&#10;` decodes BEFORE `&amp;`, exactly as `<br>` does on the body side, so an attribute carrying the literal text `&#10;` (arriving as `&amp;#10;`) decodes to the literal and never to a linebreak. Corollary held by the same commit: the codec has ONE escaper and therefore ONE decoder — `parse_event_from_attr` calls `event_attr_unescape` rather than hand-inlining a second rule that would make `from=` decode differently from every other attribute.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1561065Z - Required stages: impl, unit, doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1561094Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1561190Z ### REQ-BUILD-UNIQUE-BIN-NAMES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1563357Z - Title: No two workspace packages declare a bin of the same name. Same-named bins share ONE `target/<profile>/` output filename, clobber each other, and a CARGO_BIN_EXE_* lookup then resolves to whichever built last (the PR#28 Windows gate-escape). The invariant was previously carried ONLY as prose that named a single counterpart by name, and prose of that shape ages the moment the counterpart moves: a reader greps the named bin, finds nothing, and concludes the hazard is retired. ENUMERATION IS BINDING: the check reads cargo metadata target list, NEVER `[[bin]]` manifest stanzas — a stanza grep is structurally unable to see an autodiscovered src/bin/*.rs target, so it would certify an absence it cannot observe, which is how a live bin was recorded as non-existent in the register.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1563507Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1563536Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1563636Z ### REQ-DOCS-NO-INTERIOR-SPACE-RUNS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1569690Z - Title: Operator-facing text carries no INTERIOR run of 3+ spaces, judged on RENDERED bytes rather than source text. The defect is a Rust line-continuation backslash that a generator or a careless edit ATE: the literal still compiles, still passes every suite, and only the rendered message is wrong, so no gate we run can see it and only a diff read ever has. The check must RENDER, because a HEALTHY continuation puts a real run of spaces in the file on the next line every time (releases#74 own instance carries thirteen and renders with one) — a source-text scan therefore flags every correctly-continued literal in the crate, and a check with that false-positive rate is one somebody switches off. SCOPE (doyle, re-ruled on the #208 evidence): IN = CLI help and CLI stdout/stderr AND daemon-emitted operator diagnostics, one surface wider than the original brief because the five literals that re-opened the class lived in daemon diagnostics; OUT = test assertion messages, read by someone already reading a trace. A deliberate run stays possible via a per-site greppable `spacerun-ok: <token>` marker carrying a REASON TOKEN, so an exception is a decision written down rather than a hole the gate cannot see; per-site is ruled, because an idiom-aware exemption would have to DETECT alignment, alignment is fuzzy, and any rule recognising `this looks aligned` eventually exempts an eaten continuation that happens to look aligned — a silent false negative in the one direction this check exists to prevent. THIS REQUIREMENT CLAIMS INTERIOR RUNS, NOT THE CLASS (doyle, 2026-08-22). A continuation dies two ways and only one is in reach: if the backslash is deleted AND the lines are joined, the indentation lands mid-sentence and is refused — the JOIN variant, which is measurably what 3416ffd3 repaired (pre-fix run = 18 spaces, those bytes now a cell); if the backslash alone is deleted, the literal keeps its newline and the indentation arrives as LEADING whitespace, which is NOT refused, deliberately, because a help block legitimately indents every line. The limit is named in the module doc as well as here so that greping this id cannot be read as the class being closed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1569847Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1569876Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1569971Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570124Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570214Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570243Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570339Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570534Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570625Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570654Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570744Z ### REQ-HAZARD-ID-CHARSET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1570959Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571054Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571082Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571178Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571341Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571449Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571477Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571567Z ### REQ-HAZARD-REGISTRY-CONCURRENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571787Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571877Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1571959Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1572054Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1572393Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1572487Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1572516Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1572612Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573003Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573098Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573127Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573228Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573337Z - Title: Deferred rows survive poll drain (4.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573427Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573455Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573548Z ### REQ-HAZARD-INBOX-NO-DOUBLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573661Z - Title: No double-delivery via legacy inbox (4.5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573755Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573831Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1573927Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574058Z - Title: Windows PID-recycling false positives guarded (5.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574148Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574173Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574268Z ### REQ-HAZARD-EBUSY-RENAME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574406Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574497Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574521Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1574697Z ### REQ-HAZARD-PERCH-RECORD-POWER-LOSS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575165Z - Title: Authoritative/identity records fsync data before the rename (5.13): a hard reset must not resurrect a full-length NUL-filled record — SCOPED, not a blanket fsync
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575255Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575284Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575378Z ### REQ-HAZARD-ATOMIC-TMP-COLLISION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575780Z - Title: Concurrent atomic writers to the same target must not share a tmp name (5.15): a fixed tmp sibling makes one writer's rename consume the other's staged file (os-error-2 loser)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575880Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1575908Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1576003Z ### REQ-HAZARD-INFO-RMW-LOST-UPDATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1576366Z - Title: Concurrent info.json writers must serialize under the per-perch lock (5.16): an unlocked whole-record write racing a locked RMW is a silent lost update
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1576463Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1576491Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1576594Z ### REQ-HAZARD-CORRUPT-PERCH-COHERENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1576977Z - Title: Corrupt (present-but-unparseable) info.json is NOT absent: liveness/status readers agree a destroyed record is neither alive nor Active (counter-39 #2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577063Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577092Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577193Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577320Z - Title: Every harness/git subprocess has a timeout (5.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577417Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577441Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577527Z ### REQ-HAZARD-UNC-PATH-STRIP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577674Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577774Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577803Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1577912Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578080Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578180Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578207Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578298Z ### REQ-HAZARD-SOFT-CLEANUP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578470Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578556Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578585Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578681Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1578832Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579043Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579062Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579170Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579308Z - Title: Drop files are daemon-owned single-writer (6.4)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579402Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579430Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579534Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579727Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579821Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579849Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1579955Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1580459Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1580551Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1580585Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1580684Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1581805Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1581901Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1582023Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1582118Z ### REQ-HAZARD-CONPTY-DSR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1582305Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1582399Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1582427Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1582529Z ### REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1584325Z - Title: Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1584435Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1584463Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1584562Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1584956Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1585052Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1585081Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1585181Z ### REQ-HAZARD-INSTANT-UNDERFLOW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1585706Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1585801Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1585829Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1589039Z ### REQ-HAZARD-PUMP-IPC-DEADLINE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1589873Z - Title: The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1589976Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1590009Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1590108Z ### REQ-HAZARD-BROKER-QUIC-DEADLINE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1593065Z - Title: The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1593274Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1593307Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1593408Z ### REQ-HAZARD-BROKER-SEED-WIRE-SKEW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1596939Z - Title: A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1597047Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1597076Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1597172Z ### REQ-HAZARD-SUDO-SECURE-PATH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1597966Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1598064Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1598093Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1598184Z ### REQ-HAZARD-SELF-ELEVATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600319Z - Title: Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600418Z - Required stages: unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600447Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600537Z ### REQ-HAZARD-LOCAL-API-AUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600722Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600808Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600893Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1600993Z ### REQ-BOUNDARY-ROTATION-CREDENTIAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602280Z - Title: api boundary's rotation credential is designed, documented, and eventually anchor-proven (ADR-0032): the proof is the DEPARTED session's (prior sid / token) — --to-session-id is payload, never proof; the published surface documents the adapter prior-sid persistence pattern + loud-refusal requirement; the design-true end-state additionally accepts an OS-verified parent_pid-anchor ancestry proof making adapter sid-state optional
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602373Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602401Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602505Z ### REQ-HAZARD-RESTART-IDEMPOTENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602790Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602887Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1602910Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603007Z ### REQ-HAZARD-UPDATE-ROLLBACK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603233Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603377Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603406Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603510Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603876Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603969Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1603997Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1604196Z ### REQ-HAZARD-BROKER-PROCESS-ISOLATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1606620Z - 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).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1606729Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1606758Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1606864Z ### REQ-HAZARD-ROLLBACK-STATE-COMPAT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1608455Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1608558Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1608586Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1608686Z ### REQ-HAZARD-BRAIN-RESPAWN-PATH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1611087Z - Title: The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1611247Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1611277Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1611378Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1612097Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1612197Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1612221Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1612322Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1612904Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1613003Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1613084Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1613185Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1613788Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1613880Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1613903Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1614093Z ### REQ-HAZARD-PAIR-SEED-ROTATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1614571Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1614662Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1614690Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1614786Z ### REQ-HAZARD-PAIR-RATE-LIMIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1615582Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1615677Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1615705Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1615802Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1616528Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1616627Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1616650Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1616737Z ### REQ-CONSENT-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1617548Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1617643Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1617671Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1617753Z ### REQ-CONSENT-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1618500Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1618587Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1618616Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1618698Z ### REQ-PRES-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1620001Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1620152Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1620185Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1620263Z ### REQ-SHELL-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1621067Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1621159Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1621188Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1621270Z ### REQ-SHELL-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1623711Z - Title: Shell sleep/wake: link-break always closes the link, and always ends the binary it can still PROVE is ours (pre-close instruction + termination timeout, then an AUTHENTICATED force-close -- narrowed from 'always closes the binary' by BAROMETER's REQ-SHELL-KILL-AUTHENTICATED, since an unconditional kill on a recycled pid force-kills an unrelated process TREE; a kill that cannot authenticate its target is refused, named in the log, and the close continues), 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1623868Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1623901Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1623997Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1625212Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1625311Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1625341Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1625436Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1628328Z - Title: Registry rows must decay (no immortal rows) via TWO triggers: (a) NODE-SILENCE — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window, so a vanished node's rows stop poisoning bare-id resolution with phantom AcrossNodes ambiguity; AND (b) per-row OFFLINE-TTL — evict rows that have been non-routable (Offline) beyond the per-row grace even while the author node is alive, because purge/erase leaves an immortal Offline row otherwise (ghost-heal re-advertises Offline ONCE with a fresh epoch, and whole-node eviction never fires for a still-alive author) so Offline ghost rows accumulate unbounded on a remote viewer under purge/erase churn (#2-secondary). Both keyed on RECEIVER-observed state (heard-map recency / a sticky receiver-observed offline_since, NOT the gossip epoch — an epoch-keyed clock would be reset by ghost-heal's fresh-epoch re-advertise); own rows never decay; a revived/re-flapped row re-inserts (or clears its offline_since) from its durable epoch within one pump cadence (4.10)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1628432Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1628461Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1628542Z ### REQ-CLI-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1630885Z - 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). SUPERSEDED (F-025 item 3): the LISTING SHAPE now lives in REQ-ENDPOINT-LIST-NODE-GROUPED (node-grouped over unique instances, not grouped-by-subnet) + REQ-ENDPOINT-LIST-REST-FILTER (suspended-hidden + --show-all); the `--local` flag was dropped by REQ-ENDPOINT-LIST-MERGE-LOCAL (the list ALWAYS merges local). This REQ owns only the endpoint noun NAMESPACE + parse surface — not the render shape.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631036Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631080Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631157Z ### REQ-CLI-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631786Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631876Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631909Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1631985Z ### REQ-CLI-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1632673Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1632760Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1632789Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1632870Z ### REQ-CLI-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1634903Z - Title: User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — "claude-spt is up to date (0.2.0)." not "ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1634995Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1635024Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1635105Z ### REQ-SUBNET-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1636125Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1636215Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1636244Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1636325Z ### REQ-SUBNET-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1636946Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1637040Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1637069Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1637149Z ### REQ-SUBNET-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1638687Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1638777Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1638806Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1638888Z ### REQ-SUBNET-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1640016Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1640107Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1640135Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1640220Z ### REQ-INSTALL-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1641344Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1641435Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1641459Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1641545Z ### REQ-INSTALL-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1648407Z - Title: Windows inbound reachability: the install path RECONCILES the product inbound-UDP firewall rule onto the binder it places — create when missing, REPOINT when the rule names a different image, and report which it did — and 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). AMENDED BY REPLACEMENT (releases#173, doyle ruling 2026-08-21): the previous title said the elevated leg REGISTERS the rule, which is create-only and describes half the behaviour. A program-scoped rule admits exactly one path, so the moment the binder can move is the moment the rule can go stale — and a stale rule reads GREEN BY NAME while inbound is dead on the Public profile (KNOWN-HAZARDS 7.61; field specimen 2026-08-06, a rule naming an actions-runner debug exe on a node whose installed binder serves, still reproducing at c62904e7). REPOINT-IF-DIFFERENT IS THE LOAD-BEARING ARM and create belongs to first install: an update swaps the binary in place at the same canonical path, so the program scope does not change and the reconcile is a no-op in the common case. SCOPED TO THE PRODUCT-NAMED RULE ALWAYS — the probe queries by name and the repair deletes by name, so dev and CI rules naming spt images on the same box are never read and never touched; they can be load-bearing for runner jobs, and a delete-by-image sweep would read as tidying while eating one. Elevation unavailable degrades LOUD and NEVER FATAL: the rule is left exactly as it was and the operator is handed the exact command, because a placed binder with a stated reachability problem beats a refused installation. The durable verdict is NOT written by the installer — the inbound record is pinned to the binder pid AND image (REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED), so a record authored by a short-lived installer re-derives as Unknown for every reader, which is the self-erase class releases#172 closed; the verdict stays the daemon's to write at bind. Gate: doc — the CONTEXT.md install entry stating that placement reconciles the rule and what happens unelevated; impl — the pure reconcile decision seam, its thin netsh effector, and the call at binder placement; unit — the four decision cases (missing, correct, stale path, cannot-elevate) decided with no netsh and no privilege, plus a named cell proving a reconcile never reaches a rule it was not asked about.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1648574Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1648603Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1648683Z ### REQ-INSTALL-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1649720Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1649861Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1649891Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1649967Z ### REQ-CONV-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1651294Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1651385Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1651413Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1651494Z ### REQ-CONV-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1652480Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1652625Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1652654Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1652733Z ### REQ-PAIR-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1654018Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1654113Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1654141Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1654224Z ### REQ-DAEMON-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1655425Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1655526Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1655553Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1655634Z ### REQ-DAEMON-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1657431Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1657531Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1657555Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1657640Z ### REQ-DAEMON-7
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1659040Z - 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).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1659130Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1659158Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1659239Z ### REQ-DAEMON-8
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1660093Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1660241Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1660271Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1660351Z ### REQ-DAEMON-9
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1662512Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1662660Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1662688Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1662783Z ### REQ-HAZARD-LIVEHOST-BOOT-RACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1666256Z - Title: The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1666358Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1666386Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1666484Z ### REQ-HAZARD-TEMPLATE-ARGV-FILL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1670167Z - Title: Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = "PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1670329Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1670362Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1670462Z ### REQ-HAZARD-LIVEHOST-NONRESIDENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1673553Z - Title: A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:"host not resident within <n>s (psyche perch missing/dead pid)"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1673698Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1673726Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1673821Z ### REQ-HAZARD-EPOCH-RESET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1675152Z - 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)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1675242Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1675271Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1675358Z ### REQ-MESH-1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1677350Z - 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).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1677454Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1677477Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1677559Z ### REQ-MESH-2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1680136Z - 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).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1680236Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1680264Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1680349Z ### REQ-MESH-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1681933Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1682087Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1682124Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1682208Z ### REQ-MESH-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1685259Z - Title: Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only; COMPOSED-WITH milestone-A FF: REQ-SUBNET-REVOKE-ADMIN-GATE adds the admin-TOTP gate BEFORE any write — elevation alone no longer authorizes — and REQ-SUBNET-ADMIN-RESURFACE rides the same coalescing window for the parked ADMIN key; this REQ keeps the revoke mechanics + MEMBER-seed rotation) 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1685402Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1685435Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1685516Z ### REQ-MESH-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1686867Z - 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.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1686970Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1686995Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1687076Z ### REQ-MESH-6
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1688276Z - 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.)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1688366Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1688396Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1688482Z ### REQ-SHELL-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1690342Z - Title: Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1690439Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1690467Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1690557Z ### REQ-SHELL-4
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1692270Z - Title: Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1692430Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1692460Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1692546Z ### REQ-CONSENT-3
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1694320Z - Title: Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1694473Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1694503Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1694584Z ### REQ-SHELL-5
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1695829Z - Title: Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1695925Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1695953Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1696052Z ### REQ-HAZARD-VIEWER-CLOSE-DETACH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1705373Z - Title: A VIEW is independent from the endpoint: closing the tab/window where the endpoint was brought up must detach ONLY the `spt rc` attach pump — the daemon-hosted harness keeps running and stays re-attachable via `spt rc <id>`. ROOT (Windows, v0.12.0 real-harness defect): the daemon never breaks away from the launching terminal's Job Object. Windows Terminal / VS Code place the launched shell AND every descendant into a Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; closing the tab drops the terminal's last job handle → the OS terminates every process still in that job. A child escapes only with CREATE_BREAKAWAY_FROM_JOB — used NOWHERE in the tree. Both daemon spawn paths (daemon.rs:707 detached_no_inherit = DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP|CREATE_NO_WINDOW; deelevate.rs:519 elevated = CREATE_NEW_CONSOLE|...) drop the CONSOLE but NOT job membership, so the daemon's freshly broker-spawned ConPTY harness subtree is reaped on tab-close. The ConPTY/pseudoconsole isolation itself is CORRECT (portable-pty builds the pseudoconsole in the daemon; no console signal / handle leak) — the leaking lifetime binding is the Job Object, not the console. FIX: add CREATE_BREAKAWAY_FROM_JOB to both daemon spawn paths AND pin each broker-spawned harness into a DAEMON-OWNED Job Object (mirror reap.rs/Breap) as backstop (survives even where a terminal sets SILENT_BREAKAWAY_OK=false). Unix: the daemon's own session detachment (new session, no controlling terminal) already keeps a closing terminal's SIGHUP off its children — verify, add a guard test, no code expected. FIX UPDATE (v0.12.1 L1.5, doyle re-scope operator-approved 2026-06-18): job-neutral daemon launch is now PRIMARY, breakaway DEMOTED to a fallback rung. ROOT reframed — the daemon INHERITS the terminal's Job because spawn_detached runs FROM the terminal-child CLI (DETACHED_PROCESS detaches the console, not the job); breakaway tried to claw back out but a job CAN deny it (the L1 finding). FIX: launch the cold-started daemon via a job-NEUTRAL creator so it is WmiPrvSE/Task-Scheduler-owned, OUTSIDE any terminal job from birth (why Task-Scheduler-autostarted daemons never had this bug). Launcher ladder (first-success-wins, daemon.rs spawn_detached → BOTH cold-start AND `spt daemon start`): (1) WMI Win32_Process.Create via ABSOLUTE powershell -EncodedCommand (KH 5.12 abs path; base64-UTF16LE dodges all quoting; success requires BOTH ReturnValue==0 AND a parsed ProcessId, else fall-through — never a silent launched), forwarding SPT_* env via a `cmd /c set … & start /b` wrapper because a WMI/scheduler child does NOT inherit transient shell env (verified — SPT_HOME would be lost, wrong universe); (2) schtasks one-shot (same env wrapper; best-effort fallback); (3) CREATE_BREAKAWAY_FROM_JOB (the L1 code, reordered below); (4) in-job last resort (logs DETACH_IN_JOB + tab-close caveat). detached_no_inherit (breakaway-then-in-job) is UNCHANGED for its other caller shellhost::launch_shell (a daemon-spawned shell is already job-neutral once the daemon is). The elevated deelevate path keeps its L1 breakaway for now (elevated-case WMI-reparent = FOLLOW-UP). (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1705557Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1705644Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1705740Z ### REQ-HAZARD-ATTACH-WEDGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1710918Z - Title: A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the broker for all other clients. ROOT (v0.12.0 real-harness defect): loopback attach output is a blocking write_all into a bounded 64KB tokio duplex (nethost.rs:1040,1090); when the operator's rc pump stops draining (tab closed) the buffer fills and write_all blocks forever (the 'loopback never hangs' assumption at nethost.rs:1103 is false), parking a worker in the 2-worker net runtime (nethost.rs:640); a couple of these saturate BOTH workers → every new attach / `endpoint run` stalls right after 'PUMP_IPC_READER: spawned' → 30s FIRST_EVENT_GRACE → 'no output / dead or wedged'; `daemon stop` cannot join the stuck workers. DISTINCT from the removed B1 path-(c) mutex deadlock. DISPOSITION = PROVE-DON'T-CHANGE (doyle GATE-PASS @e883f45, 2026-06-18): this ROOT is the SUPERSEDED v0.12.0 hypothesis — the post-L0 code ALREADY prevents the wedge, so NO fail-fast / worker-count code was added. serve_attach forwards fire-and-forget (net_stream_send op_id=None) and the broker-side send_stream is already BROKER-QUIC-DEADLINE-bounded (bounded_block_on, 10s); the loopback duplex is drained broker-INTERNALLY by the operator row's own read pump (RecvHalf::Loopback, retentive_cap==0 → evict-not-park) so a dead rc (a dropped IPC subscriber) never backs peer_w up; bounded_block_on parks the BROKER DISPATCH thread, not a net worker → no worker-pool exhaustion (full mechanism in the required_stages comment). Folds the status=online sub-check: a dead spt-hosted endpoint is marked OFFLINE within one reconcile tick on abrupt child death (broker exit-waiter reaps the session → B2 sees it absent) — PROVEN, no change. (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1711022Z - Required stages: int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1711050Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1711145Z ### REQ-PICKER-HISTORY-FRESH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1712183Z - Title: The `spt endpoint run` picker shows project history for FRESH endpoints (operator-raised v0.12.0 real-harness finding). Symptom: a fresh endpoint shows no project history in the picker. ROOT TBD — investigate the project-history loader (v0.10.0 PICKER-2, picker/data.rs) before fixing: distinguish a real loader bug from 'fresh = no history yet' semantics. (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1712277Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1712311Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1712402Z ### REQ-PICKER-ONLINE-ACTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1713879Z - Title: The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint — Attach, NOT 'Start now' (operator-raised v0.12.0 real-harness finding). Symptom: the picker offers 'Start now' for endpoints that are already online. ROOT TBD — investigate the status→action mapping (v0.10.0 PICKER-1 four-state status, picker/model.rs): is it reading live/online state correctly, or rendering stale/wedged broker state (i.e. partly a symptom of the broker wedge / status=online latch)? Fix so online → Attach. (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1714027Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1714056Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1714149Z ### REQ-ENDPOINT-LIST-MERGE-LOCAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1715832Z - Title: `spt endpoint list` always merges this node's LOCAL (unadvertised) perches into the view; the `--local` flag is REMOVED (operator decision 2026-06-17). Rationale: `spt whoami` is a thin alias of `endpoint list` — a just-online agent running `whoami` must see its OWN perch, or it gets an omitted-self view ('chaos'). FIX: drop the `--local` flag + its `--detail` conflict test + the v0.10.0 REQ-PICKER-5 hint line (cli.rs:1678) + cmd_list_local; the bare list merges local perches into the subnet view; fix the whoami alias path accordingly. Run `cargo run -p xtask -- gen` (docs-drift, DEFAULT target). (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1715928Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1715957Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1716065Z ### REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1721020Z - Title: A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY output. KEYSTONE — the operator's central 'attach shows no output' symptom, reproduced on the real dummy-harness fixture (v0.12.1 Wave 1) with NO death and NO wedge: bringup succeeds (online, harness pid alive + heartbeating, psyche hosted), the attach CONNECTS (PUMP_IPC_READER spawned, no RC_FAIL, holds the full window) — but receives EXACTLY 0 bytes over 10s of the harness's flushed [session.self] stdout. DISTINCT from REQ-HAZARD-VIEWER-CLOSE-DETACH (death) and REQ-HAZARD-ATTACH-WEDGE (dead-child backpressure): here the harness is ALIVE and the attach is a clean first subscribe. This BLOCKS the 'view is independent' invariant — re-attach is meaningless if a live endpoint-run harness shows nothing. KNOWN-GOOD (rules out 'no drain'): attach.rs `local_attach_via_loopback_conn_rides_the_same_pump` + `broker_spawns_the_pty_child_in_the_requested_cwd` prove the broker DOES drain+fan a `spawn_session` PTY child to a loopback attach over the SAME transport rc uses. Both spawn_session and endpoint-run's spawn_session_pid send KIND_SPAWN → the same dispatch_spawn (broker.rs:706/835) which starts the per-session drain+OutputLog — so the gap is NARROWER than 'no drain', endpoint-run-specific. Root candidates: (a) spawn_session_pid's SpawnReq stdio/env/cwd differs so the dummy's stdout isn't the captured ConPTY; (b) the harness stdout WRITE BLOCKS because the ConPTY buffer fills (drain not reading THIS pty) — explains alive-but-0-bytes; (c) ConPTY reader-park (KH 7.6) on this path; (d) `spt rc` resolve_session/subscribe for an endpoint-run session subscribes to the wrong/empty log. (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1721177Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1721210Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1721311Z ### REQ-CLI-HELP-MARKDOWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1724183Z - Title: `spt --help` (and every subcommand --help) renders the inline Markdown authored in the clap doc-comments as terminal styling, never as literal markers: `**bold**` → ANSI bold, `` `code` `` → ANSI cyan, `[text](url)` → `text`. The markers are STRIPPED either way — a raw `**` or backtick must NEVER reach the user (the operator-reported v0.12.0 defect: help text reads `**ctrl-b**` and stray backticks verbatim). Color/bold escapes are emitted ONLY when the help is going to a real terminal AND color is not suppressed (NO_COLOR unset · CLICOLOR != 0 · CLICOLOR_FORCE forces on); a pipe / redirect / CI / NO_COLOR falls back to strip-only (clean plaintext, zero escapes) so machine-readable help is byte-identical regardless of marker syntax. Pure transform over the clap-rendered help string at the single run()/bare_invocation chokepoint; preserves pre-existing ANSI (CSI sequences passed through untouched), never spans markers across a newline, leaves unmatched/empty markers literal, and does not alter the help layout. (v0.12.1)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1724284Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1724364Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1724463Z ### REQ-HAZARD-WMI-DAEMON-WINDOW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1726846Z - Title: `spt daemon start` launches the daemon with NO visible console window. REGRESSION (v0.12.1 L1.5): the WMI job-neutral launch (spawn_daemon_via_wmi) set CREATE_NO_WINDOW on the launching powershell but NOT on the Win32_Process.Create call — Win32_Process.Create does not inherit it, so the spawned cmd.exe env-forwarding wrapper popped a console window on every cold-start (violating REQ-INSTALL-10's v0.7.4 no-persistent-window invariant; the old detached_no_inherit path set DETACHED_PROCESS|CREATE_NO_WINDOW). FIX: pass a Win32_ProcessStartup with CreateFlags=DETACHED_PROCESS (0x8 — no console so no window; CREATE_NO_WINDOW 0x08000000 is NOT a valid Win32_ProcessStartup flag → ReturnValue 21 invalid-param, which is why the naive port fails) + ShowWindow=SW_HIDE(0) belt, via the ProcessStartupInformation argument. (v0.12.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1726945Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1726973Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1727072Z ### REQ-CLI-OUTPUT-MARKDOWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1731585Z - Title: Human-prose COMMAND OUTPUT (not just `--help`) renders the inline Markdown authored in its source strings as terminal styling, never literal markers: `` `code` `` → ANSI cyan, `**bold**` → ANSI bold, `[text](url)` → `text`, markers STRIPPED either way. REQ-CLI-HELP-MARKDOWN only hooked the clap `--help` chokepoint, so command output still printed raw Markdown (audit: `spt how-to` topic text showed `# headers`/backticks, `spt subnet`/`subnet status` hint footers showed stray backticks, the daemon-status `not running` line, the `ENDPOINT_RUN_STARTED` attach hint, and the daemon's `SUBNET_DETACHED` startup line — 13 prose surfaces). The same line-bounded pure `helpfmt::render` is applied at each emit site, color-gated by the OUTPUT STREAM's own tty (`stdout_color` for print/println, the new `stderr_color` for eprintln). HARNESS-SAFETY (binding): color is tty-gated, so an adapter (piped / non-tty / NO_COLOR) gets STRIP mode = zero ANSI + markers removed; every dual-contract MACHINE token on a rendered line (`ENDPOINT_RUN_STARTED:`, `NO_SUCH_TOPIC:`, `SUBNET_DETACHED:`) carries NO Markdown markers, so it survives strip byte-intact — the adapter parse is never perturbed. Pure-machine output (the `<EVENT …>` envelope, bringup parse-tokens SEEDED/BOUND/READY/NO_SEED, `--json`, QR) is NEVER routed through the renderer. The one spt-daemon source string (`SUBNET_DETACHED`, the bin-local renderer is unreachable from the daemon crate) is authored marker-free instead. (v0.12.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1731704Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1731737Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1731851Z ### REQ-HAZARD-INJECT-CONTROL-COEXIST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1738851Z - Title: SPINE INVARIANT (v0.13.0 keystone): the broker must accept INJECTED keystrokes into an spt-hosted PTY (the v0.11.0 raw direct-inject today; the ADR-0022 translation-binary choreography tomorrow) WHILE a live `spt rc` controller is attached to the SAME PTY, without (a) the operator losing control, (b) the endpoint latching ONLINE+CONTROLLED, or (c) the broker wedging. The injection inlet is PERMANENT — spt-claude-code requires keystroke injection — so this is root-caused + fixed at the PTY-injection layer, IN STEP with the ADR-0022 delivery redesign that formalizes the inlet. REOPENS the wedge facet of REQ-HAZARD-ATTACH-WEDGE: the v0.12.1 prove-don't-change covered only DEAD-CHILD backpressure, NOT the injection trigger (operator's signal — one injected keystroke succeeds, the next wedges → the single-threaded broker parks on a blocking PTY/loopback write after injection-induced harness output). REPRO-FIRST on the real dummy-harness fixture (NO theory): instrument to nail the exact blocking call before any fix. Fix candidates: non-blocking/fail-fast PTY write, split input/output, bounded-evicting. Mechanism shared with W2 — spt-core owns EVERY PTY write and applies an injected sequence ATOMICALLY (controller input buffered during the sequence, flushed after) so a stash/restore can't be clobbered. CONFIRMED ROOT (doyle /diagnose 2026-06-19, code-grounded): Broker::append (broker.rs:205-227) fans each live output chunk to the CONTROLLER on a SYNCHRONOUS BLOCKING write_frame held inline in the session's drain thread (the 'authoritative, advances delivered_through' path, D4-1), while VIEWERS use a dedicated writer thread + bounded evicting sync_channel (add_viewer:273 / viewer_writer) that can never stall the drain. So a slow/backed-up controller socket — or the full 64KB loopback duplex (the ATTACH-WEDGE buffer) — BLOCKS the drain thread → output stalls → keystroke echoes stall (PERCEIVED input lag) → unrecoverable wedge when the consumer never drains. TRIGGERS ON NORMAL INTERACTIVE rc USE under heavy harness output (TUI redraw), NOT only message injection — same root, wider repro. FIX DIRECTION: move controller delivery off the drain thread onto a dedicated writer (the viewer_writer pattern) BUT preserve the authoritative cursor — block the WRITER thread (not the drain), bound the wedge (deadline → detach/mark-gone, never park forever), never silently evict the operator's authoritative view. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1739152Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1739180Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1739333Z ### REQ-HAZARD-VIEWER-STARVE-UNDER-CONTROLLER-BACKPRESSURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1744387Z - Title: A SLOW controller must not starve a concurrent `rc --view` VIEWER. W1 (REQ-HAZARD-INJECT-CONTROL-COEXIST) moved the controller SOCKET WRITE off the drain thread onto controller_writer, but left the bounded HANDOFF (ControllerJob::deliver) as an INLINE try_send SLEEP-POLL on the drain (broker.rs:1450-1457 → deliver:669-685, up to CONTROLLER_WRITE_DEADLINE=5s). So when a controller drains slower than the PTY floods, its CONTROLLER_CHANNEL_DEPTH(4096) channel fills, deliver() polls inline, and the DRAIN THREAD is throttled to the controller's read rate → OutputLog::append's viewer fan-out (try_send) stops running → a concurrent VIEWER receives only the initial replay then nothing (root 'b4', warm forkpty: a_journaled c1=0/EVICT=0/got_output=FALSE; steady-state-near-full = no recovery; forkpty-only, floods harder than Windows ConPTY). The viewer-not-starved-by-a-busy-session property is legitimate (rc --view of a noisy session must show LIVE output). FIX: the controller becomes a SINGLE NON-BLOCKING try_send (like a viewer), done IN append() under the log lock; deliver()'s sleep-poll DELETED; the drain NEVER sleeps. ControllerSink gains a stateful last_ok deadline → a TRULY-stalled controller (continuous-Full past CONTROLLER_WRITE_DEADLINE) is evicted (bounded-wedge preserved); a slow-but-alive controller DROPS frames + falls behind the ring (resume-from-floor, the existing reconnect case). B2 GAPLESS-HANDOFF PRESERVED via a CONTIGUOUS delivered_through: controller_writer advances the cursor ONLY when the written seq == cursor (next expected); a gap from a drop FREEZES the cursor at last-contiguous so a re-attaching brain's resume_seq never skips a dropped chunk (a high-watermark advance past the gap would be a not-exactly-once resume = B2 violation, doyle's gate). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1744506Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1744535Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1744635Z ### REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1749636Z - Title: A `rc --view` VIEWER that overflows its broker subscription queue and is EVICTED (OutputLog::append try_send Full → viewers.remove, REQ-HAZARD-VIEWER-ISOLATION session-protection) must SKIP TO LIVE, not die silently. ROOT (v0.13.0, b4 JIT item 2 = p0_paste + post-b4 a_journaled-Linux, ONE root): serve_attach forwards each frame (read_event→b64decode→re-encode AttachRecord→net_stream_send) SLOWER than the drain fans out under flood → its VIEWER_CHANNEL_DEPTH(256) channel overflows → the drain evicts (viewers.remove drops the ViewerSink → drops tx → viewer_writer's rx.recv() Err → the writer returns WRITING NOTHING) → serve_attach's brain.read_event() just STOPS getting Output (no EOF, no error) → serve_attach blocks forever → the operator receives nothing (attach_received_output=FALSE). Eviction-of-a-hopelessly-behind-viewer is CORRECT session-protection (keep it); SILENT+PERMANENT eviction is the bug. VIEWER-only → B2-SAFE (a viewer never advances delivered_through / is not authoritative / exposes no resume cursor). FIX (doyle-gated, skip-to-live = tail -f reconnect): (1) explicit broker→viewer EVICTION SIGNAL (KIND_VIEWER_EVICTED, written in the viewer_writer thread OFF the log lock, DISTINCT from session-exit EOF so serve must NOT tear down on it); (2) serve_attach re-subscribes from the CURRENT ring floor (skip-to-live, replays nothing, sees the next live burst) — resetting the cold serve-brain's next_seq so the post-eviction forward-jump replay is accepted (the legacy reject-gap path, brain.rs:618-626, would otherwise FATAL the forward jump); (3) HARD constraint NO evict→resubscribe busy-loop: serve_attach rate-limits re-subscribes (RESUBSCRIBE_INTERVAL) so under max-flood the operator sees intermittent LIVE bursts, never a CPU spin. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1749816Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1749931Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1750031Z ### REQ-HAZARD-VIEWER-RING-ROLL-SNAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1754104Z - Title: A read-only rc --view VIEWER whose serving brain falls behind the live ring under a hard flood and receives a FORWARD Output seq gap (the ring rolled frames out between reads, BEFORE any channel-overflow eviction → NO KIND_VIEWER_EVICTED marker) must SNAP TO LIVE (accept-and-advance via dedup-below + snap-above), NOT fatal with output gap (brain.rs:624/628 legacy reject-gap). ROOT (v0.13.0 forkpty, post-b4+skip-to-live): serve_attach subscribes a viewer via brain.attach_as(Viewer) leaving session_cursors EMPTY → the viewer serve-brain uses the LEGACY reject-gap → a PRE-eviction ring-roll forward-gap FATALS read_event → serve_attach returns → forwarding stops → attach_received_pty_output=FALSE (a_journaled / p0_paste / attach.rs:1071 wedged_viewer, Linux forkpty; Windows ConPTY floods slower → MASKED false-green). DISTINCT from REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT (the POST-eviction re-subscribe-from-floor): this is PRE-eviction gap-tolerance while STILL subscribed. VIEWER-only → B2-SAFE (a viewer never advances delivered_through / is not authoritative); the CONTROLLER keeps strict reject-gap (exactly-once resume). FIX: arm snap-above at initial viewer attach (attach_as_viewer_snap = attach_as(Viewer) + session_cursors.insert(session_id, from_seq)); the two viewer-survival mechanisms COMPOSE — this tolerates pre-eviction ring-roll gaps, REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT recovers post-eviction. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1754212Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1754246Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1754342Z ### REQ-HAZARD-CONTROLLER-GAP-RESUME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1760629Z - Title: A serving CONTROLLER whose serve-brain hits a b4 drop-don't-block FORWARD output gap must RESUME-FROM-FLOOR (re-subscribe from delivered_through and re-fetch the dropped frames from the ring), NOT snap-above and NOT fatal. ROOT (v0.13.0 forkpty re-run, post-keystone): b4 made the controller a non-blocking try_send that DROPS frames when its bounded channel fills (a controller that falls behind its OWN echo under a hard flood), so the next read is a forward gap the strict reject-gap (brain.rs:624/628, B2 exactly-once) FATALS — wedged_viewer_does_not_stall_controller (attach.rs:1048) drove ctrl.read_event() raw and fataled on `output gap got 6134 want 4643`. Pre-b4 the inline sleep-poll BLOCKED the drain to the controller's rate (no drops, no gaps); this is a b4 SIDE-EFFECT, not a new class. A controller CANNOT snap (it is authoritative — advances delivered_through; skipping rolled frames = not-exactly-once = B2 violation), so REQ-HAZARD-VIEWER-RING-ROLL-SNAP does NOT apply. B2 INVARIANT (doyle, broker.rs:327-330): the ring trim is delivered_through-BLIND (`while ring.len() > cap_chunks { pop_front() }`), so re-fetch is exactly-once IFF tail - delivered_through <= cap_chunks (4096) — NOT guaranteed in general, but the common case (burst < ring; wedged_viewer ~1492 < 4096) holds. FIX: serve_attach catches the output-gap on the controller path (does not ?-propagate) and re-subscribes from Brain::controller_resume_floor (= delivered_through = the gap's `want`; NO mid-stream KIND_SESSIONS round-trip — sessions() loops on read_event and would re-fatal on the same gap + discard Output); the broker replays the dropped frames. The IRRECOVERABLE edge (floor unchanged across two resumes = ring rolled past delivered_through = frames gone) surfaces a MARKED truncation to the operator (never silent-skip = B2 lie, never spin) and ends cleanly — full graceful handling deferred to REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND. Do NOT make the ring trim delivered_through-aware (that risks an unbounded ring under a stuck controller; the 5s eviction + 4096 ring is the practical bound). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1760792Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1760825Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1760953Z ### REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1763793Z - Title: DEFERRED EDGE of REQ-HAZARD-CONTROLLER-GAP-RESUME: when a serving controller falls behind the live ring FURTHER than the ring holds (tail - delivered_through > cap_chunks, the ring trim being delivered_through-blind, broker.rs:327-330), the dropped frames have rolled OUT of the ring and an exactly-once re-fetch is IMPOSSIBLE. v0.13.0 DETECTS this (resume floor unchanged across two consecutive resumes) and surfaces a MARKED truncation notice to the operator then ends the attach cleanly — it never silent-skips (a B2 lie) and never spins. FULL graceful handling (a clearly-marked snap-with-data-loss that keeps the operator on the live tail, or a structured truncation record the rc renders distinctly, plus the controller-too-slow + ring-too-small backpressure/sizing policy) is DEFERRED — staging it needs a netsplit / deep-behind harness (the in-process loopback rig keeps up; wedged_viewer's gap is recoverable at ~1492 < 4096). (v0.13.0+)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1763892Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1763922Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1764022Z ### REQ-MSG-IDLE-TRANSLATION-BINARY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1769754Z - Title: spt-hosted idle message delivery via an adapter TRANSLATION BINARY (ADR-0022). New opt-in manifest section `[message-idle-translation-binary]` = a TABLE carrying a `path` scalar (doyle OPT-B ruling: modeled as a table, not a bare top-level scalar, so a preceding section cannot silently absorb it + N+1 extensible; spt-core does NOT deny_unknown_fields, so a future key degrades gracefully); spt-core LIFECYCLE-manages it (spawn when the endpoint comes up, terminate when it goes down). The binary is a PURE stdin→stdout filter; spt-core owns EVERY PTY write. stdin (JSON-lines): `{type:"init",endpoint_id,node}` first · `{type:"event",envelope:"<EVENT…>"}` per inbound message (ADR-0020 envelope) · `{type:"input"}` content-free ping on each operator keystroke (binary tracks user-idle for its own idle-gated buffering; PTY input content NOT duplicated). stdout (JSON-lines): keystroke-commands `{key:…}`/`{delay_ms:…}`/`{text:…}` (extensible). spt-core applies the emitted sequence to the broker PTY ATOMICALLY (the W1 coordination — REQ-HAZARD-INJECT-CONTROL-COEXIST). The daemon poll feed is the ONE idle substrate for both topologies (Q1=A): harness-hosted consumer = the Monitor child, spt-hosted consumer = this binary; spt-core PREFERS a perch's poll listener if one exists (so spt-hosted can run a listener AND keep `spt rc`). Idle-only; busy/mid-turn = adapter hook-injection. Closes the current grounding gap: `api bind` registers no listener port → a listener-less spt-hosted perch SPOOLS inbound (only spooling+adapter-poll works today) → this delivers real inbound into the PTY. AMENDED v0.14.3 (ADR-0022 amendment, raw-inject removal): idle delivery is translation-binary-ONLY — the v0.11.0 raw `{text:payload}{key:enter}` inject is NO LONGER a delivery path; with no working binary (absent/spawn-failed/faulted/worker-gone) the inbound SPOOLS (delivered=false, poll-fed, LOUD), never a raw PTY pseudo-write (which did not submit on a modern TUI — the silent degrade that masked F-019). See REQ-HAZARD-IDLE-SILENT-NONDELIVERY. (v0.13.0, amended v0.14.3)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1769915Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1769949Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1770055Z ### REQ-HAZARD-IDLE-SILENT-NONDELIVERY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1779435Z - Title: An idle delivery to a session whose translation binary is in a FAILED STATE — absent (none declared), spawn-failed, FAULTED, or its inject-worker channel gone — must SPOOL (delivered=false), never raw-inject a pseudo-delivery reported as delivered. The GUARANTEE is the STEADY STATE (the failed-binary state), not every in-flight message (see the fault-transient carve-out below). ROOT (F-019 post-mortem, ADR-0022 amendment): the v0.11.0 path raw-injected `payload+\r` into the PTY whenever no working translation binary handled an inbound message (none declared, spawn-failed, FAULTED, or its inject-worker channel gone) AND acked `delivered=true` — but a bare `payload+\r` does NOT submit on a modern TUI (Claude Code), so the message was TYPED but never sent: a silent pseudo-delivery reported as success. That silent degrade-to-raw-inject is exactly what MASKED F-019 through a multi-hour black-box hunt. FIX (operator-ruled, doyle-scoped): idle delivery is translation-binary-ONLY — `dispatch_endpoint_input` with no working binary replies `endpoint_injected_envelope(ep, delivered=false)` (the caller `try_broker_inject`→`cmd_send` then falls through to `deliver::send` = SPOOL, poll-fed, never lost) and writes NOTHING to the PTY, LOUDLY (eprintln names the absent/faulted/worker-gone cause). A failed binary becomes a VISIBLE no-delivery (spooled + honest QUEUED report), never a confident-but-false 'Sent'. The raw-inject fallback (`input.enqueue`) is REMOVED from the no-binary, worker-dropped, AND post-fault paths. OUT OF SCOPE (doyle ruling, follow-up note only): broker-side auto-redrive of already-spooled inbound the instant a live-update binary spawns (ordering/exactly-once hazards; the poll substrate + subsequent sends cover re-delivery). NOT COVERED — the FAULT-TRANSIENT (the STATE-vs-transient precision): a delivery landing in the worker's commit window — BEFORE `event_rx` is dropped / `faulted` is set — can be optimistically enqueue-acked (`delivered=true` the instant `event_tx.send` succeeds) then DROPPED when the worker faults+returns. That is a SEPARATE, PRE-EXISTING hazard: raw-inject removal did not touch it (the old code dropped that queued event too) — v0.14.3 is a strict improvement that makes nothing worse. It is tracked for v0.15.0 under REQ-MSG-DELIVERY-AXES (the spool-centric delivery redesign: ack-on-SPOOL replaces ack-on-enqueue, which closes the optimistic-ack drop naturally). v0.14.3 guarantees only the steady FAILED state → spool (faulted is MONOTONIC — set once, never respawns — so it converges deterministically; the g2 gate asserts the steady state via bounded-retry-until-spool, not a single-shot ack). EPHEMERAL CARVE-OUT (v0.15.0 W3, ADR-0028): `--ephemeral` is the SOLE sender-opted-in exception — an ephemeral message MAY drop silently if it cannot deliver in its accepted window (at window-open with no live carrier, or at TTL). Every NON-ephemeral path still spools + reports `delivered=false` (the guarantee is unchanged for the default durable path). v0.15.0 realizes the ephemeral drop for the spt-hosted-binary no-carrier-at-window leg + TTL; the harness-relay no-live-listener leg is a documented partial (CONTEXT.md §persistence). KNOWN-HAZARDS class (rule 4). (v0.14.3; ephemeral carve-out v0.15.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1779603Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1779632Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1779731Z ### REQ-MSG-DELIVERY-AXES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1786008Z - Title: Activity-gated inbound delivery + per-message send control as THREE ORTHOGONAL AXES plus opaque metadata (ADR-0028; grilled w/ operator 2026-06-23). SUBSTRATE (the legacy-SPT parity gap, scaffolded-but-unwired today: `delivery::is_idle` + `resolve_inject_methods` exist but the result is discarded `let _methods`, and `broker::dispatch_endpoint_input` injects unconditionally — its comment calls activity-gating 'a deferred follow wave'): an inbound message has an ACTIVE window (endpoint active → spool for the receiver's hook-poll, non-disruptive) and an IDLE window (idle/idle-transition → deliver immediately: translation binary spt-hosted → relay-poll either topology → spool, in fallback order). AXES (each composes; each defaults to its unrestricted value): (1) DELIVERY WINDOW — default (both, first-to-fire) | `--idle-only` (idle window; immediate if already idle) | `--active-only` (active window only, never wakes; the RENAMED `--deferred` — `deferred=1` spool column + `api poll --include-deferred` keep their names). (2) CHANNEL RESTRICTION — unrestricted | `--prefer-native` (translation binary if running else fall back) | `--force-native` (binary ONLY, no fallback/no spool-to-other-method). Native flags do NOT respect the binary's idle-gating: the WINDOW says when, the native flag says through-what (so `--force-native --active-only` = binary injects during the active window, mid-turn-safe via the existing InjectFloor). (3) PERSISTENCE — durable (default; spool until delivered or TTL) | `--ephemeral` (drop if undeliverable in the accepted window — at window-open with no live carrier, or at TTL, whichever first). METADATA (orthogonal): `--json-payload '<json>'` → a single attr-escaped `json="…"` envelope attr ALONGSIDE (not replacing) the body, pure verbatim passthrough across spool/TCP/WAN/EVENT-PART, parsed only by the receiving adapter; collision-proof by construction (structured data lives INSIDE the one `json` value, can never forge `from`/`type`); available to ANY sender (confers no spt-core authority). HAZARD: `--ephemeral` is the ONLY path permitted to drop silently — the sender-opted-in carve-out to REQ-HAZARD-IDLE-SILENT-NONDELIVERY (that hazard gains a '…unless --ephemeral' clause in v0.15.0). (v0.15.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1786226Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1786260Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1786356Z ### REQ-RESUME-CONTEXT-PULL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1797045Z - Title: Adapter-callable resume-context pull verb + not-yet-synthesized commune/signoff drop append (legacy-SPT parity, operator-directed 2026-06-24). GAP: spt-core exposes NO verb for a harness adapter's SessionStart hook to pull an agent's resume context — `resume::download_psyche_context` (spt-live/src/resume.rs:88, composes <live-role>+<live-context>+<project-context> from the durable two-tier store) is INTERNAL with ZERO spt callers and no ApiCmd verb (api/mod.rs ApiCmd enum has none); resume.rs:9 documents the intended 'adapter pulls it in its SessionStart hook' path but it was NEVER wired. Result: a harness adapter cannot inject the agent's durable mind on resume at all (claude-spt today runs only `api boundary` session-rotation + an identity brief — the agent resumes WITHOUT its mind). TIER-1 SCOPE (operator-approved; Tier-2 = drift-stamp/<current>/drift-directive + <memformat> + Pulse-Log DEFERRED to a separate parity item, NOT v0.15.0 — the legacy download_payload [claude_skill_owl context.rs:344] is richer but memformat is roadmap-deferred + drift-stamp is an orthogonal cross-machine-drift feature). TWO PARTS: (1) EXPOSE `spt api psyche-download <id> [--session-id <sid>]` -> stdout = the composed brief, project_id resolved from the endpoint's bound cwd (info::read_info -> cwd -> project derive; NO --project arg), auth-gated like sibling id-scoped verbs (the `gated(&id,&auth,…)` pattern); empty store -> NO-CONTEXT on stderr (mirror legacy). The adapter SessionStart hook runs it + injects stdout as additionalContext. (2) APPEND any commune/signoff drop NOT YET SYNTHESIZED into the durable tiers as a distinct <pending-commune>/<pending-signoff> slice AFTER the durable slices. GATING (operator ruling): append while NOT-YET-SYNTHESIZED, NOT merely 'while the raw file is on disk' — in today's synchronous ingest (ingest_drops route_two_slice writes durable THEN deletes the file, lifecycle.rs:466 @ DEFAULT_PULSE_PERIOD 5s) the two coincide (a watched-dir drop IS pre-synthesis), so the v1 realization reads the manifest-declared session.commune_dir/signoff_dir (manifest.rs:208/210) for a present <id>-commune.md/<id>-signoff.md (COMMUNE_SUFFIX/SIGNOFF_SUFFIX, ingest.rs); the CONTRACT keys on synthesis-state so it stays correct when async Psyche synthesis lands (a consumed-but-not-yet-committed drop stays appended via a pending-synthesis staging set — forward hook). The agent-checkpoint trigger sentinel CHECKPOINT_SENTINEL=`!!checkpoint!!` (a FIXED spt-core constant — operator-specified, CONTEXT.md §fixed-constants, NOT adapter-configurable) is stripped at BOTH drop-body points via one shared `strip_checkpoint_markers` (remove every token, keep inter-marker text, collapse trivial whitespace): the PRE-synthesis pending-append (resume::append_pending) AND the POST-synthesis durable ingest (ingest::route_slices — the single choke covering route_two_slice + signoff.write_resume_commune; strip-then-empty-filter so a marker-only slice routes nowhere) — else the marker would persist PERMANENTLY in live-context.md once a checkpoint drop synthesizes + re-trigger once the adapter's checkpoint detection is live. PRESENTATION-ONLY: the append NEVER writes the durable store (spt-core remains sole store-writer, REQ-HAZARD-DROP-FILE-SINGLE-WRITER; mirror legacy's read-only/process_file_drop-sole-deleter discipline). SELF-CLEARING: once synthesis commits the <pending-*> slice vanishes — no duplication. CORE-OWNED (not adapter): an adapter-side raw-file read RACES spt-core's ingest-delete (TOCTOU, ingest.rs:161 removes the drop on pulse-consume); the fold MUST live in the single composer all resume pulls flow through. New public CLI verb -> docs-drift gate (xtask gen + reference.md no-internal-codes, cli-command-docs-drift). (v0.15.0 parity wave W5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1797255Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1797288Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1797392Z ### REQ-ADAPTER-TRANSLATE-PROOF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1801553Z - Title: `spt adapter translate-proof <adapter> --event <envelope> [--session <id>]` — the author-time EMIT-half proof tool for `[message-idle-translation-binary]` (ADR-0022), symmetric to `spt adapter digest-proof` (REQ-TERM-5). It spawns and feeds the adapter's declared translation binary EXACTLY as the daemon does at idle-delivery — running the REAL `spt_daemon::translation` driver VERBATIM (no protocol reimplementation): `TranslationChild::spawn` the binary, send the `{type:"init",endpoint_id,node}` line then the `{type:"event",envelope}` line, and read back the emitted `{key}`/`{text}`/`{delay_ms}`/`{commit}` keystroke-command stream — then prints it author-readable (each Key with its `key_to_bytes` rendering, Text quoted, Delay in ms, Commit marker) with counts. It fills the SAME `{id}`→option and `{session_id}`→(--session, else a placeholder) keys into the `--event` envelope the daemon fills at runtime, so an envelope that proofs here feeds faithfully live. EMIT-half ONLY: it proves the binary's spawn+feed+emit contract; it does NOT exercise the daemon's atomic PTY apply / controller-buffering (that stays covered by the W2 inject_control_wedge int gate) — `--help` says so. Exit codes mirror digest-proof: 0 ok, 1 on spawn-fail / zero commands / no-commit-or-output / unparseable, 2 when the adapter declares no `[message-idle-translation-binary]` section. The `TranslationChild` Drop does the bounded no-zombie reap. (v0.13.x)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1801663Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1801696Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1801797Z ### REQ-HAZARD-BIND-CWD-UNSET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1804275Z - Title: A bound endpoint's `info.cwd` is SET at bind so a freshly-created perch appears under its own project tab. ROOT (found, v0.13.0): `info.cwd` is NEVER set on bind — `cmd_bind` (spt-hosted) and `bind_from_seed` (harness-hosted) never thread cwd into `establish_perch`/`rec.cwd`. FIX: `cmd_bind` reads its own `current_dir` (the broker spawned it in `project_cwd`); `bind_from_seed` passes `seed.cwd` (already captured at seed time, currently DISCARDED). DISTINCT from REQ-PICKER-HISTORY-FRESH (v0.12.1) — that unioned cwd-origin into picker MEMBERSHIP but tested merge_origin_project with a PROVIDED origin; it never asserted `info.cwd` is actually set on bind, so a real `endpoint run` perch still had an empty cwd and the union had nothing to union. This is the v0.12.1 P1 'appears under its own project right away' claim that was REFUTED in the changelog — delivered for real here. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1804522Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1804556Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1804643Z ### REQ-PICKER-UX-V013
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1806167Z - Title: `spt endpoint run` picker UX (v0.13.0 operator dogfooding): (1) SKIP the first screen — open directly on 'Pick existing'; `n` jumps to 'Create new'. (2) AUTO-ATTACH after both Start-new AND Resume-from-history (both currently don't attach and show no stdout); add an `h` shortcut to run headless (no attach). (3) 'controlled by' shows the node NAME (node_label_display), not the raw hex. (4) Clean up Start-new output — drop the Rust `pid=Some(142748)` leak and the 'harness binds its perch on startup' internals; user-friendly, not a process log. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1806304Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1806336Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1806431Z ### REQ-HAZARD-DRIVEN-BY-SELFHEAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1807919Z - Title: An spt-hosted endpoint's ONLINE+CONTROLLED state (`driven_by`) must CLEAR even when the detach IPC is lost — do NOT rely on the detach signal (same lesson as REQ-HAZARD-HOSTED-LIVENESS-RECONCILE B2): the reconcile loop clears `driven_by` when the endpoint has no live controller/session. Today a wedged or lost pump never delivers the detach, so the endpoint stays latched CONTROLLED forever. Composes with W1 (the wedge no longer blocks the detach) and rides the same pull-primary reconcile substrate as B2. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1808014Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1808052Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1808149Z ### REQ-RC-DRIVER-READ-LIVENESS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1816157Z - Title: The rc client's busy-refuse reads a LIVE driver, never a stale stamp (kin to REQ-HAZARD-DRIVEN-BY-SELFHEAL / KH 7.15, observed from the CLIENT side; instrumented x20 2026-08-19, doyle-ruled same day). MECHANISM, measured not inferred: `driven_by` is broker-owned and EVERY clear of it lives in the daemon (broker stamp_reaped, converge_perch_stamps, the livehost reconcile belt), while the write that makes a stopped perch read `offline` is `terminal_normalize` — run SYNCHRONOUSLY in the `spt endpoint stop` CLI process, whose write set is exactly the REST triple (status / rest_state / dormant_since_ms) and structurally cannot touch the CONTROL triple. `current_driver` (rc.rs) was a raw disk read of `driven_by` with NO liveness check, feeding `pre_broker_busy_guidance`, which prints and `return Ok(())` BEFORE any broker traffic — so between the CLI's stop-write and the next daemon tick, a plain `spt rc` is refused by a controller that is provably gone, and the broker's own truth (no live session) is never consulted. This is operator-visible with no test involved: stop an endpoint, immediately rc it, get 'controlled by another window on this machine' and exit 0. Instrument vector (run-3 of 20): driven_by=Some(own hex) + controlled=true beside status=offline at the refusal instant, cleared only ~56s later — the clear is LATE, not missing. FIX = reader-side and NARROW: the driver a record names is `None` exactly when `status == STATUS_OFFLINE`, the product's own declared staleness marker (the same predicate the daemon's DRIVEN_BY_SELFHEAL_OFFLINE belt asserts at livehost.rs); the reader stops having to wait for the tick to agree. Any other status — INCLUDING a record with no `status` field at all — is left alone and reports its driver verbatim: a broader `!= online` rule would suppress the refusal on legitimately mid-bind records, which is worse than the residual it closes (3/20 status-absent reads measured at capture instants, doyle-ruled ACCEPTED WITH ITS NUMBER 2026-08-19; re-opens only if a gate-instant absent-status refusal is ever measured). NO new writer: `driven_by` stays single-writer (the broker) — the belt that would have cleared the control triple from the CLI stop path was ruled OUT for exactly that reason, and `terminal_normalize`'s doc instead states the ownership split by replacement. `--view`/`--take`/qualified targets are unaffected (they already bypass the gate). Gate: impl — the liveness-filtered driver read in rc.rs + the terminal_normalize ownership-split doc; unit — an offline record reports no driver, an online one reports it verbatim, and NEITHER a non-offline status NOR an absent status is treated as a staleness marker (the narrowing is asserted in both directions, so a later widening cannot land silently). NO int: the existing engine-room bring-up e2e already expresses the invariant and must go green as it stands — a new int cell would only re-run it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1816322Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1816399Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1816509Z ### REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1821108Z - Title: An spt-hosted endpoint driven by a REMOTE controller whose remote is gone but whose broker connection stays OPEN (a wedged/lost pump that never delivers the detach) AND whose session is IDLE (no output) stays latched ONLINE+CONTROLLED forever: the W1 drain-evict only fires on OUTPUT (CONTROLLER_WRITE_DEADLINE on a backed-up write), a clean disconnect self-heals via detach_if→clear_controller, but an idle session with a half-open/wedged controller connection produces neither signal. PROVED repro-first on a real broker (v0.13.0 W5, inject_control_wedge.rs w5_a2): controller_by STAYS Some(origin) and driven_by STAYS Some after the remote is abandoned without a clean EOF on an idle session — so the brain reconcile CANNOT detect it from KIND_SESSIONS controller_by (the broker still reports it controlled). FIX DIRECTION (doyle ruling 2026-06-19, broker-side single-writer — the broker owns driven_by/clear_controller): wire the EXISTING D4c NetPresence connection-disconnect event → clear_controller for any session whose controller identity == the dead origin (become_controller already stores Some(origin); presence events already exist — modest wiring, NOT a new probe). The liveness ORACLE is QUIC's own keepalive/idle-timeout: a presence-disconnect IS a real QUIC conn close, already tolerant of transient blips within the keepalive window, so NO heavy partition ADR is needed UNLESS the QUIC timeout proves too slow for the UX (then mint an ADR for a faster controller-heartbeat + its false-evict bound). Composes with W1 (output path) + W5 Gap B (no-session) — this is the third, idle-remote, leg. (v0.13.0 follow-up)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1821213Z - Required stages: int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1821238Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1821341Z ### REQ-HAZARD-RC-INPUT-KEY-ENCODING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1825585Z - Title: An `spt rc` session forwards the Backspace key as the VT DEL byte (0x7f), so the hosted TUI (Claude Code) deletes ONE character — never a whole word. SYMPTOM (operator dogfooding): Backspace in an rc session always behaves like ctrl+Backspace — deletes the entire last word. ROOT (doyle /diagnose, code-grounded, byte PENDING HITL confirm): rc is a RAW VERBATIM byte pump — spawn_stdin_reader (rc.rs:152) reads std::io::stdin() bytes under crossterm raw mode and forwards them unchanged (parse_stdin_chunk only intercepts the ctrl-b detach prefix); there is NO key-event encoding and NO 0x08↔0x7f normalization ANYWHERE in the tree (grep: zero SetConsoleMode / ENABLE_VIRTUAL_TERMINAL_INPUT). On Windows, crossterm enable_raw_mode does NOT set ENABLE_VIRTUAL_TERMINAL_INPUT, so the LEGACY console delivers ^H (0x08, ctrl+h) for Backspace instead of VT DEL (0x7f); Claude Code maps ^H → backward-kill-word → the observed whole-word delete. CONFIRM-FIRST (build the loop): an env-gated hexdump in spawn_stdin_reader (SPT_RC_DEBUG_KEYS) prints the forwarded byte; operator presses Backspace + ctrl+Backspace in a real rc session. FIX CANDIDATES: (a) enable ENABLE_VIRTUAL_TERMINAL_INPUT on the rc stdin console on Windows so the console emits proper VT (Backspace→0x7f, arrows/Home/End as CSI) — cleanest, fixes the whole key map not just Backspace; (b) narrow normalize bare 0x08→0x7f in the rc input path (riskier — a real ctrl+h is also 0x08). Prefer (a) unless it regresses other keys. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1825748Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1825777Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1825977Z ### REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1834611Z - Title: The effect journal serializes EVERY PTY effect under one mutex held ACROSS two fsyncs AND the blocking PTY write — so interactive input stutters and ultimately wedges the daemon hard. ROOT (doyle /diagnose, code-grounded + MEASURED on the operator's real Windows box, 2026-06-19): EffectJournal::apply_once (effect.rs:168-188) takes `inner.lock()` and holds it across `write_line(PENDING)` → `effect()` → `write_line(DONE)`, where write_line (effect.rs:235-239) does flush()+sync_all() (a full FlushFileBuffers) — so each effect pays TWO fsyncs under a GLOBAL lock, and the closure `effect()` (the actual PTY write, broker.rs:1257 EffectKind::PtyWrite via attach.rs:197 send_effect) runs while the lock is held. Two operator-visible facets, ONE root: (A) STUTTER/LAG — every keystroke is a PtyWrite effect = 2× sync_all serialized; measured fsync on %LOCALAPPDATA%\spt-core = median 6.5ms, spikes to 198ms (C: was recently at 100%), so ~13ms+ per keystroke best case, hundreds under contention → 'many but not all keypresses take 100s of ms, choppy, worsens with volume'. (B) HARD PERMANENT WEDGE — when a PtyWrite `effect()` blocks (ConPTY input buffer full / harness not draining stdin), the journal lock is held INDEFINITELY → the single-threaded inbound-stream dispatch (dispatch.rs serve_attach, which both applies input effects AND opens attaches) can never progress → EVERY subsequent attach (`spt rc --view`/`--take`) fails with 'attach request: brain IPC read deadline elapsed' (confirmed: two retries deadline identically; broker control-plane KIND queries still answer — different thread). This REFUTES the W2-deferred ruling that park-(b)/(c) is 'Windows-benign because ConPTY absorbs 4MiB' — on the real box the input path wedges regardless. DISTINCT from W1 (REQ-HAZARD-INJECT-CONTROL-COEXIST = the OUTPUT drain, correctly fixed @8b5583e; output uses broker.rs:1106 append, NOT the fsync journal). This is the INPUT/effect-journal path W1 never touched, and it is THE wedge the operator hits with --take/--view. FIX DIRECTION (candidates, repro-first — extend inject_control_wedge.rs to a REAL backed-up-PTY-consumer + a real rc-client attach assertion, the gap W1's gate missed): (1) do NOT hold the journal lock across effect() — reserve the key + fsync PENDING under lock, RELEASE, run effect(), re-acquire to fsync DONE + mark applied (preserve crash-idempotency via the per-key reservation, not a global hold); (2) bound/fail-fast the PtyWrite itself (the W2-deferred park bound — write_input must never block indefinitely, DSR-answer must not hold the writer mutex across a blocking write); (3) drop per-keystroke fsync on the interactive path — PtyWrite effects are EPHEMERAL (a keystroke lost on a broker crash is retyped; PTY state is not reconstructed from keystroke replay), so in-memory applied-set dedup suffices (the broker survives the brain — that IS the dedup anchor), with async/batched fsync or no-fsync for EffectKind::PtyWrite while durable kinds (NetSend/NetDial/Registry/Spool) keep their fsync. Combine (1)+(3) at minimum. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1834783Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1834811Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1834911Z ### REQ-HAZARD-RC-ATTACH-ONLINE-RACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1838392Z - Title: `spt endpoint run` in an ATTACH/VIEW terminal action attaches BEFORE the freshly-spawned endpoint is online, so the attach races (or outright loses to) the harness bind. ROOT (doyle /diagnose, code-grounded): cmd_endpoint_run (cli.rs) does launch_harness_brokered_in -> (if start: return) -> run_attach with NO await-online between them. launch_harness_brokered_in returns once the harness PROCESS is spawned, but the broker-PTY bind (info status -> STATUS_ONLINE + the live session) lands ASYNC. Both picker attach paths route here with start=false (RunMode::Attach -> cmd_endpoint_run start=false,view=false): Start-now catches the endpoint mid-bringup -> run_attach attempts + loses the handshake race; Resume-from-history catches it still fully OFFLINE -> run_attach's status-gate (REQ-HAZARD-RC-ATTACH-FAILFAST) short-circuits 'offline - nothing to attach' and NEVER attempts. SAME root, two faces (the W4 attach-by-default surfaced both; an online endpoint is unaffected - the picker returns Outcome::Attach, not Run). FIX: in cmd_endpoint_run, when the terminal action is attach/view (NOT start), AWAIT the endpoint online between launch_harness_brokered_in success and run_attach - poll spt_store::info read_info().status to STATUS_ONLINE with a bounded harness-boot deadline (~25s) at a tight interval; on online -> run_attach; on timeout -> ENDPOINT_RUN_ONLINE_TIMEOUT err (do NOT attach a dead bringup). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1838575Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1838603Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1838697Z ### REQ-RC-KEY-VT-TRANSLATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1844188Z - Title: On Windows, `spt rc` translates CONSOLE KEY EVENTS to standard xterm VT so ALL keys reach the hosted harness — arrows/Home/End/PgUp/PgDn/Insert/Delete/F-keys, every modifier combo, Backspace/Ctrl+Backspace — not just the byte-emitting ones. ROOT (operator HITL, doyle /diagnose): `spt rc` reads raw STDIN BYTES (spawn_stdin_reader, std::io::stdin().read); on the Windows LEGACY console (no ENABLE_VIRTUAL_TERMINAL_INPUT) the special keys produce console KEY_EVENTs, NOT stdin bytes, so the byte-pump sees nothing → those keys are DEAD. Enabling ENABLE_VIRTUAL_TERMINAL_INPUT was rejected (W7 dc07c39): on Windows Terminal it yields harness-specific win32-input-mode + broke ctrl-b detach. FIX (agnostic, full fidelity): on Windows, replace the stdin byte-read with a crossterm EVENT source (crossterm 0.28 already a dep; the picker already reads events) and translate each KeyEvent → STANDARD xterm VT bytes via a PURE translate_key_event(KeyEvent)->Vec<u8> (copy a known-correct xterm table verbatim, ADR-0001 spirit), forwarded through the SAME rc pump — the harness receives ordinary xterm VT (harness-AGNOSTIC, no win32-input-mode). Press-only (drop Repeat/Release). Detach stays the ctrl-b+'d' PREFIX, event-sourced (doyle Option B): Ctrl+B arms; armed+plain-'d'⇒Detach; armed+Ctrl+B⇒emit literal 0x02; armed+other⇒0x02 then translate(other). Non-tty stdin (piped/tests) → FALL BACK to the byte-read path (keeps e2e byte-injection working). UNIX UNCHANGED (its raw-mode byte stream already delivers proper VT; cfg-split, zero Unix regression). SUPERSEDES the W7 normalize_key_byte swap on Windows — the translator emits 0x7f for Backspace and 0x08 for Ctrl+Backspace natively (REQ-HAZARD-RC-INPUT-KEY-ENCODING folded in). NO int (a live interactive console can't be driven in CI — HITL, REQ-RUN-PICKER/RC-1 precedent); the exhaustive non-vacuous translate_key_event mapping unit + the event-detach unit ARE the surface. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1844304Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1844332Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1844437Z ### REQ-HAZARD-PTY-INPUT-WRITER-WEDGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1850540Z - Title: Pasting into an `spt rc` session WEDGES the broker — after a paste the operator can no longer type AND can no longer attach to NEW or EXISTING sessions (`brain IPC read deadline`). ROOT (doyle /diagnose, code-grounded): the operator-keystroke path rc -> net-stream Input -> serve_attach (attach.rs:197 brain.send_effect) -> KIND_INPUT -> broker dispatch loop (broker.rs:1091) -> dispatch_input (broker.rs:1459) -> session.write_input(&bytes) runs SYNCHRONOUSLY on the broker request-handling thread. W1b (REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE) released the journal lock across the effect (fix 1) + made PtyWrite ephemeral/no-fsync (fix 3) but EXPLICITLY DEFERRED fix (2) — bound/fail-fast the PtyWrite itself. A single keystroke never fills the ConPTY input buffer; a PASTE BURST does -> write_input blocks -> the dispatch thread cannot service the next frame (a re-attach subscribe, a become_controller restore-write, an inject-floor flush) -> wedge. Not a bug-2 regression (the byte path funnels to the same write_input; paste just reliably fills the buffer). FIX (doyle design, V0.13.0-P0-PTY-INPUT-WRITER-DESIGN.md, CONTEXT L33 broker-owns-PTY/minimal + L435 SessionSurface + single-writer pattern): one dedicated per-session INPUT-WRITER THREAD = the SOLE caller of the blocking write_input, fed by a BOUNDED FIFO channel; every caller (dispatch_input, serve_attach->send_effect, inject-floor flush) ENQUEUES + returns immediately, never blocks. A blocked/slow harness blocks ONLY its own writer thread, never the broker dispatch. Backpressure (operator ruling): queue full => DROP excess input + stamp the session INPUT_BACKPRESSURE (visible health signal); the daemon NEVER wedges; a merely-slow harness self-heals as the writer drains. Exactly-once preserved (PtyWrite ephemeral: apply_once effect = the non-blocking enqueue => Applied; ack now means accepted+ordered, benign — rc does not gate on landing); order preserved (single FIFO + single writer); inject-floor (W2 Layer C) choreography moves to the lone writer. Completes the W1b-deferred fix (2), cross-platform (cfg(unix) forkpty park folds in). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1850737Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1850765Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1850860Z ### REQ-SESSION-RESUME-TEMPLATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1857342Z - Title: Resuming an endpoint session that HAS conversation history brings up a BLANK session. ROOT (doyle, code-grounded + CONTEXT — case-3 spt-core MISSING feature, NOT a perri docs-miss): CONTEXT L127-129 already defines the resume-session seam ('continue-existing: resume an existing harness session under the adapter — its NATIVE resume'), and the manifest already has the resume-variant pattern (Session has BOTH psyche_init AND psyche_resume, manifest.rs:217-219) — but the agent's own session has ONLY self_ (`[session.self]`, no resume sibling). cmd_endpoint_run (cli.rs:1304) re-passes the session_id through `[session.self]` on resume (resume.unwrap_or_else(mint_session_id)), so the adapter's FRESH command (e.g. `claude --session-id ..`) runs again instead of the harness NATIVE resume (`claude -r ..`) -> CC starts a fresh transcript -> blank. spt-core forwards session_id + cwd faithfully; it just has no way to express the native-resume invocation. SECOND GAP: CC resolves a transcript by session_id + cwd, but the session ledger records only {ts, session_id, trigger} (no cwd), so picker Resume-from-history (cross-project rows) can't restore the right cwd. FIX (doyle design, V0.13.0-P2-SESSION-RESUME-DESIGN.md, mirrors psyche_init->psyche_resume exactly): (A) add a `[session.resume]` role (resume: Option<SessionRole> on Session + roles()/is_empty()); cmd_endpoint_run selects it when --resume is set AND it's declared (fill {id}/{session_id}=resumed id/{session_name} + the resume cwd), else FALL BACK to `[session.self]` (full back-compat). (B) record cwd PER ledger row (operator ruling): {ts, session_id, trigger, cwd} additive serde-default; resume cwd = resumed row cwd -> else perch info.cwd -> else current_dir (back-compat for old rows + single-project endpoints); picker threads the selected row's cwd through Outcome::Run -> cmd_endpoint_run. (C) public docs (MANIFEST + harness-contract) teach `[session.resume]` so perri builds the adapter side BLIND. Adapter follow-on (perri, AFTER spt-core ships+docs): declare `[session.resume] command = claude -r {session_id} --remote-control {id} --dangerously-skip-permissions` from the resume cwd. Completes REQ-READY-AGENT-RESUME / REQ-RUN-PICKER resume-from-history. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1857495Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1857524Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1857618Z ### REQ-RC-WIN-PASTE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1862300Z - Title: In an `spt rc` session neither ctrl+V nor right-click pastes (CC explicitly supports ctrl+V). ROOT (doyle /diagnose): RawGuard does only enable_raw_mode (no bracketed paste / no mouse capture / no clipboard interception); the Windows console delivers a paste as synthetic per-char KEY EVENTs (no crossterm Event::Paste), and ctrl+V translates to bare ^V forwarded to CC — but CC runs DAEMON-SIDE with NO access to the operator's LOCAL clipboard, so remote paste is fundamentally CLIENT-ORIGINATED. A multi-line paste-as-keys also becomes a \r submit-storm. FIX (doyle design, V0.13.0-P1-RC-PASTE-DESIGN.md, cfg(windows), folds into the bug-2 event path): on a paste gesture rc reads the LOCAL clipboard + forwards a BRACKETED PASTE (ESC[200~ + content + ESC[201~); CC has bracketed-paste mode on (its TUI sets ESC[?2004h) so it treats it as a paste — content intact, no submit-storm, harness-AGNOSTIC. ctrl+V: intercept Char('v')+CONTROL in the event loop -> read_clipboard -> bracketed paste. Right-click: RawGuard also EnableMouseCapture (disables console QuickEdit + enables ENABLE_MOUSE_INPUT so right-click surfaces as Event::Mouse on legacy cmd/powershell) -> right-button -> read_clipboard -> bracketed paste; DROP all other mouse (CC has no mouse features, operator-confirmed, so capture costs nothing). read_clipboard = clipboard-win crate (cfg(windows), minimal); empty/failed = clean no-op. Content forwarded VERBATIM (literal pasted text, no per-char translation). Unix UNCHANGED (its terminal pastes natively through the byte pump). DEPENDS ON P0 (a paste chunk must not wedge the broker). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1862446Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1862475Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1862581Z ### REQ-HAZARD-INPUT-ACK-BACKPRESSURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1869512Z - Title: A FLOOD of operator input on one brain↔broker connection deadlocks the broker PERMANENTLY (entire broker — no new/existing attach; the controller stays latched because the per-conn handler can't process the detach). ROOT (doyle /diagnose, code-grounded + HITL capture, the v0.13.0 P1 ctrl+V re-open): `serve_attach` processes a whole `NetStreamData` batch of N operator `Input` records in its inner `for rec in decoder.push()` loop, calling `brain.send_effect(op_id, &bytes)` N times WITHOUT returning to `read_event()` — so the brain writes N `KIND_INPUT` frames back-to-back and drains nothing. The broker's single-threaded per-conn handler answers EACH with `send_frame(applied_envelope)` on the SAME conn (B5 exactly-once ack, KNOWN-HAZARDS 7.2). With the brain not reading, the broker→brain return direction fills (~10 frames = the IPC pipe buffer) → `send_frame` BLOCKS → the handler stops reading → the brain's writes block too → mutual full-duplex DEADLOCK. Capture pinned it: 11 input frames, write_input 11/11 (P0 holds — the PTY write is fine), ack send START=11 / END=10 (frame #11's applied-ack never returns). Same class as the v0.12.1 L0 two-conn split. Windows Terminal's ctrl+V paste accelerator was the trigger (injects the clipboard as a char-by-char key flood) but the deadlock is generic to ANY input flood, NOT ctrl+V-specific and NOT a P0 (PTY-write) or W1 (output-drain) regression. The applied-ack is load-bearing ONLY for `shellchan` (one-at-a-time spool delivery WAITS on `BrokerEvent::Applied`); `serve_attach` DISCARDS it (the operator/rc path is fire-and-forward, op_id for dedup only, never gates on the ack). FIX (doyle-approved): CONDITIONAL ACK — `InputReq` gains `ack: bool` (serde default = true, N-1-safe: an older brain's input still acks = today's behavior). `serve_attach`'s operator path calls `send_effect_no_ack` (ack=false) → `dispatch_input` writes NO applied frame → the per-conn handler never writes back while servicing the flood → it always drains → no deadlock (cures ANY input flood). `shellchan` keeps `send_effect` (ack=true) and its `Applied`-wait. Exactly-once PRESERVED: the broker still dedups by (session, op_id) at the applied-set regardless of the ack. N-1 caveat: an OLD resident broker (self-update window) ignores `ack=false` → still acks → the deadlock persists until a broker restart (inherent KNOWN-HAZARDS 7.9 broker-resident-wire-change class). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1869687Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1869715Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1869806Z ### REQ-RC-MOUSE-FORWARD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1874009Z - Title: On Windows, `spt rc` must FORWARD scroll-wheel events to the harness when the harness has mouse reporting on. ROOT (operator HITL): P1's RawGuard EnableMouseCapture (added for right-click paste, REQ-RC-WIN-PASTE) makes Windows Terminal forward ALL mouse — including the scroll wheel — to rc instead of scrolling its own buffer, but the rc mouse handler dropped everything except right-button-down → scroll DIED (and WT's native scrollback is stolen by the capture). Operator ruling: keep mouse capture + right-click bracketed paste AND forward scroll to the harness. FIX (doyle design, cfg(windows), folds into the rc mouse handler): TRACK the harness's mouse-reporting mode by scanning its OUTPUT stream for the DECSET set/reset — ESC[?1000h/1002h/1003h (mouse on) + ESC[?1006h (SGR ext) and their ...l (off) — into a shared MouseMode{enabled,sgr} (pump writes from output, stdin reader reads); the scan survives a sequence SPLIT across output chunks (a bounded carry buffer). The mouse handler: right-button-DOWN -> bracketed clipboard paste (unchanged, REQ-RC-WIN-PASTE); ScrollUp/Down -> translate to an xterm SGR mouse report (ESC[<64;col+1;row+1M up / ESC[<65;..M down, 0-based crossterm -> 1-based xterm) and forward ONLY when enabled && sgr (else DROP — a legacy X10 report the harness may not parse is garbage); Moved/drag/left/middle -> DROP (scroll is the operator's need; click-forward risks garbage, no click-to-position). Unix UNCHANGED (no capture; the terminal scrolls natively). (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1874160Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1874194Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1874309Z ### REQ-HAZARD-CONTROLLER-WRITER-REORDER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1887479Z - Title: Two `controller_writer` threads must never race ONE brain↔broker connection's socket. ROOT (doyle, instrumented RACEDIAG repro on kitsubito): on a brain-restart re-serve the handoff brain registers as controller on the SAME session TWICE over the SAME `Brain::conn` socket — (1) `Brain::handoff` eagerly `subscribe(prior.session_id, prior.next_seq=1)` → `become_controller(from_seq=1)`, initial=[1], spawns writer-A (writes seq 1); (2) `serve_attach` re-handles the replayed `Request{from_seq:0}` → `attach_as(sid,0)` → `become_controller(from_seq=0)`, initial=[0,1], spawns writer-B (writes 0 then 1). `become_controller` (broker.rs) drops the prior `ControllerSink` (its `tx`) but does NOT stop the prior writer thread — writer-A keeps flushing its owned `initial` batch, and both writers hold clones of the same `SharedSend` (`Arc<Mutex<socket>>`) with NO inter-thread ordering. When writer-A's seq 1 wins the socket before writer-B's seq 0, the strict legacy consumer (brain.rs read_event reject-gap path) sees `output gap: got seq 1 want 0` → the test `attach_survives_target_brain_restart_exactly_once` panics at `.expect("re-serve")` OR HANGS in `render_until` (serve thread died on the gap → MARKER_TWO never reaches the wire). `prior.next_seq` is life1's CONSUMPTION cursor, NOT life2's connection state — life2's socket has been sent NOTHING, so a `from_seq=0` full replay on a connection that already streamed seq 1 is contradictory. Snap-above tolerance ALONE can't fix it (it would dedup-drop the late seq 0 → byte loss → the exactly-once byte-identity assert fails). PRE-EXISTING, surfaced by the v0.13.0 green-both-runners release gate; P1b is INNOCENT (its diff touches only input-ack machinery, proven mechanically + the test passes post-P1b in isolation). Sibling flaky cluster: `inject_control_wedge::g2`, `broker::spawn_env_reaches_child`. INVARIANT: on a single brain↔broker connection the controller output-frame stream is monotonic non-decreasing in seq (modulo dedup re-sends); exactly ONE `controller_writer` is ever live per connection; a SUPERSEDED writer writes NO further frames; a re-serve never replays a seq below what the connection already received. FIX (doyle design, corrected at the gate 2026-06-20): fix #1 as designed ('drop handoff's eager subscribe so serve_attach's attach_as is the sole registration') was REVERTED — handoff's `subscribe(prior.next_seq)` IS the standalone-resume mechanism (the brain-only update engine `apply_brain_only` + the `handoff`/`idempotent`/`daemon_e2e` int tests replay output through it with NO `serve_attach`; dropping it hung every resume-via-handoff test). The shipped fix is three parts: (1) CORRECTNESS — `Brain::handoff` seeds `session_cursors` at `prior.next_seq` so the consumer runs the production dedup-below+snap-above path, never the strict reject-gap legacy trap; this is COMPLETE (not merely tolerant) because every `controller_writer` emits an ASCENDING seq stream and the surviving writer (serve_attach's attach_as(sid,0)) offers the complete `[0,end]` range, so a snap-above merge of ascending writers delivers `[K,end]` with no skip/dup (first sighting of any seq>M is preceded by M on that writer). (2) INVARIANT — `controller_writer`'s INITIAL-BATCH replay is epoch-gated: `controller_epoch` is a shared `Arc<AtomicU64>`, the writer re-reads it UNDER `send.lock()` (atomically with `write_frame`) and returns the instant it is superseded — no check-then-block-then-write window, no superseded replay (W1-safe: never blocks the drain under `Mutex<OutputLog>`). The LIVE loop is NOT gated (new output only flows to the current controller; a superseded writer must still deliver its terminal `Displaced` kick — gating it suppressed the loud-take notice; it ends on `tx`-drop). (3) EXPLICIT-RESUME / OPERATOR-STREAM BOUNDARY (the LOAD-BEARING fix — kitsubito RACEDIAG ~33% repro the keystones missed) — `Brain::subscribe_with` (shared by attach/attach_as) resets the resume-mode dedup cursor to `from_seq`. The handoff eager subscribe makes serve_attach's brain receive the replay's seq K BEFORE the operator Request is processed (`attached`=false); that frame is dropped by the if-attached forward gate but the snap-above cursor already advanced past K, and `attach_as(sid,0)`'s re-subscribe used to leave the cursor advanced → the broker's re-send of seq K arrives below it, deduped, never forwarded → operator viewport forward-gap (silent content loss in the real rc consumer). Resetting to from_seq on the attach_as re-subscribe re-delivers from 0 (operator dedups the overlap) so seq K reaches the viewport. The epoch gate (2) is sound (RACEDIAG: zero socket interleaving above K); cold-start brains (empty map — production dispatch serve) keep the legacy next_seq path, so production is unaffected. (v0.13.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1887702Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1887731Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1887841Z ### REQ-HAZARD-CONTROLLER-RETAKE-FLOOR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1892000Z - Title: `become_controller` should STRUCTURALLY refuse a controller re-take whose `from_seq` falls below the connection's already-delivered contiguous floor — making the P1c reorder invariant un-reintroducible by a future caller, not just removed at the one caller. ROOT/SCOPE (doyle proposed, P1c gate dialogue): P1c fixes REQ-HAZARD-CONTROLLER-WRITER-REORDER three ways (handoff single-take + epoch-gate-under-lock + session_cursors seed), removing the one decreasing-floor double-take and bounding any other to already-committed-only. A self-enforcing broker guard would refuse the bad SHAPE outright. BLOCKER: the obvious predicate (`from_seq >= delivered_through`) is UNSAFE because `delivered_through` is SESSION-WIDE (the `Arc<AtomicU64>` on `OutputLog`, shared by all controllers/viewers, advanced monotonic-MAX; `resume_seq` reads it) — a normal fresh-operator `from_seq=0` attach to a producing session legitimately sits below it (full ring replay + consumer dedup-below/snap-above), and monotonic-MAX can't distinguish the hazard (a `seq1`-without-`seq0` write reads as `2`). The structurally-correct guard needs a NEW per-connection contiguous-sent cursor (the true highest-contiguous seq this socket has received) that does not exist today; the guard then refuses a re-take below THAT. Bigger than P1c; no live gap (P1c fully fixes the actual bug). Mint/refine stages when the per-connection cursor is built. (v0.13.0 follow-up, post-ship)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1892160Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1892189Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1892380Z ### REQ-ADAPTER-MULTIPLATFORM-SPT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1894886Z - Title: A `.spt` adapter archive may pack multiple platforms in one signed asset: shared `manifest.toml` + `strings/` at the root, role binaries under per-Rust-target-triple subdirectories (ADR-0016 triple vocabulary, e.g. `x86_64-pc-windows-msvc/`); install/update extracts the shared root plus ONLY `current_platform()`'s triple subdir, flattened into `install_dir` so flat `<install_dir>/<program>` resolution (REQ-INSTALL-11) is unchanged. Name stays `adapter.spt` (plain-tar or gzip, `--asset` optional default); one whole-archive Ed25519 signature over the fat archive (REQ-UPD-9 single-artifact verify). A legacy flat archive (no triple subdirs) extracts as today (free back-compat); a multi-platform archive sets `min_spt_core_version >= 0.13.2` (forward-compat gate, readable before extract); a multi-platform archive missing the recipient's triple -> typed `NoArtifactForPlatform`, never a silent no-op. Large adapters may still split per-platform (single-triple archives via `--asset`, or ADR-0016 update-set machinery). (ADR-0024, v0.13.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1895032Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1895061Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1895163Z ### REQ-ADAPTER-LIVE-UPDATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1897843Z - Title: An adapter update is live and daemon-coordinated (the adapter analog of brain self-update, ADR-0004): for an endpoint with a running RESIDENT adapter binary (today the `[message-idle-translation-binary]`), the CLI keeps fetch+verify and hands the APPLY to the daemon over IPC, which per affected endpoint (1) STOPS the resident binary -> releases the OS file lock (fixes the Windows 'Access denied (os error 5)' overwrite failure), (2) swaps on disk ONLY files whose CRC differs from the staged archive (unchanged files + their still-running binaries untouched), (3) RE-CLONES the new on-disk manifest into the running `BrainLifecycle` (the in-memory manifest is cached at bringup and otherwise goes stale -> binaries+manifest back on the same page), (4) RESTARTS the resident binary from the new files. An endpoint NOT running -> CLI swaps directly (no lock, no cache). Only the resident class is cycled; ephemeral adapter binaries (Psyche loop, `[digest]` extractor, `[session.*]` runners, hooks) self-heal on next spawn and are excluded. The daemon keeps a per-endpoint registry of resident adapter children. (ADR-0025, v0.13.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1897943Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1897971Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1898082Z ### REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1902640Z - Title: A DELEGATED live adapter apply MUST NEVER report success without performing the swap, and the live-update seam MUST use ONE parent-aware adapter matcher across all its comparators. TWO defects made the field repro (BUILD-F015B-APPLYMATCH: `--adapter cc:ccs` live update silently no-ops): (D1, matcher skew) the broker's dispatch_adapter_apply filtered sessions by EXACT `s.adapter == req.adapter`, but a `--adapter <adapter>:<profile>` endpoint stores the COMPOSITE `cc:ccs` while the apply carries the PARENT record name `cc` — so every :profile endpoint fell out to affected=[]; select_endpoints_running_adapter had the same `adp == adapter` skew, while the CLI live-gate (adapter_has_live_endpoint) already parent-matched — divergent rules on ONE seam. (D2, silent success) the affected.is_empty() branch replied KIND_APPLIED and RETURNED WITHOUT SWAPPING; once the CLI delegates the apply there is no CLI-side fallback swap, so success-without-swap = the update never lands (re-register re-reads the OLD manifest, version-of-truth honestly says old). FIX: (1) ONE shared spt_runtime::profile::adapter_parent_matches(session_adapter, parent) used by the live-gate + broker apply-filter + select_endpoints_running_adapter (no exact `==` against a record name at any live-update seam); (2) the daemon owns the whole apply once delegated — the CRC swap runs UNCONDITIONALLY (terminate/restart loops no-op when nothing is resident), KIND_APPLIED reported ONLY after a real swap. (F015B, ADR-0025 amendment)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1902841Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1902869Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1902984Z ### REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1905751Z - Title: Endpoint-stop and brain-death reconcile MUST reap a brain-less perch's orphan detached Psyche via the cmdline-scoped guard (`psyche_orphan_should_reap`) — the handle-reap (`LiveSet::stop_host`, REQ-HAZARD-UNHOST-PSYCHE-REAP) CANNOT, because the owning brain is gone (its `psyche_child` handle died with it), and the brain-start scoped-reap (REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP) never fires for a perch being STOPPED rather than re-hosted. So the live-host calls the scoped reap after `stop_host` at the reconcile stop-side AND in `confirm_residency_or_unhost`. Preserves fail-safe-decline (pid-alive AND exe-basename==psyche-program AND cmdline contains `<id>-psyche`; any unreadable signal DECLINES — a missed dup is bounded, a wrong-kill is catastrophic). This is the orphan-leak half of the perri F-010xF-015 field bug (the unsupervised install-dir Psyche that locked an update); the other half is the psyche own-copy (ADR-0025 amendment). (v0.13.2 W3 (a))
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1905898Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1905931Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1906028Z ### REQ-ADAPTER-UPDATE-MESSAGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1907463Z - Title: An adapter manifest may declare `[update].message` — a plain (multi-line) human notice surfaced to stdout, markdown-rendered (the v0.13.0 helpfmt prose path), ONLY when `spt adapter update` actually APPLIES an update (version changed), not on a no-op. Read from the newly-installed manifest; avenue-agnostic (gh_release/delegated/file_pull). No `{key}` substitution. Use: an adapter telling the operator a post-update action, e.g. spt-claude-code's "run `/reload-plugins` in any ongoing sessions". (v0.13.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1907572Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1907602Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1907697Z ### REQ-ADAPTER-GH-TRANSPORT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1909075Z - Title: The `gh_release` avenue (and `spt adapter add --release`) gain a fetch `transport`: `https` (current reqwest direct, public), `gh` (shell the pre-authorized `gh` CLI — the private-repo path; `gh` honors OAuth and `GH_TOKEN`, so spt custodies no token), or `auto` (default: prefer `gh` when installed+authed, else HTTPS). `--gh`/`--https` force it on `add`. Additive over the existing fetch path; verify->extract->register downstream is unchanged. (v0.13.2)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1909176Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1909209Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1909304Z ### REQ-ADAPTER-PROOF-DIR-OVERRIDE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1910662Z - Title: The author-time proof commands (`spt adapter digest-proof`, `spt adapter translate-proof`) gain a `--dir <path>` / `--manifest <file>` override so an author proofs a DEV binary against an on-disk manifest+install dir WITHOUT staging a full extracted GhReleaseManaged install (mirrors digest-proof's `--sample` pointing straight at a file). Fixes perri F-011: a bare-file-added gh_release adapter currently can't be resolved by the *-proof commands ('manifest is not present yet at <dir>'); un-stales the bare-file digest-proof int. (perri F-011, v0.13.x DX)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1910761Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1910791Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1910882Z ### REQ-ADAPTER-VERSION-CMD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1912398Z - Title: `spt adapter version <name>` prints a registered adapter's declared version — the EXISTING mandatory `[adapter].version` manifest field (manifest.rs already requires it; NOT a `[strings].version`, NOT `get-string`, no second version source). A new `AdapterCmd::Version{option}` resolves the option's merged view via `registry::resolve_option` like the sibling adapter subcommands and prints `manifest.adapter.version`; an unresolvable option errors (exit 1) the same way. (v0.13.2 W6)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1912495Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1912618Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1912713Z ### REQ-DOCS-NO-INTERNAL-CODES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1914249Z - Title: Public CLI --help (the clap `///` doc-comments) and the generated `docs-site/src/cli/reference.md` MUST NOT contain internal tracker/decision codes — `REQ-*`, `F-###`, `M#-W#`, `ADR-####`. They are meaningless to an end user reading --help and ship to GH-Pages. A CI-gated scan (the `xtask check` docs gate) fails on any such token in the GENERATED reference.md (which by construction contains only clap help, so rustdoc `///` on fns/structs is OUT of scope and keeps its REQ/ADR cross-refs). Substance is kept; codes are rewritten to plain language. (v0.13.2 W6)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1914393Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1914422Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1914515Z ### REQ-RUN-MULTISUBNET-HOME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1917072Z - Title: `spt endpoint run` resolves the home subnet at the skeleton-create step and pre-creates the skeleton perch carrying it, so the harness `bind` inherits home via establish_perch's immutable prior-branch (no hook change, no env injection). Resolution: sole-subnet auto; multi-subnet + no --subnet + NON-interactive terminal -> refuse early with MRU-ordered --subnet guidance (never the silent 25s online-timeout); multi-subnet + no --subnet + INTERACTIVE -> print proposed config (id/project/adapter[:profile]/home=MRU-default) + 'Ok to proceed? Y/n', n -> --subnet guidance; --subnet overrides + validates membership. MRU = ordered move-to-front LISTs at two levels (per-project + always-updated node-global fallback). Home stays IMMUTABLE (ADR-0010). Fixes the LATENT multi-subnet bringup gap (perri, not a regression — HOME_REFUSED established >=0.11.0; exposed by the node crossing 1->2 subnets). (ADR-0026)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1917176Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1917201Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1917301Z ### REQ-ENDPOINT-UNBOUND-ATTACH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1919774Z - Title: An spt-hosted endpoint is ATTACHABLE between spawn and bind: gate the attach on the broker SESSION being attachable (session+PTY+OutputLog exist at spawn, before bind), not on perch STATUS_ONLINE (bind). cmd_endpoint_run + `spt rc <id>` attach to a live broker session regardless of perch status (headless bringups too; lets an operator clear a bind-gating prompt) -- replaces await_endpoint_online; preserves REQ-HAZARD-RC-ATTACH-ONLINE-RACE's 'no attach before a session' intent at the earlier session-exists point; source = the broker sessions map (ADR-0025 W3a); local-only. New on-disk status STATUS_UNBOUND (spawn->unbound, bind->online, death->offline); lifecycle reuses the existing exit-waiter/reconcile (session death->offline); unbound is attachable but NOT message-addressable (messaging stays online/bound-gated). EpDisplay gains Unbound = HOLLOW (+ hollow-controlled variant) -- amber=HarnessOnly is taken + means not-controllable (the opposite of attachable). (ADR-0027)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1919874Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1919902Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1919996Z ### REQ-MANIFEST-SUBST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1922530Z - Title: Manifest substitution primitives for resolve-not-execute (ADR-0029, supersedes a rejected `spt api run-hook`): (1) two adapter-static substitution keys `{adapter_dir}` (the registry record's precise source_dir — install dir, survives updates, the dir bare-program resolution uses) and `{adapter_name}`, available wherever command/string substitution runs; (2) lazy substitution INSIDE `[strings]` values at `get-string` read time, scoped to those adapter-static keys ONLY (session-scoped {id}/{session_id}/… are NOT available — get-string carries no session; a get-string --session-id is a deferred larger change). Invariant preserved: spt-core never executes a string — it substitutes and returns; the adapter's own wrapper executes the result (e.g. a CC hook dispatcher get-strings its packed binary once per session into an env var, then runs it per-hook, so hook logic rides `spt adapter update`). (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1922769Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1922802Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1922896Z ### REQ-ADAPTER-UPDATE-POST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1925749Z - Title: Composite adapter update — an avenue-agnostic `[update.post]` sub-table `{ command, self_verifies }` run AFTER the primary avenue (gh_release/file_pull/delegated) resolves, in the same `spt adapter update` (ADR-0029). Runs UNCONDITIONALLY (even on an adapter version no-op — the post-step's own idempotent check decides). PUBLISHED stdin JSON seam: one line `{adapter_applied, adapter_name, profile_name, version, previous_version, adapter_dir}` (additive keys; post-step ignores unknown). stdout decides the notice: custom text SUPERSEDES [update].message; a reserved sentinel fires the static [update].message; empty = no notice. exit code orthogonal (0 ok / nonzero failed). Precedence: dynamic-stdout > sentinel/manifest-message > nothing. NO [update.post] declared ⇒ today's adapter_applied→[update].message unchanged; post-step FAILS ⇒ loud warning + fall back to adapter_applied→message. FAILURE-ISOLATED: a committed gh_release pull is never rolled back if the post-step fails (independent channels). (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1925898Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1925932Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1926022Z ### REQ-TRANSLATE-COMMAND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1929279Z - Title: `[message-idle-translation-binary]` accepts a `command` (opaque; args + ADAPTER-STATIC {adapter_dir}/{adapter_name} substitution ONLY — ratified v0.16.0 W1, NOT session {key}: the translation binary is a persistent process serving all sessions on the endpoint (session/event ctx arrives per-message via the stdin Init/Event protocol, never the spawn argv) and the live-update respawn site has no session ctx (a {id}-bearing command would MissingKey→spool); program token resolved against install_dir like [digest].extractor/[session.psyche_init]) in addition to the bare `path`. `path` is DEPRECATED — keeps parsing (manifest forward/back-compat) but emits a registration warning steering to command. Exactly one of {path, command} (both-set refused at registration; neither = no translation binary). The spawn lifecycle + stdin/stdout JSON-lines protocol (Init/Event/Input → key/text/delay_ms/commit) are UNCHANGED — command alters only how the executable+args are located/launched (read_translation_path → read_translation_command). Unblocks folding `claude-spt translate` into the one consolidated binary (downstream ADR-0006). (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1929390Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1929424Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1929518Z ### REQ-SEND-REPLYTO-REMOVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1932439Z - Title: Remove the `--reply-to` TARGET FALLBACK and its REPLIED label from `spt send` — a nicety that confuses agents and has NO WIRE EFFECT (ADR-0020 already made messages structural (from,body), no __REPLY_TO__). Hard-remove (no deprecation shim): the target fallback (a bare `spt send --reply-to <sender>` delivering with no positional), the is_reply/REPLIED label branch (always SENT/QUEUED), the `send` how-to example, and the mention in REQ-DOCS-6's send topic. Reply-correlation stays on the structural `from` attribute; `target` is a REQUIRED positional. (v0.16.0) — AMENDED WEBSERVE W2 (2026-09-07): this requirement is about the SEMANTICS, not the spelling. ADR-0061 re-uses `--reply-to` for a DIFFERENT thing — a parent message short-ID carried as an additive envelope attribute (REQ-MSG-SHORT-ID) — which leaves both killed halves dead: the flag still cannot stand in for the target, and it still stamps no label and changes no delivery. The unit cell is repinned to assert those two properties against the live flag rather than asserting the string no longer parses.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1932589Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1932618Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1932711Z ### REQ-DIGEST-CURSOR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1936210Z - Title: `spt endpoint digest` gains incremental turn-end consumption (extends REQ-TERM-4/5): `--last <N>` = the last N TURNS (the digest's natural unit; --last 1 = the latest turn = turn-end output); a per-entry STABLE SOURCE-DERIVED `seq` in the --json output (deterministic from the entry's append position in the source — transcript record index across the session ledger / digest.log index — so a live re-projection yields the same seq for the same committed entry; NOT a window-position index that renumbers on slide); `--after <seq>` = entries newer than seq still in the window (full window + signal if seq predates it, mirroring the version-slide full-refresh). An in-flight (still-growing) entry is flagged `partial: true` with NO stable seq until finalized (consumer reprocesses partial, skips <= seq). Also emit per-entry `ts` where present (seq is the authoritative dedup+cursor key). The digest's agent text is sufficient fidelity (no raw-source mode). BINDING doc-guidance: an adapter's [digest] extractor / api digest-entry MUST classify delivered user-facing messages as turn-opening `input` (equiv to direct PTY user-input), else messaging-driven sessions collapse into a few giant turns and --last/seq lose granularity. (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1936362Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1936390Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1936478Z ### REQ-CLI-JSON
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1938407Z - Title: A global `--json` flag (clap global=true) honored by the READ/STATUS command set: endpoint list/whoami, daemon status, subnet status/show-code, endpoint description/role, adapter list/version, notif list, grant list, access list, shell list, how-to (endpoint digest already has it). Action commands do not honor it. A shared print_json() helper + a coverage TEST asserting every command in the set emits valid JSON (guards against the missing-shared-formatter drift). Output uses explicit per-command output DTOs with committed field names — internal structs are NOT serialized verbatim (their fields would become a public contract; JSON is a consumed wire-parity surface). (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1938504Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1938538Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1938628Z ### REQ-RUN-EMPTY-CREATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1939931Z - Title: `spt endpoint run` / bare `spt` routes a TOTALLY-EMPTY scope straight to the endpoint-creation flow: when gather_endpoints() is empty (nothing attachable, local OR subnet) PickerModel::new opens on Screen::CreateAdapter instead of PickExisting (today it always opens PickExisting + renders a blank list). A node WITH subnet endpoints but no local ones still has things to pick → stays on the picker. Extends REQ-RUN-PICKER. (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1940030Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1940059Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1940144Z ### REQ-RC-IDENTITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1942318Z - Title: `spt rc` overlays a persistent endpoint-identity marker so the operator always groks which endpoint they control: a reserved TOP status row via a DECSTBM scroll-region (shrink the PTY's reported rows by 1, own the row), right-aligned `SUBNET : ENDPOINT_ID @ NODE`, CYAN text. Re-assert the margin + repaint on alt-screen enter / DECSTBM reset / resize (output-scanning, like the existing mouse_scanner). NO window title (the harness, e.g. CC, owns it for busyness — OSC dropped). Resolve subnet/node/id once at attach (perch/registry read) and thread into the pump; subnet = the endpoint's home/primary ("local" if none). The literal floating rounded-rectangle corner box is DEFERRED to the future web-based GUI (not a grid-model rc — that lift is better spent on the GUI). (v0.16.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1942471Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1942500Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1942590Z ### REQ-JOIN-TWO-PHASE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1945973Z - Title: `spt subnet join` is two-phase (meet-before-code) so the entered code is FRESH at the ceremony regardless of discovery time (ADR-0030). The meet selector is the PUBLIC `(subnet-name, TOTP-epoch)` (rendezvous_token = SHA256(domain ‖ name ‖ totp_step)); the secret TOTP-code is the SPAKE2 password ONLY, never a discovery input — so the code is collected AFTER a member is found. Extend the brain.pair_join event stream (brain.rs:1009): CLI PairMeetReq{subnet} → daemon meets (name, current-epoch) resolving the seed-holder's REAL stable pairing address → MetMember event → CLI prompts the code (cli.rs cmd_subnet_join :6236) → PairCodeSubmit{code} → daemon dials the held real-address on SPT_PAIR_ALPN + SPAKE2 → PairJoined/PairFail. Daemon holds the real-address between phases, bounded by a 5-MINUTE wait-for-code timeout; a wrong-code retry re-runs the CEREMONY ONLY against the held address (no re-search). The non-interactive `--code` path stays one-shot (no prompt; relies on REQ-NET-FAMILY-GATE fast discovery, fails loudly per REQ-JOIN-DIAGNOSTICS on staleness). Security unchanged — the meet is pre-trust/unauthenticated (SPT_PAIR_MEET_ALPN); auth stays in SPAKE2. (next milestone)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1946139Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1946172Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1946261Z ### REQ-NET-FAMILY-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1948559Z - Title: spt-core binds only IP families that are actually REACHABLE (ADR-0030), so a half-broken family (e.g. IPv6 whose AAAA resolves but whose path is dead) never silently consumes connection/discovery time. At NetEndpoint::bind (endpoint.rs), probe each family's reachability ONCE and bind only the working ones: dual-stack when both healthy; IPv4-only when IPv6 is dead; IPv6-only when IPv4 is dead (drop the DEAD family — NOT a fixed prefer-IPv4; IPv6-only networks must keep working). Re-evaluated on daemon restart (once-at-bind, no live re-eval in v1). Explicit overrides SPT_DISABLE_IPV6 / SPT_DISABLE_IPV4 force a family off (escape hatch + determinism + testing, mirroring SPT_NTP_SERVER); a forced-off family is never bound regardless of the probe. Reusable beyond join — every spt connection benefits. (next milestone)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1948659Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1948687Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1948776Z ### REQ-JOIN-DIAGNOSTICS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1951512Z - Title: `spt subnet join` never fails SILENTLY (ADR-0030; the field incident showed no output at all). (a) LIVE progress during the meet (replace the one-shot "Searching…" cli.rs:6268 with periodic elapsed/deadline) so silence ≠ hang; (b) DETAILED failure on meet-exhaustion — rendezvous candidates + families attempted (IPv4/IPv6) + relay-vs-direct + the last concrete error — surfaced BEFORE any code prompt (a dead subnet must not make the user fetch a code); connect_seed_holder (pairhost.rs:437) and dial_via_rendezvous (meet.rs:281) currently swallow per-attempt errors — thread the last error up with attempt context; (c) PROPAGATE the terminal event — brain.rs:1024 `_ => continue` must deliver a daemon NoSeedHolder/PairFail to the CLI as a printed error (this is WHY the user saw nothing); (d) `--verbose`/`SPT_LOG` discovery TRACE (per-probe derived id, discovery path mDNS/n0-DNS/relay, per-family timeouts), opt-in — no such knob exists today. (next milestone)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1951672Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1951705Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1951801Z ### REQ-PRESENCE-LIVENESS-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1956461Z - Title: A node's gossiped per-endpoint registry Status reflects real liveness, so a remote viewer never paints a DEAD endpoint as ONLINE. ROOT (confirmed + gated vs CONTEXT.md): registryhost.rs:397-405 advertises a NOT-alive perch as Status::Dormant (the `else` of is_perch_alive), re-stamped every gossip round (never ages to Offline). Design intent GATED vs resting.rs + CONTEXT.md: active/dormant is the MULTI-INSTANCE routing differentiator (active = the bare-id routing target; dormant = a WARM non-target sibling — 'driving ling@laptop makes ling@desktop dormant', resting.rs:97; transitions active→dormant on AttentionShift/Detach). suspended = COLD (session closed, resumable-on-wake) while its NODE is UP. offline = NODE DOWN — NEVER self-gossiped (RestState has no Offline; a live node only ever gossips active/dormant/suspended), remote-inferred via epoch-lease eviction. So labeling a NOT-running perch Dormant is the DEFECT (dormant requires warm/running). PRIMARY FIX (registryhost `else`, not-bound-alive): live-but-UNBOUND (has a live broker session; is_perch_alive is bound-gated) → Active/Dormant (still warm); else (cold, no live session, but its node is up because this very daemon is gossiping) → SUSPENDED — NOT Dormant, NOT Offline (the node is UP; Offline is never self-gossiped). This alone removes the false-ONLINE. dormant keeps gossiping (routing/MRA needs it) but RENDERS as its online flavor (no distinct glyph; the dormant→suspended auto-suspend timer disambiguates recency). The DISPLAY of these states (incl Suspended=gray-filled) is REQ-SUBNET-DISPLAY-PARITY. Design: docs/design/subnet-presence-display.md §A. (next milestone)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1956619Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1956648Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1956746Z ### REQ-SUBNET-DISPLAY-PARITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1960893Z - Title: The `spt endpoint run` picker renders endpoint state IDENTICALLY for local and remote (subnet) rows — bound/unbound, controlled (+driver node), and harness-only are all visible across the subnet, not local-only. Today data.rs:293-294 reduces a remote row to plain green-filled/gray-hollow because those facts aren't propagated. (1) GOSSIP additive per-Instance fields: bound/unbound, controlled + driver-node, harness_only (Offline is never gossiped — node-down is remote-inferred). (2) Derive the full EpDisplay for subnet rows from the gossiped fields, same path as local (remove the remote-reduction). (3) PALETTE rework (fill = ACTIONABLE: filled=can act now (rc-control if online, WAKE if suspended-on-live-node) / hollow=cannot (no control seat / node gone)): green-filled=online+bound+free; blue-filled=online+controlled (desc shows `controlled by <node>`); RED-filled=online+UNBOUND (controlled-or-not; controlled-ness shown via available options not glyph) — replaces green-hollow Unbound + absorbs the dropped UnboundControlled; AMBER-HOLLOW=online+harness-only (no broker seat → can't rc) — was amber-FILLED; GRAY-FILLED=Suspended (cold, node up — wakeable) NEW; gray-hollow=Offline (node down) now REMOTE-ONLY. EpDisplay: drop UnboundControlled, Unbound→red-filled, HarnessOnly→amber-hollow, add Suspended(gray-filled). Picker maps Active|Dormant→online flavor, Suspended→gray-filled, Offline→gray-hollow. (next milestone)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1960998Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1961021Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1961118Z ### REQ-UPDATE-FETCH-CURRENT-UX
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1963876Z - Title: `spt update fetch` reports an already-staged / already-applied latest as an ACTIONABLE human outcome (exit 0), not a Debug-formatted error. ROOT: cmd_update_fetch (cli.rs) sets the rollback floor = staged_version, so when the published candidate == the already-staged version, verify_update_set_metadata returns Err(RejectReason::Rollback{current,candidate}) — printed as {reason:?} (Debug) at exit 1, reading as a FAILURE when the update is merely already downloaded and just needs `spt update apply` (this bit the operator: fetch kept 'failing', apply was the missing step). FIX: a PURE classifier (reason, applied, staged) -> {AlreadyStaged (latest downloaded, not yet installed) / AlreadyApplied (up to date) / GenuineError}; already-staged + already-applied print a friendly message and exit 0; genuine rejects use RejectReason's Display (release.rs, not Debug) + exit 1 — applied at ALL THREE fetch reject sites (metadata + artifact-verify + plan-verify). (v0.18.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1963978Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1964011Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1964115Z ### REQ-UPDATE-FETCH-APPLY-FLAG
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1966687Z - Title: `spt update fetch --apply` is the one-shot get-to-latest: fetch, then INSTALL the staged update REGARDLESS of whether the fetch itself staged anything new — so the brittle `fetch && apply` chain (which broke when fetch no-oped / exited nonzero on an already-staged latest, skipping the chained apply) is unnecessary. Composes with REQ-UPDATE-FETCH-CURRENT-UX: the end state is 'installed latest', reached idempotently from new-staged -> apply / already-staged (applied<candidate) -> STILL apply / already-applied -> noop+exit0 / genuine error (bad signature, no artifact for platform, true downgrade, network) -> do NOT apply, propagate the error + nonzero. Reuses the existing cmd_update_apply core (its own verify + two-phase + auto-rollback own correctness; no duplicated swap/respawn). Additive clap flag (plain doc-comment, no internal codes); reference.md regenerated. (v0.18.0)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1966826Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1966855Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1966958Z ### REQ-UPDATE-RUNNING-IMAGE-SURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1973426Z - Title: `spt` surfaces the RUNNING broker image version beside the on-disk version so an updated-looking node reveals broker-side dormancy. ROOT (F-025): `spt update apply` restarts the BRAIN only (ADR-0018 D3-3) — the BROKER process survives and keeps running its pre-apply compiled image, so every broker-side surface of a freshly-applied release (the F015B live-apply matcher, dispatch inject legs, etc.) is silently dormant until a full daemon bounce, with nothing in the CLI revealing the split. FIX: the running broker SELF-REPORTS its compiled image version over IPC (a new request KIND answered by the live broker process from its own compiled build constant) — HARD CONSTRAINT: the version comes FROM the running broker process, NEVER inferred from disk bytes, install manifest, or file timestamps, since the disk is exactly the half that is already ahead; a version-surface command (`spt version` and/or `spt daemon status`) prints the running-broker version beside the on-disk/product version and flags a mismatch. Keeps read-side truth independent of write-side claims (the field lesson from F015B). (F-025) AMENDED 2026-07-27 (FIELD-TRUTH W1 roll-in, operator-directed): (1) `spt daemon status` MUST also divulge the COORDINATOR (brain) image version — the process that executes daemon-coordinated features and the most relevant running version to a status reader; same HARD CONSTRAINT: sourced from the RUNNING brain process (self-report over the broker↔brain channel or equivalent live query), never inferred from disk. (2) The stale-daemon warning RE-KEYS to the coordinator image vs installed: it renders ONLY when the COORDINATOR is outdated — post-apply the brain restarts onto the new bytes while the broker legitimately stays old (ADR-0018 D3-3), so the broker-keyed warning fired exactly backwards on a healthy freshly-updated node. (3) The remedy line recommends solely `spt daemon refresh` (in-place coordinator cycle; hosted terminals and the net layer keep running), never `daemon stop` + `daemon start`; a broker-breaking release still forces its full bounce through the update machinery, not through status advice. (4) The broker image line stays, informational only — no warning, no remedy text. Coordinator-version query unanswered (older daemon) renders not-reported without the warning.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1973589Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1973626Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1973735Z ### REQ-UPDATE-APPLY-RESTART-NOTICE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1975606Z - Title: `spt update apply` prints a LOUD restart-required notice whenever the surviving broker will keep running the pre-apply image (which, until broker-restart choreography exists, is ALWAYS on a successful apply). Public wording, no internal CODE:RESULT markers (composes with REQ-ADAPTER-UPDATE-MESSAGE / the update-apply-confident-message rule) — name the user-visible CONSEQUENCE ('daemon-coordinated features run the previous version until the daemon restarts'), not the broker/brain internals. Composes with REQ-UPDATE-RUNNING-IMAGE-SURFACE (the notice tells the user what the version-surface will then show, and how to clear it). (F-025)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1975706Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1975735Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1975831Z ### REQ-UPDATE-APPLY-ALREADY-APPLIED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1978131Z - Title: `spt update apply` classifies an already-staged / already-applied state as a friendly exit-0 no-op instead of dying at the binary-aside rename with 'Access is denied (os error 5)'. ROOT (F-025): a second apply on an already-applied staged version reaches the two-phase binary-aside rename and fails os-error-5, reading as a hard failure when the machine is simply up to date. FIX: apply gains the same pure classifier `fetch` got in v0.18.0 (REQ-UPDATE-FETCH-CURRENT-UX) — already-applied → clear message + exit 0, and the flow MUST short-circuit BEFORE the binary-aside rename in that state; mirror the classifier at ALL apply reject/entry sites the way the fetch fix covered its three. Genuine errors (bad signature, wrong platform, true downgrade, network) still propagate nonzero. (F-025)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1978278Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1978302Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1978408Z ### REQ-BROKER-ATTACH-JOURNAL-RESILIENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1981092Z - Title: A poisoned EffectJournal mutex or a sick NetHost runtime must NOT permanently brick all future attaches. Bug #16 (URGENT): a live spt-hosted endpoint (eel-a) attach fails with 'brain IPC read deadline elapsed' after a self-update brain-respawn — the broker survives the respawn and one journaled op (dispatch_net_stream_open journal.apply_once + loopback open_stream runtime.block_on nethost.rs:1060) enters a bad state, so every journaled attach silently kills its per-conn reply thread while non-journaled ops keep working. Fix: recover PoisonError via into_inner (effect.rs apply_once, replace the .expect panics) so one panic cannot brick all attaches; bound the loopback open_stream block_on (nethost.rs:1060) like the QUIC bounded_block_on so a sick runtime fails fast with an error frame not an opaque 10s deadline. Reinforces REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #16.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1981197Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1981227Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1981317Z ### REQ-WAN-SEND-DELIVERY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1983438Z - Title: Bug #9/#10: cross-node spt send reports SENT(WAN) but does not deliver, even on stable-IP pairs. Real root: spt send resolves the dial with id-only addr_for_node_hex (endpoint.rs:538) which forces a fresh iroh discovery round-trip every send, while the gossip pump uses cached direct addresses (dial_seeded/PeerAddrStore) so gossip stays green but send rides a marginal discovery path that cannot carry the fire-and-forget payload; the handshake completes so SENT(WAN) prints falsely. Fix: (1) route the WAN dial through the pump seeded-direct-address resolution (PeerAddrStore first, id-only fallback); (2) receiver writes its WanOutcome back so the sender confirms delivery under the QUIC deadline and only reports SENT on confirmed delivery, honest failure otherwise. Access-gate/perch/spool all verified correct (ruled out). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #9-10.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1983586Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1983614Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1983714Z ### REQ-RC-CROSS-NODE-ATTACH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1985630Z - Title: Bug #4: spt rc to a remote endpoint fails with 'no live session' though endpoint list shows it Active — rc.rs:1063 resolves only the LOCAL broker session table and always dials loopback, never consulting the registry or dialing the owning node (the cross-node attach transport exists in the broker; only the client leg is missing). Fix: on a local resolve miss, resolve the owning node from the registry (reuse resolve_across_visible), net_dial that node, and run a remote session-resolve + serve_attach round-trip (mirror the wansend resolve-dial-round-trip pattern). Shares the resolve-owning-node primitive with REQ-WAN-SEND-DELIVERY. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #4.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1985777Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1985805Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1985900Z ### REQ-RC-WIN-VT-OUTPUT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1989396Z - Title: Bug #12: `spt rc` to an endpoint renders ANSI escapes LITERALLY (raw ←[K / color codes) on a Win10 conhost console, garbling the viewport — while `endpoint run --attach` in the SAME env renders fine and Win11 Windows Terminal is unaffected. Root (code-grounded, doyle): rc.rs RawGuard::enable calls only crossterm enable_raw_mode (INPUT raw mode) and NEVER enables ENABLE_VIRTUAL_TERMINAL_PROCESSING on the OUTPUT handle; Win10 conhost defaults VT-output OFF so escapes print literally, whereas the picker/alt-screen setup on the endpoint-run path enters crossterm's VT-enabling console setup first (leaving VT-output on) — so it is the rc-attach CLIENT PATH specifically, and --attach-works-same-env confirms (not refutes) the VT-out theory. Fix: in the rc attach path (RawGuard), on cfg(windows) + interactive console (mirror the windows_mouse_wanted guard so piped stdin/stdout keeps clean bytes for the e2e byte tests), SetConsoleMode STD_OUTPUT_HANDLE |= ENABLE_VIRTUAL_TERMINAL_PROCESSING|ENABLE_PROCESSED_OUTPUT, capture the prior mode, restore on Drop. cfg(windows)-only, client-side, independent of #4/#6. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #12.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1989568Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1989597Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1989688Z ### REQ-GOSSIP-CONTROLLED-ANY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1992706Z - Title: Bug #3: a locally-controlled endpoint gossips controller_node = None so remote viewers show it free to control. Root AS IT STOOD WHEN THIS WAS WRITTEN: driven_by was stamped Some(node) only for a REMOTE WAN attach (attach.rs:337), because the legacy LOCAL attach path passed by=None (broker.rs:1750) — so the datum a remote viewer needed was absent at source. NOTE (doyle ruling v3, 2026-07-19): the accompanying model claim — that a local controller must NOT latch driven_by — was FALSIFIED. driven_by names the CONTROLLING node, own node INCLUDED (CONTEXT.md:386), and the own-hex latch is truthful; the by=None behavior was a legacy-path artifact, not the design. KH 7.15 is about CLEARING the stamp when the session is gone, which is a different rule and still stands. The fix as landed is unaffected and stays correct: broker stamps a SEPARATE any-controller datum (true/Some(host) for a local OR remote controller) alongside stamp_driven_by, and advertise_local gossips Instance controller_node from it. node-refresh is NOT the fix (data is absent at source). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1992812Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1992840Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1992931Z ### REQ-SUBNET-COUNT-ROUTABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1994589Z - Title: Bug #2: a remote node endpoint count drifts (0/2, 1/3) because node_status_rows (cli.rs:5314) increments the per-node total unconditionally, counting non-routable Offline ghost rows; purge is not a registry eviction (it gossips a one-shot Offline row that is immortal on remote viewers — eviction is per whole-node only). Fix: routable-only denominator (total += status.routable()) keeping a separate raw count for the all-Offline liveness branch; plus per-row Offline-TTL eviction so purged endpoints stop accumulating on remote snapshots. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1994732Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1994761Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1994851Z ### REQ-BROKER-SCREEN-GRID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1997352Z - Title: Bugs #6 + #12 + #7/#8-artifacts: the broker is a raw-byte pump with no screen model — OutputLog replays the raw ring from seq 0 into a fresh terminal on attach, so an alt-screen TUI (Claude Code) corrupts scrollback (#6) and rc-to-a-pre-running-endpoint garbles (#12 — rc and endpoint run --attach are the SAME client fn, so it is replay content not a client-VT bug). Fix: a server-side VT/grid/screen model (tmux/mosh-style) that maintains authoritative screen + alt/main + cursor and synthesizes a CLEAN current-screen repaint on attach instead of replaying mid-stream ring bytes. Also eliminates residual-cell artifacts on animate/scroll/resize (#7/#8). Operator NON-NEGOTIABLE: accurate PTY representation with zero artifacts. (win32 vterm in the report means this server-side emulator, not ConPTY which is already the backend.) See docs/NEXT-MILESTONE-BUG-TRIAGE.md #6/#12.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1997509Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1997538Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1997633Z ### REQ-RC-IDMARKER-DISABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1999052Z - Title: Bugs #14 + #7/#8 (marker half): feature-flag the top-right StatusRow endpoint-id marker OFF (rc.rs:198-307). It is a one-shot absolutely-positioned paint that scrolls off-screen and is not re-stickied (#14), and its DECSC/clear/SGR injection splices into the harness in-flight drawing causing residual artifacts (#7/#8). Ship disabled next release (operator: save the concept for a future web SPT GUI); revisit as a proper per-frame sticky overlay only once REQ-BROKER-SCREEN-GRID provides the screen model. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #14.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1999153Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1999176Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.1999270Z ### REQ-ENDPOINT-LIST-PALETTE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2001416Z - Title: Bugs #11 + #15 (display): spt endpoint list renders status as plain text while the picker turns the same ResourceRow into the W5 colored EpDisplay palette. Fix: extract one shared ResourceRow-to-EpDisplay builder + make the picker display enums/helpers public, and have endpoint list render the same colored status squares (via helpfmt stdout_color, not ratatui Span). This also fixes #15 — a lone warm detached instance renders as its online flavor (Dormant maps to online) instead of leaking the bare word Dormant through the text-only list (no resting.rs/CONTEXT model change; operator ruling display-only). Couples REQ-PICKER-NODE-GROUPING (both edit subnet_rows — sequence the shared-builder extraction first). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #11/#15.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2001520Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2001543Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2001638Z ### REQ-PICKER-NODE-GROUPING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2002977Z - Title: Bug #13: the endpoint run Subnet tab shows a machine once PER shared subnet (subnet_rows data.rs:253 iterates per-subnet, groups by subnet:node, no cross-subnet dedup). Fix: dedup by (node, endpoint_id) across the subnet loop, collect the set of shared subnet names per endpoint, emit one group per MACHINE (group = node_display) with its shared subnets listed beneath the machine name; reconcile per-endpoint status across subnets (most-alive). Couples REQ-ENDPOINT-LIST-PALETTE (both edit subnet_rows). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #13.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2003128Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2003157Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2003262Z ### REQ-ENDPOINT-LIST-NODE-GROUPED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2008127Z - Title: spt endpoint list is node-grouped over unique INSTANCES, not subnet-grouped over duplicated rows: one row per (id,node) instance — subnet duplication collapsed (ADR-0006 §1: subnet is never an identity axis), freshest-epoch wins a cross-subnet status disagreement (the resolve_among twin rule) — grouped under 'This node: <label>' (cyan; local roster is the status truth, advertised-status vocabulary, corrupt = suspended + corrupt annotation) then remote nodes alphabetical (node name orange 38;5;208, the legacy $LIVE orange), this node carrying a light-gray 'Joined subnets:' line (the subnets this node is a member of -- renamed from 'Shared', releases#72, see REQ-ENDPOINT-LIST-JOINED-SUBNETS-LABEL) and each REMOTE node a light-gray 'Shared subnets:' line (subnets among our memberships where that node gossips any visible row; per-instance subnet detail stays in --json/--detail), instance rows [id, endpoint_type, glyph, status] (endpoint_type threaded from Instance.endpoint_type through ResourceRow — additive, pre-field rows render '-'), per-node 'Total:' lines with NO grand total (the stderr ENDPOINTS:<n> line is REMOVED — it counted subnet rows, so the same instance in N subnets counted N times), SELF pin kept first with a '(self @ <node>)' marker (REQ-WHOAMI-1 alias; self also appears as a This-node row so the node total stays honest), remote nodes with zero visible instances skipped, --subnet narrows the union to that subnet's view, --json DTO structure UNCHANGED (committed surface; gains only an additive endpoint_type field). Grill-with-docs ruling 2026-07-02 (operator + doyle); sibling of REQ-PICKER-NODE-GROUPING (the picker half of the same dedup law).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2008283Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2008311Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2008417Z ### REQ-ENDPOINT-LIST-REST-FILTER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2010845Z - Title: spt endpoint list hides SUSPENDED instances by default; a new --show-all flag reveals them. Status-first row ordering with fixed precedence ONLINE > CONTROLLED > UNBOUND > SUSPENDED (when shown) > corrupt last, alphabetical by id within each band. Two invariants: (1) CORRUPT rows ALWAYS render regardless of filters — corrupt is a record condition demanding operator action (purge/re-mint), not resting clutter; hiding it would re-create counter-39 bug #3 (cross-ref REQ-HAZARD-CORRUPT-PERCH-COHERENCE, CONTEXT.md instance-state _Also avoid_); (2) the per-node Total line DISCLOSES the filter — 'Total: N (+M suspended hidden)' — so nothing silently vanishes. Registry-Offline rows stay excluded by projection law (resource_projection skips unroutable; unchanged). Grill-with-docs ruling 2026-07-02 (operator + doyle).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2010945Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2010969Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2011065Z ### REQ-ADAPTER-UPDATE-INPLACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2012434Z - Title: Bug #18: spt adapter update fails at re-register with os error 2 because it derives the install dir from the update repo NAME (_github/<safe>) instead of updating in place at the adapter record source_dir; when the adapter repo is intentionally renamed across releases (spt-claude-code to claude-spt, supported), the derived dir is fresh/empty and re-register reads a missing manifest. Fix: adapter update installs and re-registers in place at the registered source_dir and tolerates a changed update repo/URL across a rename. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #18.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2012543Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2012568Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2012664Z ### REQ-DIGEST-PROFILE-ENV
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2014863Z - Title: Bug #17: spt endpoint digest returns NO_DIGEST for a ccs-profile endpoint (claude-spt:ccs) though [digest] is wired and the transcript exists — under .ccs (CLAUDE_CONFIG_DIR relocation) not .claude. The on-demand digest runs the extractor in the daemon context WITHOUT the endpoint profile transcript-location env, so the env-aware resolver cannot find the relocated transcript. Fix: propagate/persist the endpoint profile transcript-location env (e.g. the ccs CLAUDE_CONFIG_DIR) to the on-demand digest extractor so a profile-relocated transcript resolves; confirm the exact extractor verdict via spt adapter digest-proof. Ownership spt-core (digest env/profile propagation), possibly with a claude-spt extractor-resolver assist. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #17.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2015018Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2015046Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2015146Z ### REQ-DIGEST-FETCHER-STRATEGY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2018801Z - Title: Bug #17 (W6b, closes eel-a end-to-end): [digest] gains a `fetcher` strategy mirroring [history]'s locate/normalize split (CONTEXT §history: [digest] mirrors history's two strategies — locate ownership). ROOT: the pre-W6b [digest] had only the locate_normalize analog (spt-core resolves ONE `source` template + pre-reads the file), which CANNOT express a PARTITIONED transcript layout — CC's projects/<munge(cwd)>/<session_id>.jsonl or a date-globbed rollout tree — the exact case CONTEXT already assigns to the adapter. spt-core (correctly) provides NO {project}/slug key (harness-specific cwd munging = the charter violation FIX-A was rejected for). Fix: strategy = fetcher makes the ADAPTER's extractor locate + read + emit normalized records; spt-core runs it bounded (no locate, no pre-read, no stdin) and consumes stdout, feeding only the harness-NEUTRAL inputs it owns — {session_id}, the perch-bound {cwd} (info.json.cwd), and the captured [env] direction=read vars (W6/REQ-DIGEST-PROFILE-ENV) — so the extractor globs the unique {session_id} under {read-var-root}/projects/ with no slug. Keeps locate_normalize (default, back-compat) for a trivial single-file harness. Distinct capability from REQ-DIGEST-PROFILE-ENV (which supplies the root env). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #17.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2019049Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2019081Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2019196Z ### REQ-ADAPTER-ADD-SURFACE-ERRORS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2020595Z - Title: Bug #1: adapter add runs the install-as-first-update via conduct (cli.rs:6963) which on a non-zero exit prints only the exit code and DISCARDS the subprocess stdout/stderr, so the real error is invisible (the failure itself does propagate). Fix: include out.stderr/stdout in the ADAPTER_INSTALL_FAIL message (mirror run_update_post_step). Operator ruling: ALSO run the [update.post] composite step at install-time (today it runs only on explicit adapter update), so an install both surfaces detail and completes the delegated post-step. See docs/NEXT-MILESTONE-BUG-TRIAGE.md #1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2020690Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2020719Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2020813Z ### REQ-ENDPOINT-LIST-NODE-IDENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2022091Z - Title: Bug #5: spt endpoint list local section header is the hardcoded literal LOCAL (this node) (render_local_section cli.rs:4359). Change to 'This node: <node-id>' using the existing node-ident idiom (os_hostname + nodeid public-key prefix, cli.rs:5531 — factor a node_ident_display helper); compute in the impure print_local_section, pass into the pure renderer. Update the two test assertions (cli.rs:10711/10716). See docs/NEXT-MILESTONE-BUG-TRIAGE.md #5.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2022189Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2022216Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2022320Z ### REQ-HAZARD-CONTROL-STAMP-LIFETIME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2024711Z - Title: #2: a control/viewer stamp never outlives its session — every teardown path clears what attach stamped. The broker exit-waiter (broker.rs ~:1844) sends the exit frame + sessions.remove(&id) but does NOT clear the perch's controller/viewer stamps; clear_controller()->stamp_driven_by() (clears driven_by+controlled) runs ONLY on controller-detach/evict/displace. /exit kills the CHILD not the controller conn, so the OutputLog drops with controlled:true, viewer_count, (and driven_by for a remote controller) latched in info.json forever — and hfenduleam keeps gossiping controller_node=self cross-node. Fix: on session reap, clear the perch's controller/viewer stamps (set_driven_by(None)+set_controlled(false)+set_viewer_count(0) via the known endpoint id) — broker stays the single writer. KNOWN-HAZARDS invariant. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2024863Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2024891Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2024987Z ### REQ-PICKER-CONTROLLED-LOCAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2027865Z - Title: #3 local half: a LOCALLY-controlled endpoint renders CONTROLLED in its own node's picker. display_status() (crates/spt/src/picker/model.rs:415) derives Controlled ONLY from driven_by.is_some(), but the legacy LOCAL attach path left driven_by=None (the remote-only reading stated here was falsified by doyle ruling v3 2026-07-19 — driven_by names the controlling node, own included; KH 7.15 governs CLEARING it, not who may latch it) — so a locally-controlled endpoint of that era has driven_by=None + controlled=true, and local_rows (data.rs:220) never threads controlled into EndpointRow, so a locally-RC'd endpoint shows plain ONLINE in its own picker (remote rows are fine — gossip stamps controller_node=self, REQ-GOSSIP-CONTROLLED-ANY; the asymmetry is the bug). Fix: EndpointRow gains controlled:bool (local: rec.controlled; remote: controller_node.is_some()); display_status -> Controlled when driven_by.is_some()||controlled; desc pane says 'controlled locally' when the driver is unnamed. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2028106Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2028140Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2028240Z ### REQ-PICKER-PROJECT-HISTORY-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2030842Z - Title: #1: picker project history is derived from sessions.log cwds (newest->oldest, deduped by project_id_for_dir) UNION context-store branches, EXCLUDING owlery-internal paths (any cwd under spt_home()/owlery) everywhere a project is displayed or inferred. Fixes three stacked defects (crates/spt/src/picker/data.rs): (1a) project_history_for (data.rs:372) reads ONLY context-store p-* branches, which are empty on this box -> history []; (1b) the fallback origin project (data.rs:207) is derived from info.json.cwd = latest-boot-cwd (rewritten every rebind), not origin; (1c) psyche-host sessions bind owlery-internal cwds that pollute history. Full DIRS stay available in the model (feature #5 needs them). PROJECT REPRESENTATION RULING (operator 2026-07-03): project IDs ONLY, EVERYWHERE incl local display; on ID collision disambiguate minimally via a PURE disambiguate_project_ids(entries)->display-names fn (append one-level-up parent folder and/or root drive letter, e.g. 'spt-core (projects)' vs 'spt-core (D:)'). See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2030941Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2030969Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2031049Z ### REQ-STORE-CONTEXT-BRANCH-FILL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2032434Z - Title: #1 SI-1 (RCA, operator-promoted 2026-07-03): the context store (tracked/.seed.git) holds ZERO p-* branches on a box with months of live-agent use, while kitsubito/enlyzeam stores carry them. Context commits never land -> picker history has no store source (REQ-PICKER-PROJECT-HISTORY-TRUTH's fallback ships regardless, but the store must ALSO fill). RCA the contextstore write->branch-commit path with evidence (commune-ingest/context-commit regression vs store re-init), contrast the healthy stores, land whatever fix the RCA names. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #1 SI-1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2032547Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2032575Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2032671Z ### REQ-GOSSIP-ADAPTER-PROJECTS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2034913Z - Title: #4: remote endpoint details (harness + project history) are gossiped, not faked. Today from_resource_row (crates/spt/src/picker/model.rs:340) hardcodes project_history=Vec::new() for every remote row and passes adapter_profile=row.resources (the blurb masquerading as the harness), and Instance/ResourceRow (crates/spt-net/src/net/registry.rs:457) carry no adapter field and no project list. Fix: additive gossip fields N-1-safe exactly like endpoint_type — Instance.adapter (composite <adapter>[:profile]) + Instance.recent_projects (bounded, newest-first, project IDs only) -> thread to ResourceRow -> from_resource_row stops faking. Pre-field remote rows render '-'. Project IDs only + REQ-PICKER-PROJECT-HISTORY-TRUTH's disambiguation. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #4.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2035071Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2035104Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2035204Z ### REQ-ENDPOINT-LIST-PROJECT-COL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2037020Z - Title: #8: spt endpoint list gains a second column <project>/ (the endpoint's LATEST project) -> 4 columns total: id / <project>/ / type / status. Local rows: head of REQ-PICKER-PROJECT-HISTORY-TRUTH (sessions.log-derived, owlery-excluded). Remote rows: head of REQ-GOSSIP-ADAPTER-PROJECTS recent_projects. Project IDs only + #4 disambiguation; '-' when unknown (pre-field remote rows). Extends the v0.21.0 node-grouped renderer (format_instance_rows — additive column, alignment char-width-safe). --json: additive project field on the row DTO (skip-if-none, N-1 safe). Depends on #1 + #4. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #8.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2037167Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2037201Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2037292Z ### REQ-API-ENDPOINT-INFO
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2040407Z - Title: #7: spt api endpoint-info [<id>] (JSON) lets an endpoint learn its ATTACHED (controlling) node — claude-spt surfaces local + attached node names on UserPromptSubmit so the agent knows whether getting a file to the user needs extra steps (user RC'd in from another machine). spt api * is the harness-contract agent-facing surface (JSON-first, rides perch identity/auth so the bare no-<id> form self-resolves like whoami). Payload (committed DTO, additive-forever): { id, endpoint_type, adapter, local_node:{label,key}, attached_node:{label,key}|null, controlled:bool, project:<current project id>, cwd, subnets:[...] } — attached_node from controller stamps (driven_by remote / self-node when controlled with no remote driver), null when uncontrolled. HARD dependency on #2 + #3 (stamps must be honest first). Adapter-side consumable -> perri release-ping on publish. Naming: chose 'spt api endpoint-info' over alt 'spt endpoint get-info' — api is the agent surface (doc rationale). See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #7.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2040512Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2040550Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2040655Z ### REQ-PICKER-START-PROJECT-CHOICE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2042407Z - Title: #5: after 'Start now' in the endpoint picker, swap the bottom Options panel to a 'Choose project' list: (1) the endpoint's most recent project dir, (2) 'Here: <dir>' — the picker's launch cwd (only if different), (3) all other project-history dirs newest->oldest. Fire the step ONLY when (A) the run cwd mismatches a singular history entry, or (B) history has >1 entry; otherwise start immediately (today's behavior). Depends on REQ-PICKER-PROJECT-HISTORY-TRUTH (needs full DIRS from sessions.log, owlery-internal exclusion applies). Start-now is local-only (no gossip). See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #5.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2042506Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2042539Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2042640Z ### REQ-PICKER-RESUME-CONTEXT-PANEL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2043760Z - Title: #6: the 'Resume from history' view keeps the endpoint's 'Confirm selection' top panel and swaps ONLY the bottom panel to 'Resume from a prior session' — the user stays contextually informed about what they're picking (today the resume view replaces the whole screen). crates/spt/src/picker/view.rs (resume screen) + model screen state. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md #6.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2043854Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2043883Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2043983Z ### REQ-MSG-SELF-DETECT-ANCESTRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2047122Z - Title: #9 (F026, operator field bug): a perch-owned `spt send` from an endpoint's OWN session must self-identify, not mis-stamp `cli@<node>` (whose replies bounce NO_PERCH). ROOT: roster::detect_self_id (roster.rs) was ENV-ONLY — OWL_SESSION_ID matched to info.session_id, else SPT_AGENT_ID — but an agent-session Bash child often carries NEITHER (the env export is spawn-path-dependent), so a perch-owned sender was classified bare-CLI and REQ-MSG-CLI-ORIGIN stamped it cli@<node> (the stamp works as designed on a wrong premise; that REQ's evidence stays intact). FIX: detect_self_id gains leg (c) PID-ANCESTRY fallback AFTER the env legs — walk THIS process's ancestry, match a live non-corrupt roster perch's recorded harness pid (info.json.pid Numeric, alive-gated via is_process_alive, corrupt/BUSY skipped), first match = self. from-LABEL / routing default ONLY, NOT authentication — authenticate() is untouched (pid-ancestry-for-AUTH stays parked per F-024 with its Windows pid-spoof caveats; a display/routing stamp has no such bar). Best-effort: a broken ancestry walk degrades to None → cli-stamp, never errors the send.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2047276Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2047304Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2047398Z ### REQ-CLI-BROKEN-PIPE-TOLERANT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2048816Z - Title: #10 (F026 micro): `spt <anything> | <pager/Select-First-N>` must not PANIC when stdout closes early. A closed downstream reader mid-print panics with 'failed printing to stdout: The pipe is being closed. (os error 232)' (live repro: `spt daemon status | Select -First N`). Fix: tolerate BrokenPipe process-wide — a write to a closed stdout exits 0 (SIGPIPE-equivalent: a consumer that stops reading is a normal end, not a crash), without leaking a Rust panic + backtrace to the user.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2048914Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2049028Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2049129Z ### REQ-XTASK-SPT-BIN-TARGET-DIR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2051292Z - Title: #13 (F026 micro, tooling): xtask `spt_bin()` (crates/xtask/src/main.rs) BUILDS `spt` via cargo (which honors CARGO_TARGET_DIR) but returns a HARDCODED `<root>/target/debug/spt` path — so under a redirected target dir (CI / isolated-gate rigs that set CARGO_TARGET_DIR to a throwaway) the binary lands in `$CARGO_TARGET_DIR/debug` while xtask looks in `<root>/target/debug` -> NotFound -> `xtask check` (docs-drift gate) spuriously fails. Workaround was running `xtask check` with CARGO_TARGET_DIR unset. FIX: a pure `target_debug_dir(root, CARGO_TARGET_DIR)` seam mirroring cargo's resolution — absolute override as-is, relative resolved against `root` (the dir cargo is invoked in), default `<root>/target` — join `debug`; `spt_bin` returns from it. See docs/NEXT-MILESTONE-PICKER-TRIAGE.md.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2051391Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2051419Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2051525Z ### REQ-HAZARD-CONTROL-STAMP-CONVERGENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2055595Z - Title: Control/viewer stamps must CONVERGE to broker session-table truth for every session-backed endpoint, not merely edge-trigger — the UPWARD companion to the DOWNWARD edge-clear REQ-HAZARD-CONTROL-STAMP-LIFETIME (7.27); same 'stamps == broker truth' family. ROOT (F-026 stamp-gap, hall-b/ball-b): a picker-created endpoint's broker spawn become_controller->stamp_driven_by->set_controlled(true) fires BEFORE the adapter binds its perch (a fresh endpoint has no perch until claude boots + binds), so mutate_info returns NotFound and the edge stamp is SWALLOWED (let _); the adapter's bind then writes InfoJson::new with controlled:false DEFAULT and no later edge re-stamps -> the endpoint reads uncontrolled FOREVER while driven (the #3 display fix is correct but datum-starved on this creation path). FIX: the broker (SINGLE WRITER) re-asserts each live session's control/viewer stamps to session-table truth, DIVERGENCE-GATED (read info; compare driven_by/controlled/viewer_count; write ONLY on diff — no per-poll fsync storm), on the KIND_SESSIONS handler (piggyback: the daemon reconcile + picker poll it, so a fresh perch converges within one reconcile-poll window after bind = the BOUNDED window, no new timer). Event-on-input rejected (an idle controlled session like hall-b never converges). Writes run OFF the log lock (snapshot truth under the lock, converge off it) per the lock-across-effect discipline (KH 7.12/5.16).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2055762Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2055791Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2055891Z ### REQ-PICKER-PROJECT-DISPLAY-NAME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2058244Z - Title: A1 (F028, operator #1/#4/#6-display): `github-com-*` 'ghost' project entries are NOT phantoms — project_id_for_dir (spt-store/src/project.rs:64) derives ids from the git remote slug BY DESIGN (REQ-STORE-1 cross-machine sync): `github.com/SaberMage/spt-core` -> `github-com-sabermage-spt-core`. The ref is truthful; the BUG is presentation — the raw slug renders as the DISPLAY NAME everywhere (confirm-panel history view.rs:415-419, choose-project labels model.rs:314-337, resume-row titles, endpoint-list project column via latest_project_ref data.rs:417), which no operator recognizes as 'spt-core'. FIX: keep the slug as the KEY, render a friendly display name — the repo tail (spt-core) reusing the disambiguate_project_ids (model.rs:346) suffix mechanism for collisions. One shared display-name seam across all four surfaces. See triage A1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2058389Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2058417Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2058522Z ### REQ-PICKER-CONTROL-LINE-STATUS-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2059973Z - Title: A2 (F028, operator #2): the picker confirm-panel 'controlled locally' line renders for OFFLINE endpoints. view.rs:425-436 builds control_line from ep.controlled with NO status gate; an offline endpoint with a stale controlled stamp shows 'controlled locally' (operator screenshot: hall-a offline + controlled locally). RENDER HALF (this REQ): control_line MUST be empty when status != Online. The upstream STICKY-stamp half (stamp survives client SIGKILL >=5min) is B3/REQ-PRESENCE-CONTROL-REAP-ON-EXIT. FIX: gate the render. See triage A2(a).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2060082Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2060110Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2060205Z ### REQ-PICKER-OFFLINE-NO-VIEW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2061126Z - Title: A3 (F028, operator #3): 'View now (read-only)' is offered for OFFLINE endpoints. model.rs:1030 offline branch of confirm_options is vec![Start, View] — View is meaningless with no live PTY. FIX: offline set = [Start] (+ the existing Resume/ChangeAdapter/Instantiate/Fork/Shortcut tail). Update the view.rs options tests. See triage A3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2061217Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2061246Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2061336Z ### REQ-PICKER-CHOOSE-DEDUP-ALL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2062673Z - Title: A4 (F028, operator #5): choose-project duplicate rows. model.rs:314-337 build_project_choices dedups the `Here: <run_cwd>` row only against the HEAD ref's dir (line 324) — an OLDER history ref with the SAME dir still renders, giving `Here: C:\...\projects` + `projects` as two rows for one project (operator screenshot). FIX: dedupe `Here` against ALL history dirs, and skip rest-rows whose dir == run_cwd when Here is present. Extend the model.rs:1847 choose-project test. See triage A4.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2062777Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2062801Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2062902Z ### REQ-RESUME-ROW-PER-PROJECT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2064017Z - Title: A5 (F028, operator #6): resume-from-history labels EVERY session with the endpoint's newest project. data.rs:480-496 resume_rows_for clones project_history.first() onto every ResumeRow (line 481/488), so all sessions read as the head project (the ghost). The per-row e.cwd is already carried for launch-into-dir. FIX: derive per-row project_id_for_dir(e.cwd) (owlery-excluded -> fall back to trigger token), rendered through A1's display-name path. See triage A5.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2064109Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2064137Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2064227Z ### REQ-RUN-NO-DUP-SESSION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2066751Z - Title: B1 (F028, hall-b diagnosis, verified 0.22.0): `endpoint run --id X --create` on an endpoint with a LIVE session mints a silent DUPLICATE session — and attach output can CROSS sessions (second create for diag-hallc minted a new session while the old ran; the new run's attach viewport rendered the OLD session's screen — claude resume-picker UI of pid 84512 while new claude 356020 had no -r). ROOT CLASS of the 0.21.0 attach-stall (zero events in FIRST_EVENT_GRACE rc.rs:1402 = attach bound to dead/wrong same-id slot); also the triplicate `launch --id ball-b` on ENLYZEAM. FIX: (i) run-on-live-session must REFUSE or REATTACH, never silently duplicate; (ii) RCA the attach/output routing that let frames cross same-id sessions (broker session-slot keying, dispatch_adapter vs serve_attach resolution). Int: two sessions one endpoint id -> each attach sees only its own frames. See triage B1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2066861Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2066889Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2066990Z ### REQ-RESUME-HARNESS-SESSION-ID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2069588Z - Title: B2 (F028, hall-b diagnosis, verified 0.22.0): respawn/`--resume` feeds the SPT session id to `claude -r`. After the 02:05 daemon bounce respawn built `claude.exe -r 70b5bfa40901b7d4` — an spt session id in claude's OWN session-id namespace -> claude hangs forever at a 'No sessions match' resume-picker while the endpoint reads online. Hits after EVERY daemon bounce + every picker Resume. The HARNESS session id (claude UUID, stamped in sessions.log/info.json by the hooks) is what {session_id} must mean in the adapter's [session.resume] command; the spt sid must not leak. FIX: substitute the HARNESS session id in the resume template (spt-core substitution-key semantics + LIKELY claude-spt manifest coordination — FLAG perri BEFORE touching the manifest, adapter-boundary rule). Int: resume template receives the ledger UUID, not the spt sid. See triage B2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2069691Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2069725Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2069825Z ### REQ-PRESENCE-CONTROL-REAP-ON-EXIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2072407Z - Title: B3 (F028, hall-b diagnosis + deferred #11 seed; BROADENED perri F-b CONFIRMED): dead-pid ONLINE decay window + sticky CONTROLLED stamp. Repro: /exit -> all endpoint processes dead -> `endpoint list` stays ■ ONLINE for a decay window before OFFLINE. Sticky CONTROLLED: perri confirmed controlled=true + attached_node SET while alive=false/OFFLINE, persisting >20min AND ACROSS A DAEMON RESTART (hall-b) — worse than the SIGKILL>=5min original (CAVEAT still: may reflect claude's --remote-control channel not the PTY attach — DISAMBIGUATE first). This is the deferred #11; RCA belongs to this wave. FIX: reap must clear presence AND control stamps promptly across FOUR paths — (i) clean exit, (ii) serve conn-drop, (iii) session-died-without-exit (crash/bounce), (iv) a BOOT-TIME sweep so a restarted daemon does NOT resurrect control stamps for endpoints it can see are dead. Int tests per edge. Closes A2(b). See triage B3 (broadened).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2072507Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2072535Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2072630Z ### REQ-RESUME-REAP-PRIOR-HARNESS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2073566Z - Title: B4 (F028, hall-b diagnosis, verified 0.22.0): `--resume` respawns a SECOND harness onto the SAME session without reaping the first. Observed live: resume of b4421cf9 spawned pid 34432 while gen1 (250376) kept running — two claude.exe stacks, one session id. FIX: resume must reap/refuse when the session already has a live harness. See triage B4.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2073661Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2073690Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2073782Z ### REQ-CRC-SWAP-OLD-DISPLACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2076334Z - Title: C1 (F028, infra; memory crc-swap-old-litter-brick, RCA'd ENLYZEAM + confirmed systemic): crc_swap `.old`-litter bricks every subsequent adapter update. apply_crc_swap Phase-3 `let _ = remove_file(.old)` (spt-daemon/src/crc_swap.rs:129-133) silently fails whenever ANY pre-update process still image-maps the old binary (NORMAL on a live box — endpoint launch children survive updates). The NEXT update's first commit-op rename(exe->exe.old) = MoveFileExW(REPLACE_EXISTING) must delete the mapped .old -> win32 err 5 -> whole apply fails + rolls back FOREVER, context-free. FIX: (i) DISPLACE not replace — when <target>.old exists, rename it aside to a unique suffix (rename succeeds on mapped files; spt's own updater already does spt.exe.old-<counter>); GC stale .old.* opportunistically. (ii) Wrap swap io errors with op + path (`rename claude-spt.exe -> claude-spt.exe.old: …`). Unit seam exists (crc_swap tests). See triage C1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2076481Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2076509Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2076615Z ### REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2079265Z - Title: C2 (F028, infra; ROOT-CAUSED + severity-upgraded doyle RCA 2026-07-03): cross-endpoint perch contamination — a foreign psyche's SessionStart hook REBINDS a victim perch's IDENTITY, not merely its ledger. Evidence: hall-a's info.json.session_id IS f015b-probe-psyche's session (359d7bd7) + hall-a's ledger holds the foreign psyche session; same class as hall-b's dead-pid stamp (141556). This REQ = the OBSERVABLE (foreign session_id in a perch's ledger/info.json + resume offering foreign sessions) and its belt-braces: (iii) filter owlery-cwd rows OUT of resume_rows; (iv) one-time repair for already-contaminated perches (hall-a on HFENDULEAM) or self-heal on next legitimate session-start. The ROOT (identity pinned at spawn + honest bind + nested self-resolve) is REQ-BIND-HONEST-SELF-STAMP — C2 is UPSTREAM of B3 (presence/CONTROLLED read the very stamps this corrupts). See triage C2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2079417Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2079446Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2079542Z ### REQ-BIND-HONEST-SELF-STAMP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2083400Z - Title: C2-ROOT (F028, doyle RCA 2026-07-03): the identity-attribution ROOT behind REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION — three composing defects let a psyche-hosted SessionStart hook stamp a FOREIGN perch: (1) roster::detect_self_id leg (a) scans the owlery ONE level (roster.rs:107 read_dir(owlery)) so a NESTED psyche perch owlery/<parent>/nested/<id>-psyche can never self-resolve; (2) [session.psyche_init] (claude-spt manifest ~L347) spawns the psyche with NO env_remove + no pinned child identity, so whatever OWL_SESSION_ID/SPT_AGENT_ID reaches the child resolves to a foreign top-level perch; (3) the hook then writes info.json (session_id/pid rebind) + sessions.log on the mis-resolved victim. FIX (spt-core half): (i) identity PINNED at spawn — ManifestRuntime role spawns inject the child's OWN SPT_AGENT_ID=<child perch id> + OWL_SESSION_ID=<child session>, AND detect_self_id enumerates NESTED perches (fix the one-level owlery scan); (ii) BIND HONESTY — a session-start stamp may only write a perch whose resolved id AFFIRMATIVELY matches; never a fallback pick; refuse + loud-skip when unresolved (kin REQ-MSG-CLI-ORIGIN honest-default + #9 ancestry). ADAPTER half = PERRI touchpoint (psyche_init env scrubbing / relies on runtime pinning; hook loses silent fallback-perch behavior) — FLAG doyle BEFORE any manifest move (adapter glue-model rule). See triage C2 fix (i)+(ii).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2083509Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2083537Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2083633Z ### REQ-PEER-PUMP-CHURN-STALL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2085762Z - Title: B5 (F028, perri F-a; DEFECT daemon, OBSERVED-ONCE, HIGH): the peer pump STALLS under rapid rc attach/EOF-detach/--take churn. Fresh 0.22.0 daemon ~10min after restart, during rapid rc cycling: `peer pump: STALLED (last tick 122s)`; while stalled `spt rc --view` -> `RC_FAIL: attach request: brain IPC read deadline elapsed` (repeatable) and controlled-clear stopped propagating. Daemon restart recovered + endpoints auto-revived. Prior class: REQ-HAZARD-PUMP-IPC-DEADLINE (reader-thread+channel carrier), REQ-broker-QUIC-deadline (bounded_block_on) — something in the rc-churn path can still wedge the pump tick. perri holds exact timestamps + a repro candidate (rapid attach/detach/take against one endpoint) — REQUEST before RCA. See triage B5.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2085901Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2085929Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2086038Z ### REQ-TRANSLATE-BINARY-LIVENESS-DECAY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2088257Z - Title: SUPERSEDED by REQ-TRANSLATE-COMMIT-MISS-TOLERANCE (F029 C-1). B6 (F028, perri F-e) was ROOT-PINNED as the commit-deadline-miss fault: at a checkpoint clear boundary the clear-only inject's {commit} was never observed within INJECT_COMMIT_DEADLINE, so the inject worker FAULTED + TERMINATED a HEALTHY translate binary and (by ADR-0022) never respawned → every subsequent force-native reported delivered=false ('no live translation binary'). NOT a dormancy/liveness-registration decay (that hypothesis is dead) — deterministic at every checkpoint-armed boundary. The fix (miss != fault + N=3 strike budget + bounded respawn + perch-visible fault stamp) lives under REQ-TRANSLATE-COMMIT-MISS-TOLERANCE + REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH. See triage addendum C-1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2088386Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2088411Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2088520Z ### REQ-PSYCHE-CRASHLOOP-BACKOFF-SHUTDOWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2090278Z - Title: C3 (F028, perri F-h): psyche wrapper crash-loop has no backoff, and `endpoint shutdown` misses a wedged wrapper. A probe psyche crash-looped ~3 boots/sec for ~30min (CC died instantly on the untrusted owlery cwd; ledger hit ordinal 5358) — SILENTLY; and `spt endpoint shutdown` did NOT tear the looping wrapper down (docs say shutdown tears the Psyche with the perch; manual kill was required). FIX: (i) bounded backoff + loud give-up on a psyche boot loop (the psyche_host_error surface already exists), (ii) shutdown must cover a wedged/looping wrapper. See triage C3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2090365Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2090393Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2090492Z ### REQ-DOC-ENDPOINT-DROP-RESOLUTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2091638Z - Title: D1 (F028, perri F-c; docs/truth): SI-1's resolution rule — a RELATIVE watched drop dir resolves against the ENDPOINT's cwd, never the daemon's (KH 7.28, shipped v0.22.0) — is documented NOWHERE public. Add it to harness-contract/manifest.md + the manifest schema field descriptions so an adapter author knows a relative commune_dir/signoff_dir is endpoint-resolved. docs-drift gate applies. See triage D1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2091725Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2091753Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2091857Z ### REQ-DAEMON-STATUS-JSON-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2093293Z - Title: D2 (F028, perri F-d): `daemon status --json` truth drift. managed_by/managed_active read null in JSON while the HUMAN view says 'managed-by: manual — at-logon task registered' (the two surfaces disagree); and pump staleness (the STALLED diagnosis, B5) is NOT computable from JSON — only a raw pump_heartbeat_ms is emitted, no derived staleness/stalled field. FIX: JSON managed_by/active match the human render, and add a derived pump-staleness/stalled field so B5's condition is machine-observable. See triage D2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2093388Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2093417Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2093513Z ### REQ-ENDPOINT-LIST-RENDER-POLISH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2095616Z - Title: A6 (F028, operator, 4 asks): `spt endpoint list` render polish. (a) the 'Shared subnets' line is NOT dim — LIGHT_GRAY = "37" (cli.rs:3019) is standard-palette WHITE, indistinguishable from row text; use SGR 90 (bright-black/gray) for the dim intent. (b) the `Total:` line takes the same dim color. (c) move the status glyph ADJACENT to the endpoint name (operator: 'right behind the endpoint name'), mirroring the picker's glyph-beside-name presentation (today the glyph sits at the end next to the status word). (d) color the status WORD like the picker TUI (green ONLINE / gray OFFLINE / blue when driven, matching picker glyph semantics). All in render_node_grouped/render_instance_row (cli.rs ~3000s); pure render with an injected color decision — unit-testable off a tty. See triage A6.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2095764Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2095794Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2095897Z ### REQ-ENDPOINT-LIST-JOINED-SUBNETS-LABEL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2100046Z - Title: THE THIS-NODE SUBNET LINE IN `spt endpoint list` SAYS JOINED, NOT SHARED (releases#72, BUGFIX). The two subnet lines this surface renders are DIFFERENT FACTS wearing one label: the This-node line lists the subnets THIS node is a member of (cmd_endpoint_list names, narrowed by --subnet), while a remote node row lists the subnets that node gossips a visible row through UNIONED ACROSS OUR MEMBERSHIPS -- the subnets we have in common with that machine. Calling the first one Shared invites the reader to look for a second party that is not there. THE REMOTE LINE KEEPS ITS NAME and that is part of the requirement rather than an omission: Shared is precise for a row whose content IS an intersection, and renaming both would trade one imprecision for another. The render docs already carry the corrected vocabulary (render_node_grouped is documented as carrying our joined subnets for this node and a Shared subnets line for the remotes), so this change makes the rendered text agree with the language the code already uses for it. THE UNIT EVIDENCE MUST DISCRIMINATE THE TWO LINES, which the pre-fix assertion could not: its fixture gave the This-node set and the remote set the SAME members, so a substring assertion matched either line and would have passed unchanged while the subject of the assertion silently changed. The repinned row asserts each label once, against fixtures whose two subnet sets DIFFER, so a build that renames the wrong line fails it. Gate: impl -- the This-node line renders Joined subnets while the remote-group line is untouched; unit -- both labels asserted by name with distinct fixtures, so neither line can be renamed, dropped or duplicated unobserved.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2100213Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2100242Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2100352Z ### REQ-ENDPOINT-LIST-OWN-NESTED-SECTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2106091Z - Title: `spt endpoint list` SHOWS THE CALLING ENDPOINT ITS OWN NESTED PERCHES, in a section of their own (releases#98, ADDITION; ruled 2026-08-02). A live agent cannot see its own psyche or its own workers on the surface that exists to answer what is running here: nested perches live at owlery/<parent>/nested/<child>/ and the roster this view is built from enumerates top-level perches only, so the children are invisible by construction rather than by choice. THE NESTING RELATION IS THE STRUCTURAL ONE SPT-CORE ALREADY RECORDS -- the child dir sitting inside the parent perch dir -- AND IT IS THE ONLY SOURCE. NAME-PREFIX MATCHING IS NEVER CONSULTED, and that negative is required text rather than implied by the positive: a perch named <parent>-foo that is not nested does NOT appear, and a genuinely nested perch appears WHATEVER it is called. A build that filtered the flat roster by id prefix would satisfy a naive shows-my-psyche assertion while being wrong in both directions. THE SECTION IS THE CALLERS OWN AND NO ONE ELSES: every other agent entry renders exactly as it does today, so this adds a self-view rather than a new cross-agent disclosure. CALLER IDENTITY RIDES THE EXISTING ENV AND PROCESS-IDENTITY SEAM (roster detect_self_id: session-id match across the nested-inclusive perch enumeration, then the pinned agent and endpoint env vars accepted only when they map to a bound perch, then process ancestry) -- NO NEW IDENTITY CHANNEL IS MINTED, and nothing here confers authority: the seam is label-only by construction (KNOWN-HAZARDS 7.3/7.5) and this consumer only decides whose children to render. A CALLER THE SEAM CANNOT RESOLVE SIMPLY GETS NO SECTION -- silence, never a guessed parent whose children would then be shown to the wrong reader. Path composition for the nested namespace belongs in the single perch-layout source, not in the CLI, per the single-path-source invariant. Gate: impl -- a nested-perch enumerator keyed on the parent in the perch-layout module, the caller resolution at the gather site, and the section rendered inside the This-node group by the existing pure renderer; unit -- a nested child appears under its parent for the calling endpoint, a same-prefix NON-nested perch does NOT appear, a nested child with an unrelated name DOES, another agent nested children are absent from the callers section, and an unresolvable caller renders no section at all.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2106243Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2106276Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2106373Z ### REQ-CLI-WIN-VT-ENABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2108433Z - Title: A7 (F028, operator, Win10 conhost): ANSI emitted without VT enable → garbled console. Evidence (raw PowerShell 7, Win10 conhost): literal `←[36m` in `endpoint list` + `--help`. ROOT: ENABLE_VIRTUAL_TERMINAL_PROCESSING is enabled ONLY on the rc attach path (rc.rs:746, REQ-RC-WIN-VT-OUTPUT) — plain CLI stdout never enables it, and the color decision doesn't fall back when the console can't render VT. FIX: lift the rc.rs VT-enable into a SHARED startup helper for every colored-output path; if SetConsoleMode fails (or stdout isn't a console), STRIP colors (the ansi_wrap/helpfmt color=false path already exists — plumb the decision, not new rendering). Windows Terminal masks this (VT always on) — TEST on raw conhost. See triage A7.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2108572Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2108596Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2108700Z ### REQ-GOSSIP-CONTROLLED-CROSS-NODE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2111068Z - Title: B7 (F028, operator, cross-node): a remote endpoint's CONTROLLED state is not rendered. Evidence: ball-b ONLINE + CONTROLLED on ENLYZEAM (local view), but HFENDULEAM renders remote ball-b as plain ONLINE (both 0.22.0). The F-026 #4 gossiped any-controller datum (REQ-GOSSIP-ADAPTER-PROJECTS controlled bool) either isn't SENT for the locally-controlled case, isn't APPLIED on the receiving row, or DECAYS. Local leg confirmed fine (sibling hall-b renders blue-glyph correctly); the gap is the REMOTE leg. perri's validation had this ENV-BLOCKED — two live nodes now available to RCA. FIX: RCA sender-side (is controlled gossiped when locally-controlled?) / receiver-render (does from_resource_row surface it?) / decay, then lock with a cross-node int. See triage B7.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2111160Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2111194Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2111298Z ### REQ-HAZARD-INJECT-WORKER-POISON
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2114027Z - Title: The per-session inject-worker floor Mutex is SHARED by the inject worker (open/flush) and the controller-input path (dispatch_input Layer C buffer_if_held); a panic under the lock on EITHER poisons it, and a bare .lock().unwrap() at the next site then panics too — a panic in the inject WORKER kills its thread WITHOUT reaping the translation child, orphaning a live binary while event_tx.send fails, so force-native reports 'worker-gone' delivered=false FOREVER (the F-e generic-miss shape). HARDENING, NOT the F-e incident root (perri's matrix exonerated poison under thrash/dormancy/churn): (i) poison-tolerant floor lock (unwrap_or_else into_inner) at all 3 sites so one panic can't cascade the session's delivery dead; (ii) a panic-resilient inject worker (catch_unwind -> fault+terminate the child on a worker panic) so a dead worker never orphans a live binary + strands delivery. Poison-tolerance class of REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE / bug #16.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2114127Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2114155Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2114260Z ### REQ-HAZARD-DETACHED-DAEMON-STDIO
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2119189Z - Title: A daemon DETACHED-IN-FACT (no interactive console, or an inherited stderr PIPE nobody drains) that never nulled its std handles will BLOCK on stdio writes when the pipe fills, and/or pop a visible conhost window (REQ-HAZARD-WMI-DAEMON-WINDOW is a covered surface of this hazard). detach_console nulls the 3 handles only under the --detached flag; a rung that omits it (the bare line-82 elevated->deelevated respawn; a STALE installer at-logon task registered as bare `daemon run`, confirmed live field-drift on ENLYZEAM) is exposed. FIX: (load-bearing) inside `daemon run`, null the 3 std handles when stderr GetFileType==FILE_TYPE_PIPE — a pipe is the ONLY std sink that BLOCKS the daemon when it fills; catches every rung whose inherited stderr is an undrained pipe, independent of whether each caller passed --detached, while a FILE (2>run.log AND every int-test Stdio::from(file) brain-log capture), a CONSOLE (scrolls), and a NULL/absent handle (DETACHED_PROCESS rungs, already discard) all SURVIVE. DELIBERATELY NOT gated on GetConsoleWindow==NULL: a CREATE_NO_WINDOW daemon has no console window yet a drained FILE stderr — nulling it would blank the capture for ZERO safety gain (a file never blocks) and mass-red the int-test brain-log assertions. (belt) pass --detached on the bare line-82 respawn; (drift nag) parse the schtasks /Query action argv and LOUDLY nag when the at-logon task is the stale bare `daemon run` form (manual/installer re-registers; the daemon must NOT self-elevate to rewrite it). Defense-in-depth — no current spt Windows spawn path was proven to yield a BLOCKING inherited pipe (all rungs null-discard or scrolling-conhost), so this is hardening, not a confirmed incident root.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2119383Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2119417Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2119514Z ### REQ-PICKER-CURRENT-DIR-LABEL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2122248Z - Title: A-2/A-3 (F029, operator, semantic pair): the Choose-project rows must self-identify the CURRENT DIR. build_project_choices (picker/model.rs:322-352). A-2: when the run cwd IS already a history dir the `Here:` row is (correctly) suppressed by the dedup (REQ-PICKER-CHOOSE-DEDUP-ALL), but the matching history row rendered bare `r.display` with no cwd affordance — mark it `<display> (CURRENT DIR)`. A-3: the not-in-history current-dir row changes from `Here: <run_cwd>` to `CURRENT DIR --> <project>`, deriving the display the SAME way the history refs do (folder tail; honest fallback to the raw path when underivable). `cwd` payload unchanged. Grep-tests rule: 3 `starts_with("Here: ")` asserts (model.rs) + a `Here: /here` render assert (view.rs) are behavior assertions on the OLD label. See triage A-2/A-3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2122355Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2122383Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2122477Z ### REQ-PICKER-FORK-LABEL-CWD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2123381Z - Title: B-3 (F029, operator): the confirm-panel `Fork endpoint` option label is static and says nothing about WHERE the fork lands. A fork runs in the picker's launch cwd (run_cwd); the label must state that dir honestly: `Fork endpoint here --> <current dir>`. Anchor picker/view.rs confirm_option_label (was `fn(opt)->&'static str`). Make the label model-aware for the dir-relative options. See triage B-3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2123471Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2123499Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2123604Z ### REQ-PICKER-SHORTCUT-LABEL-FILENAME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2125125Z - Title: B-4 (F029, operator): the confirm-panel shortcut option label is a static `New/Update spt-<id> shortcut (s)` placeholder — it should name the REAL file it writes: `Set shortcut here --> <current dir>/<shortcut-name>` where <shortcut-name> is the EXACT on-disk filename (incl. extension). The name must be produced by the SAME function that names the file in shortcut creation (picker/shortcut.rs shortcut_filename over the manifest-resolved basename) so label and writer can NEVER drift. Anchor picker/view.rs confirm_option_label. See triage B-4.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2125231Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2125256Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2125373Z ### REQ-HAZARD-ADAPTER-PROFILE-STAMP-CLOBBER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2127841Z - Title: A-4 (F029, operator regression): the picker/confirm views drop an endpoint's adapter `:profile` (showed `claude-spt` where `claude-spt:ccs` was created). ROOT: stamp_creation_fields (spt-store/home.rs) gave the incoming BIND-TIME adapter value UNCONDITIONAL precedence (`rec.adapter = adapter.map(...).or_else(prior)`), but a hook bind resolves the adapter ADAPTER-AGNOSTICALLY (ADR-0021: a binary basename → the BARE parent, profile unknowable), so the first hook bind rewrote the richer `claude-spt:ccs` → `claude-spt`. (F-028's establish_perch self-heal widened how often this re-stamps; the precedence is the root.) FIX: profile-preserving precedence — when the incoming adapter is exactly the PARENT of the prior's `parent:profile` composite, KEEP the prior; replace only on a genuinely different adapter (or a different explicit profile). Paid-for field bug → hazard. See triage A-4.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2127978Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2128007Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2128098Z ### REQ-PICKER-WINDOW-TITLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2129529Z - Title: B-5 (F029, operator): `spt endpoint run`'s interactive picker window/tab is untitled — hard to find among many terminals. Set the window/tab title to `SPT Endpoint Picker`. Anchor picker/mod.rs:88 setup_terminal (crossterm SetTitle in the execute! chain). Set-only is acceptable (crossterm can't cheaply read the prior title to restore). Applies ONLY to the interactive picker path — a non-interactive/headless bringup (REQ-HOST-RUN-1) must NOT retitle the operator's terminal. See triage B-5.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2129677Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2129702Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2129806Z ### REQ-PICKER-KEY-GATE-LAUNCH-CAPABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2131360Z - Title: B-1 (F029, operator): the `h` (headless start) / `s` (shortcut) keybinds fire from broad picker contexts (mod.rs handle_confirm_key / ChooseProject / Resume) regardless of whether the highlighted row would LAUNCH the endpoint. Restrict both to launch-capable highlights: (a) `Start now` in the immediate-start case (should_offer_project_choice == false), (b) a Choose-project row, (c) a Resume-from-history row. The footer hint line must render `h`/`s` ONLY when actually live (hint truth = availability truth). FIX: gate the key handlers on (screen, highlighted-option), unit the gate as a pure matrix. See triage B-1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2131464Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2131493Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2131588Z ### REQ-PICKER-CHANGE-ADAPTER-FLOW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2133888Z - Title: B-2 (F029, operator; LARGEST item): `ConfirmOption::ChangeAdapter` wrongly routes into the CREATE flow (Screen::CreateAdapter → CreateId → CreateHome → START, reenter_create(true)) — it re-prompts id + home and then STARTS the endpoint. Required: prompt ONLY the harness-adapter pick, apply the change to the perch record (update info.json.adapter via the existing write seam; an `<adapter>:<profile>` pick stamps the full option, composing with A-4), then RETURN to the endpoint's Confirm menu — NO id prompt, NO home prompt, NO start. FIX: a return-to-Confirm mode on the adapter-pick screen (flag or dedicated Screen::ChangeAdapterPick) skipping CreateId/CreateHome + the launch outcome. Unit the flow-state transitions + the record write. Shared-seam: touches picker flow state — run the full picker cluster. See triage B-2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2133989Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2134017Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2134121Z ### REQ-TRANSLATE-COMMIT-MISS-TOLERANCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2136893Z - Title: C-1 (F029, B6 ROOT — rescope of REQ-TRANSLATE-BINARY-LIVENESS-DECAY, now PINNED): at a checkpoint clear boundary the clear-only inject drives `/clear`; its `{commit}` is never observed within INJECT_COMMIT_DEADLINE (5s, broker.rs:158) so the inject worker FAULTS + TERMINATES a HEALTHY translate binary (broker.rs respool_and_fault + return) and by ADR-0022 design NEVER respawns → every subsequent force-native reports delivered=false ('no live translation binary', cli.rs:5046) = B6's exact field signature; the v0.12.0 checkpoint post-clear WAKE dies with the terminated binary + the fire-and-forget FIRE in the dead window. NOT a race — deterministic at every checkpoint-armed boundary (perri captured-stderr proof: TRANSLATION_FAULT on the F-019 unread daemon-stderr channel). FIX (REVISED, supersedes terminate-then-respawn): miss != fault — preserve the binary; the watchdog's job is ANTI-STALL (release the operator floor), not execution-verification. See addendum C-1 + ADR-0022 amendment.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2137046Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2137070Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2137190Z ### REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2139103Z - Title: C-1 hazard (F029; paid-for: B6 + three-version checkpoint-wake breakage): a REAL translation fault (binary death — stdin write fail / stdout disconnect — or strike-budget exhaustion) must get a BOUNDED eager respawn (C3(b) give-up budget) instead of permanent death, and must stamp a PERCH-VISIBLE fault surface (mutate_info field, cleared on healthy respawn/commit) — TRANSLATION_FAULT is daemon-stderr-only today (the F-019 unread-channel trap; same honesty rule as F-027 ENDPOINT_SPAWN_FAIL). A real fault legitimately loses in-memory state (the wake is NOT carried across a real fault, unlike a mere commit-miss). See addendum C-1 (3)-(4).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2139249Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2139279Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2139380Z ### REQ-HAZARD-BOUNDARY-READY-STRAND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2142854Z - Title: C-2 (F029, SEAM-2 pinned — B6's SECOND HALF, the live-wake blocker; perri wakep9 vs wakep4 gate-state dump + doyle code trace): at a /clear, CC fires SessionEnd(reason=clear) for the DEPARTING session BEFORE SessionStart; the departing sid STILL matches the perch pin at that instant, so the adapter's [hooks.SessionEnd] → `api session-end` AUTHENTICATES and the soft handler REMOVES the ready marker (+ unregister_address, reporting.rs cmd_session_end:206-207). The subsequent `api boundary` rotates the sid but NOTHING re-writes ready → is_online false → try_spt_hosted_inject Nones on the CLI gate BEFORE any broker RPC → every post-clear force-native (incl. the checkpoint FIRE) reports the generic UNDELIVERED, persistent by construction (no path re-stamps ready outside a real bind). The single differing gate field at every UNDELIVERED instant is ready-absent (info online/controllable/rotated-sid all healthy, translate alive). Paid-for hazard. FIX: cmd_boundary re-stamps the ready marker (+ status online, idempotent) ATOMICALLY with the sid rotation — a boundary PROVES a live successor session on the same harness process; a REAL end has no subsequent boundary so genuine teardown is untouched. See triage addendum C-2.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2142968Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2142997Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2143102Z ### REQ-PSYCHE-EPHEMERAL-DRIVER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2146127Z - Title: W1 (F030, design §3): each psyche-relevant event runs exactly ONE bounded per-event turn through the existing driver stack (psyche_turn_and_relay for outbound-intent events / resume_psyche for session-custody transitions / run_psyche_turn for pure merges) — no resident psyche process exists between events. host_one (livehost.rs:518) STOPS spawning spawn_psyche_owned; the pulse loop stays as the daemon-side scheduler (thread + stop-flag + drop-dir watch correct) but a fire now invokes one bounded turn, daemon-driving every substitution key from daemon-known context (child never self-resolves home/subnet/perch — direction-(a) multi-subnet churn impossible by construction). Turn failures consume a bounded failure budget (C3(b) shape): N consecutive failures → psyche_host_error stamp + cooldown, reset on success; no respawn storm (nothing resident to respawn). Red-first: fire an event on a hosted live endpoint → assert one turn ran (SIDE-EFFECT PROOF FILE — transcript-jsonl asserts are structurally blind, 2026-07-04 rig lesson) and no {id}-psyche process survives the turn.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2146235Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2146264Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2146356Z ### REQ-PSYCHE-SID-CUSTODY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2149180Z - Title: W2 (F030, design §3): the psyche mints and keeps its OWN session id, stored in the nested {id}-psyche perch record — {session_id} in psyche role templates becomes the psyche's sid, never the parent's (today's fill at livehost.rs:518 is the PARENT's — the custody bug). Parent boundary (/clear, /compact) does NOT rotate the psyche sid (the psyche's conversational thread survives parent resets — its job). resume_psyche validates the custody key before spawn (resume.rs:183). Reseed path: psyche session lost/invalid → ResumeMode::FreshWithPreload (download_psyche_context composes role/live/project into {psyche_context}, resume.rs:100) + LOUD PSYCHE_RESEED:{id} marker (custody-loss loop visible; W1 budget bounds it). If the parent sid is still needed by a template it gets its OWN explicit key {parent_session_id} — never aliased. Red-first: parent `api boundary clear` → nested perch sid UNCHANGED (today it is the parent's — guard-revert reproduces).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2149346Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2149374Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2149468Z ### REQ-PSYCHE-NESTED-RESOLUTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2152407Z - Title: W4 (F030, design §3; F-017 sibling, general not psyche-only): nested {parent}/{nested} ids resolve under the PARENT's home — subnet-less resolution for nested perches (the home-ASSIGNMENT seam, not perch-path which is already subnet-less) — so child-side verbs acting on nested perches need no --subnet the child cannot know. ROOT: home::assign_home returns Ambiguous on a multi-subnet node w/o --subnet; a nested id must instead derive home from its parent perch. Additionally expose a SINGLE {subnet} base_keys fill WHEN KNOWN (own_subnet = home-subnet label, 'local' when unhomed; absent → LOUD missing-key fail, the {node} precedent). NO {home} key (doyle W4 Q1: the endpoint home subnet is ONE concept per CONTEXT.md:640, and 'home:' is already the subnet-name qualifier position CONTEXT.md:652 — a {home} template key invites meaning-drift). Red-first = evidence #3's exact repro: 2-subnet home, nested-id verb, must succeed (was: `spt ready <id> --once` → exit 1 READY_FAIL … pass --subnet).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2152561Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2152594Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2152703Z ### REQ-PSYCHE-CONTEXT-FILE-INDIRECTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2156743Z - Title: W4 (F030; doyle Q2 ruling + perri file-always freeze, 2026-07-04): the composed psyche mind ({psyche_context}) rides the SHIM argv today — a real ~20KB doyle psyche-download exceeds the win32 CreateProcess lpCommandLine ~32k cap → the shim spawn BRICKS. FIX (file-always, replaces {psyche_context} outright — no size-branch, no argv cliff, one path): core writes the mind to a file in the psyche's NESTED perch dir BEFORE each turn spawn and fills a single {psyche_context_file} = that PATH (argv-cap-immune). The soft fresh/continue discriminator moves from KEY-presence to FILE-CONTENT: FreshWithPreload writes the composed mind NON-EMPTY (the <fresh-psyche/> never-empty guarantee carries to the file content); ContinueExisting writes it TRULY 0-BYTE (perri BINDING PIN 1 — NO sentinel/placeholder EVER, else her non-empty=fresh discriminator misfires a spurious --session-id adopt). Core owns the file lifecycle: write-before-spawn each turn, overwrite in place, persists between turns in the nested perch (debuggability); never deleted per turn. perri shim delta: --psyche-context-file <path> arg, read-file prefix, TRIM-based emptiness (her tolerance, NOT core's license — core writes exactly 0 bytes on continue, PIN 2), read-failure = generic fail NEVER 95, never writes/deletes the file. Red-first: a ~40KB mind → the old {psyche_context}-on-argv path BRICKS the win32 shim spawn; the file path succeeds (shim reads the full mind from file).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2156849Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2156878Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2156978Z ### REQ-PSYCHE-LEGACY-RESIDENT-SWEEP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2162717Z - Title: W5 (F030; doyle+perri 2026-07-04): a dirty daemon upgrade from <=v0.24.0 strands a RESIDENT psyche wrapper the OLD daemon spawned — and F-030 W4's nested-`ready` resolution fix CONVERTED that wrapper's accidental self-reap into a permanent HANG. The pre-W3 wrapper's only spt IPC is `spt ready <parent>-psyche --once` (BLOCKING, no internal timeout); pre-W4 that hit READY_FAIL on a multi-subnet home → the wrapper exit-4'd (accidental reap). Post-W4 the nested id resolves cleanly → the wrapper REGISTERS then BLOCKS FOREVER on its first post-upgrade poll: no exit, no psyche_host_error, no CPU (KH 2.6 invisible-loop class, one level up). Post-W3 core has no residency machinery to reap it. FIX: a ONE-SHOT legacy-resident sweep at BRAIN START (never per-reconcile/periodic — burying residency-era machinery, not resurrecting it). GUARD = adapter-AGNOSTIC (glue-model): resurrect the retired reap_orphan_psyches LOGIC — for each self-perch live-agent id derive `<id>-psyche` and kill iff (a) exe basename == the adapter's MANIFEST-declared psyche program (normalize_basename, never a hardcoded adapter name) AND (b) cmdline contains the id marker `<id>-psyche` AND (c) pid alive; any unreadable signal → DECLINE + loud log (fail-safe-decline, positive-match-only; infra never-kill inside the sweep). FRATRICIDE is closed by TIMING (perri-confirmed from the owning side): the ephemeral shim is daemon-spawned per-event, bounded, exits at turn end — at brain start BEFORE the first reconcile/pulse no current shim is resident, so any `<id>-psyche` psyche-program process alive then is unambiguously stranded-legacy. RESIDUE (doyle PIN 3): the hung wrapper REGISTERED a `<parent>-psyche` ready perch before blocking; killing the pid alone leaves a phantom ready-record with a dead pid (the REMOTE-TRUTH presence-lie class) — the sweep MUST also clear that stale registration or prove the existing stale-perch cleanup reaps it. No field window pre-W6 (nothing releases). (F-030 W5)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2162929Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2162958Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2163074Z ### REQ-HAZARD-PSYCHE-RESIDENCY-EXPECTATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2165849Z - Title: W3 (F030 hazard; paid-for: hall-bf churn ordinal 6491+ + adapter v0.13.2 bad-ship brick 2026-07-04): a psyche failure of ANY shape must NOT remove or alter the parent endpoint's ready/hosted state, and hosting must NOT churn-respawn. The v0.13.2 shim-exit tripped the residency machinery (confirm_residency_or_unhost) which tore down the endpoint's hosted state — ready marker removed, never re-stamped, every force-native gated leg=cli-gate-not-hosted PERMANENTLY (field brick). FIX: residency machinery retires with the resident child; the teardown that touches parent hosted state is DELETED — psyche trouble stamps psyche fields only. REQ-HAZARD-LIVEHOST-NONRESIDENT's spirit transfers to the W1 failure budget (its entry gets a SUPERSEDED pointer here, LIVENESS-DECAY→SUPERSEDED pattern from C-1). Conformance int = the hall-bf shape: multi-subnet home, live endpoint, failing psyche → parent stays deliverable, no rehost churn, error stamped (the wave's heart).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2165959Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2165988Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2166087Z ### REQ-HAZARD-THRASH-GUARD-BLIND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2167247Z - Title: W3 (F030 hazard; paid-for: evidence #6, hall-bf ~12/min re-host NEVER tripped the C3(b) thrash guard — boot records were not ledger boundaries to the guard): the failure budget must count REAL attempts (ledger-derived: boot/turn records via the psyche perch ledger), not whatever it counted that let 12/min churn run invisibly. Red-first synthetic loop: a 12/min synthetic failure loop MUST trip the budget.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2167342Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2167375Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2167471Z ### REQ-EFFECTIVE-INSTANCE-STATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2171417Z - Title: A-1 (REMOTE-TRUTH triage §A + ADR-0033 §Decision): the effective instance state of a perch is DERIVED through ONE shared function — liveness discriminates warm/cold, stored rest intent refines within warm, absent intent NEVER defaults active. ROOT (certain): resting::apply_event derived its `from` off the stored rest_state field ALONE (resting.rs:225, `unwrap_or(RestState::Active)`) — a cold perch (offline) with no intent answered `from=Active`, so a Wake event found it 'already in target state' and returned Ok(None) = the field NO_EDGE-on-a-definitely-suspended-endpoint bug (the banked F-028 rest_state-void seed). advertised_status (registryhost.rs:821) ALREADY derived correctly (is_perch_alive→intent-refined / is_perch_unbound→Dormant / cold→Suspended) — the two readers disagreed. FIX (Q1 shared derivation, hazard-class): a pure `effective_rest_state(alive, unbound, intent) -> RestState` mirroring advertised_status, consumed by BOTH advertised_status (mapped RestState→Status, behavior identical) AND apply_event's `from` (real is_perch_alive/is_perch_unbound reads); void + cold ⇒ Suspended. Bonus: kills the spurious active→suspend echo a cold+void perch used to fire (on_rest_edge on a dead driver). Red-first: perch status=offline + no rest_state → daemon_rest_event(Wake) yields from=Suspended→to=Active EdgeReport, not Ok(None).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2171578Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2171651Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2171756Z ### REQ-OPID-MINTER-NAMESPACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2178274Z - Title: A-4a (REMOTE-TRUTH triage §A + ADR-0034 Decision 1 + Amendments 1 & 2): the broker effect journal's dedup key gains a minter dimension so ops minted by independent counters can never collide. ROOT (high, ground-truthed vs HEAD): the journaled-op producers key into ONE journal namespace (NET_EFFECT_SESSION|shell_sid, op) at broker.rs (EffectKey=(u64,u64)); a CLI wake op colliding with an already-journaled daemon op reproduces the typed 'already applied … retry with a fresh op_id' with NO broker restart (field-hit: spt endpoint wake id@node WOKE_FAIL). Same latent class: nethost dial_ops/stream_ops HashMap<u64,u64> ('Shares the one net op-id namespace') would re-clobber even after the journal separates them; AND shellchan::deliver_stdin_pending journals (shell_sid, row_id) so an rc operator's ops on the same shell_sid collide with spool row ids (dropped keystroke OR dropped spool row). Amendment 2 corrected the minter set: the REAL journal minters are {cli, pump, rc, shell} + legacy — psyche/epoch are the EpochSource notif/lease counter domain, NEVER submit to apply_once, DROPPED from the journal enum (a tag with no stamp site = doc'd-but-dead knob). FIX (Decision 1 + Amdt 2): ONE canonical Minter enum {Legacy, Cli, Pump, Rc, Shell, Wake} — Legacy reserved for pre-upgrade lines + untagged wire, monotonically shrinks; enum is the single source for the TEXTUAL journal-line token (self-describing during recovery). EffectKey becomes (effect-class, minter, op); recover() DUAL-PARSES (old shorter line → minter=Legacy, new longer line → parsed tag) so old journals need no migration and old-shape keys can never equal new-shape (migration-free). A MintedOp{minter, seq} newtype REPLACES bare op_id:u64 through the brain/daemon THREADING paths so forgot-to-stamp is UNCOMPILABLE (row_id stays the shell seq — never re-minted, the durable spool exactly-once identity). Wire keeps an additive optional minter field (serde default absent ⇒ Legacy materialized at broker decode; serde_json no deny_unknown_fields ⇒ NO wire version bump); the newtype is NOT forced into wire structs. nethost op-maps re-key by (minter, op). Red-first: mint an rc op == a journaled shell/pump/daemon op int on the same session → pre-fix the second dedups/clobbers (WOKE_FAIL class); post-fix both are distinct keys, both Applied.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2181581Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2181615Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2181743Z ### REQ-OPID-TRACING-RETRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2185890Z - Title: A-4b (REMOTE-TRUTH triage §A + ADR-0034 Decision 2): the tracing-only op families auto-retry ONCE with a fresh op on the typed no-longer-held error, so a broker-restart-dropped conn/stream self-heals instead of surfacing core lingo to the user. ROOT: net/rest.rs declares rest op-ids 'tracing/correlation only … redelivery needs reporting, not dedup', yet the journal enforced exactly-once on them — a rest/attach op whose conn the broker no longer holds (post-restart) returned the typed 'already applied … no longer held … retry with a fresh op_id' (broker.rs:2796 net-dial / 3047 stream-open) straight to the user (WOKE_FAIL / rc attach fail). FIX (Decision 2, scoped): the rest family (request_rest) + rc attach stream-open (request_attach_endpoint) — and ONLY those — catch the typed no-longer-held error INTERNALLY and re-issue ONCE with a FRESH op minted from the SAME minter (A-4a MintedOp; same producer, new seq). sync/update pull families (request_sync/request_update, durable open_op) are NOT wrapped — their exactly-once dedup is load-bearing (negative control). The typed op error becomes internal-only; if the retry ALSO fails, the user-facing line names the observable situation + next action in operator language, ZERO journal/op/brain lingo (F-1 public-error rule applies early — this string is user-facing). Red-first: mint a colliding op → assert the retry succeeds + the user sees NOTHING; NEGATIVE CONTROL — a durable family's no-longer-held stays a hard error, no silent retry.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2186157Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2186190Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2186285Z ### REQ-REST-VERB-ROUTING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2193086Z - Title: A-3 (REMOTE-TRUTH triage §A + Q3 operator-law): a BARE-id rest verb (spt wake/suspend <id>) routes across the subnet like send's fallback instead of failing local-only. ROOT (certain): cmd_rest (cli.rs:3296) gates the remote arm on id.contains('@'|':'); a bare id falls to the local-only arm (cli.rs:3340) → daemon_rest_event → info::read_info miss (resting.rs:248) → 'WOKE_FAIL:{id}: info.json absent or unreadable — not a hosted perch'. cmd_send (cli.rs:5142) DOES fall back on a local miss; cmd_rest's remote arm (cli.rs:3307, wan_rest) already handles every WanRestOutcome — it is simply never reached on a bare-id local miss. Contradicts CONTEXT:286 'a wake must route'. Q3 SUBSTRATE GAP: resolve_across_visible (registry.rs:971) filters only by Status::routable() and its Ambiguity payload is node-hexes-only — it CANNOT express the Q3 status rule; per-candidate (node,status) comes from SubnetRegistry::instances(id). FIX: a NEW pure select_rest_target helper (status-aware, isolated from resolve_across_visible which cmd_send keeps) applying GOAL-SATISFACTION semantics (ADR/triage addendum @188d269, NOT naive verb symmetry — the mixed case breaks symmetry): wake is an ∃-goal (satisfied when ANY instance Active), suspend is a ∀-goal (satisfied when ALL instances Suspended); one helper parameterized by the verb's satisfaction predicate — 0 candidates→NotFound; goal already satisfied→NoOp naming the satisfying node(s); exactly 1 ACTIONABLE (not-at-target) instance→Act(node); >1 actionable→Ambiguous(copy-paste id@node list). Edge rulings: wake with >1 Active = NoOp naming ALL active nodes (NOT Ambiguous — nothing actionable); suspend mixed (X suspended + Y active, NOT ∀-satisfied) = Act(Y) if exactly one active / Ambiguous if several active. Candidate status is ADVERTISED/gossiped (post-A-1 shared-derivation, may be STALE) so a NoOp verdict is ADVISORY and the qualified id@node path is the operator override (noted in the helper doc-comment). cmd_rest's bare-id local miss loads snapshots → instances(id) → select_rest_target → dispatches (Act→wan_rest to the node / NoOp naming node(s) / Ambiguous render_refusal copy-paste id@node list / NotFound NO_ENDPOINT), all F-1 public language from day one. Qualified id@node path unchanged; shutdown leg-2 stays LOCAL_ONLY. Red-first: a bare id present ONLY in a remote registry snapshot routes to that node instead of WOKE_FAIL.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2193219Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2193247Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2193352Z ### REQ-SESSION-ADAPTER-RECORDED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2197892Z - Title: D-2 (REMOTE-TRUTH triage §D-2 + operator Q5 @c248afc): the session ledger records the adapter[:profile] a session ran under, so a later resume can restore the harness the session actually used (not merely the endpoint's CURRENT stamp). ROOT: SessionEntry (spt-store/sessions.rs:58) carries ts/session_id/trigger/cwd/ordinal but NOT the adapter — a resume-from-history row cannot know which harness authored the transcript, so a resume under a since-changed endpoint adapter (B-2 ChangeAdapter, or a fork) launches the wrong harness. FIX: an ADDITIVE `adapter: Option<String>` on SessionEntry, exact cwd/ordinal serde pattern (#[serde(default, skip_serializing_if="Option::is_none")]) — a pre-migration row missing the key deserializes None; None omits the key on serialize (byte-identical to old rows); an unknown key on an old reader is ignored (serde default) — back-compat BOTH directions. Stamped at every PRODUCTION session-boundary append. CENSUS (doyle-confirmed @94f0205, corrects the triage-era 5-site drift to the real 3): startup.rs:317 (live bind boot row, rec.adapter in scope), reporting.rs:94 (boundary rotation row UNDER the mutate_info lock, capture adapter_for_ledger=rec.adapter beside cwd_for_ledger), ready.rs:119 in crates/spt-msg (ready-agent boot row, rec.adapter in scope). NOT digest.rs:601 (cfg(test) fixture) and NOT a livehost psyche-ledger append (none exists — the live /clear|/compact boundary shells `api boundary` → reporting.rs:94, the SAME append). None-stamp is a benign degrade (resume falls back to the endpoint's current adapter).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2198091Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2198125Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2198231Z ### REQ-RESUME-ADAPTER-FOLLOWS-SESSION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2204290Z - Title: D-2 (REMOTE-TRUTH triage §D-2 + operator Q5 @c248afc): a resume-from-history restores the RECORDED session adapter (REQ-SESSION-ADAPTER-RECORDED) — the resumed harness is the one the session ran under, re-stamped onto the endpoint PRE-SPAWN, and an unregistered recorded adapter refuses LOUDLY before launching anything. ROOT: the picker's resume_outcome (model.rs:1285) bakes adapter=ep.adapter_profile from the selected ENDPOINT, ignoring the ledger row — so a resume always uses the endpoint's CURRENT adapter even when the session ran under a different one; and the endpoint's info.adapter is never re-stamped to the row's on the resume path (cli.rs:1962 skeleton writer early-returns for an existing perch — adapter immutable, carried by bind's stamp_creation_fields). FIX (doyle fork ruling): ResumeRow (model.rs:199) gains adapter: Option<String> threaded from SessionEntry.adapter in picker/data.rs; the row title (model.rs:228) renders [{adapter}] when Some ({head} [{adapter}] - {time} (…{id5})); resume_outcome bakes the ROW's adapter with an endpoint fallback (row.adapter.unwrap_or(ep.adapter_profile)) — None → the endpoint's current stamp (benign degrade). The pre-spawn RE-STAMP + refusal ride the picker resume dispatch (mod.rs:360 Run arm, resume.is_some()) reusing the hazard-guarded mutate_info seam (write_adapter_change/mod.rs:336), NEVER the bind path: order = read current info.adapter → if the baked adapter DIFFERS (a real replace; a None-row bakes the endpoint's own → equals current → NO write) → registered-check via resolve_option (Err(NotRegistered) → loud F-1 refusal naming the adapter + `spt adapter add`, NO stamp, NO spawn) → write_adapter_change re-stamp → spawn. ONE adapter write path (the mutate_info seam); REQ-HAZARD-ADAPTER-PROFILE-STAMP-CLOBBER's bind/hook path (stamp_creation_fields, home.rs) UNTOUCHED — both its guard tests stay green as the gate condition. Red-first: a resume row adapter="claude-spt" over an endpoint stamped "claude-spt:ccs" → the baked Outcome.adapter == "claude-spt" (the deliberate replace) and the pre-spawn stamp writes it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2204417Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2204446Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2204542Z ### REQ-WAKE-RESUME-LEG
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2210060Z - Title: A-2 (REMOTE-TRUTH triage §A-2 + ADR-0033): the daemon reconcile gains a WAKE-RESUME LEG — an endpoint whose rest INTENT is Active but whose harness session is COLD (status != online) is resumed by the daemon via the adapter's [session.resume] template using the LAST LEDGER session id, so a bare `spt wake <id>` on a suspended live agent actually brings it back (today: reconcile_once start-arm hosts ONLY status==online (livehost.rs:199), so a woken-but-unbound endpoint is skipped forever — neither status reaches online nor does reconcile re-host). This is the ADR-0033 LIFT: the thin `spt wake` edge writes rest intent, the DAEMON does the work. Mirrors shellwake::resolve_wake (read rest state, live-pid double-launch guard, launch, NEVER flip status — the harness self-binds → online). The leg reads the recorded adapter (D-2, REQ-SESSION-ADAPTER-RECORDED); an UNREGISTERED recorded adapter is the Q5 daemon-variant refuse: do NOT spawn, record a LOUD host_error report (F-1 naming the adapter + `spt adapter add`), never silent, never fallback-spawn on a different adapter. BINDS: (1) status=online is set ONLY by a real bind — the resume leg NEVER stamps it (CONTEXT liveness truth; the A-1 effective-state derivation depends on this staying honest). (2) host_error is a REPORT of the most recent host-level failure, NEVER a liveness input — neither liveness nor advertised_status reads it (host_error + online still derives Active); cleared on a successful host/bind; the existing silent `continue` on a deregistered online adapter (livehost.rs:205) folds into the same field. (3) the resume-pid guard marker is CUSTODY-ONLY (F-030 nested-record discipline) — never a liveness input. cold-with-no-ledger-row degrades benign (loud-logged skip, no crash, today's behavior). Single-node; C-2 picker Wake-now unblocks after. --wait is a SEPARATE rider (REQ-WAKE-WAIT).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2210267Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2210295Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2210386Z ### REQ-WAKE-WAIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2212158Z - Title: A-2 rider (REMOTE-TRUTH triage §A-2): `spt endpoint wake --wait` blocks on the REAL bind (status reaches online) after the daemon wake-resume lift (REQ-WAKE-RESUME-LEG), instead of the DEFAULT accepted-not-bound print (thin edge writes intent, daemon lifts async — ADR-0033). Reuses the F-027 bind-await machinery if/when it lands, else a bounded poll on status==online with a plain-language timeout (no core lingo, F-1). Default wake is UNCHANGED (accepted-not-bound truth). Separate chunk from the core leg (doyle A-2 ruling: C-2 needs the core leg, not --wait); F-027 bind-await stays design-only until this activates.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2212259Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2212288Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2212382Z ### REQ-PICKER-REMOTE-WAKE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2218431Z - Title: C-2 (REMOTE-TRUTH triage §C-2 #4 + addendum @3442ce5): a REMOTE suspended picker row offers `Wake now` — waking the endpoint THROUGH its owning node's rest edge (the A-2 daemon resume leg) — instead of a bare `Start now` that silently cold-starts a COLLIDING LOCAL instance of a remote id (node-anchored identity violation, ADR-0003/0023). ROOT (certain): confirm_options collapsed Suspended into the offline action set = [Start,…]; on a REMOTE row `Start` bakes Outcome::Run with NO node → picker dispatch → cmd_endpoint_run creates a fresh LOCAL perch of the remote id (model.rs confirm_terminal / mod.rs dispatch). Remote rows are only Online/Suspended, so remote+offline == remote-suspended. FIX: confirm_options splits the offline arm on is_local — remote → vec![Wake] (a new ConfirmOption::Wake), local → vec![Start] UNCHANGED; confirm_terminal(Wake) → a new Outcome::Wake{id,node} carrying the RAW node hex; dispatch routes crate::cli::cmd_endpoint_wake_remote(id,node) → cmd_rest(id@node, RestEvent::Wake) = the EXISTING WAN rest arm (dispatch_wan_rest → wan_rest), and A-2's resume leg revives the session async (the full loop the operator wanted). `Instantiate locally` stays the separate deliberate-copy verb. ADDENDUM correction (a): EndpointRow.node is the LOSSY DISPLAY string (node_label_display = 'LABEL (prefix…)'), which node_qualifier_matches (full-hex-prefix|exact-label) CANNOT match — a dead Wake; so a NEW EndpointRow.node_key: String carries the raw ResourceRow.node hex (empty for local rows — Wake is remote-only) threaded through from_resource_row + the 4 literal ctors. CO-GATE (b, addendum): ChangeAdapter (was `offline`-gated) is gated `offline && is_local` — write_adapter_change → resolve_perch_path(Infer) → mutate_info rewrites a LOCAL perch record, so offering it on a remote suspended row is the SAME colliding-local-write-for-a-remote-id class (the Start twin); a remote node's adapter is not ours to rewrite from here. Red-first: a remote suspended row → confirm_options has Wake NOT Start NOT ChangeAdapter, and confirm_terminal(Wake) → Outcome::Wake{node==raw hex} (never a local Outcome::Run); a LOCAL offline row is UNCHANGED (Start + ChangeAdapter).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2218587Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2218621Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2218731Z ### REQ-HAZARD-BROKER-FLOOR-LOCK-POISON
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2226040Z - Title: B-1 (REMOTE-TRUTH triage §B-1, PIVOTED @e5eb99a): NO bare `.lock().unwrap()` on a broker-resident lock reachable from serve/dispatch — a brain-only self-update keeps the broker + all its Mutexes ALIVE (REQ-UPD-3), so a single panic under one poisons it PERMANENTLY: the next `.lock().unwrap()` panics, kills its per-conn reply thread, and EVERY subsequent attach silently deadlines ('brain IPC read deadline elapsed') while non-locked ops keep working. TRIAGE-DRIFT (sweep-dispatch-site-counts discipline): the triage named 3 sites (broker.rs:1163 flush_inject_floor / :1297 inject-worker-open / :2142 buffer_if_held) as the surviving class, but ALL 3 are the INJECT FLOOR and were ALREADY poison-proofed by REQ-HAZARD-INJECT-WORKER-POISON (lock_floor, shipped post-triage — the FLOOR HALF is SUBSUMED, this seed redirects). The SURVIVING class (matching the triage's own symptom description) is the ATTACH-PATH lock set: self.sessions Mutex<HashMap> ×18 + its sessions_exit alias ×1, the per-session OutputLog RING ×11 (log/h.log/log_drain/log_exit), pair_holds ×4 — 34 production bare .lock().unwrap() (cfg(test) excluded). FIX (doyle B-1 ruling): recover ALL THREE via ONE shared `recover<T>(&Mutex<T>) -> MutexGuard<T>` helper (into_inner idiom, same as lock_floor / the effect journal bug #16 — safe for the short coherent-on-recovery map ops of sessions/pair_holds), plus `recover_log(&Mutex<OutputLog>)` for the ring which adds a COHERENCE CLAMP on the poison-recovery path: a panic mid-append can leave the ring torn (over-cap, a last seq not below next_seq, non-monotonic front/back) and serving those bytes risks garbage, so OutputLog::clamp_or_reset cheap-checks the invariants and RESETS the ring empty (next_seq preserved — cursors never rewind) + loud-logs on violation. Rationale: fail-fast on the log reintroduces the very wedge B-1 kills (poisoned log = every subscriber attach panics forever); blind recover serves torn bytes; clamp-or-reset costs only scrollback that self-heals on the next PTY output + repaint (lost scrollback << permanent wedge, torn-serve eliminated not tolerated). Sessions/pair_holds recover bare (short map ops, coherent-on-recovery). CLASS invariant (KNOWN-HAZARDS 7.33): any new broker-resident lock uses recover/recover_log or a documented fail-fast justification. Red-first: a scripted panic-under-sessions-lock → recover hands back a usable guard, the next attach still opens; a TORN-RING variant → recover_log clamps/resets so the subscriber gets sane bytes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2226204Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2226228Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2226328Z ### REQ-CONTROLLER-LIVENESS-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2234134Z - Title: B-2 (REMOTE-TRUTH triage §B-2, REDUCED @bdc1242): a stale ONLINE+CONTROLLED stamp on a live-session perch self-heals — the info.json driven_by/controlled RECORD is made to match the broker's SINK-TABLE TRUTH. ROOT (persisted-stale-stamp class, doyle Q1): the livehost control reap gates on !has_session (reconcile_hosted_liveness), and a brain-only update KEEPS the session (REQ-UPD-3), so a controller stamp that went stale WHILE the session lived was never re-derived from broker truth. NOT a transport bug: (a) a persisted conn is the REQ-UPD-3 feature; (b) an idle-severed conn eventually EOFs via QUIC keepalive → handle_conn detach (path 1) — and the reason paths 1-3 previously failed to clean up was the B-1 broker floor-lock POISON WEDGE (cleanup panicked under the poisoned lock), now fixed. REDUCTION (doyle, my ground-truth): the prescription was 80% pre-built — converge_perch_stamps (broker.rs, REQ-HAZARD-CONTROL-STAMP-CONVERGENCE) ALREADY converges info.json driven_by/controlled to the broker's controller_by/has_controller on EVERY KIND_SESSIONS poll, and the livehost reconcile already TRIGGERS that poll per tick (query_live_session_endpoints). So NO new IPC query, NO new livehost arm, NO 5th detach path — the ONLY gap is that a controller whose WRITER THREAD died (severed conn: the writer failed a socket write, or a detach dropped by the prior B-1 wedge) still reports controller_by=Some/has_controller=true, so converge keeps the stale stamp. FIX: a broker-side lazy-reap in the KIND_SESSIONS snapshot closure — OutputLog::reap_dead_controller() drops a controller whose _writer.is_finished() BEFORE controller_by/has_controller are read, so the reply + the off-lock converge both see the honest (cleared) state and the stamp clears. LOCK-SAFE: the reap drops the sink in-memory ONLY (no stamp_driven_by → no info.json I/O under the log lock, the KH 7.12/5.16 lock-across-effect discipline); the OFF-lock converge_perch_stamps writes the honest stamp. KH 7.15 held by construction: the reap only ever CLEARS, never latches driven_by; a LIVE (idle, parked-on-rx.recv) controller is is_finished()==false so it is NEVER false-reaped. RESIDUAL (doyle Q2 accepted): a TRULY IDLE severed controller (writer parked on recv, no output, conn not yet EOF'd) stays is_finished()==false and converges only on output-resume / conn-EOF — that harder active-probe case is the RESERVED REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT (SessionInfo.controller_by doc), deliberately NOT built here so the reserved seed keeps its scope. Red-first: a dead-writer sink → reap clears it (controller_by honest None → converge clears the stamp); a live-writer sink → UNTOUCHED (no-false-reap control).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2234352Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2234381Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2234482Z ### REQ-ADAPTER-FLOOR-ENFORCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2243400Z - Title: F-5 (REMOTE-TRUTH triage §F-5 + doyle rulings 2026-07-05): BOTH adapter acquisition verbs (spt adapter add + spt adapter update) REFUSE when the installed spt-core is BELOW the adapter's declared [adapter].min_spt_core_version floor — with an F-1 operator refusal naming the installed core, the floor, and the next action (update spt-core first). ROOT: the floor was PARSED + required (manifest.rs) but never compared to the running core — dead enforcement; and the [update].version_check knob that gated it was DOC'D-BUT-DEAD (never read by any production path — a contract lie). RULINGS: RETIRE version_check (drop the manifest field + schema + docs + the cfg(test) literals; a pre-existing manifest still setting it deserializes fine — serde ignores the unknown key, no deny_unknown_fields, so retiring is back-compatible); SEMVER-compare NOT string-compare (the 0.9.0 < 0.25.0 lexical trap); enforce on BOTH verbs; nothing installs / registry untouched on refuse (binds both verbs, no residuals). FIX: (1) a pure spt-runtime version_meets_floor(core, floor) -> bool (numeric per-component: split '.', u64, missing→0, non-numeric→0, first-diff decides, equal-when-zero-padded ⇒ satisfied) — mirrors the CLI version_is_newer parse (same numeric model, different question: freshness=strictly-newer vs floor=at-least). (2) ADD: the gate lives INSIDE registry::register (the choke point) via a register_with_core(core_version) seam register() delegates to with env!(CARGO_PKG_VERSION) — the floor check runs right after the manifest parse, BEFORE any registry write, returning the typed RegistryError::CoreFloor{adapter,core,floor} (Display = the ONE F-1 refusal both verbs surface); nothing recorded on refuse. (3) UPDATE: a PRE-SWAP peek (staged_floor_ok) extracts the staged .spt to a THROWAWAY temp, parses its manifest floor, and refuses BEFORE apply_release_crc_swap mutates the live pointer-mode home — so a refusal (or an unverifiable floor: FAIL-CLOSED) leaves the live install BYTE-UNTOUCHED; register@8932 stays as the defense-in-depth backstop for every other entry path. THE COMPARISON BASIS IS THE CALLER'S, NOT THIS FUNCTION'S (releases#159): the bare verb judges against the running CLI, and a COMPOSITE update judges against the core that run will activate — see REQ-ADAPTER-FLOOR-VS-STAGED-CORE. The FAIL-CLOSED discipline in this clause is about an unverifiable STAGED MANIFEST and is unrelated to that input. doyle bind: the register-only gate would let the crc-swap replace the live files with a floor-violating version while the record refuses (record and reality disagree — the exact contract-lie shape this milestone kills), so the pre-swap peek is the only correct answer. Red-first: perri negative repro on ADD (fresh home + synthetic low core + high-floor manifest → CoreFloor refuse, registry untouched) + the UPDATE pre-swap refuse (live home byte-untouched) + a floor-met positive control (0.25.0-on-0.25.0 installs); + version_meets_floor table incl. the 0.9<0.25 trap.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2243620Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2243653Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2243766Z ### REQ-ADAPTER-FLOOR-VS-STAGED-CORE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2264405Z - Title: IN A COMPOSITE UPDATE, AN ADAPTER'S CORE-VERSION FLOOR IS JUDGED AGAINST THE CORE THAT RUN WILL ACTIVATE, NOT THE ONE CURRENTLY RUNNING (releases#159, doyle ruling 2026-08-21). THIS DELIVERS A CONTRACT ALREADY RULED AND NEVER SATISFIED, which is what the lane is FOR: CONTEXT.md's adapter-manifest-header entry has said since the glossary was written that `when spt-core self-updates, re-verify adapters still satisfy (coordinate core + adapter updates when needed)` — the code never did. Same shape as F-5 itself (REQ-ADAPTER-FLOOR-ENFORCE), where the floor was PARSED and REQUIRED and never compared: a dead rule, not a missing one. THE DEFECT: `spt update` plans FetchApply -> Adapters, and `spt update --restart` plans Fetch -> Adapters -> Finish; in BOTH the adapters leg runs while the NEW core is staged and the invoking CLI is still the OLD image, so a floor comparison against `env!(CARGO_PKG_VERSION)` asks a question about a core that is on its way out. An adapter whose floor the INCOMING core satisfies is therefore refused in-cycle, and the run then activates that very core and leaves the OLD adapter sitting on it — the refusal protected nothing, it deferred the pairing it was meant to enforce, ungated, into a state nobody checks again. FIX: `cmd_adapter_update` takes the comparison version as a PARAMETER instead of baking `env!`; the composite leg passes the STAGED release's `product_version`, read from the VERIFIED signed metadata via `ReleaseCache::staged_update` (`UpdateSetMetadata` / `ReleaseMetadata`). SINGLE-PASS, NOT A RE-SWEEP (doyle): a post-finish second sweep can itself fail half-rolled, so the one pass judges against the truth it already holds — and the CONTEXT.md clause above is amended to state that cadence, because a glossary sentence whose cadence a future implementer could build against would authorize the refused re-sweep with the glossary's own authority behind it. BOTH COMPARISON SITES INSIDE THAT FUNCTION TAKE THE PARAMETER (doyle confirmation 2026-08-22, dated to the confirmation and not to the lane: the correction postdates the ruled shape it corrects) — (a) the pre-swap peek `staged_floor_ok`, and (b) the post-swap re-register, which moves from `registry::register` (the `env!`-baking wrapper) to the already-public `registry::register_with_core` seam beneath it. (b) IS LOAD-BEARING, NOT TIDINESS: fixing only (a) admits the adapter at the peek, crc-swaps the new bits into the live pointer-mode home, and THEN refuses at the record against the old running core — live files new, registry record old, reported as FAILED. That is the record-and-reality disagreement REQ-ADAPTER-FLOOR-ENFORCE's own pre-swap-peek bind exists to prevent, reached from the other side, and it is strictly worse than the bug this requirement fixes (today's refusal is clean and byte-untouched). One value, two consumers, SO THE PEEK AND THE RECORD CANNOT DISAGREE ABOUT WHICH CORE THEY JUDGED AGAINST — that property is what makes this a fix rather than a second gate to keep in sync, and it is why the parameter is THREADED rather than each site reading the staged metadata for itself. THE BARE VERB IS UNCHANGED: `spt adapter update` (cli.rs AdapterCmd::Update) and its `spt update adapters` alias keep passing the running CLI's version — with no update in flight the installed core IS the right question — and both call sites are pinned as unchanged. `spt adapter add` is untouched: no staged core exists on that path. FAIL OPEN, ON THE NEW INPUT ONLY (doyle): an unreadable staged version degrades LOUDLY to the running-CLI comparison — an absent answer is not a zero, and an empty string is never compared against a floor — while `staged_floor_ok`'s deliberate FAIL-CLOSED arm for an unverifiable STAGED MANIFEST floor (REQ-ADAPTER-FLOOR-ENFORCE) is NOT touched. ONE ARM, THREE DIAGNOSTICS (doyle Q1 ruling, extended 2026-08-22 by measurement): an absent stage, an empty `product_version` (`#[serde(default)]` on both metadata types — pre-v0.3.2 releases really do parse to an empty string), and metadata that parses as NEITHER type all take the SAME degrade to the running core but must NOT share a message, because the operator's next step differs: nothing to do, an old release, and inspect your stage. The third states the FACT and points AT the stage without diagnosing it, borrowing 'malformed' from the apply leg's own vocabulary so two arms of one run never name the same corrupt artifact differently; the second offers predating-the-field as the LIKELY cause rather than the certain one, since any producer omitting the key yields the identical empty string. MERGING THE THIRD INTO THE SECOND IS SPECIFICALLY FORBIDDEN: telling an operator their release predates a field when the artifact is DAMAGED is a benign explanation offered for a corruption condition. THE THIRD ARM IS DEFENCE IN DEPTH AGAINST A STATE THE RUN SHOULD ALREADY HAVE REFUSED, and this is recorded here because the arm will otherwise look like dead code to the next reader and be deleted: in a COMPOSITE it is almost unreachable BY CONSTRUCTION — the core legs reject a malformed stage as a FAULT (RejectReason::Malformed, UPDATE_APPLY_REJECTED, exit 1 and not 3, since an integrity failure is not a policy decline) and composite_abort_on_failure is true for BOTH FetchApply and Fetch, so the run aborts before an adapters leg exists. It is reached only when a core leg exited 0 over an already-corrupt stage (a fetch with nothing new to pull) or when the stage changed after that leg ran, which is why its sentence names both possibilities and asserts neither. MEASURED REACHABILITY, one door only (relcache.rs:330-351): corruption at the SignedRelease envelope dies at `.ok()?` and yields None, indistinguishable from no stage and correctly reported as such — only inner metadata that parses as neither type, WITH an artifact on disk, falls to the `else if` and reaches the seam as Some. READING `product_version` HERE DOES NOT VIOLATE ITS OWN WARNING, stated in this title so the next reader meets the warning before they meet the use: that field's doc forbids using it to decide WHICH RELEASE IS NEWER — the monotonic `version` counter is the ordering authority and this requirement does not touch ordering — it does not forbid reading it as the semver a declared floor is compared against, provided it comes from the verified signed metadata, which is the only place this reads it from. Gate: doc — the CONTEXT.md adapter-manifest-header clause restated as the ruled cadence (the sentence this requirement delivers), the CONTEXT.md update-composite entry's floor-gate phrase, and MANIFEST.md's enforcement note, each naming WHICH core the floor is judged against; impl — the comparison-version parameter on `cmd_adapter_update` threaded to both the peek and `register_with_core`, the composite leg's staged-version read off the verified metadata, and the two-diagnostic loud degrade; unit — an adapter flooring on the FETCHED core is ADMITTED by the composite AND its record registers at the new version, the bare verb and its alias still compare against the running CLI, and the empty-`product_version` and absent-stage degrades each render their own diagnostic and fall back rather than refusing.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2282106Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2282266Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2282368Z ### REQ-RUN-ID-REUSES-ADAPTER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2286398Z - Title: D-1 (REMOTE-TRUTH triage §D-1): `spt endpoint run --id <id>` with NO --adapter, when <id> names an EXISTING perch, REUSES that perch's recorded info.adapter and runs NON-INTERACTIVELY — instead of always falling to the picker as a create-new prefill (an existing endpoint retyping its own adapter, or being sent to a create-new flow, is the operator wart). ROOT (certain, no design tension): the cli `match (adapter,id)` special-cased only (Some,Some)→cmd_endpoint_run; the catch-all routed EVERY lone --id to crate::picker::run as a create-new prefill, never considering an existing endpoint (cli.rs ~1290). FIX: a PURE resolve_run_target(adapter, id, recorded) over the 4 (adapter?,id?) quadrants — (Some,Some)→Direct{a,id}; (None,Some(id))→ recorded adapter present (info.adapter = adapter-chosen-at-creation, spt-store info.rs:167) → Direct{recorded,id}, absent/no-perch → Picker{None,Some(id)} (today's create-new prefill UNCHANGED); (Some,None)/(None,None)→Picker unchanged. The perch lookup (read_info(resolve_perch_path(id,Infer)).adapter) is INJECTED as a closure so the router is pure + testable without a perch on disk; resume threads into BOTH Direct paths. Red-first: (None,Some(id),recorded=Some) → Direct (pre-fix this routed to Picker create-new). int (live run --id on an existing perch reuses its recorded adapter non-interactively) deferred to the rig.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2290132Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2290284Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2290386Z ### REQ-PICKER-PURGE-SHORTCUT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2293976Z - Title: C-3 (REMOTE-TRUTH triage §C-3 #8): the pick-existing list gains an `x` purge shortcut — on an OFFLINE LOCAL highlight, `x` opens a small in-TUI confirm screen (Screen::ConfirmPurge, the B-2 ChangeAdapterPick shape) and Enter purges via the ONE existing purge core `cmd_endpoint_purge(id, yes=true, force=false)` — NEVER the core's stdin [y/N] (it fights the picker's raw mode; the confirm screen IS the confirm). The shortcut INHERITS both purge gates (offline-only + node-local, cli.rs cmd_endpoint_purge / CONTEXT:189): gated-off presses stay on the list and FLASH WHY (online → offline-only, remote → local-only). force=false is deliberate — the model gate is advisory; the core's own offline check is the authority, and a race to online between gate and purge must REFUSE, never stop-then-purge. After a successful purge the picker STAYS (inline outcome, like Shortcut/ChangeAdapter): the row leaves the in-memory list (remove_endpoint, cursor re-clamped) + flash PURGED:{id}. Hint truth (B-1/F029 discipline): the pick legend renders `x purge` ONLY when purge_key_live() — the same predicate the handler gates on. Red-first: purge outcome reachable ONLY from an offline LOCAL highlight (online/remote → no screen change + why-flash).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2297140Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2297281Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2297391Z ### REQ-PICKER-BACK-NAV
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2300181Z - Title: C-4 (REMOTE-TRUTH triage §C-4 #9): Backspace is a back() ALIAS across the picker — one keypress backs out one screen along the SAME reverse map Esc walks (model back(), complete for all screens incl. the C-3 ConfirmPurge), and from the kind layer it cancels the picker (Esc parity) — EXCEPT the two text-edit contexts, where Backspace stays CHAR-DELETE: CreateId entry (id_backspace) and the pick-list filter mode (filter_backspace). DELIBERATE: no empty-buffer fallthrough to back() in the text contexts — mixing delete and nav on one key invites miskeys mid-typing; Esc already backs out (the triage's optional extra, declined). Pure key routing in handle_key (picker/mod.rs) ahead of the per-screen arms; zero model change (the reverse map pre-existed). Red-first: Backspace on Confirm → PickExisting (pre-fix: dead key); on CreateId with a buffer → buffer shortens, screen unchanged; empty buffer → STILL no nav.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2302522Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2302762Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2302858Z ### REQ-RC-RECONNECT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2308379Z - Title: B-3 (REMOTE-TRUTH triage §B-3, the operator-asked UX): the rc attach viewport RECONNECTS on a severed transport instead of print-and-exit. Pre-fix rc was one-shot (resolve→dial→attach→pump→parting line); FAULT-MATRIX row 9 over-promised. FIX: the establish sequence (daemon ensure → broker conn → session resolve local-first/cross-node → dial → attach-open w/ A-4b tracing retry → subscribe) is factored into establish_attach and run_attach_inner wraps establish+pump in a loop. RECONNECTABLE class = severed transport ONLY: PumpEnd::BrokerGone (broker-conn EOF class, broker bounce) + the NEW PumpEnd::Severed (serve-side stream EOF AFTER rendered output = remote conn drop — pre-fix MISLABELED as 'detached — still running'; a nothing-rendered EOF stays the honest NoLiveSession refuse). FINAL ends (Exited/Detached/Displaced/Stalled/NoLiveSession) never re-drive — re-attaching a deliberately-ended session is wrong. On sever: full-screen centered 'Reconnecting to {target}…' banner (pure byte-emit like StatusRow; target = owning-node label or 'local daemon'; Q4 UX rule — operator language, internal sever detail never paints), then re-drive establish_attach every RECONNECT_PAUSE (1s) inside RECONNECT_WINDOW (30s, generous for a daemon bounce); a Detach keypress mid-window aborts honestly to [detached]; window expiry → PumpEnd::ReconnectGaveUp with a plain-language give-up line naming the cause, the window, and the retry action (never op/read-err lingo). Per re-establish: fresh OpMinter (ADR-0034 rc tracing per viewport), fresh initial resize (PTY matches the CURRENT terminal), pump-local render cursor resets so the re-serve ring replay REPAINTS the screen the banner cleared. FAULT-MATRIX row 9 made TRUE (F-3), not edited down. Red-first: serve-EOF-after-render → Severed (vs the pre-fix false Detached); only BrokerGone/Severed classify Reconnect.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2313284Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2313452Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2313556Z ### REQ-SELF-DETECT-PARENT-PID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2318087Z - Title: E-1 (REMOTE-TRUTH triage §E-1 #7): self-detect leg (c) — the pid-ancestry fallback — ALSO candidates on `rec.parent_pid` (the harness pid, CONTEXT's 'stable session-binding anchor', stamped at bind), not `rec.pid` alone. ROOT: for an spt-hosted endpoint (broker PTY, headless) `rec.pid` is the ephemeral bind-CLI pid, ALREADY DEAD by send time (the F-026 #11 dead-pid class, field-sighted on hall-bf) — never in any sender's ancestry and alive-gated out — so an spt-hosted sender could NEVER resolve self via leg (c): its messages were from-stamped `cli@NODE` (operator #7) and replies bounced NO_PERCH. FIX: detect_self_by_ancestry pushes a second candidate (id, parent_pid) when `rec.parent_pid` is Some + alive; the pure nearest-first matcher (match_self_by_ancestry) is unchanged. LABEL-ONLY, exactly like the rest of leg (c): from-label/routing default, NEVER authentication — authenticate() untouched, the pid-ancestry-for-auth question stays parked (KH 7.3/7.5 separation holds; a wrong label self-corrects, a wrong grant does not). Env legs (a)/(b) stay first. Red-first int (the triage-specified missing test): rec.pid = dead sibling + rec.parent_pid = genuine live ancestor → self resolves (pre-fix None); ancestry-gate control: live-but-non-ancestor parent_pid must NOT resolve. Rider (same cluster, activated separately once doyle rules the fix shape): F-026 #11 dead-pid itself — rec.pid should hold something that stays true, or liveness readers stop trusting it. Cross-node from-stamp proof (spt-hosted B-side sender arrives at A as `<id>@node`, not `cli@node`) rides the [twohost] rig wave rung.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2322240Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2322380Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2322479Z ### REQ-HAZARD-SELF-DETECT-TIE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2326946Z - Title: releases#240 (CONDUIT #236 respin RCA, measured 2026-08-29): self-detection leg (c) must REFUSE an AMBIGUOUS ancestor instead of answering from directory enumeration order. ROOT: match_self_by_ancestry walked the ancestry nearest-first and took the FIRST candidate at the nearest matching ancestor, so when two or more DISTINCT top-level perches recorded the same live pid (rec.pid or the E-1 rec.parent_pid arm, [[REQ-SELF-DETECT-PARENT-PID]]) the answer was whichever id read_dir happened to return first. Measured on one head at one sha: candidates [(bob, P), (alice, P)] on ext4 chose bob, candidates [(alice, P), (bob, P)] on NTFS chose alice; cli.rs then published MSG_OUT with that id as owner and the sink filed it under the WRONG endpoint. The Windows green was enumeration order landing heads, not the code being right, and the order is arbitrary PER DIRECTORY rather than alphabetical or creation-ordered (the same filesystem produced both orders in one session), so no platform is safe. The ambiguous state is PRODUCTION-REACHABLE through shipped verbs with no override flags: two `spt api bind` calls from ONE parent shell both succeed and both record that shell as parent_pid (measured construction test, isolated SPT_HOME). Nested Psyche/Worker perches are NOT a route (they live under owlery/<parent>/nested/ and leg (c) scans top-level only). FIX: a tie among DISTINCT ids at the nearest matching ancestor resolves to None with a loud-once diagnostic naming the tied ids and the pid, never a silent pick. Two ids that are the SAME id (the perch matching on both its rec.pid and its parent_pid) are NOT a tie. LABEL-ONLY like the whole of leg (c): None at the send site falls back to the CALLED --from, which is not merely honest but MORE ACCURATE than the coin. Authentication is untouched.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2331553Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2331706Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2331819Z ### REQ-HAZARD-DEAD-REC-PID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2335315Z - Title: E-1 rider (F-026 #11 dead-pid class, doyle-ruled SCOPED 2026-07-05 — KNOWN-HAZARDS 7.34): a dead `rec.pid` on an spt-hosted perch is EXPECTED, not staleness — the recorded pid is the ephemeral bind-CLI pid, which dies immediately after bind (the broker holds the PTY; no resident harness process at that pid). NO reader may alive-gate on `rec.pid` alone: spt-hosted LIVENESS comes from the daemon-managed status field (KH 2.5 — status present ⇒ authoritative, never a per-pid probe); IDENTITY comes from session/ancestry resolution where `rec.parent_pid` (the harness pid, the stable session-binding anchor) is the ancestry candidate (REQ-SELF-DETECT-PARENT-PID). Re-stamping rec.pid with the harness pid (shape (a)) is OVERRULED: ADR-0021 demoted pid to a bind-time seed hint (re-anchoring truth there reverses the design); every pre-existing record keeps the old CLI pid so readers need the scoped discipline anyway (migration hole); blast radius (every rec.pid consumer + KH 2.5 external-perch probe semantics) buys nothing the reader-side fix doesn't. CLASS rule: any newly sighted rec.pid-alive-gating reader gets the same scoped fix and EXTENDS this requirement's evidence — no new REQ per reader.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2338379Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2338512Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2338626Z ### REQ-SOFT-END-PRESERVES-LIVE-LISTENER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2343990Z - Title: F-2 (REMOTE-TRUTH triage §F-2, field-repro'd hall-bf 2026-07-04): a /clear must not sever a SURVIVING poll listener's relay address — post-clear owl-path send hit NO_PERCH while ready was present and the inject path healthy. ROOT (source-certain): the relay registry row (id→addr + owning pid, registered by the LISTENER process itself at PollListener::bind, listener.rs:109) is DELETED by the adapter's soft `api session-end` (reporting.rs:231) fired for the DEPARTING session at /clear; but the poll listener SURVIVES /clear (a session-independent process, still bound on its port), so the deletion destroys a TRUE row. The C-2 boundary re-stamp (REQ-HAZARD-BOUNDARY-READY-STRAND) restores ready + status online but CANNOT re-register — only the listener process knows its socket addr — so every subsequent send lookup misses → NO_PERCH forever (until a listener restart re-binds). FIX: the SOFT arm of cmd_session_end unregisters CONDITIONALLY through the single liveness resolver (liveness::is_registry_entry_alive — the KH 2.5-aware resolver clean_stale_entries routes through): a row whose owner is still ALIVE is PRESERVED (the row is LISTENER-scoped truth, not session-scoped; the listener outliving /clear is the designed shape), a dead/offline row is removed (today's cleanup kept). The ERASE arm stays unconditional (a hard wipe orphans any listener; its row dies with the endpoint). Every legitimate teardown keeps its OWN unregister untouched: PollListener close/close_busy/Drop (listener.rs) and the stop verbs (cli.rs:5574/:10924). Defense-in-depth unchanged: a wrongly-preserved dead row still self-heals at delivery (deliver.rs failed-dial sweep, REQ-HAZARD-REGISTRY-STALE-CLEAN). Red-first: soft session-end with a live registered owner → row survives and lookup still resolves (pre-fix: deleted → NO_PERCH).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2348619Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2348766Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2348862Z ### REQ-PUBLIC-ERROR-SURFACES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2356421Z - Title: F-1 (REMOTE-TRUTH triage §F-1, Q4 UX rule, operator-ruled): CLI stderr a non-developer can hit names the OBSERVABLE SITUATION + the NEXT ACTION — never journal/op/brain/store lingo. The sweep's named offenders: (1) `RC_FAIL:{id}: … brain IPC read deadline elapsed` — the brain transport error surfaced RAW through rc's residual Err arm (rc.rs run_attach_inner); operators read 'brain IPC' where the situation is 'the daemon didn't answer in time'. (2) `WOKE_FAIL:{id}: info.json absent or unreadable — not a hosted perch` (resting.rs apply_event miss) — store-file lingo in the one rest-verb line a stale remote row still surfaces cross-node (the qualified-arm D6 case; the A-3 bare-id local path already routes instead). The miss stays SINGLE-SOURCED from NOT_A_HOSTED_PERCH_MARKER (in-process discriminant, resting.rs — reword is compat-safe per its own doc; the drift-pin unit keeps builder+matcher fused). (3) translation_fault never human-rendered (F-030 post-release seed): a broker-stamped input-translation fault (e.g. 'inject worker panicked') was invisible in `endpoint list`/`whoami` while keystrokes silently degraded — rendered now as a SELF-pin annotation exactly like the psyche_host_error pattern (REQ-HAZARD-LIVEHOST-BOOT-RACE), human line + additive skip-if-none JSON field. (4) host_error never human-rendered (A-2 addendum item 2, the half e7c49e2 deferred to this sweep): the daemon's host-level failure REPORT (REQ-WAKE-RESUME-LEG — e.g. a wake-resume refused because the recorded session adapter is not registered) was written to info.json and surfaced ONLY on `spt endpoint wake`'s accepted-not-bound print, so an operator who ran `spt endpoint list` instead saw an endpoint that simply never came back with no stated reason. Rendered now as the THIRD field of the one render pass beside psyche_host_error + translation_fault (`host: FAILED — the daemon could not host or resume this endpoint (<reason>)`), the stored reason carrying its own next action rather than a second one bolted on, plus additive skip-if-none JSON on the two LOCAL DTOs (SelfPinJson + LocalPerchJson). LOCAL-ONLY by the ruled LocalPerchJson `activity` class (doyle 2026-07-30): host_error is a local perch fact read from info.json, so a gossiped remote row OMITS the key rather than guessing and wire carriage waits for a consumer that actually asks — EndpointRowJson (the WAN projection) is deliberately untouched. Kin to banked patterns: public --help no internal codes; 'Updated' not 'trial'. The A-4b retry terminal + B-3 give-up line + A-3 routing strings shipped F-1-clean already — this REQ sweeps the stragglers and is the home for future sightings (extend, don't multiply).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2363209Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2363353Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2363461Z ### REQ-WORKER-SID-SYMMETRIC-AUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2366257Z - Title: W-2 (WORKER-TRUTH triage, operator-ruled 2026-07-06): worker verbs go sid-symmetric with every sibling id-scoped verb — worker-start mints NO token and worker-stop takes NONE (token custody is undue adapter burden, ruling via perri). Registration STORES the sid it authenticated (the parent's sid at start; today cmd_worker_start hardcodes session_id="" — worker.rs:44 — so a sid-authed stop compares against empty and refuses 100%). Stop accepts the parent's CURRENT sid OR the stored registration sid (a /clear between start and stop rotates the parent's sid; either rotation endpoint is honest custody — the REQ-PSYCHE-SID-CUSTODY rotation reasoning). Under the ruling the field adapter's existing emission (worker-stop <id> --session-id <parent sid>) becomes contract-correct as-is. Publish the frozen verb shape to the docs-site with the landing wave (perri blind-builds from published docs).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2368625Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2368792Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2368885Z ### REQ-WORKER-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2371671Z - Title: W-3 (WORKER-TRUTH triage): worker records must not persist indefinitely past their useful life — 6 dead-pid workers leaked OFFLINE on flynn (kill-paths where SubagentStop never fires: parent killed, abort, timeout). The stored rec.pid is the ephemeral worker-start hook process (dead by design — the REQ-HAZARD-DEAD-REC-PID class; NEVER an alive-gate signal). Honest reap signals: (a) parent-session lifecycle — reap the parent's soft-stopped + orphaned workers at parent session-end/boundary and on parent-death detection (a worker cannot outlive its parent's live session); (b) a generous TTL floor since `created` as belt-and-braces. Soft-stop preservation semantics (REQ-HAZARD-SOFT-CLEANUP: results drain before reap) stay honored — reap after drain-or-expiry, never mid-flight hard-delete (cascade-wipe guard rationale stands). Sister shape: claude_skill_owl doctor D-21 orphan-worker GC.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2374026Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2374178Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2374289Z ### REQ-WORKER-LIST-VISIBILITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2376200Z - Title: V-1 (WORKER-TRUTH triage, operator rider): worker perches leave the DEFAULT `spt endpoint list` view — they are process-local machinery, not subnet citizens; leaked-or-live worker rows rendering as permanent OFFLINE endpoints is the operator-visible symptom root. A dedicated flag (--workers) reveals them (one command + flag per the --all/--detail precedent, NOT a separate list-working command — sister divergence deliberate). Applies to the human render, --json (additive default-absent filter), and the registry/projection legs; verify-and-stop any worker gossip into the subnet registry as peer endpoints.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2377866Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2378009Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2378104Z ### REQ-WORKER-PICKER-EXCLUDED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2379403Z - Title: V-2 (WORKER-TRUTH triage, operator rider): non-drivable endpoint classes never render as picker rows — a worker perch cannot be driven, instantiated, or controlled; offering it is a lie the picker then fails on. Filter endpoint_type worker (and the psyche class if it ever surfaces — same non-drivable family) at every picker source leg, extend-not-multiply for future non-drivable classes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2380513Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2380652Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2380747Z ### REQ-WORKER-MINTED-NAME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2382393Z - Title: N-1 (WORKER-TRUTH triage, operator rider): worker perch identity is CORE-MINTED and parent-derived — `{parent}-w{N}` with a per-parent counter at registration (sister shape: claude_skill_owl hook_subagent_start.rs) — never the adapter-presented agent id (CC Task ids render as random-named rows). worker-start mints + echoes the id (WORKER_STARTED:{parent}-w{N}); the adapter's agent_id/agent_type ride the record as correlation METADATA, not identity. Verb-shape contract change — freeze with W-2 in ONE coordination with perri.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2383986Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2384159Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2384266Z ### REQ-ADAPTER-TEMPLATE-KEY-VALIDATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2386497Z - Title: P-1 core half (WORKER-TRUTH triage): `adapter add`/`adapter update` validate every declared role template — command, cwd, and [env] inject values — against the substitution-key catalog (spt-runtime BASE_KEYS + role-specific overrides) and REFUSE registration naming the offending key + role (fail-fast family of the [strings] pointer validation). Field driver: flynn's psyche died on the RETIRED {psyche_dir} key (adapter psyche_resume carried the old psyche_init cwd shape) — a permanent template config fault must die loudly at registration, not at the Nth per-event psyche turn via the 3-strike budget. The catalog stays the single source (runtime.rs FILL_KEYS — 'a catalog key must have a real fill'); validation reads it, never a second list.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2388440Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2388588Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2388692Z ### REQ-PSYCHE-SPAWN-ENV-PARITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2392147Z - Title: P-2 (WORKER-TRUTH triage addendum, perri-filed field finding 2026-07-06): the per-event psyche_resume spawn threads the perch record's CAPTURED read_env stamps into the spawn ENVIRONMENT — the F-027 Half-B env-parity contract (BINDING, design-frozen: read_env captured at creation + stamped on the record + threaded IDENTICALLY to every session spawn; the spawn never reads its own process env for a stamped var) extended to the psyche role the design predates. Field driver: flynn (claude-spt:ccs) — the ccs wrapper relocates the account root via CLAUDE_CONFIG_DIR at PARENT launch and the perch record correctly captured it, but the daemon spawns psyche_resume with bare env → default ~/.claude root → headless 'Not logged in' exit-1 → strike loop; psyche + parent land in DIFFERENT account roots (auth AND root-scoped continuity both break). Core stays harness-agnostic (threads whatever [env] direction=read captured — knows nothing of CLAUDE_CONFIG_DIR). Scope note: this is the URGENT psyche leg of F-027 Half B; the full pre_spawn seam + endpoint-session env threading stays design-parked (F-027-ENDPOINT-SPAWN-FAIL-DESIGN.md) unless operator pulls it forward.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2395250Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2395404Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2395507Z ### REQ-PAIR-NTP-MULTIHOME
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2398141Z - Title: W1/D1 (JOIN-TRUTH): the ceremony NTP query reaches a server on EITHER IP family — `query_unix_secs` (ntp.rs) must iterate every address `to_socket_addrs()` resolves (not just the first) and bind a socket of the matching family per candidate (IPv4 addr → bind 0.0.0.0:0; IPv6 addr → bind [::]:0), first successful answer wins. ROOT (proven 3/3-FAIL via our exact code on enlyzeam): today `UdpSocket::bind(("0.0.0.0",0))` is v4-only and `send_to(&packet, server)` sends ONLY to the FIRST resolved addr — time.google.com resolves 4×AAAA before any A on a v6-first dual-stack box → the primary server is PERMANENTLY unreachable via our code (w32tm reaches it over v6), silently halving NTP redundancy (pool.ntp.org v4 carried everything; a DNS rotation making BOTH v6-first would zero it). Fix keeps the lazy-cache/TTL/fallback contract of REQ-PAIR-8 unchanged — only the socket/resolve leg changes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2400448Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2400603Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2400703Z ### REQ-PAIR-NTP-LOUD-FAIL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2403025Z - Title: W1/D2 (JOIN-TRUTH): total NTP failure (no server on any family answered) is LOUD, not silent — a node running the ceremony on its raw skewed system clock must be visible. ROOT: current_offset_secs (ntp.rs) does `query_offset_secs().unwrap_or(0)` and eprintln's ONLY on a nonzero success, so an all-servers-unreachable refresh is indistinguishable from 'clock agrees'. Fix: log the TRANSITION into all-servers-failed once per refresh (suggested `NTP_TOTP_UNCORRECTED: all NTP servers unreachable — ceremony clock = raw system clock`) and the recovery transition back to corrected; the OFFSET_TTL already bounds refresh cadence so no per-call spam. Fallback behavior (offset 0 → system clock) is UNCHANGED — this adds observability only.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2405010Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2405158Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2405259Z ### REQ-HAZARD-CEREMONY-CLOCK-STEP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2408050Z - Title: W1/D3 (JOIN-TRUTH, KNOWN-HAZARDS): the cached ceremony offset goes stale-WRONG when the OS clock STEPS under a live daemon — an offset measured against the OLD clock keeps applying for up to the 15-min TTL. Field-proven timeline (enlyzeam): refresh cadence 15:08/15:23/15:38/15:53; operator `w32tm /resync` stepped the clock −210s at 15:45:46; every `subnet join` returned NO_SEED_HOLDER until a daemon bounce forced a fresh query. Fix: the cache snapshot stores an (Instant, SystemTime) PAIR; on read, if |wall-elapsed − mono-elapsed| > ~2s the clock stepped ⇒ force an immediate refresh (offset recomputed against the new clock). PLUS: `meet_seed_holder` (pairhost.rs), on search-deadline exhaustion, forces ONE fresh NTP refresh + one final sweep before returning NO_SEED_HOLDER — so a stepped-clock join self-heals without a bounce. Clock reads must be seam-injectable for the hazard unit (inject the (mono,wall) pair — do NOT sleep 15 min).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2410551Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2410696Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2410790Z ### REQ-JOIN-VERBOSE-CLOCK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2412905Z - Title: W2/D4 (JOIN-TRUTH): the JOINER side is no longer blind to its own ceremony clock — `spt subnet join --verbose` prints the joiner's derived TOTP step, the applied offset seconds, and the NTP correction state (corrected / uncorrected) per meet sweep; the same triple folds into `meet_failure_detail` so the NO_SEED_HOLDER verbose block carries it. ROOT: diagnosing enlyzeam required shipping a compiled probe over ssh because the member logs PAIR_MEET_UP step=N but the joiner surfaces nothing about its OWN step/offset — the exact asymmetry that hid D1-D3. Extends REQ-JOIN-DIAGNOSTICS's --verbose without a new knob. CLI help changes → xtask docs gen, no internal REQ codes in clap /// (docs-token gate).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2414736Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2414884Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2414979Z ### REQ-JOIN-DEFERRED-ELEVATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2418036Z - Title: W2 (JOIN-TRUTH, operator UX ruling verbatim): 'if --code was not supplied, don't spawn the elevated subnet-join window until a target machine is discovered → just in time for the code prompt.' When --code is ABSENT and the process is UNELEVATED, run the name prompt + ALREADY_MEMBER check + ensure_daemon + the MEET phase (brain.pair_meet) UNELEVATED; only on MetMember spawn the elevated window via the EXISTING try_auto_elevate machinery (the elevated re-run re-executes the join flow — its second meet is cheap, the member is proven present). A FAILED search must NEVER show a UAC/sudo/pkexec prompt. The --code path is UNCHANGED (gate-first, one-shot). The unelevated phase performs ZERO trust mutation — meet is pre-trust per REQ-JOIN-TWO-PHASE/ADR-0030. RULED OUT (doyle): cross-elevation hold-session adoption (passing the daemon-held pair session_id into the elevated process) — a new security seam we don't need; the elevated re-run re-meets instead. The elevation gate MOVES from command-entry to the enrollment boundary; discovery is read-only pre-trust.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2420869Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2421078Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2421174Z ### REQ-ECHO-IDLE-AGE-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2426327Z - Title: THE ECHO GATE SPLITS BY ARM INTO TWO SENTINEL FILES, AND ONLY THE WORK-DRIVEN ONE IS AGE-GATED (releases#113 fork 1, re-ruled 2026-08-30 on a corrected premise). MEASURED FIRST, AND THE MEASUREMENT INVERTED THE TICKET: the W0 report recorded the gate as armed by TRANSITION EDGES ONLY (arm_transition_echo) and concluded that an agent working for hours without a transition edge never echoes. FALSE -- cmd_state's idle arm (api/delivery.rs) writes the same sentinel UNCONDITIONALLY unless --no-gate, and that is published contract (harness-contract api.md: reporting idle also arms the echo gate). `api state idle` IS the turn-end report, so a working agent arms at EVERY turn end and the pulse loop fires within one period. spt-core was never missing the work-driven trigger; it was missing the AGE GATE. THE RULED SHAPE IS TWO FILES, NOT A CARRIER INSIDE ONE: (a) the EDGE sentinel, written by arm_transition_echo, fires UNGATED as today -- detach / attention-shift / suspend are rare and attention-correctness wants timeliness, and gating them would drop exactly the fire that matters at detachment risk; legacy supports the split, its boundary and session-edge fires were not age-gated either. (b) the IDLE sentinel, written by the idle arm, fires only at AGE >= 15 MINUTES, carrying the three legacy mechanics: a fresh sentinel answers SkipSentinelFresh{remaining} and the caller schedules a SHORT NEXT PULSE to wake near the crossing (this file only); age reads BIRTHTIME with an MTIME FALLBACK and the degradation is DECLARED rather than silent (birthtime = oldest un-fired turn end, mtime = most recent); and a metadata failure or clock skew FAILS OPEN -- it FIRES. Two files rather than one carrier is the property: an idle write can never overwrite an armed edge (no last-writer-wins downgrade), each file has one writer class, read-and-clear stays per-file, and the fire-time distinction is STRUCTURAL rather than parsed out of a byte someone has to remember to write. THE ARMING CONTRACT IS UNCHANGED and the docs sentence stays true -- reporting idle still arms; what acquires the age discipline is the FIRE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2431623Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2431778Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2431891Z ### REQ-ECHO-BOUNDARY-INPUT-BEFORE-ROTATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2436362Z - Title: A SESSION BOUNDARY FIRES AN ECHO WHOSE INPUT IS CAPTURED BEFORE THE SESSION ID ROTATES (releases#113 fork 3, ruled 2026-08-30 off the measurement it ordered). MEASURED at 343df76e: spt-core caught NO delta at a boundary, on three independent arms. (1) cmd_boundary fires no echo and arms no gate -- it rotates the sid, carries an engine-room empowerment, re-stamps ready, appends the session ledger, publishes one IO boundary event, nudges the project index and resurfaces notifs; the three production fire_echo triggers are pulse, rest-transition and signoff, and a boundary is none of them, nor does the departing session's soft api session-end fire one. (2) Even a fire placed after a boundary could not SEE the departing work: fire_echo feeds history(session_id) resolved through the CURRENT sid, and [history] resolves a single {session_id} file -- ADR-0019 states that property in as many words -- so the input after a rotation is the new, empty session. Session-spanning exists in this codebase but belongs to the DIGEST (ledger + last-K, REQ-TERM-6); the echo does not read it. (3) No last-echo watermark exists anywhere (zero hits across crates/), so the delta since the last echo is not a quantity spt-core holds. THE CONSTRAINT IS INPUT-BEFORE-ROTATION, and the shape delivering it (fire pre-rotation, or snapshot the input then rotate) is the implementer's. NO WATERMARK THIS PHASE, ruled: the whole current-session input stands -- it is a SUPERSET of the delta and the Psyche ingest consumes communes as content-deltas anyway; delta-since-last-echo semantics would be its own request. The boundary echo must not be able to FAIL the boundary: the harness has already rotated by the time core is told, so an echo problem is loud and best-effort, never a refusal that desyncs spt's record from the reality it describes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2441102Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2441249Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2441349Z ### REQ-ECHO-DROP-DIR-RESOLVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2444193Z - Title: W1 (LIFECYCLE-TRUTH): fire_echo resolves the manifest commune_dir through the SAME resolver its siblings use before any write. ROOT (pinned): fire_echo (spt-daemon lifecycle.rs:790) passes the RAW manifest commune_dir into run_echo_commune -> echo.rs:115-117 create_dir_all+join; a relative `.claude` under the WMI-launched daemon's System32 cwd = os error 5 deterministic (two live psyches stamped FAILED on it). Siblings already resolve correctly (ingest ~:583, psyche_drop_file :1072 via resolve_endpoint_drop_dir(raw, cwd)). FIX: fire_echo routes through resolve_endpoint_drop_dir; relative-with-no-cwd = SKIP LOUD (stderr), never a raw relative write — kills the latent-worse variant where a writable daemon cwd writes the drop to a WRONG dir silently (echo communes lost, no error). Hardening riders (same touch, no separate REQ): bounded EACCES retry on the drop write; echo claude spawn gets explicit cwd = endpoint cwd (perri ask).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2446631Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2446774Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2446879Z ### REQ-ECHO-BRIEF-DIRECT-ROUTE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2452500Z - Title: THE ECHO-COMMUNE BRIEF ROUTES STRAIGHT FROM THE SUMMARIZER INTO THE TWO-TIER STORE AND NEVER TRANSITS THE AGENT `<id>-commune.md` DROP PATH (operator-ruled 2026-09-06, releases#276). MEASURED BEFORE THE RULING, on doyle own funnel: every `/clear` that hour was followed by an echo frame 25-45s later, landing exactly in the window where an unread Self drop sits, and 2 of 3 Self communes were lost -- the reborn session reported its own wake text as stale. WHY THIS IS A DESIGN GAP AND NOT A RACE TO PATCH: CONTEXT.md:208 names the drop as the AGENT channel and KNOWN-HAZARDS 6.4 names ONE writer on that path plus the daemon as sole deleter; echo.rs read `the mind` as the Psyche and forgot the Self, while docs/CONTEXT-MEMORY.md:25-33 states the Self DOES write that path at a boundary and that the Self signal is the STRONG live-context signal. So the echo -- weak, project-primary, live-conservative -- overwrote the strong Self capture: the exact inversion of the tiering the provenance asymmetry exists to protect. Nothing in the design ever required the brief to transit a file; the file was an implementation convenience that re-used the ingest. THE SHAPE: `run_echo_commune` loses `commune_dir` and returns the provenance-stamped body; the body-to-tiers core of `ingest_drops` is factored into ONE shared `ingest_body` so two callers cannot fork a later tiering change; `fire_echo` calls it, publishes the COMMUNE io-event carrying verbatim what ENTERED the tier (echo header first), consumes the releases#96 intent marker at THAT line rather than at the pulse file sweep, and strikes HARD on a route error through the existing EchoError classification. BEHAVIOUR CHANGE THAT MUST BE STATED IN THE PR: an adapter declaring `[session.echo_commune]` with NO `commune_dir` now echoes, where it used to no-op. Gate: doc -- the harness-contract echo-commune page rewritten to state the direct route, plus the CONTEXT.md:208 and :259 sentences; impl -- echo.rs without the write, ingest.rs `ingest_body`, and the fire_echo route-publish-consume order; unit -- the returned body carries the `Source: echo-commune` header and no drop dir survives in the signature; int -- through a real daemon the COMMUNE io-event appears with that header and NO file appears in `commune_dir`.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2458083Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2458240Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2458361Z ### REQ-HAZARD-ECHO-NEVER-WRITES-AGENT-DROP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2460946Z - Title: KNOWN-HAZARDS 6.12 -- THE ECHO BRIEF NEVER TRANSITS THE AGENT DROP PATH. FAILURE (field, 2026-09-06, releases#276): spt-core wrote its echo-commune brief to `<id>-commune.md`, the SAME path an agent writes its own boundary commune to, with no arbitration between the two writers -- so a Self commune authored at a `/clear` and not yet ingested was overwritten UNREAD by the boundary echo firing 25-45s later. Two of three Self communes lost inside one hour on one endpoint. INVARIANT: exactly one writer on the Self drop path -- the agent -- and the echo brief routes direct into the tiers. SPT-CORE MAPPING: `fire_echo` calls `ingest_body`; nothing writes a drop, on any arm. THE TEST IS A BYTE-IDENTITY PIN, NOT AN EXISTENCE CHECK: a pre-placed authored drop carrying Self bytes must be byte-identical after the fire, which goes RED when the write is restored -- an existence assertion would stay GREEN against an overwrite, which is the very failure this hazard names.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2463371Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2463510Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2463627Z ### REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2468625Z - Title: W1 (LIFECYCLE-TRUTH): EVERY successful psyche operation clears psyche_host_error — not just the pulse-loop leg. ROOT (three field confirmations, perri): the stamp clears only via note_turn_outcome's Ok leg (lifecycle.rs:1101); a SUCCESSFUL psyche op via checkpoint/wake bypasses it -> stale FAILED stamp sits over a healthy psyche. FIX: event turn, checkpoint/wake synthesis, and signoff echo all clear the stamp on success. ~~AMENDED BAROMETER W1 (2026-08-02, doyle-ruled) -- the UNCONDITIONAL clear this requirement asked for is STRUCK, because it makes a per-kind health stamp impossible: with one current-state field, any turn success erased a standing INGEST fault by construction, so a broken ingest was masked within seconds on a 5s pulse.~~ THE AMENDED FORM: a success clears its OWN kind's hard latch, and -- cross-kind -- the shared timeout latch, since any completed spawn is evidence the load window passed; the stamp is then RECOMPOSED from whatever latches still stand rather than written and cleared imperatively. The original defect stays fixed: a success on ANY leg (event turn, transition/checkpoint echo, signoff echo) still reaches the seam, so a stale stamp over a healthy psyche remains impossible -- what changed is that a success no longer clears a fault it knows nothing about. DECLARED LIMIT, deliberately in the requirement rather than left implicit: the latches live in the host's memory, so a DAEMON RESTART forgets them while the on-disk stamp persists, and after a bounce the first success of any kind clears a stamp whose kind is no longer known. That is the pre-existing behaviour surviving across a restart boundary instead of every few seconds; restart-durable per-kind clearing needs the stored stamp to carry its kind and is filed separately.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2473135Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2473282Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2473388Z ### REQ-PSYCHE-ROLE-ABSENT-STATUS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2479735Z - Title: AN UNDECLARED [session.psyche_resume] ROLE IS A SKIP WITH LOUD STATUS AND ZERO STRIKES, NOT A PER-FIRE TURN FAILURE (releases#229, ruled at the SEMAPHORE grill 2026-08-29; premise re-measured at 9ec181e9 before build). THE ASYMMETRY THIS CLOSES, measured: echo_commune absence takes one warn_once and a skip, while psyche_resume absence reached run_bounded_stdin, which answers RuntimeError::UnknownRole -> TurnError::Runtime -> a FAILED turn -> note_outcome(PsycheKind::Turn) -> a strike, ON EVERY FIRE. THE BUDGET IS FOR A DECLARED ROLE THAT FAILS: a role never declared cannot fail, cannot self-heal, and cannot change between fires, so per-fire strikes exhaust a budget built for a different mechanism and surface as psyche_host_error churn. DETECTION IS STRUCTURAL AND THE SKIP IS DECIDED BEFORE THE TURN RUNS, never inside its failure handling — producing no turn outcome at all is the only shape that spends zero strikes. THE STATUS FIELD IS A NEW SIBLING OF THE PSYCHE FIELD FAMILY, NEVER psyche_host_error (gater-ratified): that field is an error latch carrying a reason, a consecutive-attempts count and the fault slots a stamp was composed from, so routing a configuration fact through it would stamp a non-failure, increment an attempts counter on a structural condition, and churn the field an operator reads to find real faults. THE STAMP MEANS FIRST NOTICED, NOT LAST FIRE: re-recording the same role leaves it untouched, because a moving timestamp would present an unchanged fact as a recurring event. IT CLEARS ITSELF: a fire that sees the role declared clears the status, so a fixed endpoint shows clean with no operator gesture — reachable in practice because the tick reloads a swapped manifest before it fires. THE COMMUNE-SYNC LEG STILL FIRES when the psyche role is absent: they are different roles with independent optionality, and coupling them would let one missing role silence the other's work. BOTH POLARITIES ARE TESTED per the issue's ask — absent means loud once, skipped, zero strikes; declared-but-FAILING still strikes exactly as it does today, which is what keeps the first arm from being a blanket suppression.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2485188Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2485347Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2485450Z ### REQ-PSYCHE-ROLE-OPTIONAL-SKIP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2488050Z - Title: W1 (LIFECYCLE-TRUTH): a manifest with NO [session.echo_commune] role SKIPS commune-sync (debug-level note, no strike) instead of hard-failing the turn. ROOT (perri filing, recovered): missing role -> commune-sync hard-fails -> 3-strike stamps the host ('manifest declares no [session.echo_commune] role') while the published contract presents the role as an optional template. FIX: missing OPTIONAL role = skip, not a turn failure. ROLE OPTIONALITY IS NOT UNIFORM, and the distinction is the point (releases#229): echo_commune is an OPTIONAL TEMPLATE by the published contract, so its absence is unremarkable and its note is quiet; psyche_resume is LOAD-BEARING WHEN DECLARED — an endpoint missing it runs no psyche turns at all — so its absence skips just as loudly-once but must also be STATUS-VISIBLE. See REQ-PSYCHE-ROLE-ABSENT-STATUS, which owns that arm.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2490338Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2490487Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2490600Z ### REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2494669Z - Title: W2 (LIFECYCLE-TRUTH, KNOWN-HAZARDS, flagship — the update wedge): PTY viewer fan-out and control mutations must not depend synchronously on a live draining brain. ROOT rig-CONFIRMED (NtSuspendProcess on the brain, no update involved): brain-subscriber session-output writes ride UNDER the per-session log lock (broker.rs:19-20); failed writes are handled (cursor freeze + detach :3486) but BLOCKED writes are not. Suspended brain => within seconds attached rc output freezes; detach does NOT release the control stamp (release routes through the brain); reattach REFUSED (controlled-by); rc --take hangs; daemon status stays healthy. Field: every brain cycle (incl. every update apply) has a freeze window; a stalled/slow-draining new brain = permanent wedge until bounce; brain.ready != subscribers drained. FIX SHAPE (todlando proposes, doyle RULES BEFORE IMPL): subscriber writes move OFF the log lock (bounded/nonblocking, stall => detach-subscriber like viewer eviction — broker already buffers + replays on re-attach, so a detached-stalled brain self-heals by rewind); control stamp release/take completes against the BROKER without brain round-trip (or bounded with loud timeout). doc = KNOWN-HAZARDS entry. Int (tonight's rig, encoded): suspend brain child mid-session -> attached viewer ticks CONTINUE + rc --take completes; resume -> no output lost (cursor replay).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2498205Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2498363Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2498478Z ### REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2500286Z - Title: W3 (LIFECYCLE-TRUTH): daemon restart no longer massacres hosted endpoints — daemon start RE-RUNS previously-online spt-hosted endpoints. ROOT rig-proven: daemon stop+start (the apply notice's OWN instruction) kills every hosted endpoint; they stay OFFLINE after start (no resurrection) though records exist (info.json status + adapter + cwd). SCOPE RULING (doyle): re-run-on-start, marked start-reason=daemon-restart; agents' minds ride psyche re-host as today. Int: endpoint online -> daemon stop -> start -> endpoint back ONLINE, same id, harness respawned.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2501814Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2501967Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2502066Z ### REQ-UPDATE-ONE-SHOT-FINISH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2503823Z - Title: W3 (LIFECYCLE-TRUTH): update apply works daemonless and one command finishes the cycle. ROOT (operator wart): update fetch/apply run ensure_daemon_announced (cli.rs:4386) -> on a stopped box they BOOT THE OLD broker pre-swap, guaranteeing the mixed old-broker/new-brain pair + a manual bounce. FIX: apply works daemonless (swap + record, next start runs new bytes); `update apply --finish` (name subject to docs-token gate) completes the cycle: swap -> brain cycle -> broker restart onto new bytes (rides REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL so the restart is not a massacre). CLI change -> xtask docs gen, no internal codes in clap ///.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2505515Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2505688Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2505807Z ### REQ-DAEMON-STOP-LIVE-SESSION-WARN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2506405Z - Title: W3 (LIFECYCLE-TRUTH, promoted old follow-wave seed): `daemon stop` with live hosted sessions warns + requires --force (or names the sessions it will kill) instead of silently killing them.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2507001Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2507144Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2507238Z ### REQ-RC-RECONNECT-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2509080Z - Title: W3 (LIFECYCLE-TRUTH): rc reconnect never auto-starts a daemon and never hangs forever. ROOTS rig-proven (the operator's long-standing 'stop 2-4 times' bug): (a) an rc client's reconnect loop AUTO-LAUNCHES a daemon via WMI (rig: DAEMON_LAUNCH_VIA_WMI from the rc) — resurrection fights the operator's stops; (b) rc freezes at 'Reconnecting to local daemon…' forever when its session died with the broker. FIX: rc NEVER auto-starts a daemon (reconnect only to an already-up broker; loud 'session lost — daemon down' exit otherwise), bounded reconnect with visible countdown.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2510606Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2510763Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2510860Z ### REQ-DAEMON-STDERR-PERSIST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2512188Z - Title: W3 (LIFECYCLE-TRUTH, observability): broker + brain stderr tee to a rotating size-capped file under SPT_HOME (e.g. 2x5MB), stamped per generation. ROOT: detached daemon nulls stdio -> the 2026-07-06/07 incident window left ZERO logs (both RCAs ran blind; rigs had to recreate everything). KNOWN-HAZARDS note: never inherit handles (REQ-HAZARD-DETACHED-DAEMON-STDIO) — open the file in-process, don't pipe.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2513308Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2513448Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2513552Z ### REQ-UPDATE-PROMOTE-DRAINED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2517046Z - Title: W3 (LIFECYCLE-TRUTH, mechanic-d MOVED FROM W2 per doyle gate verdict @e5ae7a9 — binding): the update-apply brain-generation promotion completes only when the OLD generation's broker subscriber connection is CLOSED or stall-EVICTED — never while blocked writes still pend on it. ROOT: `brain.ready` != subscribers drained; W2's stall-evict (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) only BOUNDS the false-promote window to BRAIN_WRITE_DEADLINE (15s), it does NOT close it — a new brain can signal ready inside that window while the old gen's conn is still wedged, so the apply 'promotes' onto a still-frozen control plane (the 22:47 incident-night false-promote). FIX: the promotion gate (ADR-0018 brain-trial, brainproc.rs) adds an explicit DRAINED precondition — promote only on ready AND old-gen-subscriber-drained (conn closed OR stall-evicted); the drained signal reads broker truth (the W2 stall-evict tally / the old conn's liveness), no brain round-trip. The residual W2 left open, now closed. Int = a FALSE-PROMOTE rig that exercises the promotion path itself: an old-gen subscriber conn held wedged past ready must NOT promote until it drains (RED-first: ready-alone promotes).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2520350Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2520504Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2520608Z ### REQ-UPDATE-TRIAL-DRAIN-DRIVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2531492Z - Title: UPDATE-WEDGE (counter-54, doyle-ruled 2026-07-09 — regression of the v0.29.0 seamless brain-swap): a brain generation DRIVES the broker's controller-liveness reap (a KIND_SESSIONS poll) each heartbeat throughout its boot/trial loop, so a hard-KILLED prior generation's black-holed LOCAL controller conn (by:None) is stall-evicted within the trial window and can never permanently strand the promotion DRAINED gate. ROOT (2026-07-09 field freeze, `spt update fetch --apply` v0.30.0->v0.30.2 froze all 7 live PTYs ~30s then rolled back): the promote gate (run_trial, brainproc.rs:657-661) needs BOTH `ready_generation==gen` AND `old_gen_drained()`; `old_gen_drained()` = `!any_local_controller_wedged()` (brainproc.rs:534) is a PURE READ of `write_blocked_since` (broker.rs:2703) — it never DRIVES the evict. The evict (`stall_evict_controller`, broker.rs:1039, same 15s `brain_write_deadline` the wedge-read uses) only runs via `reap_dead_controller` (broker.rs:967, severed->drop ELSE stall-evict) inside the KIND_SESSIONS snapshot closure (broker.rs:2879). During the isolated brain-trial window NOTHING polls KIND_SESSIONS: the old brain was hard-killed (`child.kill()`, brainproc.rs:851) so its local controller conn black-holes (live PTYs keep writing to a dead Windows named pipe -> writer BLOCKS, never EOFs) -> `write_blocked_since=Some` -> wedged=true for the full 30s -> gate false -> `WindowElapsedAlive` -> kill+rollback. The candidate DID reach ready (write_ready, brainproc.rs:211, runs before the loop; the v53 log's NET_FAMILY_GATE/PAIR_MEET_UP prove the loop was entered) — so `BRAIN_TRIAL_TIMEOUT: candidate alive but never ready` is the MISLEADING ready-stamped-but-never-DRAINED case, NOT a resume_sessions hang. SECOND LEG (recovery): post-rollback the gen-2 brain's KIND_SESSIONS poll finally reaps -> `BRAIN_SUBSCRIBER_STALL_EVICT:1` fires >15s late -> a session stayed black-holed through recovery -> continued freeze. ONE root, BOTH legs. FIX (BRAIN-SIDE, self-applying — doyle ruled brain-side to AVOID a broker-side coordinated-restart flag): the boot/trial heartbeat loop (brainproc.rs run_brain, currently only `net_status` at :244) also issues `Brain::sessions()` (KIND_SESSIONS, brain.rs:1397 — already exists) every heartbeat, driving the LIVE older broker's ALREADY-SHIPPED reap (>=v0.29.0 LIFECYCLE-TRUTH; the field-stuck broker is v0.30.0 so it HAS it). The old-gen wedged conn is stall-evicted ~15s < the 30s window -> `old_gen_drained()` flips true -> PROMOTE; the same poll on the rollback/recovery brain reaps promptly -> no >15s black-hole -> kills the STALL_EVICT recovery leg. Drive it on the FIRST heartbeat (no one-tick wait) and on BOTH the trial candidate AND the recovery brain (one loop covers both). SELF-APPLIES because it drives the current broker's existing reap verb — v54's brain fixes the v0.30.0->v54 update with NO coordinated broker restart. Forward-compat: brokers <v0.29.0 have neither the DRAINED gate nor the reap, so older-broker updates never hit this path — no regression. Composes with REQ-UPDATE-PROMOTE-DRAINED (the gate this un-strands) + REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict it drives) + REQ-CONTROLLER-LIVENESS-REAP (the reap verb). Int = the brain-swap-under-live-sessions rig: (1) with a hard-killed prior gen holding a wedged by:None controller past 15s, the new brain PROMOTES within the window AND sessions stay served across the cycle (RED-first: without the drive, WindowElapsedAlive->rollback); (2) a deliberately-failing trial auto-rolls-back AND the restored brain re-drives EVERY session with NO BRAIN_SUBSCRIBER_STALL_EVICT.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2540334Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2540531Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2540647Z ### REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2546712Z - Title: SEED (DEFERRED, doyle 2026-07-09 — post-counter-54 root-hardening for UPDATE-WEDGE; mint now, impl a FUTURE milestone): on a PLANNED brain-restart (`BRAIN_UPDATE_RESTART`, the seamless update-apply brain-cycle), the outgoing brain's LOCAL (by:None) controller conns are GRACEFULLY CLEAN-CLOSED as the brain is cycled, instead of hard-killed and left to black-hole. ROOT (field-pinned 2026-07-09, daemon.stderr.log L24277-24303): the update-restart path hard-kills the outgoing brain (`child.kill()`, brainproc.rs:851); its live-agent controller conns then block on dead pipes (never EOF) → the broker reads them WEDGED (broker.rs:2695-2700) → the new candidate's promotion DRAINED gate (`any_local_controller_wedged`, broker.rs:2704) stays true until the W2 stall-evict matures (~15s). REQ-UPDATE-TRIAL-DRAIN-DRIVE (counter-54) makes the candidate DRIVE that reap so it promotes within the 30s window — but at a ~15s wedge-maturity hitch (frozen PTYs during the swap). A CLEAN close makes the conn 'simply absent → drained=false AT ONCE → fast promote' (broker.rs:2699-2700), ELIMINATING the hitch = truly seamless (honors the paradigm the field freeze broke). SUPERSEDES the earlier livehost-reattach framing of 'Fix Y': livehost is SPAWN-FRESH (fresh session uuid/pid per boot, nothing to re-attach — wrong site, and it never ran in the trial window); the correct site is the brain-cycle / update-restart path (a bounded graceful-drain of the outgoing brain BEFORE the kill). Non-trivial: hard-kill → bounded graceful drain; a drain that hangs must NOT wedge the swap (timeout then kill anyway, never block the update). Composes with REQ-UPDATE-TRIAL-DRAIN-DRIVE (defense-in-depth reap-drive REMAINS for any conn that still black-holes — a peer/relay conn, a drain-timeout kill) + REQ-UPDATE-PROMOTE-DRAINED (the gate) + REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict). Int: a planned update-restart under a live-agent controller conn → the new candidate promotes WITHOUT waiting the ~15s wedge-maturity (drained reads false immediately, no STALL_EVICT), RED-first vs the current hard-kill-then-reap-drive ~15s hitch.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2552030Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2552151Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2552270Z ### REQ-LIVEHOST-RECONCILE-TRIAL-SILENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2557095Z - Title: SEED (DEFERRED investigation, doyle 2026-07-09 — UPDATE-WEDGE follow-up): determine WHY the trial/rollback brain's livehost reconcile loop did NOT drive the broker controller-reap (nor re-host the live agents) during the ~30s field update-trial window, when livehost polls `query_live_session_endpoints()` → `brain.sessions()` (KIND_SESSIONS) UNCONDITIONALLY every `LIVE_RECONCILE_INTERVAL_MS`=5000ms (livehost.rs:1026). CONTEXT (surfaced building the counter-54 rig): livehost's 5s KIND_SESSIONS poll drives the SAME broker `reap_dead_controller` sweep the fix drives — so it would otherwise reap the 15s-matured wedge by ~T20 < the 30s trial and SELF-HEAL. It didn't (field froze 30s → rollback), so the field trial-brain livehost was silent/delayed (PIN Q2: no `DAEMON_RESTART_RESUME` under gen-1/gen-2; the 30s kill landed before/around livehost's first reconcile tick). The counter-54 fix (REQ-UPDATE-TRIAL-DRAIN-DRIVE) puts a RELIABLE 500ms reap-driver in run_brain's CORE heartbeat loop, making the wedge-reap INDEPENDENT of livehost — so this does NOT block counter-54. But the livehost silence is a latent anomaly with a SECOND consequence: live-agent HARNESS re-hosting was also delayed ~30s (a separate freeze contributor). Investigate: does `spawn_live_host`'s reconcile thread start promptly on a trial-brain boot, or is its first tick delayed past the trial window? Does its brain conn / `query_live_session_endpoints` block against the swap/wedge state? Register concrete REQ(s) once the mechanism is pinned. RELATED: [[REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE]] (if the outgoing brain's black-holed conns perturb the new brain's livehost conn setup).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2561514Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2561637Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2561747Z ### REQ-BRAIN-RESUME-NO-CONTROL-STEAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2572975Z - Title: UPDATE-WEDGE round 2 (v0.30.4, doyle-ruled 2026-07-09 — field incident on the counter-54 fetch--apply): a brain-respawn must NEVER steal, then stall-evict, the controller of a broker PTY session the daemon brain does not DRIVE. ROOT (field-pinned + SME, docs/UPDATE-WEDGE-2-RCA.md + docs/UPDATE-WEDGE-2-SME-todlando.md): `resume_sessions` (brain.rs:985) re-attaches EVERY session `KIND_SESSIONS` returns via `subscribe` = `subscribe_with(AttachIntent::Control, by:None)` (brain.rs:1450-1455). The docstring's 'a None identity never displaces (falls back to viewer)' is a MYTH for FREE / SAME-LOCAL-IDENTITY slots: `resolve_subscribe` (broker.rs:1134-1153) stall-evicts FIRST, then `become_controller` if the slot is now free OR the incumbent is also local (None==None) — viewer-fallback fires ONLY when a DIFFERENT REMOTE controls. So on a box with N spt-hosted broker PTYs, a brain-respawn STEALS the by:None controller of every free/local-controlled session (incl. the operator's LOCAL `spt rc`), which the daemon brain never drains (it hosts no PTY sessions — brainproc.rs:184) → 15s later `stall_evict_controller` (broker.rs:1039) releases driven_by → the session is UNCONTROLLABLE (Failure A). It also head-of-line-blocks the shared brain↔broker conn on the N-session controller-replay burst → every journaled `spt rc` retake deadlines ('brain IPC read deadline', the REQ-BROKER-ATTACH-JOURNAL-RESILIENT / #16 shared-conn symptom) → global rc failure on ALL N (Failure B). Field 2026-07-09 (operator-confirmed): fetch--apply 0.30.2→0.30.3 PROMOTED CLEANLY (the counter-54 fix worked) but under 7 spt-hosted PTYs (ALL with LOCAL by:None controllers) the resume SILENTLY STOLE all 7 (become_controller same-local re-take, NO Displaced notice → orphaned, output froze immediately, no rc-detach splash) + blocked every rc retake. The 5-vs-2 stall-evict split is ACTIVE-vs-IDLE, not remote-vs-local: 5 producing output → stolen writer blocked >15s → stall-evict; 2 idle → writer parked → no evict, but still silently stolen+frozen. The counter-54 promotion fix did NOT cause this — pre-existing resume-steal latent bug, hidden until N broker PTYs were present at a respawn; the single-black-holed-session A'-rig never exercised N-live-controllers-under-replay. FIX (brain-side): `resume_sessions` re-attaches as **Viewer** (`AttachIntent::Viewer`), NOT Control — a viewer never touches driven_by and is never stall-evicted (broker.rs:1063+ bounded try_send + private eviction), so steal-then-drop vanishes and the operator keeps/regains control; and it relieves shared-conn pressure (a slow viewer is DROPPED, never a 15s controller block) so rc retake gets through. Control ONLY for sessions the daemon brain genuinely DRIVES (empty set today → all become Viewer; forward-correct for the live-agent-adapter future). SECONDARY (escalation, ONLY if the gate shows residual B): stagger the resume re-attach + bound the viewer replay so the respawn burst can't saturate the conn. Int = the multi-broker-PTY-session RESPAWN rig (the coverage the A'-rig lacked): N real broker-spawned sessions with controllers producing output → real brain respawn/promote → assert (1) EVERY session keeps its controller across the swap (no stall-evict of a session the brain doesn't drive), (2) `spt rc` attaches/retakes IMMEDIATELY post-promote (no shared-conn saturation), (3) promotion still succeeds. RED-first: the current Control re-attach steals+evicts + deadlines rc. Composes with REQ-UPDATE-TRIAL-DRAIN-DRIVE (the orthogonal counter-54 promote fix), REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict it stops mis-firing on non-driven sessions), REQ-BROKER-ATTACH-JOURNAL-RESILIENT (the #16 shared-conn resilience). Distinct from REQ-BRAIN-UPDATE-RESTART-CLEAN-CLOSE (that = the OLD brain's outgoing black-hole; this = the NEW brain's resume-steal).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2582421Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2582574Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2582676Z ### REQ-BRAIN-RESUME-NO-CONN-DEADLOCK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2593336Z - Title: UPDATE-WEDGE round 3 (v0.30.5, doyle-ruled Option A 2026-07-09 — the v0.30.4 field-verify re-wedge, root code-PROVEN + dead-peer-INDEPENDENT): the daemon brain must NOT subscribe broker PTY sessions onto its own request/reply IPC conn — it has no consumer for that output and the subscription DEADLOCKS the conn. ROOT (todlando code-read, docs/UPDATE-WEDGE-2-ROUND3-CODEREAD.md; the net-runtime AND the counter-54 reap-drive were both FALSIFIED first — docs/UPDATE-WEDGE-2-ROUND3-RIG-VERDICT.md): a conn's send half is a single `SharedSend = Arc<Mutex<SendHalf>>` (broker.rs:78). Subscriber writer threads (`viewer_writer` broker.rs:1333/1342, `controller_writer` :1451) hold `send.lock()` ACROSS a BLOCKING `write_frame`; the dispatch reply path (`send_frame` :4221 → KIND_SESSIONS_REPLY / KIND_NET_STATUS_REPLY) needs the SAME lock. `resume_sessions` (brain.rs:1031→1054) subscribes every session as a Viewer onto the brain's MAIN conn — which is ALSO the brain's request/reply channel. The daemon brain hosts no PTY sessions (brainproc.rs:184) so run_brain never drains that output; it reads the conn only during the 500ms-heartbeat net_status()/sessions() calls (drain-and-DISCARD, `_ => continue`). When an actively-streaming session backs the conn up, a subscriber writer BLOCKS in write_frame holding send.lock() → the dispatch thread can't send the heartbeat reply → net_status()/sessions() never return → the heartbeat loop stalls → the brain never drains → the writer stays blocked = SELF-DEADLOCK on the brain conn's send mutex → every subscriber writer on it wedges → BRAIN_SUBSCRIBER_STALL_EVICT (controller writer blocked >15s). BOTH severities, one mechanism: RESPAWN (resume subscribes N + the replay burst floods the conn before the loop drains) AND STEADY-STATE (an active streamer's output between heartbeats fills the socket buffer). Counter-54 (REQ-UPDATE-TRIAL-DRAIN-DRIVE) added a 2nd per-heartbeat reply round-trip (sessions()) through the contended mutex — WIDENED the window (regression-window-exact), did not create it. The round-2 Viewer fix (REQ-BRAIN-RESUME-NO-CONTROL-STEAL) removed the STEAL but kept the brain a SUBSCRIBER — viewer_writer has the same send.lock()-across-write pattern AND viewers have no stall-evict valve — so v0.30.4 field-verify wedged again. FIX (Option A, brain-side, SEAMLESS): resume_sessions does NOT subscribe (drop the subscribe_with call; §3 verification guard confirmed NO brain consumer — digest/relay/net-consumer/shellwake/presence — reads the resumed subs). The brain conn then carries only request/reply → no subscriber backpressure → no deadlock. Keep the session_cursors seed only if harmless. Rides the brain-swap ⇒ seamless (no daemon.rs:368 broker restart). Option B (a dedicated Split-reader drain of the brain conn, brain.rs:230 — the pump's carrier) is the FORWARD path for when genuinely daemon-DRIVEN sessions land (the live-agent adapter) — deferred, noted, not built. Option C (the broker-side durable CLASS fix) = REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK, deferred. Int = the confirmer rig (brain+broker+PTY, brain_decouple template): N sessions actively producing output, brain resume-subscribed onto its req/reply conn; RED-first = heartbeat stalls + an active-streaming controller stall-evicted >15s WITHOUT any dead peer present (proves dead-peer-independence); assert BOTH severities (respawn interleave + steady-state output backup); Option A turns both green. Composes with REQ-BRAIN-RESUME-NO-CONTROL-STEAL (the round-2 Viewer fix this supersedes as the wedge cure), REQ-UPDATE-TRIAL-DRAIN-DRIVE (the counter-54 reap-drive that widened the window), REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE (the stall-evict it stops triggering).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2602822Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2602971Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2603076Z ### REQ-DIGEST-GENERATION-SUPERSEDE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2610558Z - Title: W3 (LIFECYCLE-TRUTH, digest projection truth — flynn filing spt-mobile d0aa3f4): a one-shot `endpoint digest --json` snapshot must return each logical activity row ONCE across a checkpoint/resume, not once per seq-generation. ROOT (spt-core-side, not a consumer bug): the K-session span (digest.rs activity_spanned, SPAN_SESSIONS=5) runs the [digest] extractor per session file and tags each row seq=(ledger_ordinal<<32)|localseq (REQ-DIGEST-CURSOR). A checkpoint/resume (self-/clear + Psyche rebuild) makes the harness REPLAY the prior generation's transcript into the NEW session file, so the ancestor's rows appear in BOTH the ancestor file AND the resume file at the SAME localseq — the span UNIONS them, one logical row surfacing under two full seqs (gen23,local208) + (gen25,local208), identical text/ts/localseq. Consumers dedup by exact seq (the documented authoritative key) so nothing collapses -> duplicate rows in every snapshot / `--after` view (`--follow from:0` is CLEAN — it reads current-generation only; the SPAN is the sole culprit). The trigger cannot disambiguate: `api boundary clear` records SessionTrigger::Clear for BOTH a fresh /clear (disjoint) and a carry-forward checkpoint (reporting.rs:94) — so a structural skip-ancestor needs new boundary metadata + adapter cooperation, deferred. FIX (doyle ruling — flynn Option 1 Supersede, projection-local, source-independent): within the span, collapse cross-generation replay dupes — an Activity record from an OLDER ordinal is dropped when an identical logical record (role, ts, text, tool) exists under a NEWER ordinal; keep the NEWEST-ordinal occurrence so the surviving seq is the live generation (snapshot + follow agree on seq). Cross-generation ONLY (never dedup within one ordinal — a session cannot replay itself; identical within-gen rows are real). Supersede runs on the raw span items BEFORE the window fold (project_timeline) so window_turns counts real turns, not phantoms; and a boundary divider adjacent to a now-fully-superseded ancestor is not left orphaned. Context entries (REQ-TERM-7, single digest.log) are not per-session-spanned -> untouched. Int = a two-session span rig where session B's extracted lines are a superset replay of A (same ts/text at same localseq) + B's own new tail: RED-first (pre-fix shows every A row twice); post-fix each logical row appears ONCE under B's generation, B's tail intact, the /clear boundary marker preserved when A retains rows.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2616693Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2616846Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2616949Z ### REQ-UPDATE-FINISH-COMMUNE-FLUSH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2621633Z - Title: DEFERRED (post-LIFECYCLE-TRUTH, operator-ruled 2026-07-07 — mint now, impl a FUTURE milestone): make the update swap LOSSLESS for live hosted endpoints by flushing a final echo-commune per endpoint BEFORE the brain-subtree reap. ROOT (operator-surfaced probing --finish): `update apply --finish` = daemonless swap -> daemon RESTART; the graceful `daemon stop` path (daemon.rs:316-325) raises brain_stop then reaper.reap() KILLS the brain subtree (brain + shellwake watchers + detached Psyches) as one unit — there is NO per-endpoint final commune before the kill. ENDPOINT-SURVIVAL (REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL) then RESPAWNS each orphaned online spt-hosted endpoint, but from its LAST commune (whatever the ongoing per-event echo-commune cadence last saved), NOT an as-of-swap checkpoint — so mid-turn / uncommuned work is lost across the bounce. Today's mitigation is operator discipline: commune-before-swap. FIX (future): the stop/finish path, before reap, drives each LIVE hosted endpoint's final echo-commune (fire_echo final context save) so the respawn resumes from a swap-fresh checkpoint. Composes with ENDPOINT-SURVIVAL (commune -> reap -> respawn) and the W1 echo pipeline (REQ-ECHO-DROP-DIR-RESOLVE / REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS). Bounded + loud per endpoint (a commune that hangs must not wedge the stop — timeout then reap anyway, never block the swap). Int: a live hosted endpoint with uncommuned state -> --finish -> respawned endpoint's digest/psyche reflects the pre-swap state (RED-first: without the flush the respawn shows only the last-cadence commune).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2625785Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2625903Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2626009Z ### REQ-SELF-ID-TRUST-INJECTED-ENV
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2631479Z - Title: DEFERRED to a followup vX.X.n sprint (post-LIFECYCLE-TRUTH, operator-ruled 2026-07-07): self-identity resolution must trust the harness-injected authoritative id and detect a stomped perch instead of silently mis-attributing. ROOT (doyle /diagnose 2026-07-07, field: agent sends stamped `cli@HFENDULEAM` / mis-attributed): `resolve_from` (cli.rs:5480) stamps `cli@<node>` when `detect_self_id` (roster.rs:103) returns None; detect_self_id resolves self ONLY by reverse-lookup — matching `$OWL_SESSION_ID` against a perch's info.json.session_id (then SPT_AGENT_ID, then parent_pid) — and IGNORES `SPT_ENDPOINT_ID`, the authoritative self-id the adapter injects (present in-env as SPT_ENDPOINT_ID=<id>). When a perch record is STOMPED (a cross-id info.json overwrite — the REQ-SPAWN-COLLISION-GUARD-LIVE-DUP damage class; field case: doyle's live session_id written into the deployah perch), the reverse-lookup mis-resolves (doyle session -> `deployah`) or fails (real deployah -> None -> `cli@node`), and the CLI silently believes the stomped store. FIX: detect_self_id PREFERS `SPT_ENDPOINT_ID` when set+non-empty (the harness-authoritative id, immune to a stompable perch), AND cross-checks it against the reverse-resolved perch id — a mismatch logs LOUD (a stomped/duplicated perch becomes a self-diagnosing signal, not a silent wrong identity). Bare-CLI (no SPT_ENDPOINT_ID) keeps the reverse-lookup then the `cli@node` fallback. Also reconcile the adapter/core self-id env contract (SPT_ENDPOINT_ID vs SPT_AGENT_ID vs OWL_SESSION_ID — which is canonical). NOTE: W4 REQ-SPAWN-COLLISION-GUARD-LIVE-DUP prevents FUTURE stomps but does not heal existing corruption nor add this resolution-robustness; recovery of a live stomp today is a manual `api boundary clear <id> --to-session-id <sid> --session-id <current>` re-bind (doyle recovered the doyle/deployah cross-wire this way 2026-07-07).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2636249Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2636378Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2636491Z ### REQ-SPAWN-COLLISION-GUARD-LIVE-DUP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2644877Z - Title: W4 (LIFECYCLE-TRUTH): single-flight wake per endpoint — the WAKE/RESUME respawn seam must not launch twice for one wake. ROOT (perri parentage + recovered filing): one wake processed TWICE within 1s — broker (306368) spawned two identical `launch --cli ccs --id flynn --resume <sid>` 1s apart, both survived; check-then-spawn TOCTOU in the spawn-side guard. DAMAGE: duplicate-perch writers STOMP info.json (the duplicate's compact re-stamped an OLD sid over a fresh /clear rotation -> injects routed to the contended record and lost). FIX: single-flight wake per endpoint (claim on the perch record or broker-side in-flight set keyed by id; second wake within the window = no-op ack), and the spawn path re-checks liveness UNDER the claim. Int: two concurrent wake requests -> exactly one launch tree. #235 AMENDMENT (2026-08-29): the claim's stand-down was bounded by a 2s GLOBAL WAIT whose premise -- a spawn overrunning the ceiling is presumed dead and its claim leaked -- is MEASURED FALSE under battery load: the winner's ConPTY create simply runs past 2s, the loser's deadline expires, and the loser DOUBLE-CREATES (REQ-SPAWN-FRESH-TRUTHFUL falsified once at a W2 battery). Extending the clock only moves the window, because a wait bound is a LIVENESS PROXY. The holder is a THREAD IN THIS BROKER, not a process -- it takes the claim and walks the spawn inline stamping a phase at each step -- so the claim's presence already proves an in-flight spawn (the RAII guard releases on success, on an early error, and on a panic) and an existence probe of the holder would be a tautology. The observable is therefore PROGRESS: the claim carries its holder's last phase and the instant it was stamped, written at the breadcrumb sites that already announce each phase, and the gate stands down for as long as the holder keeps progressing -- however slow it is, with NO clock on a live holder. The ONE condition RAII cannot cover, a holder wedged forever inside one phase, is the only takeover: a claim stalled past its phase's wedge ceiling is taken over LOUDLY, the log line naming the phase and the elapsed that decided it. Ceilings are PER-PHASE and err large on the measured-slow phase (the ConPTY create), because taking over a live holder costs the duplicate session this requirement exists to prevent while waiting on it costs only latency; a ceiling is a wedge detector, never a performance budget. EACH CLAIM CARRIES A GENERATION and a guard releases ONLY ITS OWN: a wedged holder that is taken over may still complete and drop later, and a generation-blind release would free the SUCCESSOR's claim mid-spawn, re-opening this very double-create window one wake later. The availability-over-dup tradeoff of the retired arm survives in its honest form -- a taken-over holder that later completes lands in the AlreadyLive dup surface exactly as before, now reached on evidence of a stall instead of on elapsed time.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2652211Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2652369Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2652469Z ### REQ-HAZARD-LISTEN-ORPHAN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2654444Z - Title: W4 (LIFECYCLE-TRUTH, KNOWN-HAZARDS): `api listen --parent-pid N` watches parent liveness and exits loud on parent death. ROOT (mobile-gw RCA): --parent-pid is auth-anchor ONLY — no liveness watch; host death orphans the listener forever -> perch held alive (false ONLINE), EVENTs stream to a dead stdout, dead-owner rebind BLOCKED (recorded pid = the live orphan). FIX: listener watches --parent-pid liveness (Windows: job object or poll; Unix: PDEATHSIG or poll) and exits loud on parent death. flynn's job-object guard (spt-mobile side) stays regardless; filed SPT-CORE-NEEDS §5. Unit: parent-death -> listener exits within one poll window.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2656139Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2656280Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2656384Z ### REQ-INJECT-MULTILINE-INTEGRITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2658876Z - Title: W5 (LIFECYCLE-TRUTH): the idle-inject TYPED delivery leg delivers multi-line bodies byte-complete. ROOT (4 field instances + spool diff): the typed leg eats HEAD bytes nondeterministically — spool rows complete (1669B) vs ~322B received suffix; mid-turn poll envelopes always intact; a 1854B body later rode the same leg intact => timing race (terminal-readiness / enter-coalescing settle class), NOT a size cap. FIX DIRECTION (todlando proposes on the broker/translate typed-inject seam): settle-before-head, bracketed-paste where the harness supports it, or chunked write with echo-verify. STAKES: live-SENT injects leave NO spool copy — truncation there is unrecoverable. Int: repeated large multi-line injects into a real PTY session arrive byte-complete (loop N times — the race is timing-dependent, single-shot green is not proof).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2661169Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2661321Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2661420Z ### REQ-HAZARD-INJECT-SETTLE-REARM
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2665305Z - Title: post-0.29.0 (KNOWN-HAZARDS 7.37): the Layer-1 settle-gate must RE-ARM before every delivery on an OBSERVABLE (echoing/interactive) PTY — a mid-session reader reattach re-creates the head-swallow window. ROOT (field-confirmed on 0.29.0, doyle diagnosis + perri screenshot): the shipped W5-A settle-gate (REQ-INJECT-MULTILINE-INTEGRITY) gated Layer 1 behind a worker-local ONE-SHOT (`settled_once`) on the false premise that the head-swallow race is STARTUP-only (reader not attached after spawn). A mid-session `/clear` re-enters the harness's raw-mode input reader, re-creating the pre-settle window — but the one-shot already fired at spawn, so `settle_before_inject` is SKIPPED and the head is eaten again (a checkpoint-wake payload injected right after `/clear` lost its head, mid-path `spt/Cargo.toml)`); echo-verify (Layer 2) is default-OFF for that session, so it is silent + unrecoverable. FIX (doyle ruling): re-settle before EVERY delivery on an observable PTY; latch-skip the steady-state settle ONLY where the probe is UNOBSERVABLE (non-echoing ConPTY — no reader-reattach race to guard, and each settle burns the full deadline). The settle's own bool return (observed vs timed-out) discriminates the class; a re-drive (attempt>1) ALWAYS settles. `settled_once: bool` one-shot → `probe_unobservable: bool` latch driven by the first-attempt settle outcome.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2669073Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2669237Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2669336Z ### REQ-IDLE-PARKED-DELIVERY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2671472Z - Title: W5 (LIFECYCLE-TRUTH): a message QUEUED to an ALREADY-idle spt-hosted endpoint is delivered without an operator poke. ROOT (live during the milestone dispatch 2026-07-07): the idle-edge drain (F-023 leg 2) fires only on the ACTIVE->IDLE transition; no new edge ever comes for a parked session, and the send-time inject didn't carry it — both doyle->todlando dispatches sat delivered=0 in the spool while the endpoint showed ONLINE. FIX: send-time inject fires for an already-idle spt-hosted target (activity sense says idle => inject now, not spool), and/or a bounded spool sweep re-offers pending rows to idle endpoints (piggyback the pulse tick, no new loop). Int: send to a session idle for N minutes -> delivered without any operator poke.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2673351Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2673494Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2673608Z ### REQ-SPOOL-TAKE-AUDIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2674576Z - Title: W5 (LIFECYCLE-TRUTH, RCA cost: proving WHO took delivered=1 rows burned an hour): the spool records the taker per row — leg enum (relay-backlog / hook-poll / idle-inject / psyche) + sid/pid + taken_at ms — surfaced by a --json debug read. Additive column, no schema break (delivered rows already retained).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2675427Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2675574Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2675675Z ### REQ-DOC-ECHO-COMMUNE-CONTRACT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2677192Z - Title: W6 (LIFECYCLE-TRUTH, docs — this gap cost a full outage night, priority slot): publish the [session.echo_commune] I/O contract on the docs-site: key catalog core fills; core does NOT stdin-feed [history] (field-proven); self-locate guidance incl. CLAUDE_CONFIG_DIR / read_env; drop-file protocol (single-writer, ingest-deletes, resolver semantics from W1); stdout ingestion expectations. Public docs use VERSION numbers, never wave codes; docs-publish drift gate applies.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2678489Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2678623Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2678718Z ### REQ-DOC-DELIVERY-VOCAB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2679948Z - Title: W6 (LIFECYCLE-TRUTH, docs — remaining flynn/perri gaps folded): publish the full send-outcome vocabulary (SENT / SENT(WAN) / QUEUED window semantics / DEFERRED / NO_PERCH), digest --json row schema, api poll auth + MAC-stamp prefix, remaining --json shapes checklist (seed #3). Public docs use VERSION numbers, never wave codes; docs-publish drift gate applies.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2681044Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2681173Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2681268Z ### REQ-PLATFORM-REGISTRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2684492Z - Title: MUSL-TIER W1 (target-triple centralization, behaviour-NEUTRAL refactor): ONE authoritative platform registry from which current_platform(), KNOWN_TARGET_TRIPLES, the applyhost cross-platform 'other' logic, and the asset-name<->triple map all derive. ROOT: the target triple x86_64-unknown-linux-gnu + the implicit 'exactly 2 platforms' assumption are hardcoded across ~6 sites (release.rs current_platform cfg + KNOWN_TARGET_TRIPLES, applyhost.rs:740-743 win/linux binary if/else, xtask asset map, release.yml), so adding any platform (musl, future arm64) is a scattered edit. FIX: a data-driven registry (candidate: SUPPORTED_PLATFORMS const table of {triple, asset_name}) + generalize applyhost 'other' to 'every registered platform except current_platform()'. gnu+windows behaviour BYTE-IDENTICAL — the existing release/update/apply/propagate suites stay green (that is the gate). DESIGN FORK (doyle rules pre-dispatch): enum vs const-table; applyhost N-platform generalization; current_platform stays cfg->triple but output must be a registry member, loud 'unknown' fallback kept.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2687485Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2687626Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2687727Z ### REQ-PLATFORM-MUSL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2690423Z - Title: MUSL-TIER W2 (register the musl platform, self-IDENTIFY): add x86_64-unknown-linux-musl to the W1 registry — a current_platform() cfg arm (target_arch=x86_64, target_os=linux, target_env=musl -> the musl triple, NO more 'unknown' fallback), asset name spt-x86_64-linux-musl, triple-map entry. PROVEN (doyle /diagnose 2026-07-08, backlog #14): the current tree builds+runs static musl with ZERO source changes (rustls not openssl; aws-lc-sys+bundled-sqlite clean under musl-gcc; openpty; DNS/HTTPS works statically) — so W2 is registry DATA + cfg + asset map, NO dependency changes. Gate: a musl-built spt self-reports x86_64-unknown-linux-musl (not 'unknown'); registry-membership unit (the cfg arm is cross-target, unit the registry not the arm); build the musl target in-gate (kitsubito toolchain) and assert current_platform.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2692563Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2692705Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2692805Z ### REQ-RELEASE-MUSL-ARTIFACT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2695406Z - Title: MUSL-TIER W3 (CI build + signed release + update-set publish + self-update E2E): release.yml gains a musl matrix entry (build on kitsubito; install musl-tools+cmake+target in-job, CC_x86_64_unknown_linux_musl=musl-gcc); the assemble job includes spt-x86_64-linux-musl in SHA256SUMS + the release upload; release-publish (xtask) signs the musl artifact; the update-set carries its artifact entry. This closes the field gap: a musl binary today fetches fine but ends UPDATE_FETCH_REJECTED:NoArtifactForPlatform('unknown'). Gate (release-pipeline touch -> real E2E): cut a draft/test release with the musl artifact; a static musl binary on a sub-2.39-glibc box runs spt update fetch -> gets the musl artifact (no NoArtifactForPlatform), verifies SHA256+signature over the musl bytes, applies, self-updates. musl is ADDITIVE — gnu stays the default Linux artifact.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2697595Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2697754Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2697848Z ### REQ-PUMP-DIAL-FASTFAIL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2705051Z - Title: PUMP-TRUTH W1 (RE-SCOPED post round-2 empirical lock — the DIAL is EXONERATED, healthy ~100ms): a pump worker-leg PEER-REPLY read to a connect-then-silent / half-alive peer must drop THAT peer as an ORDINARY per-peer failure (peer_outcome's non-TimedOut arm -> PUMP_PEER_FAIL -> drop conn + redial, round CONTINUES, heartbeat advances), NEVER burn the brain's 30s PUMP_PEER_IO_TIMEOUT carrier deadline into a whole-round TimedOut POISON -> supervise_pump doubling-backoff restart. ROOT (deployah leg-instrumented capture, enlyzeam, 3 identical rounds): DIAL_EXIT 96ms ok, LEG i=3 update ms=30025 err[TimedOut] = the wedge. request_update (propagate.rs:373-375) opens the update stream + sends UpdRecord::Query (all bounded, all land), then BLOCKS read_event_until(deadline=call_deadline()=30s) on the peer's Offer/UpToDate reply; a peer that accepts the stream but never answers burns the full 30s -> TimedOut -> peer_outcome (pump/mod.rs:601) POISON -> whole-round abort + restart (= the field PEER_PUMP_FAIL: brain IPC read deadline, always-zero PUMP_PEER_FAIL). request_sync (sync.rs:374-376) is the LATENT TWIN (SKIPS the reply-read only when the want-set is empty; bites the moment it is non-empty against a silent peer). FIX (both legs): (a) reclassify the reply-read no-progress timeout OUT of TimedOut to a non-poison kind (Brain::read_peer_reply_until) so peer_outcome drops ONLY that peer -- poison RESERVED strictly for a genuine broker-IPC-CARRIER desync (the carrier ops net_open_stream/subscribe/send keep raw TimedOut); the abandoned peer stream is safe (exactly-once seq cursor stays contiguous, a late reply matches no live stream id). (b) budget-decouple the reply-read below 30s (Brain::reply_read_deadline = now + min(io_timeout, 10s)) so a silent peer drops promptly even in the still-sequential pre-W2 pump and can never race the carrier deadline. Files: propagate.rs (request_update) + sync.rs (request_sync) + brain.rs (reply_read_deadline + read_peer_reply_until) + pump/mod.rs (peer_outcome poison reserved for carrier-desync). Gate: a connect-then-silent peer at fan#0 -> the update leg drops it ordinarily within the reply-read budget, round continues + heartbeat advances, NO PEER_PUMP_RESTART; happy path (live peer) unchanged; + the sync-non-empty-want-set latent case. Kin REQ-PUMP-PEER-ISOLATION (W2 concurrency, VALIDATED by this root) + REQ-HAZARD-PUMP-IPC-DEADLINE (the poison it must stop mis-firing on a peer).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2711233Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2711380Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2711482Z ### REQ-PUMP-PEER-ISOLATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2714838Z - Title: PUMP-TRUTH W2 (architectural, operator ruling 2026-07-08): one peer must NOT block or poison all others -- peer discovery is async / per-peer-independent. Two coupled defects in run_peer_pump: (1) SEQUENTIAL fan-out (for peer in fan_targets dials one-at-a-time, each up to the bound -> peer N+1 waits behind peer N); (2) WHOLE-ROUND POISON (peer_outcome(...)? -- one TimedOut aborts the ENTIRE round via ? -> supervise_pump doubling-backoff restart, resetting ALL conns). FIX: per-peer concurrency + fault isolation -- the pump issues non-blocking dial requests; the broker (already async tokio+iroh) returns connection/presence results as async events (the D4c presence seam), no serial per-peer block; a peer TimedOut drops + reschedules ONLY that peer, NEVER aborts the round or restarts the pump. Supervised-restart is RESERVED for a dead BROKER conn, not a dead peer (the single-thread+bounded-read A-half REQ-HAZARD-PUMP-IPC-DEADLINE was defensive -- it stopped the infinite wedge but coupled every peer's fate; this decouples). Gate: a mixed roster (1 live + N offline peers) -- the live peer connects AND this node advertises presence in the SAME round the offline peers fail; heartbeat advances every round; no PEER_PUMP_RESTART from a dead peer. Depends on W1 (a fast-failing dial is the precondition for clean per-peer scheduling).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2718311Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2718453Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2718578Z ### REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2724818Z - Title: F-032 (perri field finding 2026-07-08, LEGACY-SPT-PARITY-GAP, data-loss): commune/signoff ingest MUST NOT delete a drop until its content is DURABLY COMMITTED to every APPLICABLE tier — a slice that cannot be committed this ingest must leave the drop in place for a later ingest (retry when the precondition resolves) OR durably preserve the un-committed slice, NEVER delete-then-lose. ROOT (doyle triage, code-grounded): ingest_drops (spt-live/src/ingest.rs:200) unconditionally `remove_file(&drop_path)?` AFTER route_slices (ingest.rs:121), but route_slices GATES the project tier on `!project_id.is_empty()` (ingest.rs:156) — when the endpoint's cwd is unresolved/owlery-internal at ingest time the project_id is empty, so the `<project-context>` slice is PARSED but never write_context'd/commit_project'd, yet the source drop is still deleted → the project-context content is permanently lost (black-hole). perri's repro: a two-sliced echo-commune (<live-context> role+release recipe + <project-context> v0.17.4 status + Items 3-5 map) INGESTED (file deleted) yet never surfaced at her next SessionStart resume-pull; adapter exonerated (file-write + slicing tags correct); fixture at (system temp)/F-032-commune-2026-07-08T222721Z.md (5595B, sha256 9bc27e18cf385958; perri wrote it verbatim from session log 0841835d.jsonl). Legacy spt held commit-first-then-delete parity; the modern two-slice ingest broke it. FIX distinguishes: a write SUPPRESSED-by-precedence (incoming older than durable → already-superseded → safe to delete) from a slice NOT-committed-because-un-committable-now (empty project_id / write error → must NOT delete; retry or preserve). Gate: an ingest with a non-empty <project-context> slice but an EMPTY project_id must NOT delete the drop (or must durably preserve the project slice) — the content survives to the next resolvable ingest / SessionStart; the live-tier commit path stays unchanged; a genuinely superseded (precedence-suppressed) drop still deletes. KNOWN-HAZARDS entry on landing (REQ-HAZARD-* = conformance-checklist, needs a test).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2730319Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2730470Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2730583Z ### REQ-LIVE-AGENT-NO-INJECT-DELIVERY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2738269Z - Title: F-033 RE-SCOPED (doyle re-ruling 2026-07-10 after the #82 gate falsified the original premise — the hosting-mode class split is BINDING context): 'state:live_agent has a self-delivery reader' CONFLATED two hosting modes. (A) HARNESS-hosted live agents (api listen path) DO deliver via adapter channels only — and are ALREADY structurally excluded from inject: bind_from_seed stamps controllable=Some(false), no broker PTY exists. (B) SPT-HOSTED/CONTROLLED live agents' inject leg IS their delivery reader (broker PTY + translation binary — doyle's own endpoint is field proof: ENDPOINT_INJECT + IDLE_PARKED_DRAIN alongside hook-poll); the original blanket state:live_agent exclusion broke REQ-MSG-IDLE-EDGE-DRAIN + the v0.14.3 LAW on both CI platforms and was REVERTED (predicate stays controllable-gated). perri's adapter-channels-only model (F-dupmsg-adapter-confirm.md) holds for class (A) only — do not re-seed the conflation. The F-033 DUPLICATE mechanism (hook-poll + idle-inject both delivering one row, operator spool row 156) is closed structurally by REQ-CARRIER-CLAIM-EXCLUSIVE's atomic cross-carrier take. REMAINING LEGS OF THIS REQ: (a) unit — a harness-hosted live agent (controllable Some(false)/None, no broker PTY) can never route through try_spt_hosted_inject (evidence may TAG the existing is_spt_hosted_no_relay non-controllable case rather than duplicate it); (b) VERIFICATION (report-before-fix, DELIVERED to doyle 2026-07-10): the no-translation-binary raw payload+CR path is PROVABLY DEAD (broker dispatch_endpoint_input: no-binary -> loud spool, never a PTY write — v0.14.3 holds); the operator's typed-unsubmitted garbage is PINNED to the Layer-2 echo-verify RE-DRIVE (broker.rs inject worker) force-enabled host-wide by ambient SPT_INJECT_VERIFY_ECHO in the daemon's inherited dev-shell env (default-OFF declared capability turned on globally — the F-036 env-inheritance class): a false verify-miss RETYPES the whole sequence into the input field. Fix LANDED on the W4 branch (doyle-accepted echo-scrub 2026-07-10): SPT_INJECT_VERIFY_ECHO/SPT_INJECT_FORCE_ECHO_MISS folded into the W1 daemon-startup env scrub (spt_runtime::INJECT_ECHO_ENV_VARS; startup-only, role-spawn builder untouched so explicit per-spawn declaration stays the production on-switch) — evidence rides REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE (the F-036 class REQ). Residual-class RULED (doyle 2026-07-10): this REQ covers the harness-hosted-never-inject predicate leg (unit) + the echo-scrub itself (impl, dual-tagged) — stages [impl,unit].
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2744651Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2744796Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2744905Z ### REQ-ADAPTER-UNRESOLVED-HINT-FORM
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2747208Z - Title: F-034 leg a (perri/hertz field finding 2026-07-09): the ADAPTER_UNRESOLVED refusal hint must print a WORKING command form. It currently says 'pass --adapter <name[:profile]>', but --adapter is a `spt api` GROUP flag, NOT a `listen` flag — following the hint literally (`spt api listen <id> --adapter <name>`) produces clap `error: unexpected argument '--adapter'` (exit 2). Fix: the hint prints the group-level form, e.g. `spt api --adapter <name> <cmd> …` (a hint the operator can copy-paste and have work). Gate: the ADAPTER_UNRESOLVED message text carries a clap-VALID invocation (group-level --adapter placement) — a unit asserting the hint string parses under the api clap grammar, or at minimum places --adapter before the subcommand. Pure UX/hint-correctness fix, no behavior change.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2749328Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2749470Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2749586Z ### REQ-LISTEN-SEED-CONSUME-AFTER-BIND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2753053Z - Title: F-034 leg b (perri/hertz field finding 2026-07-09, hertz's HEADLINE): `api listen` must NOT consume the consume-once ephemeral seed on a PRE-BIND refusal — validate (adapter resolvable, home/subnet) and BIND first, THEN consume the seed. ROOT: today `api listen` burns the consume-once seed BEFORE it validates home/subnet, so on a multi-subnet node HOME_REFUSED (needs --subnet) fires AFTER the seed is already gone → the corrected retry (adding --subnet) on the SAME pid hits NO_SEED, a dead end (plausibly ADAPTER_UNRESOLVED burns it the same way). A refusal that never bound must leave the seed intact for the corrected retry. Same EFFECT-BEFORE-IRREVERSIBLE-CONSUME ordering class as F-032 (commune commit-before-delete) — the irreversible consume must follow the successful effect, never precede a refusal. Gate: a pre-bind refusal (HOME_REFUSED on a multi-subnet node without --subnet; ADAPTER_UNRESOLVED) leaves the seed CONSUMABLE — the corrected retry on the same pid binds (no NO_SEED); a SUCCESSFUL bind still consumes the seed exactly once (no double-bind). Files: the api-listen bind path (seed consume ordering). Kin F-032 [[spt-core-findings-backlog]].
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2756151Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2756310Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2756418Z ### REQ-LISTEN-SESSION-ID-FALLBACK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2760156Z - Title: F-034 leg c (perri/hertz field finding 2026-07-09): a session that goes live LATE (hours after SessionStart, or after a daemon restart) must still be able to bind — the ephemeral SessionStart seed ('consumed within seconds') is GONE by then and nothing re-fires it until the NEXT SessionStart, so even `api listen --parent-pid <correct claude pid>` hits NO_SEED. Design assumption 're-fired on the next SessionStart if needed' does not hold for long-lived sessions. FIX (perri-recommended, cleanest): `api listen --session-id <sid>` fallback that binds from the session-id when the pid has no live seed — removes the ephemeral-seed dependency entirely (the adapter already knows the sid; the skill passes it, and can then DROP its manual re-seed step). Alternative (option 1, less clean): re-fire the seed on daemon restart. Gate: a session with NO live seed (expired / post-daemon-restart) binds via `listen --session-id <sid>` (no NO_SEED); the sid-bind carries the same identity/auth the seed-bind would (session_id custody — kin REQ-PSYCHE-SID-CUSTODY / the sid-symmetric-auth pattern). Files: api-listen bind path (sid-fallback seam), clap --session-id flag (plain doc-comment). hertz/perri live-verify; if it lands the adapter skill drops the re-seed step.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2763508Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2763676Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2763780Z ### REQ-LIST-JSON-LIVENESS-PARITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2770092Z - Title: GATEWAY-LIVENESS (flynn field bug 2026-07-09, RCA reader-divergence root): `spt endpoint list` (human) and `endpoint list --json` MUST report an IDENTICAL status for a locally-hosted endpoint — especially a pid-alive, status-ABSENT gateway (no psyche_init). ROOT (todlando RCA STEP-1, doyle-verified): the --json builder (crates/spt/src/cli.rs cmd_endpoint_list) emits each subnet row's status straight from resource_projection (spt-net registry.rs:566, passes instance.status through verbatim :592 — the persisted WAN snapshot, a lagged gossip that can carry a stale/crash-time Suspended) and NEVER applies the self-owned reconcile the human/picker path applies (reconcile_self_owned, crates/spt/src/picker/data.rs:160 via gather_endpoints :112). So a pid-alive self-owned gateway reads Suspended on --json but ONLINE on human (roster::enumerate spt/src/roster.rs:38 -> is_perch_alive pid-fallback spt-store/liveness.rs:136); the adapter suspend-poll (parse_endpoint_status over endpoint list --json --show-all) reads the divergent --json status -> self-suspends a pid-alive gateway. Candidates REFUTED: resource_projection does NOT re-derive liveness (copies instance.status, only skips !routable :582); render is a faithful {:?}. advertised_status (registryhost.rs:822) DOES compute Active via pid-fallback (live advertise fine) — the bug is the READER showing the un-reconciled snapshot. FIX (doyle-ruled): apply the self-owned reconcile in the cli --json builder (SAME spt/picker consumer layer as gather_endpoints, NOT lifted into resource_projection which inverts the dep spt-net->perch), reading LOCAL perch truth (is_perch_alive/unbound -> Active/Offline, mirroring the picker's local_rows). Do NOT force status=online (DEFECT B latent — seed-#5 orphan-listener false-ONLINE risk). Gate: a pid-alive locally-hosted gateway (status-absent, no psyche_init) reads the SAME non-Suspended status on human AND --json. Field-verify flynn (mobile-gw). Kin REQ-PICKER-3 + REQ-PRESENCE-LIVENESS-TRUTH + seed-#5 orphan-listener false-ONLINE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2775416Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2775556Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2775664Z ### REQ-HAZARD-BIND-REST-STATE-CARRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2778498Z - Title: GATEWAY-LIVENESS DEFECT A (flynn field bug 2026-07-09, confirmed independent): a re-bind MUST preserve the daemon-owned resting intent (rest_state, D9-2/REQ-INST-3) — the same carry-forward discipline establish_perch already applies to cwd/controllable/adapter/read_env. ROOT: establish_perch's record build (crates/spt/src/api/startup.rs, the build closure) constructs a fresh InfoJson via InfoJson::new (defaults rest_state None) and carries cwd/controllable/read_env forward from prior but NOT rest_state -> a re-bind WIPES the wake intent (flynn tick11 rest_state:active vanish). FIX: carry prior.rest_state (and its paired dormant_since_ms anchor, present iff dormant) forward on re-bind, like the sibling fields. Gate: a re-bind over a prior record with rest_state set preserves it (unit — the build closure carries rest_state + dormant_since_ms). KNOWN-HAZARDS entry on landing. Kin REQ-HAZARD-BIND-CWD-UNSET / REQ-PICKER-1 + REQ-INST-3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2780917Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2781056Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2781160Z ### REQ-SEND-WINDOW-DRAIN-HONOR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2788707Z - Title: F-035 (field finding 2026-07-09): active_only = POLL-ONLY for a relay-bearing live agent -- it must NEVER be RELAY-delivered (its contract is 'active hook window only, never wakes' per spool.rs WINDOW_ACTIVE_ONLY doc + cli.rs:85; `spt send --active-only` / the hidden `--deferred` alias and `send_deferred` shell-context mint it). FIELD SYMPTOM: lia (a full live agent -- relay-for-idle, poll-for-busy) surfaced an --active-only msg on her IDLE RELAY. RCA JOURNEY: v1 RCA (docs/F-035-RCA.md) analyzed the WRONG class (spt-hosted-relay-LESS, the idle-edge inject leg) and proposed a COLLAPSE that would have broken the shipped F-023 anti-starvation gate (docs/F-035-CONFLICT.md); operator reclassified to a relay-bearing live agent; the relay-class re-RCA (docs/F-035-RELAY-RCA.md) traced EVERY active_only->relay carrier and found them ALL ALREADY GUARDED on main@2c05dc9 -- so spt-core has NO code bug. doyle FINAL RULING: the real leak is the ADAPTER's busy->idle poll->idle-representation handoff (spt-claude-code -- a legitimate `api poll` on going idle drains active_only, then the adapter renders it into the idle/relay surface), OUTSIDE spt-core; perri's lane. spt-core DELIVERABLE = a REGRESSION GUARD (tests only, NO behavior change) locking the 3 load-bearing guards that keep active_only off a relay: (1) send_windowed:217 -- an active_only send SKIPS deliver_tcp (never rides a live relay's TCP channel), spools poll-only; (2) cli.rs:5762 -- a cross-node active_only send stays LOCAL-ONLY (the WanMessage wire record has no window field, so shipping it would strip the class and relay-deliver at the far node); (3) relay.rs drain_backlog -> drain_non_deferred (deferred=0) -- the relay backlog NEVER forwards an active_only (deferred=1) row. Guard suite: unit (send_windowed active_only-skips-tcp-to-live-relay + relay_backlog-never-drains-active_only) + int (cross-node active_only stays local-only, never WAN, while a default send to the same remote target DOES take the WAN leg). AMENDED 2026-07-26 (FIELD-TRUTH W1 roll-in, operator ruling): guard (4) added — the idle-edge and parked-re-offer inject claims NEVER take a deferred (active_only) row, on ANY endpoint class. The collapse proposed in docs/F-035-RCA.md v1 and rejected in docs/F-035-CONFLICT.md is now ADOPTED on new field evidence (doyle spool-audit: spt-shells active_only rows taken_leg=idle-inject on a live perch, each starting a turn — the exact 'never wakes' violation this REQ exists to forbid); the F-023 deferred-rescue it collided with is revoked by the REQ-MSG-IDLE-EDGE-DRAIN amendment. Kin REQ-MSG-DELIVERY-AXES + REQ-MSG-IDLE-EDGE-DRAIN + REQ-INST-6.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2795551Z - Required stages: unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2795699Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2795841Z ### REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2806354Z - Title: UPDATE-WEDGE round-4 (hertz RCA, root reproduced + source-pinned on Windows 2026-07-09): EVERY write on a physical broker connection rides ONE bounded + cancelable + poison-on-failure framed-write primitive — no writer may hold the connection's serialized send gate across an UNBOUNDED OS write. ROOT: controller_writer held the SharedSend = Arc<Mutex<SendHalf>> guard ACROSS a blocking write_frame; on Windows interprocess 2.4.2 routes the send to WriteFileEx + SleepEx(INFINITE, alertable) with NO supported write timeout (set_timeout → Unsupported), so an `rc --take` controller consumer that stops reading blocks the write INDEFINITELY (~127.95 s in the field capture, released only when a brain restart tore the conns down). Logical stall_evict_controller (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) removes the controller ROLE but neither cancels the in-flight pipe write, closes the physical connection, nor invokes CancelIoEx — the detached writer keeps its SharedSend clone + live stack-owned mutex guard. Load-gated: needs a real seq>0 frame + a non-draining consumer (seq-0 boot conns + a quiescent update are clean — why v0.30.5's controlled apply passed); CTRL_WRITE_LOCKED wait_us=0 on all four capture writers exonerates the mutex convoy — the block is INSIDE the OS write, after lock acquisition. Existing deadlines can't bound it: CONTROLLER_WRITE_DEADLINE is output-driven channel-full handling (a writer blocked on its first owned frame never fills the channel); BRAIN_WRITE_DEADLINE is an age PREDICATE sampled opportunistically, not an I/O timer. FIX (accepted shape, doyle GO + 3 confirms): broker-owned Arc conn object (conn.rs BrokerConn) replacing raw Arc<Mutex<SendHalf>> — serialized write gate (bounded gate-wait) + send half (never leaves the object, so a bypass cannot compile) + idempotent poisoned state + per-in-flight op identity + platform abort seam, with an INDEPENDENT per-conn watchdog firing OUT OF BAND at an ABSOLUTE deadline stamped at write entry covering BOTH gate-wait and OS write completion (brain_write_deadline() — the existing SPT_BRAIN_WRITE_DEADLINE_MS knob; the abort NEVER relies on the write returning or on opportunistic stall-evict sampling). On deadline/partial/cancel/unknown completion: (1) poison the whole physical conn, (2) abort read+write (cfg(windows) CancelIoEx then DisconnectNamedPipe; cfg(unix) UnixStream::shutdown(Both)) so handle_conn reaches existing EOF cleanup, (3) wait for the canceled op to report completion before releasing its buffer (interprocess write_exsync returns only after the completion APC — release = write return), (4) NEVER reuse the conn (a timed-out length-prefixed frame may be partially written), (5) join/finish the retired writer before reporting physical cleanup. Controller (replay + live), viewer, dispatch-reply (send_frame/send_error + inline dispatch_* replies), and nethost stream-log/presence writes ALL route through the primitive — leaving ANY raw unbounded write behind the gate preserves the failure class (grep-proven: no surviving raw send.lock()+write_frame on a physical conn path). NO new output queue (the bounded queue + isolated writer exist; the block is BELOW them); NO PIPE_NOWAIT (recorded mid-frame corruption risk). Broker-side only, no wire change, mixed-version peers wire-compatible; Unix keeps existing semantics under the same poison/retire invariant.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2815035Z - Required stages: doc, impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2815193Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2815307Z ### REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2821039Z - Title: MSG-IDENTITY W1 / F-036 leg a (perri field RCA 2026-07-09/10, psyche seat-theft — doyle ACCEPTED primary fix): the daemon MUST sanitize inherited per-session identity env (SPT_ENDPOINT_ID / OWL_SESSION_ID / SPT_AGENT_ID) at startup AND before EVERY role spawn — these are per-session identity and are NEVER correct inherited state for a daemon or its role children. ROOT: a daemon restarted from inside an agent session (routine during core dev / `spt update apply`) carries the session's SPT_ENDPOINT_ID and passes it verbatim to every [session.psyche_resume] spawn; core only strips each role's DECLARED env_remove list (runtime.rs:728), so ONE adapter env_remove miss infects the whole node — every psyche claude turn fires SessionStart, the adapter hook sees the endpoint id, takes the bind path, and ROTATES the victim's perch to the psyche's own sid with a valid prior-sid proof, every pulse (field: lia/deployah/doyle psyches ALL briefed as <sptc-active-perch id=doyle>; 37 peer msgs drained into lia's psyche transcript; victim deliveries eaten, communes dark, sends downgraded from:cli@node). Adapter half FIXED v0.18.8 (env_remove += SPT_ENDPOINT_ID + shim scrub + SPT_PSYCHE_TURN hook-bail) — this REQ is the CORE-LAYER defense so no adapter miss can ever leak identity again. FOLD (F-036 leg b docs-fix, doyle-owned): broaden the recursion_guard_env schema description (manifest.rs:314 + crates/spt-runtime/manifest.schema.json:306) — core honors it on ANY role declaring the field (runtime.rs:740, keyed on the FIELD not the role name); drop the 'summarizer children' wording (perri adopted on both psyche roles v0.18.8, proven live). Gate: a daemon started with SPT_ENDPOINT_ID/OWL_SESSION_ID/SPT_AGENT_ID in its env spawns role children WITHOUT those vars (unit: role-spawn env assembly scrubs the identity set regardless of the role's declared env_remove); KNOWN-HAZARDS entry on landing. Kin psyche-custody/session-pin cluster, [[spt-core-findings-backlog]] F-036.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2826015Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2826168Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2826282Z ### REQ-BIND-PSYCHE-CUSTODY-SQUAT-GUARD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2828865Z - Title: MSG-IDENTITY W1 / F-036 leg c (perri field RCA, doyle ACCEPTED defense-in-depth): a bind whose --set-session-id equals a NESTED psyche perch's own custody sid is definitionally wrong and MUST be refused — core owns psyche-custody.json and can see the collision at bind time. ROOT CONTEXT: with the F-036 env leak, each stolen bind carried a psyche sid as the new pin; the identity-env sanitize (leg a) removes the known vector, this guard makes the CLASS unreachable (any future vector that tries to rotate a real endpoint's perch onto a psyche's custody sid is refused loud). Gate: a bind attempt whose target sid appears in psyche-custody.json as a psyche's OWN sid is REFUSED with a distinct loud token (unit: custody-sid collision refuses; a normal non-custody sid bind is unaffected). Kin REQ-PSYCHE-SID-CUSTODY, session-pin cluster, [[spt-core-findings-backlog]] F-036.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2831247Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2831388Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2831490Z ### REQ-CARRIER-CLAIM-EXCLUSIVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2836179Z - Title: MSG-IDENTITY W4 / F-033 + operator self-send probe 2026-07-09 (dup-delivery cluster, RCA-FIRST): a spooled message row is delivered by EXACTLY ONE carrier — the first carrier to take a row (hook-poll drain, relay idle-inject, relay-backlog, psyche) atomically CLAIMS it so no other carrier can re-deliver the same row. FIELD EVIDENCE (authoritative, operator-observed): a default-window doyle-to-doyle send while doyle was BUSY delivered on BOTH the busy POLL path AND the idle RELAY path; spool row 156: window='default', delivered=1, taken_leg='idle-inject' — the relay claimed a row a poll also surfaced (REQ-SPOOL-TAKE-AUDIT instrument, already shipped, is the RCA tool: taken_leg/taken_sid/taken_at per row). PRIOR: F-033 (perri 2026-07-08) — the psyche-download filing arrived as TWO copies, dup-delivery live-confirmed. RCA-FIRST (report-before-fix): pin whether the poll drains before/after the relay's delivered=1 mark; whether the busy-to-idle edge re-offers a row a poll already took; whether take-marking is atomic per carrier or check-then-mark racy. DISTINCT from F-035 (that = active_only window honor, spt-core exonerated; THIS = a default msg on both carriers — F-035's lock never asserted a default msg can't ride both). Gate: int — a default send to a BUSY live agent that polls mid-turn AND transitions idle delivers EXACTLY ONCE (spool-audit shows one taken_leg, recipient sees one copy); unit — concurrent take attempts on one row yield one winner. Kin REQ-SPOOL-TAKE-AUDIT, REQ-RELAY-NO-BUSY-DELIVER, REQ-IDLE-PARKED-DELIVERY, [[spt-core-findings-backlog]].
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2840423Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2840584Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2840679Z ### REQ-RELAY-NO-BUSY-DELIVER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2844040Z - Title: MSG-IDENTITY W4 (operator self-send probe 2026-07-09, companion leg): the relay/idle-inject carrier MUST NOT fire for an ACTIVE endpoint — the daemon already guards send-time (daemon.stderr.log: 'ENDPOINT_INJECT: endpoint ACTIVE -> spool (deferred hint), not injected') yet the field row ended taken_leg='idle-inject' for a message sent while the endpoint was ACTIVE, so the guard is bypassed somewhere on the busy-to-idle EDGE (the parked-drain idle-injects rows that arrived during busy without re-checking whether a poll is concurrently draining them — the edge itself is when BOTH carriers are plausibly live). RCA-FIRST with REQ-CARRIER-CLAIM-EXCLUSIVE (same rig, same instrument); if the exclusive claim alone closes the double-delivery this leg may reduce to an ordering assertion — rule at RCA lock, don't build blind. Gate: unit — the idle-edge drain re-verifies activity (or defers to the claim) before idle-injecting; a row taken by a poll is never idle-injected. Kin REQ-IDLE-PARKED-DELIVERY (the drain this guards), REQ-MSG-IDLE-EDGE-DRAIN, F-023 anti-starvation gate (do NOT break the already-idle delivery class).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2846992Z - Required stages: unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2847125Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2847221Z ### REQ-SEND-STAMP-AGENT-ID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2850993Z - Title: MSG-IDENTITY W4 / endpoint-identity (operator-flagged 2026-07-09 + live-confirmed on flynn's F-038 ask arriving 'cli@HFENDULEAM'): a live agent's own CLI `spt send <target>` MUST stamp from_id with the AGENT id (e.g. 'doyle'), not the node fallback 'cli@<node>' — today the agent-id stamp rides ONLY the adapter/perch shortform path, so any agent shelling out `spt send` (the DOCUMENTED reach-another-agent form) presents to recipients as an anonymous node CLI: replies mis-route (recipients answer cli@node — no perch — instead of the sender), and the F-036 victim-effect ('sends downgraded to from:cli@node') is indistinguishable from normal CLI traffic. FIX: send-time self-resolve — when the calling process/session maps to a bound live perch on this node (the session-pin/seed machinery already resolves this for bind), stamp that endpoint id as from_id; a genuinely perchless CLI keeps 'cli@<node>'. Gate: unit — a send from a session bound to a live perch stamps the endpoint id; a perchless shell keeps the node stamp; int — recipient's EVENT from= carries the agent id for a shelled-out send from a live session. Kin F-036 victim effects, EVENT envelope (ADR-0020), [[owl-send-not-legacy-spt-send]] (adapter-path stamp works today — this closes the CLI-path gap).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2854391Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2854539Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2854647Z ### REQ-ENDPOINT-AUTOSTART
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2859926Z - Title: MSG-IDENTITY W5 / F-038 (flynn operator-directed ask 2026-07-10, SPT-CORE-NEEDS #7 + deployah field-confirm same day: mobile-gw alive=false after the v0.30.6 full daemon restart = this feature's absence, live): an endpoint can be marked a STARTUP DEFAULT so the daemon brings it back up at daemon start — Gateway-class endpoints are infra (the phone treats mobile-gw as always-there; box reboot / daemon cold start currently leaves it down until hands-on). SHAPE RULED (doyle, dispatch): (a) `spt endpoint auto-start <id>` persists the endpoint (id + adapter/profile + args) as a startup default REPLAYED at daemon start, symmetric with the shipped `subnet attach/detach --save` precedent — smallest orthogonal cut, explicit operator intent, no interaction with effective_rest_state/F-035 reader-parity semantics (shape (c) restore-what-was-up REJECTED for now: principled but couples to the rest_state neighborhood that just churned; revisit if --save proves insufficient in the field). A saved endpoint that fails to come up logs loud + does not block daemon start or other replays. flynn docs sweep confirmed missing-feature not docs-gap (rest/wake manual-only; no endpoint analog of subnet --save; no manifest field; no api surface). Gate: int — daemon restart brings a --save'd endpoint back up (fresh daemon, saved default, endpoint reaches its steady state without hands-on); doc — public docs page for the verb (VERSION-scoped); unit — persistence round-trip + replay skip-on-missing-adapter loud. Kin subnet --save (the symmetry precedent), REQ-LIST-JSON-LIVENESS-PARITY + REQ-HAZARD-BIND-REST-STATE-CARRY (the F-035 neighborhood shape (c) would have coupled to), [[spt-core-findings-backlog]] F-038. Interim on flynn's box (logon scheduled task) dissolves when this lands.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2864500Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2864666Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2864764Z ### REQ-DAEMON-SERVICE-INSTALL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2866866Z - Title: F-038 RIDER (flynn nice-to-have, QUEUED not activated): a documented OS-service registration recipe or `spt daemon install-service` verb so the daemon itself survives box reboot (flynn's box runs managed_by:null = daemon-at-boot unprovisioned; kitsubito's hand-rolled systemd --user unit = prior art). NOT in MSG-IDENTITY scope — REQ-ENDPOINT-AUTOSTART covers the daemon-start-to-endpoint leg; the boot-to-daemon leg stays interim (logon scheduled task / systemd unit). Activate at an infra-provisioning milestone; shape (recipe doc vs verb) ruled then. Kin [[daemon-service-detection-gotcha]] (global-OS-state detection blind on dev box — a verb must not regress that), [[kitsubito-linux-rig]].
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2868708Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2868836Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2868933Z ### REQ-CONN-POISON-DIAL-SCOPE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2874540Z - Title: MSG-IDENTITY W6 / F-039 (deployah field-acceptance follow-up 2026-07-10, RCA-FIRST — mint per the v0.30.6 PASS handoff): ambient CONN_WRITE_POISONED log-churn correlates 1:1 with PUMP_PEER_FAIL submit-dials to OFFLINE peers (enlyzeam/kitsubito/gravity) with NO wedge and NO freeze — pre-existed the blackhole rig = log-noise/mislabel, not a defect in the r4 fix. CODE CONTEXT: conn.rs poison_and_cancel emits the loud CONN_WRITE_POISONED line for a write that 'exceeded its bound (OR FAILED)' (conn.rs:181) — the fast-FAIL branch (broken pipe / conn refused on an already-dead counterpart) shares the log tag with the TIMEOUT branch that is the field-acceptance wedge observable, so routine conn teardown under offline-peer dial churn reads like poison events. RCA-FIRST: pin the exact write site that fails per PUMP_PEER_FAIL cycle (BrokerConn is broker-side — which broker conn write rides each pump dial failure? status/event fan-out to a departed subscriber? brain-side notification?) BEFORE changing anything — the correlation mechanism is unpinned. FIX SHAPE (post-RCA, doyle rules at lock): reserve the loud CONN_WRITE_POISONED token for the DEADLINE-EXCEEDED class (the wedge observable blackhole-controller.ps1 watches); a plain write-FAIL on an already-dead conn retires quietly (debug-level or a distinct low-noise token). MUST NOT weaken the r4 invariant: every failure path still poisons + retires the conn (REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK behavior unchanged — only the log LOUDNESS is scoped). Gate: unit — deadline-exceeded emits the loud token, fast-fail does not (both still poison); field — offline-peer churn no longer floods daemon.stderr.log with CONN_WRITE_POISONED. Kin REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (the invariant this must preserve), REQ-PUMP-PEER-ISOLATION (the offline-peer dial neighborhood), [[v0306-published]].
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2879597Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2879740Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2879846Z ### REQ-CONN-POISON-ATTRIBUTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2885353Z - Title: MSG-IDENTITY W6 / F-039 legs b-d (doyle W6 LOCK 2026-07-10, minted per amendment 3): every broker-conn lifecycle record is ATTRIBUTABLE — the W6 RCA's terminal undecidability (per-line 1:1 CONN_WRITE_POISONED churn = fresh-carrier churn OR stderr interleave artifact) exists because records carry no stable conn identity, no role/endpoint/session context, and no timestamps, and the once-per-conn poison latch hides multiplicity. THREE LEGS. (b) IDENTITY: mint a stable per-physical-conn id (monotonic u64 at conn construction — Arc::ptr_eq is the only identity today and it does not survive a log line) plus subscriber role and endpoint/session where known, stamped on CONN_WRITE_POISONED, CONN_WRITE_RETIRED, logical stall-evict, attach/resume/detach, and write-retirement records (RCA attach sites: presence nethost.rs:379, stream nethost.rs:258, controller broker.rs:891, viewer broker.rs:1073). (c) TIME: daemon stderr correlation records carry wall-clock AND monotonic timestamps (stderrlog has neither; broker+brain share one file — interleave is unresolvable without them). (d) LIFECYCLE (doyle-confirmed UNCONDITIONAL, not debug-gated): one BOUNDED set of per-conn lifecycle events — write start/timeout-cancel/transport close/writer exit/replacement-reattach (hertz RCA fix-shape items 1-3). Constraint (doyle LOCK): the split/attribution must not REDUCE total information, only correct its attribution; NO timeout-value changes; NO suppression-as-fix. Gate: unit — lifecycle records carry conn id + role + timestamps; the id is unique per physical conn and stable across that conn's records. Kin REQ-CONN-POISON-DIAL-SCOPE (leg a, the token split these fields ride on), REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS (leg e, consumes these records), REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (behavior invariant preserved).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2890247Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2890397Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2890510Z ### REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2893913Z - Title: MSG-IDENTITY W6 / F-039 leg e (doyle W6 LOCK 2026-07-10, minted per amendment 3 — hertz's five invariants VERBATIM from his RCA fix-shape item 5): 'Build a deterministic black-holed-controller harness against current v0.30.6 semantics and assert: unrelated sessions continue; the bad physical connection is canceled/closed within the bound; its writer exits; a fresh viewer can attach; no lock or task remains owned by the retired connection.' The harness is the standing conformance rig for the r4 SHAREDSEND fix-class — hertz's RCA discipline: only after a timestamped incident maps to a FAILING lifecycle invariant does an ownership/cancellation defect get fixed (the likely shape being complete physical-connection cancellation and writer-task join/retirement, never a broader timeout increase). Consumes REQ-CONN-POISON-ATTRIBUTION's records (conn id + lifecycle events are what make the five assertions checkable deterministically). Kin REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (the invariant class under test — its brain_decouple int stays the Windows-mandatory gate leg), REQ-CONN-POISON-DIAL-SCOPE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2897015Z - Required stages: int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2897145Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2897245Z ### REQ-UPDATE-GH-TRANSPORT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2901356Z - Title: THE-FORKENING W1 (ADR-0036, operator-ruled 2026-07-14): the release channel is PRIVATE (`BigscreenVR/spt-bs-releases`) and the gh CLI is the mandated carrier — release discovery (`releases/latest`, cli.rs:9717) and asset download (cli.rs:4861 public browser URLs) move to deadline-wrapped `gh` subprocess calls (`gh api`, `gh release download`; run_git pattern). WHY gh not token+HTTP: private-repo `browser_download_url` 404s even with a valid token — the API asset-id dance is gh's job. Default repo flips via the existing SPT_INSTALL_REPO seam (cli.rs:5363) + xtask REPO const (main.rs:729) + notif.rs consent-changelog URL rider. Loud failure classes: gh missing -> UPDATE_FETCH_REJECTED:GhCliRequired with OS-SPECIFIC install hints (winget/apt/brew); gh unauthed -> distinct GhAuthRequired pointing at `gh auth login`. Signature verification unchanged — bytes verified after download, carrier-independent (update-set/counter/anchor continuity per ADR-0036 §2). release_verify_e2e reworked to the gh carrier. Gate: unit — url/invocation construction + both failure classes render OS-correct hints; int — fetch against a real gh-authed channel resolves latest + downloads and verifies an asset; doc — self-update docs name the gh prerequisite. Kin REQ-INSTALL-BOOTSTRAP-VERB (same carrier at first install), ADR-0036.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2904876Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2905038Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2905143Z ### REQ-INSTALL-BOOTSTRAP-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2908796Z - Title: THE-FORKENING W1 (ADR-0036 §3, bootstrap shape b operator-ruled): virgin-box install = `gh release download` the platform binary + ONE self-install verb in the binary itself — the verb places the binary at the canonical install path (the path self-update already respawns from, v0.4.2 lesson), registers user PATH, and leaves first-run identity/daemon-start to the existing idempotent first-run; hosted one-liner install scripts (curl|sh / irm|iex at the dead Pages URL) are RETIRED. Non-interactive (CONTEXT.md Installation: the install path doubles as every adapter's pack-in on-demand install). Windows UAC-740 gotcha binding: the downloaded exe keeps the `spt-*` asset name and the verb lives INSIDE spt — no installer-detection trigger words in exe names. README (bs-core) documents: install gh -> gh auth login -> gh release download -> the verb. Gate: unit — verb places/registers idempotently, refuses cross-platform binaries (platform-stamp check exists, v0.3.2); int — from a clean SPT_HOME+PATH sim, downloaded-binary self-install yields a working `spt` on PATH whose `spt update fetch` then speaks the gh channel; doc — README install section rewritten. Kin REQ-UPDATE-GH-TRANSPORT, REQ-INSTALL-1/2 (the two-paths model this reshapes), ADR-0036.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2912193Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2912350Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2912451Z ### REQ-DOCS-RELEASE-ASSET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2915056Z - Title: THE-FORKENING W2 (ADR-0036 §4): every release ships a platform-independent docs bundle `spt-docs.tar.gz` (BUILT mdbook output: HTML + llms.txt + llms-full.txt + raw .md + manifest.schema.json) as a release asset WITH an entry in the SIGNED update-set (sha256, same integrity chain as binaries — docs describe the security-relevant contract surface, they do not ride unverified). Apply lands/refreshes $SPT_HOME/docs (single current copy = docs always match the installed binary). FAILURE ISOLATION binding: a docs-asset failure NEVER fails the binary update — UPDATE_DOCS_SKIPPED loud, retried next fetch. Gate: unit — update-set entry + sha256 verify + skip-loud isolation; int — a fetch+apply lands version-matched docs at $SPT_HOME/docs; doc — self-update docs name the bundle. Kin REQ-DOCS-LOCAL-SERVER (the consumer), REQ-RELEASE-CHANNEL-PRIVATE (the assemble leg), ADR-0036.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2917409Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2917564Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2917671Z ### REQ-RELEASE-CHANNEL-PRIVATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2920097Z - Title: THE-FORKENING W2 (ADR-0036 §2): the publish pipeline targets `BigscreenVR/spt-bs-releases` — release.yml assemble/draft/flip retargeted (draft lands on the bs releases repo, untagged, per the existing spt-releases pattern); docs-publish.yml RETIRED (no public docs, ADR-0014 superseded) with the mdbook build folded into ci.yml as the drift gate (CLAUDE.md mandate: doc generation stays CI-gated); counter + signing key + update-set format CONTINUE unchanged (trust anchor is the continuity, carrier is not). Gate: impl — workflow retarget + drift-gate fold; int — a full release dry-run assembles binaries + docs asset + signed update-set against the private channel. Kin REQ-DOCS-RELEASE-ASSET, REQ-UPDATE-GH-TRANSPORT, ADR-0036.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2922057Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2922200Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2927870Z ### REQ-DOCS-LOCAL-SERVER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2932144Z - Title: THE-FORKENING W3 (ADR-0036 §4, operator-ruled crate-over-handroll + port 5474): the daemon (broker side — docs are up whenever the daemon is) serves $SPT_HOME/docs over HTTP on LOOPBACK ONLY, default 127.0.0.1:5474 (+ ::1 where available; 547 rejected — privileged <1024 breaks the Linux user-daemon + IANA dhcpv6-server), config + env override. Implementation = hyper (ALREADY in-tree via iroh/reqwest — zero new supply chain; operator ruled battle-tested crate over hand-rolled HTTP). GET-only; strict path-sanitize under $SPT_HOME/docs (reject .., absolute, encoded traversal); bounded write discipline (conn-hazard class). Published URL surface preserved VERBATIM (llms.txt contract: /llms-full.txt, append-.md raw, /manifest.schema.json — flynn/perri doc habits must not break). Verbs: `spt docs url` prints the resolved URL honoring overrides; bare `spt docs` opens the system browser (cfg(windows) creation_flags no-console). NEVER 0.0.0.0 — a LAN-visible server re-leaks what privating hid. Gate: unit — path-sanitize rejections + content-type map + loopback-only bind config; int — daemon up serves book index + llms-full.txt + a raw .md byte-true from a landed bundle; doc — CONTEXT.md Docs Server entry + docs-site self-reference updated (site-url). Kin REQ-DOCS-RELEASE-ASSET (the producer), ADR-0036, translation-binary console-window gotcha.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2935686Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2935859Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2935986Z ### REQ-TEST-DAEMON-EPHEMERAL-ADVISORY-PORTS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2938420Z - Title: TEST DAEMONS ON CO-RESIDENT FLEET RUNNERS MUST BIND EPHEMERAL PORTS FOR ADVISORY SURFACES INSTEAD OF PRODUCTION WELL-KNOWN PORTS. An isolated SPT_HOME isolates disk and broker IPC, not globally-numbered TCP ports; engine-room e2e daemons therefore raced the resident fleet for docs port 5474 and intermittently logged DOCS_SERVER_BIND_FAIL os error 10048 beside unrelated precondition failures. A rig-only explicit environment posture selects port 0 for the daemon docs listener while leaving production config, SPT_DOCS_PORT semantics, and `spt docs url` unchanged. The posture wins over a configured or inherited fixed port, the actual bound ephemeral port remains loud in DOCS_SERVER_UP, and a unit holds a real occupied loopback port while proving the docs listener binds elsewhere. This is the first advisory surface; future advisory listeners reuse the same rig posture rather than minting independent test switches. (IR-62)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2941029Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2941188Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2941292Z ### REQ-UPDATE-REFUSAL-EXIT-DISTINCT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2949902Z - Title: A REFUSAL AND A FAILURE ARE DIFFERENT ANSWERS AND MUST NOT SHARE AN EXIT CODE OR A SUMMARY WORD (releases#153, doyle ruling 2026-08-21). A guard that DECLINED and did no work leaves the box exactly as it was; a failure means something broke and may have left work half-done. A caller gating on exit status therefore needs THREE answers: applied (0), refused-with-nothing-done (3), failed (1). CODIFICATION, NOT A NEW CONTRACT — the tree already answered refusals with 3 at three sites (EXIT_NOT_ELEVATED, DAEMON_STOP_REFUSED, UPDATE_FINISH_REFUSED) while cli.rs's own module doc called 1 a 'runtime refusal'; there is no migration to look for, and a fourth code would fork a convention that already reads consistently. WHAT THIS REQUIREMENT COVERS is the places the distinction was genuinely MISSING, which is not where the issue filed it: the adapter sweep's outcome type gains a REFUSED variant carrying the guard's own reason, so a declined release stops rendering FAILED and stops exiting 0 (a sweep that installed nothing must not report success — the filed field shape was a fleet roll recording itself as rolled on the majority of nodes); and the core apply's refused-class arm answers 3 rather than 1. PRECEDENCE: a sweep carrying both a failure and a refusal exits 1 — something broke, and a held rule must not mask it. THE DISCRIMINANT IS DECLINE VERSUS FAULT, NOT WHETHER BYTES MOVED (doyle ruling 2026-08-21, stated here because the tempting wrong rule will be re-litigated by the next reader of ApplyStagedOutcome's doc comments): 3 means policy declined, the system is healthy, change your intent or context and ask again. Rejected (at-rest re-verification — tamper, expiry, key trust) stays 1 even though its own doc says nothing was swapped, because that sentence is a statement about BLAST RADIUS and not about outcome class: what is on disk cannot be trusted, which is a fault. The asymmetry settles it independently of the taxonomy — an &&-gated caller reading 3 carries on, and carrying on is the one reading a tampered artifact must never receive, so filing a security-relevant integrity condition under the benign code would make this contract actively harmful at the site where being loud matters most. Quarantined stays 1 as well: a version rolled back after failing readiness had work happen. The UPDATE_FINISH_REFUSED site is explicitly OUT of scope: it already returns 3 (since 559632e0, shipped in v0.50.0) and is already pinned non-zero from an endpoint context by broker_stop_endpoint_deny_e2e, so the filed face was measured fixed before this lane opened. Gate: doc — the cli.rs exit-code contract sentence and the CONTEXT.md update-composite entry naming what a refusal exits; impl — the REFUSED outcome variant, the sweep's exit aggregation with its precedence, and the refused-class arm; unit — a refusal renders REFUSED with its reason and never FAILED, the sweep exits 3 for refused / 1 for failed / 0 for applied, the mixed sweep exits 1, and the refused apply class answers 3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2957268Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2957428Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2957590Z ### REQ-UPDATE-ADAPTERS-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2960271Z - Title: THE-FORKENING W4 (operator-grilled 2026-07-14): `spt update adapters [<a>[,<b>...]]` = thin ALIAS over the existing `spt adapter update` engine (cli.rs:748 gh_release avenue; the old verb STAYS — published surface) + comma-list accepted on BOTH forms. Semantics: no names -> all gh_release-avenue registrations; names validated FAIL-FAST against the registry BEFORE any update starts (a typo must not leave a half-updated set); per-adapter failure ISOLATION (one failure doesn't stop the rest) with a per-adapter summary line; nonzero exit if any failed; local-path/dev registrations SKIP loud (not error). Gate: unit — name validation, list parsing, isolation + exit-code aggregation, local-path skip; doc — reference regen (drift-gated). Kin REQ-UPDATE-DEFAULT-COMPOSITE (the caller), REQ-ADAPTER-UPDATE-MESSAGE (per-adapter apply notices ride the summary).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2962521Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2962683Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2962786Z ### REQ-UPDATE-DEFAULT-COMPOSITE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2966027Z - Title: THE-FORKENING W4 (operator-grilled 2026-07-14): plain `spt update` = `update fetch --apply` THEN `update adapters` (core-first doctrine order); when core is already current the core leg no-ops and ONLY adapters update; `--core-only`/`-c` skips the adapters leg. GROUNDING (operator-corrected, code-confirmed): fetch --apply cycles the BRAIN only — broker + PTYs survive (apply_staged applyhost.rs:303; the restart-required text is a NOTICE, cli.rs:4615, not behavior) — so the composite's invoking process survives by construction and NO re-run machinery is needed; on a broker-side release the existing F-025 notice remains the composite's closing output. Gate: unit — composite sequencing incl. already-current -> adapters-only and --core-only skip; int — composite on a staged release applies core then updates a registered adapter in one invocation; doc — reference + self-update docs present plain `spt update` as the primary form. Kin REQ-UPDATE-ADAPTERS-VERB, REQ-UPDATE-RESTART-SAFE-SWAP, REQ-UPDATE-APPLY-RESTART-NOTICE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2968832Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2969090Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2969199Z ### REQ-UPDATE-RESTART-SAFE-SWAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2972562Z - Title: THE-FORKENING W4 (operator-grilled 2026-07-14; RETIRES findings-backlog seed #12 REQ-UPDATE-ONE-STEP-SAFE-SWAP): `spt update --restart` = the one-step ergonomic path to the SAFE full-cycle swap — fetch -> `update adapters` -> `apply --finish` LAST (lethal-leg-last, ruled: apply --finish restarts the whole daemon incl. broker/PTYs, so it must be the final act — everything completes from ANY invoking context including an spt-hosted session whose PTY dies at that step; accepted cost: a finish FAILURE leaves updated adapters on old-activated core briefly — loud + operator-attended by nature of the flag). Composes with `-c/--core-only` (skip adapters leg). The 0.28.0 wedge lesson closes: the ergonomic one-step no longer picks the riskier path by default for operators who want the full cycle. Gate: unit — flag sequencing incl. lethal-leg-last ordering + -c compose; doc — self-update docs present --restart as the full-cycle form and name the finish-restart consequence. Kin REQ-UPDATE-DEFAULT-COMPOSITE, REQ-UPDATE-FINISH-COMMUNE-FLUSH (deferred commune-flush rides the same finish path when built), seed #12 (retired by this).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2975563Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2975715Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2975816Z ### REQ-DAEMON-REFRESH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2979082Z - Title: THE-FORKENING W4 (operator add 2026-07-14): `spt daemon refresh` — restart the daemon BRAIN without a binary swap and WITHOUT touching the broker: exactly the apply_staged brain-cycle path (brain stop -> respawn -> readiness trial -> promote, incl. the trial-drain drive REQ-UPDATE-TRIAL-DRAIN-DRIVE and viewer-only resume REQ-BRAIN-RESUME-NO-CONTROL-STEAL) minus the swap. Recovery verb for wedged brain-held state (field motivator 2026-07-14: endpoint bringup broken on a live daemon + deployah down — today's only remedy is a full daemon bounce that kills every PTY). Broker + PTYs survive by construction (handoff invariant). Failure = the existing trial rollback semantics (old brain resumes; refresh reports loud). Gate: unit — verb routes the brain-cycle without staging/swap preconditions; int — refresh on a live daemon with a hosted PTY: brain generation changes, PTY survives, endpoint stays attached; doc — daemon docs name refresh next to stop/start. Kin apply_staged (the path it reuses), REQ-UPDATE-TRIAL-DRAIN-DRIVE, REQ-BRAIN-RESUME-NO-CONTROL-STEAL.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2982034Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2982193Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2982297Z ### REQ-WHOAMI-IDENTITY-ONLY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2985469Z - Title: PROJECT-INDEX W1 (F-040, perri filing claude-spt docs/SPT-CORE-FINDINGS.md @d775b38; correctness-critical opener — the 2026-07-15 message-bodies incident root): a core IDENTITY-ONLY resolution — session -> endpoint|null — that touches NO list/registry/project/git/network path, and `spt whoami` DE-ALIASED from cmd_endpoint_list (cli.rs ~6609 aliases the full list = 100+ git children under hook deadlines). endpoint-info is DISQUALIFIED as the carrier (runs latest_project_ref). Adapters/hooks get a bounded-time identity verb; the harness-hosted adapter fallback stays deadline-vulnerable until this ships. Gate: impl — the resolver + whoami de-alias; unit — resolver returns endpoint|null with zero project derivation (assert no git spawn seam); int — whoami on a multi-perch home answers fast-path without touching context branches; doc — harness-contract api.md names the identity verb + its no-derivation bound. Kin REQ-PROJECT-INDEX-READER-CUTOVER (list-shaped verbs), REQ-WHOAMI-1, docs/PROJECT-INDEX-TRIAGE.md.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2988254Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2988405Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2988505Z ### REQ-PROJECT-INDEX-STORE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2990816Z - Title: PROJECT-INDEX W1 (ADR-0037, RCA .claude/reports/2026-07-10-hertz-session/03): spt-store owns the VERSIONED materialized project-index format + read path. Reader contract: read one compact versioned index, join with the local perch roster, return immediately; stale/missing renders last-known-good or '-'; NEVER fall back to synchronous git enrichment; daemon-offline readers consume the last persisted snapshot; truncated/schema-mismatched index degrades to fast reads + last-known-good, never an error stall. Gate: impl — format + store read path; unit — version/schema-mismatch/truncation degradation legs + join semantics; doc — CONTEXT.md project-index entry + STORAGE.md section. Kin REQ-PROJECT-INDEX-WRITER (the producer), ADR-0037.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2992738Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2992877Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2992981Z ### REQ-PROJECT-INDEX-WRITER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2996520Z - Title: PROJECT-INDEX W2 (ADR-0037): the daemon is the SOLE single-flight project-index writer: load persisted index at startup; ready WITHOUT warm (cold start = daemon ready + CLI fast before background completes); background reconcile with BATCHED complexity O(P+B+F+C) — enumerate branches ONCE, <=1 tree scan per changed branch, ONE derivation per distinct normalized cwd (in-process BranchStore traversal or fixed plumbing calls; backgrounding the existing 100+ process loop is REJECTED); atomic replace; last-known-good preserved on any failure; warm start with unchanged generation performs NO scan. Observability surface: generated time, source generation, pending refresh, last duration/error, endpoint/project/cwd counts, cache hits/misses, stale reads, repair count — index presence alone is not health. Gate: impl — writer + observability; unit — single-flight, atomic-replace, last-known-good, no-scan-on-unchanged-generation; int — cold+warm start legs against a real store; COMPLEXITY COUNTERS are the CI gate (wall-clock = manual acceptance ONLY, shared-runner flake class); doc — daemon docs writer-duty section. Kin REQ-PROJECT-INDEX-STORE, REQ-PROJECT-INDEX-INVALIDATION.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.2999859Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3000020Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3000130Z ### REQ-PROJECT-INDEX-INVALIDATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3002964Z - Title: PROJECT-INDEX W2 (ADR-0037): event-driven index invalidation, debounced + coalesced: new session/cwd -> refresh that endpoint + the shared cwd cache; context-store mutation -> ONE debounced global membership refresh keyed on BRANCH-TIP FINGERPRINTS (no authoritative context-commit path exists — a writer-maintained generation counter is REJECTED because nothing maintains it); bind/start, rename, fork, purge -> affected endpoint rows; low-frequency periodic reconcile as the backstop; cwd identity refresh ONLY on path/repo-identity/.git-config change (ordinary commits do NOT alter project identity); multiple invalidations coalesce into one refresh. Gate: impl — the event set + debounce/coalesce; unit — each event class maps to its refresh scope + coalescing proof + ordinary-commit no-op; int — session/context/rename/fork/purge invalidation against a live daemon; doc — rides the ADR + triage doc. Kin REQ-PROJECT-INDEX-WRITER.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3005530Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3005689Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3005802Z ### REQ-PROJECT-INDEX-READER-CUTOVER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3009235Z - Title: PROJECT-INDEX W3 (ADR-0037): endpoint list, the picker, and endpoint-info consume the materialized index — NO git work in any user-facing read path (the O(PxB+C) fanout at cli.rs ~2954 / picker/data.rs ~456-518 dies). BEHAVIORAL PARITY is binding: precedence session-cwd -> origin-cwd -> context-recency and rendered project IDs/display names unchanged (parity suite vs the old derivation on a fixture); bare/partial run shares the indexed projection; fully-qualified --adapter+--id direct run stays picker-free; the direct-run 25s broker-session gate stays separately tested/observable. Degradation legs (git unavailable, branch malformed/locked, cwd deleted) keep fast reads. Manual latency acceptance on the 13-perch/7-branch fixture (~30s -> sub-second) + hertz field-verify on HFENDULEAM — NOT a CI wall-clock gate. Gate: impl — reader cutover; unit — parity + degradation; int — list/picker against a daemon-maintained index incl. counters proving zero reader git spawns; doc — reference regen + CONTEXT avoid-list. Kin REQ-WHOAMI-IDENTITY-ONLY, REQ-PROJECT-INDEX-STORE/WRITER/INVALIDATION.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3012178Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3012337Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3012455Z ### REQ-HEAVY-UNIT-CLASSIFICATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3016520Z - Title: A unit test that stands up a REAL broker inside a lib/bin `#[cfg(test)]` block must sit in the `heavy-broker-pty` nextest group, and the classification must be ENFORCED rather than remembered. FLAKE-LEDGER: `attach_viewport_reconnects_across_a_broker_bounce` diagnosed this class in the `spt` binary, wrote the CLASS in prose, then shipped an ENUMERATION of four `rc::tests::` names — so the identical shape in `spt-daemon`'s lib (`applyhost`: a real `Broker::bind` + `serve()` in 10 of its 13 units) stayed in the full-parallel Phase-A pool and TIMED OUT at 240s twice, at v0.32.0 and again under the v0.39.0 W5 gate, the v0.32.0 remedy never having landed. The defect is provable from `.config/nextest.toml` ALONE (two overrides, neither matching `kind(lib)`); timing evidence only ever estimated the rate. Gate: impl — heavy-group overrides for `applyhost`/`livehost`/`pump` (spt-daemon lib) and `wansend` (spt bin, found BY the check rather than by a person), plus `xtask check`'s `check_heavy_unit_classification` keyed on the SHAPE (a `Broker::bind` after the `mod tests` marker) instead of a name list; unit — the two pure seams, including the regression for this check's OWN first draft, which substring-matched `<module>::tests` and so missed every module written inside an alternation group. Kin FLAKE-LEDGER: `attach_viewport_reconnects_across_a_broker_bounce` + the HEAVY-AT-BIRTH ruling (.config/nextest.toml), REQ-CI-DOCS-ONLY-THIN.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3020287Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3020433Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3020528Z ### REQ-CI-DOCS-ONLY-THIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3024128Z - Title: CI (operator-ruled 2026-07-16, from PR #8 review; registry-only extension operator-approved 2026-07-27; superseded for main pushes by ADR-0050 on 2026-07-29): a PR whose ENTIRE diff is Markdown OUTSIDE docs-site/ and/or the declarative `traceable-reqs.toml` registry runs THIN CI — the heavy build/test jobs are skipped via a changed-files classifier job. `traceable-reqs.toml` has no Rust/product consumer; its load-bearing correctness gate is traceability. Invariants: the traceability gate ALWAYS runs (doc/registry tags and activated-stage coverage are load-bearing evidence, and a run with zero checks is unmergeable); any docs-site/ change runs the PR lint/unit/traceability lane; any other non-Markdown path runs that same lane. Main pushes also run thin CI only; the full evidence for main's exact SHA is the uncancelled golden run that produced it, and main advances only by fast-forward to that tested SHA. The classifier is plain git diff over the PR merge commit (HEAD^1..HEAD, fetch-depth 2) — no third-party changed-files action on the self-hosted runners. Skipped-required-check note: GitHub treats an if-skipped job as satisfying required status checks, and the classifier + traceability always report, so thin PRs stay mergeable.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3027348Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3027481Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3027667Z ### REQ-GOLDEN-CI-LANE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3030031Z - Title: Builder PRs run only the thin lint/unit/traceability lane; the full cross-platform suite runs once on the gater-assembled golden branch, never cancels in progress, and main advances only to that exact tested SHA. Both coordinated two-host jobs run by default on every golden branch and workflow_dispatch; manual dispatch exposes an explicit twohost opt-out for intentional evidence isolation, never an opt-in whose omission can silently skip the seam. Their dependency on the suite is a rendezvous barrier only: !cancelled() runs both roles after either suite result so an unrelated red cannot silently erase independent seam evidence. A checked-in flake registry may authorize exactly one same-SHA rerun for an exact test id with recorded evidence and a retirement condition; a rerun red blocks the batch. workflow_dispatch remains available for an explicit candidate SHA. (ADR-0050; ACCESS-CONTROL W0.)
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3032287Z - Required stages: doc, impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3032426Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3032530Z ### REQ-FLAKE-LEDGER-KEYED-ROWS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3038857Z - Title: releases#95: `docs/FLAKE-LEDGER.md` rows are keyed by the TEST (or CI-step) NAME, never by a hand-numbered position column. The number column made an append-at-end table into a merge hazard — two lanes each appending "row N+1" conflict textually AND mint the same N — but the harder half is that a POSITIONAL key can be squatted: commit 5199464 (2026-07-15) minted the citation `FLAKE-LEDGER #15` for the HEAVY-AT-BIRTH classification ruling WITHOUT adding a ledger row (the table was 14 rows before and after), the label then propagated to 20 further sites across `.config/nextest.toml`, six test-file headers, two triage docs and this registry, and commit e1a3338 (2026-08-01) appended a genuinely unrelated row 15 (the servicehost pid-identity defect) — so every in-tree `#15` citation silently resolved to the wrong entry until this change. The fix is therefore BOTH halves in one commit: drop the column AND re-key every citation, in-table and out. In-table backrefs (rows citing #7/#8/#10/#12/#13 in their own prose) become test names; external citations become `FLAKE-LEDGER: <test name>`; the phantom `#15` class is re-pointed at what it actually names — the HEAVY-AT-BIRTH ruling, whose canonical text is the `.config/nextest.toml` <HEAVY> stanza, cited by ruling name and not by any number. Gate: doc — the ledger states the keying discipline, carries no number column, and BACKFILLS the row the phantom number concealed. That backfill was deferred to doyle at first report and handed back (2026-08-02): the primary RCA log predates doyle's last context reset and is not retained, so the 20 citation sites plus `5199464`'s own commit message — which ends "Ledger entry appended." over a diff that touches only `ci.yml` and `.config/nextest.toml` — ARE the surviving record. The row is therefore written in date order rather than appended, and states in its own status column that it is reconstructed and which evidence (run ids, per-sighting timestamps, raw gate logs) did not survive; a backfill indistinguishable from a contemporaneous row would be cited as if it carried primary evidence. The ledger intro carries that backfill discipline as a standing rule. Kin REQ-HEAVY-UNIT-CLASSIFICATION, REQ-CI-WINDOWS-PHASE-A-BOUND (both cite the ledger).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3044548Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3044677Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3044789Z ### REQ-RELEASE-VERSION-TAG-ASSERT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3051465Z - Title: releases#106: the release workflow REFUSES to publish a release whose built binary disagrees with the tag. `.github/workflows/release.yml` already guards the CHANGELOG against the tag (`ver="${GITHUB_REF_NAME#v}"`, `::error::` + `exit 1`) but nothing proves the ARTIFACT carries that version — a tag pushed without bumping `[workspace.package] version` (and the first-party `spt-*` lines in `Cargo.lock`) ships a binary that self-reports the previous release. Shape: after the platform builds and BEFORE `gh release create`, execute the freshly built binary FOR THE RUNNER'S OWN PLATFORM with `--version`, compare to `${GITHUB_REF_NAME#v}`, and on mismatch fail with a named error stating BOTH values and naming the fix. SCOPE CONSTRAINT, load-bearing: a cross-compiled `matrix.target` artifact CANNOT be executed on the runner, so the assert must sit where a natively-runnable artifact is in scope — the native (non-`matrix.target`) leg, or the notes job after artifact download if the native asset is fetchable there. The assert lands in the RELEASE workflow, never as a new CI window (two-runs-per-sha ruling). SHIPPED SITE: the `assemble` job after `download-artifact` and before the docs bundle and `gh release create` — the one place the whole asset set exists at once on a box that can natively execute part of it, and the bytes there are the ones about to be published rather than a build-tree lookalike. The two Linux assets are covered; the WINDOWS asset is not, stated rather than glossed — no Linux runner can execute it, and a matching Linux artifact is evidence the workspace version was bumped, not evidence the Windows leg built from that tree. VERIFICATION STANCE, recorded at mint and honored: the workflow is tag-triggered and cannot be run locally, so no green is claimed for it. Instead the logic was EXTRACTED to `.github/ci/release-version-assert.sh` (the repo's own convention for CI logic, beside `ci-notify.sh` and the reap-census pair) precisely so it stops being unrehearsable, and its selftest runs on every golden Linux leg. Gate: impl — the script plus release.yml calling it; unit — `release-version-assert-selftest.sh`, 12 assertions, over half of them negative controls (stale binary, binary ahead of tag, missing artifact, unrunnable binary, empty asset list, absent tag).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3057218Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3057363Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3057472Z ### REQ-CI-NOTIFY-CANCELLED-CLASS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3062948Z - Title: releases#107: the CI notifier classifies CANCELLED separately from FAILURE, so a cancelled golden run stops paging the fleet as a red. `.github/ci/ci-notify.sh` `check()` (lines 94-111) folds `failure | cancelled` into one `failing` string and renders `verdict="FAILURE"` for any non-empty value. PRECEDENCE IS THE WHOLE RISK: a genuine failure normally CANCELS its siblings, so mixed failure+cancelled IS the shape of a real red — ANY `failure` present ⇒ FAILURE verdict (cancelled jobs may still be listed as context); ONLY zero failures AND ≥1 cancelled ⇒ the cancelled class, worded so it does not contain the word FAILURE. `skipped` stays non-red (REQ-CI-DOCS-ONLY-THIN deliberately skips jobs on docs-only PRs). Getting the precedence backwards silences real reds. Gate: impl — the split classes plus a LIBRARY seam, because the script is untestable as written (it `exit 0`s early when `spt` is absent from PATH and otherwise proceeds to real sends). Minted proposing a `CI_NOTIFY_DRY_RUN` env knob; SHIPPED as `SPT_CI_NOTIFY_LIB=1`, which sources the file for its `compute_verdict`/`compose_body` functions and returns before the probe/recipient/send sections — the seam `reap-census.sh` already established with `SPT_CI_REAP_LIB`, and it exposes the BODY as well as the verdict, which the wording half of this requirement needs. Executing (rather than sourcing) with the flag set exits 2 rather than no-opping to 0. unit — a `ci-notify-selftest.sh` driving the RESULT_* matrix (all-success / single-failure / all-cancelled / failure+cancelled / skipped-only / never-ran) and asserting both the verdict and the rendered body, wired into golden.yml the way `.github/ci/reap-census-selftest.sh` is. The selftest MUST carry a POSITIVE CONTROL — that a real FAILURE still pages — not merely that cancelled goes quiet. Kin REQ-CI-DOCS-ONLY-THIN, REQ-GOLDEN-CI-LANE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3067708Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3067850Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3067946Z ### REQ-GOLDEN-RESPIN-TEST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3072914Z - Title: BAROMETER (releases#105; operator-ruled 2026-08-02): a defect found on an ASSEMBLED golden head is triaged by two questions answered separately, in order, Q2 never feeding Q1. Q1 RESPIN classifies by WHERE THE DEFECT LIVES, never by which files the fix touches: a defect inside what golden validated (code, build config, tests, CI config, gated docs) invalidates the head's evidence and buys a respin — the refusal is the DEFAULT; a defect outside golden's evidence ships, and the fix re-homes to buy its evidence on the head it lands with, which is never merge-untested since everything still lands ff-only via a future golden head. The shortcut is earned only against the PROVABILITY BAR: a name-only diff confined to non-code PLUS the compiled-in exceptions (version material) checked by MEASUREMENT — provable by diff, not plausible by argument; a delta needing an argument buys the full window. Q2 SEVERITY decides urgency and sizing, never which sha carries the fix. Carries two riders of the same root: the PUSH run IS the golden run (golden.yml two-host condition at 598/677 — a push satisfies `event != workflow_dispatch` and runs both legs unconditionally, so a reflexive dispatch is a duplicate serial window), and a superseding ruling must land where the reader looks before any actor carries the stale sentence into a plan (releases#71 5153399070 -> 5155301974). Amends ADR-0050 and RELEASE-RUNBOOK step 1: tested-SHA-equals-shipped-SHA becomes tested-SHA-equals-shipped-SHA-OR-provable-code-free-delta-from-a-tested-SHA. Worked example v0.51.0 counter 86 @6312b01: five files, zero .rs, 92 version-sensitive tests green on the bumped tree.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3077179Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3077300Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3077418Z ### REQ-HAZARD-REDISPATCH-CONTROL-STEAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3080852Z - Title: REDISPATCH-TRUTH W1 (KNOWN-HAZARDS 7.41, hertz field RCA 2026-07-16 — 4/5 endpoints frozen per brain cycle): a fresh dispatcher must NEVER re-serve a terminal stream — a replayed historical Attach must not steal (same-identity silent become_controller, no Displaced) or clear (replayed-EOF detach_session) a LIVE controller. The legitimate same-by successor re-take after a brain restart still silently re-takes: the discriminator is stream LIFECYCLE, never origin identity. Gate: int — production-path regression D1: finished historical Attach + current active Attach, same endpoint/origin; restart target brain only (real run_dispatch_loop rediscovery, NO manual re-serve — the pre-fix e2e bypass is the lesson); prove the historical stream neither takes nor clears the current controller and current input/output stays exactly-once without detach; doc — KNOWN-HAZARDS 7.41. HEAVY nextest group at birth (the HEAVY-AT-BIRTH ruling, .config/nextest.toml). Kin REQ-REDISPATCH-FINISHED-RETIRE (the mechanism), REQ-BRAIN-RESUME-NO-CONTROL-STEAL (the CLOSED session-cursor sibling — different leg), ADR-0038.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3083850Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3083988Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3084096Z ### REQ-REDISPATCH-FINISHED-RETIRE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3087058Z - Title: REDISPATCH-TRUTH W1 (ADR-0038, hertz fix A): finished/terminal stream rows are RETIRED from redispatch eligibility — NetShared.streams today has NO removal path (single insert nethost.rs ~649; StreamLog::finish only marks) so every dispatcher generation re-enumerates every historical stream forever. Retire terminal rows from the enumeration the dispatcher claims from (remove, or lifecycle-exclude), preserving only the post-EOF state genuinely needed by other readers (presence/log reads); bounded growth replaces forever-discoverable rows. Clearing the whole table on brain restart is REJECTED (destroys live streams' reconstruction facts). Gate: impl — the retirement path; unit — a finished stream is invisible to the dispatch enumeration while an active one stays claimable + post-EOF reader state survives retirement; doc — rides ADR-0038 + the triage doc. Kin REQ-HAZARD-REDISPATCH-CONTROL-STEAL (the invariant it satisfies), REQ-STREAM-OPENER-DURABLE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3089783Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3089944Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3090050Z ### REQ-STREAM-OPENER-DURABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3093592Z - Title: REDISPATCH-TRUTH W1 (ADR-0038, hertz fix B): stream classification identity is RESTART-DURABLE and independent of the evictable data ring — today reconstruction classifies via peek_first_line from ring seq 0, but StreamLog is a bounded 4096-transport-chunk ring (DEFAULT_STREAM_RING_CHUNKS, nethost.rs:111), so a high-traffic ACTIVE stream's opener/Request record evicts and replay classifies Unknown/Failed = active stream permanently abandoned. Pin an immutable bounded opener/classification fact (the complete first NDJSON record, or its derived family+cursor facts) OUTSIDE the data ring per broker-held inbound stream, held until stream close; recovery classifies from that metadata, never ring seq 0. Ring semantics and size untouched (enlarging the ring for a correctness fact is REJECTED). Gate: impl — the pinned opener fact + classification cutover; unit — classification survives full ring roll-over; int — production-path regression D2: push >4096 transport chunks on an active Attach (opener evicted), restart dispatcher, prove durable classification resumes the SAME operator stream. HEAVY nextest group at birth. Kin REQ-DISPATCH-CLAIM-RETRY, REQ-HAZARD-REDISPATCH-CONTROL-STEAL.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3096793Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3096940Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3097050Z ### REQ-DISPATCH-CLAIM-RETRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3099977Z - Title: REDISPATCH-TRUTH W1 (ADR-0038, hertz fix C): dispatcher claims are RETRYABLE and outcomes are CLASSIFIED — today claimed.insert(stream_id) happens PRE-spawn (dispatch.rs:206/214) and is never cleared or retried on Unknown/Failed, so one transient worker-setup failure permanently abandons the stream. Distinguish active/retryable vs served vs finished: a transient worker-setup failure releases/requeues the claim (bounded/backoff-shaped); terminal classification outcomes stay terminal and do NOT hot-loop (show the distinction in test, not just code). Gate: impl — claim lifecycle; unit — transient failure requeues + terminal outcome does not (no hot-loop under a persistently-failing stream); int — production-path regression D3: inject ONE transient worker-start failure, prove claim retry recovers the stream with NO duplicate controller/output. HEAVY nextest group at birth. Kin REQ-REDISPATCH-FINISHED-RETIRE, REQ-STREAM-OPENER-DURABLE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3102498Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3102649Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3102753Z ### REQ-HAZARD-MESH-BOOTSTRAP-TRAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3106269Z - Title: MESH-RECOVERY W1 (KNOWN-HAZARDS 7.42, hertz field RCA 2026-07-10 — HFENDULEAM+ENLYZEAM symmetric green-status sequester): a node holding a valid RosterEntry.address for a peer is NEVER route-less — a failed dial must not delete the only bootstrap route, and recovery must never require an already-successful connection or operator state surgery. Today: resolve_submit_addr = exact cache else id-only (never roster), PRESENCE_DIAL_FAILED unconditionally drop_seed's the cache row, and the cache refills only after a successful seed-proof exchange — one transient + stalled discovery = self-sustaining isolation, invisible (net_up true, heartbeat fresh, durable counts normal). Gate: int — production-path regression at the REAL pump resolver/failure-lifecycle seam: valid roster + matching cache, ONE transient dial failure, id-only discovery DISABLED, prove the next attempt still holds the roster-derived route AND all-peer-fail-then-restore converges with zero state surgery; doc — KNOWN-HAZARDS 7.42. HEAVY nextest group at birth if it spawns a daemon tree. Kin REQ-PEER-ROUTE-CHAIN (the mechanism), REQ-CONV-1 (the falsified drop-on-fail predecessor), ADR-0039.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3109451Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3109595Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3109684Z ### REQ-PEER-ROUTE-CHAIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3113595Z - Title: MESH-RECOVERY W1 (ADR-0039, RCA wave 1): dial-address resolution is the ROUTE CHAIN — exact peer-cache entry, then VALIDATED RosterEntry.address (address.id must match the peer key; a poison row never becomes a route), then id-only discovery — always fully consulted in order (no failure-count heuristics gating legs; rotation machinery REJECTED). Retention is NONDESTRUCTIVE: PRESENCE_DIAL_FAILED demotes the cached route to suspect (skipped in favor of the roster leg while suspect, superseded by any validated fresher address from connect write-back or reconcile), never deletes a sole route; removal only via validated-fresher replacement or roster tombstone. Validated roster addresses RECONCILE into the cache at daemon startup and on roster merge (beyond gapfill's fill-only: validated-fresher replaces failed/suspect rows) — recovery is connection-independent. Amends REQ-CONV-1's drop-on-fail mechanism; peeraddrs.rs/pump doc-comment truth rides the same change. Gate: impl — chain + demote + reconcile; unit — chain order incl. id-mismatch roster row resolves nothing + suspect row survives N failures with no replacement + reconcile replaces suspect with validated-fresher; int — rides REQ-HAZARD-MESH-BOOTSTRAP-TRAP D-legs; doc — ADR-0039 + CONTEXT peer-route chain entry. Kin REQ-PEERADDR-INVARIANT, REQ-CONV-1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3117106Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3117273Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3117368Z ### REQ-PEERADDR-INVARIANT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3120504Z - Title: MESH-RECOVERY W1 (ADR-0039, RCA wave 2): the peer-addrs cache INVARIANT — outer peer key == address.id — is ENFORCED on load and on write: invalid rows are repaired from the current roster when possible, rejected (dropped loudly) otherwise; never silently kept, never used as a route. MIGRATION = rebuild invalid rows from roster on first post-upgrade load; bare-deleting peer-addrs.json is REJECTED (cold recovery depends on the id-only path staying BEHIND warm routes — nuking every warm route trades one trap for another). gapfill_peeraddrs and PeerAddrStore::put stop accepting mismatched mappings (the live 5ff…-outer poison-row class on both incident nodes). Absent/corrupt-degrades-empty behavior untouched. Gate: impl — load/write enforcement + repair + migration; unit — mismatch rejected on put, repaired-or-dropped on load, valid rows untouched by migration, gapfill refuses a mismatched roster entry; doc — ADR-0039. Kin REQ-PEER-ROUTE-CHAIN, REQ-MESH-2 (gapfill), REQ-CONV-1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3122994Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3123212Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3123308Z ### REQ-PUMP-STAGE-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3126894Z - Title: MESH-RECOVERY W1 (ADR-0039, RCA wave 3 — the acceptance surface, same contract): peer-failure telemetry is STAGE-SPLIT and health is USER-MEANINGFUL. The single 10s PUMP_PEER_FAIL token splits into attributed stages — address-resolution, QUIC connect, ALPN, seed-proof send, seed-proof receive/verify, roster exchange — each failure stamped (wall+mono) and peer-attributed (subsumes the 2026-07-14 PUMP_PEER_FAIL-unstamped seed). daemon status / subnet status report: live peer count, last successful peer dial, last admitted registry update, duration of any all-peer failure; the incident fingerprint (all dials failing + heartbeat fresh + net_up true) MUST render degraded — no green without real peer progress. New fields ADDITIVE (N-1 readers unaffected). Gate: impl — stage split + status surfaces; unit — stage classification + health state machine (degraded on all-peer failure, healthy only on real progress, not on heartbeat/time); int — health flips degraded/healthy across a real peer outage/restore; doc — reference regen (CLI surface change → xtask gen, no internal codes in clap help). Kin REQ-PEER-ROUTE-CHAIN, REQ-DAEMON-5 (heartbeat — answers liveness, not reachability), REQ-CLI-2/REQ-SUBNET-8 (render legs).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3130256Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3130410Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3130519Z ### REQ-HAZARD-REDISPATCH-STALL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3134283Z - Title: REDISPATCH-STALL W1 (KNOWN-HAZARDS 7.43, hertz v0.34 field RCA 2026-07-16 — recurrent 20-30s PTY/RC freezes, 17-62s DISPATCH tails): one wedged stream subscriber must NEVER stall stream serving, and recovery machinery must not manufacture new replay victims. Today: claim retries x the broad Err(_) opener fallback (dispatch.rs:414) install throwaway peek subscribers whose StreamLog::attach replays the entire retained ring UNDER the per-stream mutex with discarded write errors and the poisoned subscriber left installed — serial 15s bounded-write poison windows (33 observed, all 15,000-15,154ms) composing into the field stalls. Gate: int — production-path regression at the REAL run_dispatch_loop + StreamLog + serve_attach seams: wedge one subscriber conn, prove producer appends and unrelated streams stay flat while the poisoned subscriber is removed and the stream recovers (no abandonment); doc — KNOWN-HAZARDS 7.43. Binding: redispatch D1/D1b stay green every leg. HEAVY nextest group at birth. Kin REQ-STREAMLOG-SUBSCRIBER-DISCIPLINE + REQ-DISPATCH-FALLBACK-CIRCUIT (the mechanisms), REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK (the deadline that fires), ADR-0038 Amendment.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3137492Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3137629Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3137740Z ### REQ-DISPATCH-FALLBACK-CIRCUIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3141432Z - Title: REDISPATCH-STALL W1 (ADR-0038 Amendment, fixes 1+5): the opener ring-peek fallback fires ONLY on the explicit UnsupportedVerb/old-broker answer — transport timeout/EOF/poison classify Failed and requeue bounded, NEVER a second replay subscriber (today first_line's Err(_) arm at dispatch.rs:414 catches everything; the comment intends old-broker-only). Retries are CLASSIFIED: pre-setup transient may retry; a deadline-poisoned replay is CIRCUIT-BROKEN (global backoff) and a replacement subscriber is never installed until the prior subscriber is fully gone. NOT a revert to the v0.33 burn-the-claim abandonment (rejected): the stream must recover after the breaker window — show it in test. Gate: impl — narrowed fallback arm + breaker; unit — timeout/EOF/poison never reach the peek path while unsupported-verb does + breaker trips and resets + no-reinstall-until-gone; int — T2 (no peek subscriber created on transport errors) + T5 (breaker recovery, the not-abandonment discriminator) + T7 mixed-image N-1 with REAL traffic-carrying streams (handshake-only insufficient); doc — ADR-0038 Amendment. Kin REQ-DISPATCH-CLAIM-RETRY (upgraded, not reverted), REQ-STREAM-OPENER-DURABLE (the N-1 window it narrows).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3144705Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3144871Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3144980Z ### REQ-STREAMLOG-SUBSCRIBER-DISCIPLINE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3149344Z - Title: REDISPATCH-STALL W1 (ADR-0038 Amendment, fixes 2+3+4): StreamLog subscriber write discipline — (a) replay and live fan-out HALT at the first failed subscriber write and the failed subscriber is REMOVED, at ALL sites (attach replay, append, finish; PresenceLog mirrors ride the same change — today let _ = sub.write() discards errors and iteration continues, nethost.rs:322-346); (b) subscriber I/O moves OFF the StreamLog mutex: bounded per-subscriber writer queue, enqueue-under-lock / I/O-outside, overflow = detach + resume-from-cursor (the existing gapless-resume contract), never a producer stall; (c) attach worker completion + forwarding BOUNDED and cancelable — a poisoned brain subscriber cancels its paired serve/wire worker, no orphan forwarding legs (COORDINATE with DAEMON-LIFECYCLE C2 leases at build — same neighborhood, build once). Gate: impl — halt+remove all-sites + writer queue + cancelable pairing; unit — halt-at-first-failure removes the subscriber at each site + queue overflow detaches with cursor intact + producer append never blocks past enqueue; int — T1 (poisoned-replay halt) + T3 (producer latency flat under a wedged subscriber) + T4 (paired worker canceled on poison); doc — ADR-0038 Amendment. Kin REQ-HAZARD-REDISPATCH-STALL, REQ-CONN-POISON-ATTRIBUTION (the telemetry that caught it), REQ-EP-4 (PresenceLog contract unchanged above the write leaf).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3153095Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3153256Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3153361Z ### REQ-SERVE-OWNERSHIP-GENERATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3156618Z - Title: REDISPATCH-STALL W1 (ADR-0038 Amendment, fix 6): terminal-exclusion enforced PRE-SERVE + ownership/generation validation on attach/detach — a stale worker can never detach or displace a REPLACEMENT controller (today detach_if compares Arc ptr identity only; the serve path re-checks nothing at completion). Covers the UNFINISHED-stale-row control-steal shape (raw-close no-FIN viewports, emphasys C2 leak class feeding it) that finished-row retirement (D1/D1b) definitionally cannot see — the discriminating field observable on the next live steal catch = the stolen row's finished+retired flags. Gate: impl — pre-serve terminal exclusion + generation/ownership tokens on attach/detach; unit — stale-generation detach refused while the same-generation detach lands; int — T6 (UNFINISHED-stale attach row + live current controller + dispatcher restart: neither takes nor clears the replacement, D1/D1b green alongside); doc — ADR-0038 Amendment. Kin REQ-HAZARD-REDISPATCH-CONTROL-STEAL (the finished sibling), REQ-REDISPATCH-FINISHED-RETIRE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3159609Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3159771Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3159876Z ### REQ-DISPATCH-HYGIENE-TELEMETRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3162914Z - Title: REDISPATCH-STALL W1 (ADR-0038 Amendment, fixes 7+8+9): dispatcher hygiene + keyed observability — (a) bounded redispatch worker pool with batched cold enumeration, NO claim locks held during I/O (today thread::spawn per stream, unbounded on a cold table); (b) sessions-lock discipline: clone-then-drop before detach_if/info.json I/O (KH 7.12 kin — no fs/conn I/O under global locks); (c) keyed stage telemetry: gen/stream/family/endpoint/attempt/conn on every dispatch record + replay/poison/cancel/worker-outcome events + gauges + PTY high-water/RC cursor — the field-discriminator surface (poison-window census, stream-sub-attach per generation dropping to O(active streams)). Gate: impl — pool + enumeration batching + lock discipline + telemetry keys; unit — pool bound honored under a cold flood + no-lock-across-I/O seam + telemetry key completeness; doc — ADR-0038 Amendment. Kin REQ-HAZARD-REDISPATCH-STALL, KH 7.12 (locks), REQ-CONN-POISON-ATTRIBUTION (extends its attribution).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3165525Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3165681Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3165796Z ### REQ-BRAIN-READY-WINDOW-OBSERVABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3171619Z - Title: THE BRAIN_UP -> brain.ready WINDOW IS OBSERVABLE IN ONE GREP (RCA-242-R2-LINUX, ruled 2026-08-29). Every happy-path stretch between the BRAIN_UP line and the ready file used to be SILENT: announce_coordinator_image's Ok(true) arm is empty, resume_session_cursors' Ok(_) arm is empty AND is the always-taken one (the supervised daemon brain hosts no PTY sessions), and write_ready's first current_exe_hash() reads and SHA-256s the whole binary inline before the atomic write. THE COST WAS PAID TWICE: four golden cells burned a full untuned 30s readiness budget while their own daemon stderr showed BRAIN_UP at 26-65ms, and the stall point -- blocked on a broker reply READ versus inside the exe-hash -- could not be separated from the log at all, so the RCA closed UNDISCRIMINATED by construction. activity_link_push_e2e then failed again WARM, which carved it out of the load-tail ruling and made the undiscriminated window gate-blocking rather than a footnote. THE SHAPE IS ONE TOKEN FAMILY WITH PER-PHASE ELAPSED MS: three BRAIN_PHASE lines whose figures SUM TO THE GAP, so a reader names the stretch in one read instead of a second instrumented run. ELAPSED, NEVER WALL STAMPS -- CONN_LIFECYCLE already carries wall_ms for correlation and a second clock in one log is how two clocks start disagreeing. THE READY LINE ALSO CARRIES THE RESOLVED PATH (gate rider): a test polls a path it resolved itself, so a poller/writer mismatch is ruled in or out rather than inferred. THE HASH FIGURE IS TIMED WHERE IT IS PAID, INSIDE write_ready, AND CARRIES computed=true|false. This is the requirement, not an implementation detail: current_exe_hash memoises in a OnceLock, so an instrument that timed a SECOND call from the caller would measure a cache hit and report ~0ms with computed=false on every run -- a vacuous meter for the one stretch it exists to measure, and the failure would be invisible because 0ms reads as good news. EMISSION IS emit_line_err! THROUGHOUT so these breadcrumbs never become the next census's residue. SCOPE BOUNDARY, RULED: moving current_exe_hash OFF the ready path is the honest fix for that stretch and is NOT part of this requirement -- it touches ADR-0018 Q7's ratified readiness semantic and REQ-BRAIN-HASH-ONCE's resident-bytes truthfulness contract, and rides its own board request.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3177371Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3177524Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3177632Z ### REQ-BRAIN-HASH-ONCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3180676Z - Title: REGISTRY-LIFECYCLE W1 (ADR-0040 rider; dropped THE-FORKENING W4 rider escalated — hertz re-measured live 2026-07-17: 61.29 MiB/s predicted vs 63.91 observed, 15.5%/core): the brain executable self-hash is captured EXACTLY ONCE per brain process (OnceLock in run_brain before the heartbeat loop); every write_ready reuses the cached value; failed capture stays None with no per-tick retry; current_exe_hash doc-comment corrected same commit. Once-at-start capture IS the resident-bytes truthfulness contract: the per-tick PATH re-read published the NEW file hash from a resident-OLD-bytes brain post-swap (breadcrumb lie in the enlyzeam class it exists to catch). 500ms ready-write cadence unchanged. Gate: impl — cached capture; unit — injected digest-counter==1 across initial+N heartbeat publishes with pid/generation/hash stable, fresh process fixture computes independently; existing D7 process-replacement e2e retained green (new brain publishes new hash first write).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3183196Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3183343Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3183453Z ### REQ-ONEWAY-STREAM-TERMINAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3185632Z - Title: REGISTRY-LIFECYCLE W1 (ADR-0040 decision 1, hertz defect B leg 1): a one-way fire-and-forget stream family is TERMINAL at successful FIN, sender-side — the registry pump retires its OWN feed row after write+FIN via the existing net-stream-retire verb (best-effort on N-1 brokers per ADR-0038 A). Sender history on the long-lived pump conn stops accumulating: steady-state row population is O(active exchanges), not O(feeds since conn start). Gate: impl — pump push_feed retire-after-FIN; unit — successful feed retires its row, failed/unFINed feed does not, retire failure is best-effort non-fatal; int — rides REQ-HAZARD-REGISTRY-STALL plateau seam (eligible rows plateau O(active) over N rounds); doc — ADR-0040.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3187596Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3187764Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3187969Z ### REQ-STREAM-INFOS-SERVER-FILTER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3189920Z - Title: REGISTRY-LIFECYCLE W1 (ADR-0040 decision 2, hertz defect B leg 2): broker stream_infos excludes initiated_locally rows SERVER-SIDE (retired already excluded) before cloning/serializing to the dispatcher — the O(history) IPC enumeration cost dies at the source. Dispatcher keeps its client-side guard (double-filter harmless; N-1 compatible both directions: older dispatcher skips those rows anyway, older broker just keeps the old cost). Gate: impl — server-side filter; unit — local rows absent from the reply while peer-initiated rows with bytes remain, opener/re-attach enumeration semantics unchanged.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3191617Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3191761Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3191866Z ### REQ-REGISTRY-APPLY-TRANSACTIONAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3194724Z - Title: REGISTRY-LIFECYCLE W1 (ADR-0040 decision 3, hertz defect B leg 3): registry feed application is TRANSACTIONAL per feed — serve_registry_feed merges decoded labels + instance updates in memory across transport chunks and applies ONCE at EOF (or one bounded batch commit for oversized feeds); write_snapshots runs O(feeds), never O(chunks x record-kinds); attention-shift side effects fire once post-merge. No synchronous full-registry rewrite inside a per-chunk drain iteration (KH 7.12/7.43 discipline on the brain side — the per-chunk rewrites are what stalled IPC drain and manufactured the 15s seat-writer poisons). Gate: impl — accumulate-then-apply; unit — snapshot-write counter across a multi-chunk feed == 1 (bounded batches: == ceil(records/batch)), merge result equals per-chunk semantics, gate policy still applied per record; int — rides REQ-HAZARD-REGISTRY-STALL seam (snapshot writes O(feeds), zero poisons); doc — ADR-0040.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3197180Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3197352Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3197452Z ### REQ-REGISTRY-REPLAY-BOUNDED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3200485Z - Title: REGISTRY-LIFECYCLE W1 (ADR-0040 decision 4, hertz defect B leg 4, defense-in-depth behind REQ-ONEWAY-STREAM-TERMINAL): a deadline-poisoned one-way (Registry) replay carries a per-stream strike budget; at budget the row retires TERMINAL with loud telemetry (DISPATCH_EV event). Safe by family semantics: a feed is an idempotent snapshot advertisement, the next pump round (~30s) re-advertises — worst-case loss is one advertisement round, already the family freshness unit. Request/reply families keep ADR-0038 Amendment circuit-breaker semantics — terminal-at-budget is ONE-WAY-FAMILY-ONLY (never a revert toward burn-the-claim abandonment for request streams). Gate: impl — strike budget + terminal retire, one-way-scoped; unit — poison strikes accumulate per stream, budget retires terminal + emits, request/reply family unaffected by the budget path; int — poisoned registry replay stops redispatching after budget while fresh feeds keep serving.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3202982Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3203137Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3203237Z ### REQ-SEAT-LIFETIME-BOUNDED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3206610Z - Title: REGISTRY-LIFECYCLE W1 (ADR-0040 decision 5, hertz defect B leg 5 CROSS-FAMILY per the final attribution correction — my_stream_subs releases only at conn-loop exit, NO unsubscribe verb existed, ~546/589 broker threads were unnamed parked SubscriberSeat writers on completed Registry/sync/update seats): new KIND_NET_STREAM_UNSUBSCRIBE broker verb removes the SubscriberSeat, stops AND JOINS its writer thread, drops its cursor; every dispatch worker calls it on serve completion (ALL families, success or failure); the retire sweep calls it for retired rows. N-1: unknown-kind on an older broker = tolerated send_error path, caller best-effort. Rider: spawned daemon threads NAMED (SubscriberSeat writer sub-writer-s<id> minimum, conn accept handlers) — field censuses attribute, not infer. Gate: impl — verb + worker/sweep call sites + thread naming; unit — unsubscribe removes seat/joins writer/drops cursor + idempotent + unknown-stream tolerated; int — rides REQ-HAZARD-REGISTRY-STALL seam (physical seat/thread counts plateau CROSS-FAMILY after completion); doc — ADR-0040.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3209723Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3209885Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3209985Z ### REQ-HAZARD-REGISTRY-STALL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3213009Z - Title: REGISTRY-LIFECYCLE W1 (KNOWN-HAZARDS 7.44, hertz post-close v0.36 RCA — the umbrella conformance seam): streams and seats on a long-lived connection have BOUNDED lifetime. The hertz regression seam verbatim: real long-lived pump + dispatcher integration, N registry-only rounds over ONE persistent connection, asserting (a) dispatcher-eligible Registry rows plateau O(active) not O(N); (b) physical stream/subscriber/seat counts plateau after completion CROSS-FAMILY (sync/update seats included, not just Registry); (c) snapshot writes O(feeds) not O(chunks x record-kinds); (d) brain refresh produces ZERO historical Registry replay subscriptions; (e) zero CONN_WRITE_POISONED / replay-write-failed events; (f) broker thread count returns to a bounded baseline. HEAVY nextest group at birth (spawns a real daemon tree). Binding: redispatch D1/D1b + REDISPATCH-STALL T1-T7 + mesh-recovery legs green every leg (retire machinery + registry gate = substrate). Gate: int — the seam above; doc — KNOWN-HAZARDS 7.44.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3215691Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3215835Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3215933Z ### REQ-ENDPOINT-ONLINE-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3219415Z - Title: REGISTRY-LIFECYCLE W2 (ADR-0041 decisions 1+2, emphasys C1 P0): ONLINE is earned, not declared — cmd_listen stamps status=online only from actual persisted state + hosting authority, never from manifest psyche_init capability alone (no more ready_agent/controllable=false hybrid rows born online-authoritative); livehost reconcile SPLITS control cleanup (clear controlled/driven_by/viewer_count for EVERY endpoint absent from session truth, regardless of state/controllable) from offline classification (live_agent+controllable gate unchanged); legacy hybrid rows self-heal after a SUCCESSFUL broker query only (broker failure is never interpreted as an empty session set); terminal signoff/owner-loss = atomic CAS-guarded offline + ready/address removal WITHOUT overloading soft api session-end (/clear preserves the live listener). Gate: impl — creator gate + reconcile split + self-heal + terminal path; unit — creator refuses capability-only online, cleanup clears stamps on state-quirk rows, broker-failure never mass-offlines; int — dead-PID hybrid row does NOT survive a reconcile cycle (the immortal-row regression); doc — ADR-0041.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3222488Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3222650Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3222744Z ### REQ-STREAM-LEASE-CLASSES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3226222Z - Title: REGISTRY-LIFECYCLE W2 (ADR-0040 decision 6 + ADR-0041, emphasys C2 P0): streams declare a lifetime class at open — RC attach/view streams are ConnectionBound (opener conn EOF means the target sees FIN, serve_attach runs detach_session, controller slot + CONTROLLED stamps clear — a dead viewer can never pin a controller across its own connection death; today the raw-closed viewport attach stream is restart-durable forever); inter-brain streams stay Durable (NEVER globally retire on Brain disconnect — brain-swap correctness depends on it). Late-close identity validated (stale opener A close cannot evict newer controller B — rides ADR-0038 Amendment fix-6 generation tokens + W1 seat teardown machinery; same neighborhood, built once per the standing C2 coordination ruling). Lifetime class = additive open field, absent = Durable (N-1 openers keep exact current semantics). Gate: impl — class at open + ConnectionBound EOF chain; unit — class routing + absent-defaults-Durable + late-close identity refusal; int — raw viewport close frees the controller full-chain incl. across broker restart, brain_swap/daemon_refresh/redispatch legs stay green; doc — ADR-0040/0041.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3229676Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3229841Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3229947Z ### REQ-REST-TERMINAL-NORMALIZE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3233357Z - Title: REGISTRY-LIFECYCLE W2 (ADR-0041 decision 3, rest-normalize P0): definitive hosted-session loss normalizes TERMINALLY and ATOMICALLY — one store-level mutation writes status=offline + rest_state=suspended + clears dormant_since_ms in the SAME info.json write, invoked at authoritative broker-session-loss/liveness-reap + cmd_stop. NOT daemon_rest_event(Suspend) (no edge when effective already Suspended — raw Active intent survives); NOT reader-side blanket offline-implies-suspended (destroys explicit-Wake semantics: wake writes intent first, reconcile consumes). Graceful shutdown keeps echo-before-teardown. Kills the zombie WAKE_RESUME loop (perri field: repeated cross-generation resumes of a dead session). Gate: impl — atomic terminal-normalize mutation + call sites; unit — store-level atomic pair never mixed + endpoint_stop covers already-offline/raw-Active input; int — session vanish means offline+suspended and the NEXT reconcile emits NO WAKE_RESUME, explicit suspended/offline->Wake->Active launches EXACTLY once, RefuseLivePid-then-valid-bind custody race leaves the revived seat unsuspended; doc — ADR-0041.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3236491Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3236649Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3236758Z ### REQ-CONTROL-STAMP-CONVERGENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3238781Z - Title: REGISTRY-LIFECYCLE W2 (ADR-0041 decision 4, emphasys C3 P1): control-stamp writes are session/generation-VALIDATED (or per-endpoint stamp transitions serialized) so a pre-reap KIND_SESSIONS snapshot can never relatch controlled=true after the exit-waiter reap; no fs I/O under global locks (KH 7.12); every no-session path clears all three control fields (controlled/driven_by/viewer_count). Gate: impl — validated/serialized stamp transitions; unit — stale-snapshot write refused after a newer no-session truth, no-session paths clear all three; int — poll-vs-reap interleave converges to cleared stamps (the relatch regression); doc — ADR-0041.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3240597Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3240760Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3240869Z ### REQ-HAZARD-ENDPOINT-LIFECYCLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3242997Z - Title: REGISTRY-LIFECYCLE W2 (KNOWN-HAZARDS 7.45 — the umbrella conformance seam for ADR-0041): endpoint lifecycle state converges to truth from EVERY death path. Regression matrix from the three hertz reports + operator field: dead-PID hybrid row does not survive reconcile; raw viewport close frees the controller (full chain, broker restart included — shared with REQ-STREAM-LEASE-CLASSES int); definitive death means offline+suspended atomically and the next reconcile emits no WAKE_RESUME; explicit Wake still launches exactly once; poll-vs-reap interleave converges to cleared stamps. HEAVY nextest group at birth for any leg spawning a daemon tree. Gate: int — the matrix; doc — KNOWN-HAZARDS 7.45.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3244857Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3245000Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3245099Z ### REQ-SPAWN-FRESH-TRUTHFUL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3248654Z - Title: REGISTRY-LIFECYCLE W3 (ADR-0041 decision 5, spawn-fresh): endpoint create is TRUTHFUL at the broker, atomically — spawn policies split Fresh/RejectExisting vs ResumeOrReuse; new KIND_SPAWN_FRESH wire verb with TYPED conflict (distinct kind fails LOUD on an N-1 broker vs a silently-ignored serde-defaulted field), sharing the single-flight/PTY spawn body; Fresh at AlreadyLive/lost-race returns the typed conflict NEVER Spawned(existing); CLI contract exit 1 + stable ENDPOINT_CREATE_CONFLICT:<id> token + no attach + no state mutation + never kills the live session; omitted --resume keeps the documented create-default (fresh-and-conflict, same as explicit --create); preflight stays UX-only (cannot close TOCTOU). Gate: impl — policy split + verb + CLI contract; unit — intent-aware decision matrix; int — create-over-live E2E (exit 1, exact token, no attach, same broker PID) + concurrent-fresh race (one Created one Conflict, never two children, never Reused-as-success) + mixed fresh/resume race + offline/raw-Active+stale-ledger create + N-1 IPC loud-fail never-Created; doc — ADR-0041 + CLI reference regen (docs-drift gate: xtask gen, no internal codes in clap help).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3251901Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3252067Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3252172Z ### REQ-ENDPOINT-CYCLE-HONEST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3254349Z - Title: REGISTRY-LIFECYCLE W3 (ADR-0041 decision 6, operator deployah stop/run wedge): cycle verbs share ONE liveness authority — the ALREADY_LIVE dup-guard liveness-probes the claimed session client tree before refusing (dead tree means reap + respawn honestly, never a refusal citing a zombie); the shutdown state machine consults the same source so is-it-live has one answer (no ALREADY_LIVE / list-OFFLINE / shutdown-NO_EDGE three-way contradiction on the same endpoint). Gate: impl — probing dup-guard + unified authority; unit — dead-tree claim probes and reaps, live claim still refuses; int — controlled zombie (killed client tree, surviving hosted record) leads to endpoint run succeeding honestly end-to-end; doc — ADR-0041.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3256309Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3256472Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3256577Z ### REQ-GOSSIP-PROJECT-DERIVE-ONCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3260440Z - Title: REGISTRY-LIFECYCLE W4 fast-follow (hertz v0.37.0 field-verify CPU-gate FAIL RCA 2026-07-17, doyle seam-verified same day; timing-pinned ~16s burst clusters per 30s Registry pump round): recent-project gossip derives a project id AT MOST ONCE PER DISTINCT CWD per advertisement round — recent_projects_for dedups the RAW cwd string BEFORE project_id_for_dir (today seen.insert(pid) dedups AFTER derivation at registryhost.rs:1001, so every duplicate-cwd sessions.log row pays a git remote/rev-parse spawn: ~200 derivations/round on a 12-perch box, the post-self-hash-fix CPU floor). The pid-level dedup stays as the output-uniqueness second layer (distinct cwd spellings may collapse to one project); ordering semantics unchanged (first-occurrence newest-first); bounded ledger read unchanged. Gate: impl — cwd-dedup before derivation; unit — derivation-count observable == distinct cwds not ledger rows (duplicate-cwd ledger derives once), output/order parity vs the pre-fix shape on a mixed ledger. SEEDED SEPARATELY (not this REQ): gossip leg consults the ADR-0037 materialized index (kills git entirely + cross-round rederivation; staleness-semantics design change) + epoch-mint batching (26 atomic writes/round; durable-monotonic contract change).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3263779Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3263922Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3264031Z ### REQ-RC-HONEST-SESSION-AUTHORITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3267236Z - Title: RC-RENDER-TRUTH W1 (ADR-0042 decision 1, hertz perri-contradiction RCA): normal `spt rc` consults the ADR-0041 single honest-session authority BEFORE the persisted-offline fast-fail — run the bounded SessionProbe::has_live_session_honest gate; honest session exists means attach via run_attach_session_confirmed regardless of persisted status; no honest session means the existing offline refusal stands; claimed session with dead client tree means refusal/reap, NEVER attach. Reuse SessionProbe — no new liveness heuristic. Kills the authority split where rc refused ('offline — nothing to attach to') while endpoint run --resume reattached to the same live session. Gate: impl — the pre-fast-fail probe + session-confirmed routing; unit — probe-true routes to session-confirmed attach, probe-false keeps the refusal, dead-tree claim refuses; int — the 3-row regression matrix: offline persisted row + honest live broker session => rc attaches; offline + no session => existing refusal; zombie/dead client tree => refusal, never attach; doc — ADR-0042.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3270228Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3270390Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3270490Z ### REQ-RESUME-UNBOUND-STAMP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3273850Z - Title: RC-RENDER-TRUTH W1 (ADR-0042 decision 2, operator-spotted second root seam): resume launch transitions an existing offline perch to UNBOUND before/with the broker spawn — UNBOUND semantics are fresh/resume-invariant (broker session exists + harness not bound = UNBOUND); generation/session-safe ROLLBACK to offline on spawn failure or session death; bind owns UNBOUND->ONLINE. Supersedes the rc.rs 'resume gets no UNBOUND stamp — accepted' boundary note (the pre-bind window can be PERMANENT: stuck native resume, SessionStart never fires — field-proven; truthful UNBOUND is the operator-recovery surface that let `spt rc` reach the wedged TUI). Writer-truth complement to REQ-RC-HONEST-SESSION-AUTHORITY — both land, neither substitutes. Gate: impl — UNBOUND stamp at resume spawn + rollback + bind transition; unit — stamp fires on existing-offline perch resume, rollback on spawn-fail restores offline, generation guard refuses a stale rollback over a newer bind; int — resumed-but-never-bound endpoint reads UNBOUND (not offline) and `spt rc` attaches to its live session; doc — ADR-0042.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3276845Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3277002Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3277105Z ### REQ-RC-HARNESS-ONLY-REFUSAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3279873Z - Title: RC-RENDER-TRUTH W1 (ADR-0042 decision 3, hertz elevated-endpoints RCA core leg 1): direct `spt rc <id>` preflights the already-known harness_only/controllable=Some(false) fact (local + gossiped rows both carry it) and refuses BEFORE any attach/stream with truthful copy naming the actual state ('online but harness-hosted; spt does not own its terminal') — never the stale-row guess ('it may have ended, or the registry row is stale'). Reproduced deterministically 2x live on an ONLINE - HARNESS ONLY endpoint. RC support for harness-hosted endpoints is NOT claimed until the elevated PTY-host satellite exists (standing ruling). Gate: impl — pre-stream preflight + truthful copy; unit — harness-only row refuses pre-dial with the new copy, non-harness rows unaffected; int — live remote Instance{harness_only:true} => direct rc refuses pre-stream, names harness-hosted, never says stale; doc — ADR-0042.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3282194Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3282351Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3282462Z ### REQ-RC-QUALIFIED-TARGET-CANONICAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3285213Z - Title: RC-RENDER-TRUTH W1 (ADR-0042 decision 4, hertz elevated-endpoints RCA core leg 2, doyle seam-confirmed rc.rs establish_attach): the resolver's canonical BARE endpoint id is carried separately from the user-facing qualified target — AttachRequest.endpoint_id is always the bare id (today rc passes the ORIGINAL qualified string; the target's resolve_local_session compares verbatim vs the bare HostedSession.endpoint, so `spt rc id@node`/`subnet:id` dials the RIGHT node then gets a false no-live-session refusal). N-1-additive: bare-form callers are unchanged. Gate: impl — canonical-id carry through establish_attach; unit — Address::parse qualified forms yield bare wire id, user-facing copy keeps the qualified spelling; int — bare + id@node + subnet:id ALL attach against a remote broker-hosted target, wire always carries the canonical bare id; doc — ADR-0042.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3287453Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3287608Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3287713Z ### REQ-HAZARD-RC-ATTACH-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3289929Z - Title: RC-RENDER-TRUTH W1 (KNOWN-HAZARDS 7.46 — umbrella conformance seam for ADR-0042): an rc surface answers from live session authority, never a stale persisted projection; a resuming perch is UNBOUND, not offline. Regression matrix from the hertz RCAs + operator field recovery: offline-row-over-honest-session attaches; offline-no-session refuses; zombie refuses/reaps never attaches; resume-never-bound reads UNBOUND and is attachable; harness-only refuses truthfully pre-stream; qualified targets attach with bare wire id. HEAVY nextest group at birth for any leg spawning a daemon tree (standing CI lint). Gate: int — the matrix; doc — KNOWN-HAZARDS 7.46.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3291772Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3291911Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3292016Z ### REQ-BROKER-OUTPUT-BEFORE-EXIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3294713Z - Title: RC-RENDER-TRUTH W3 (ADR-0043 decision 1, hertz stale-glyphs RCA leg 1 P0): the PTY drain/output writer is the SOLE FIFO sequencer for terminal Output + Exit per attach sink — Exit is enqueued BEHIND all prior output (drain EOF/completion first, then Exit); the exit waiter never direct-writes KIND_EXIT around the queued output path (a mutex serializes bytes, not producer order). Kills the stranded-final-frame race (final EL/SGR-reset/cursor-show/?1049l lost when Exit overtakes Output — already admitted and compensated in the broker test suite, never fixed in production rc). Gate: impl — single sequencer, exit-behind-output enqueue; unit — ordering invariant on the writer queue (exit never precedes queued output for a sink); int — short-lived child emits 'XXXX ESC[2K ESC[?25h ESC[?1049l' then exits => that exact Output precedes Exit through the PRODUCTION broker->attach->rc path; doc — ADR-0043.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3297081Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3297242Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3297337Z ### REQ-BROKER-EXIT-EVERY-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3304435Z - Title: PORTER (releases#201, todlando mechanism pass 2026-08-21): the broker exit waiter emits a terminal KIND_EXIT for EVERY reap it performs, INCLUDING the reap whose PtySession::wait() yields Err. This requirement states EXISTENCE; REQ-BROKER-OUTPUT-BEFORE-EXIT states ORDERING — the two are separate seams over the same frame, and any Exit this requirement adds is bound by that one's exit-behind-output enqueue discipline. TODAY broker.rs's `if let Ok(status) = status` gates the WHOLE Exit emission block, and only that block: the row removal, the best-effort kill, the drain bytes_forwarded quiesce and the reap-time unlatch (stamp_reaped, REQ-HAZARD-CONTROL-STAMP-LIFETIME) all sit OUTSIDE it and all still run on the Err arm (measured at b88fab2a: block spans broker.rs 6430-6457, stamp_reaped at 6467). So the session is genuinely, completely gone from the table AND the perch is unlatched, while NO Exit frame ever reaches the controller or viewer sinks — the attached rc has no terminal event to act on and burns its full 30s reconnect window over a session that can never come back. The Err arm is reachable in the field, not only under injection: PtySession::wait (spt-term/src/pty.rs:203) is `self.child.lock().unwrap().wait().map_err(SurfaceError::Io)`, so ANY Io error on the child handle takes it — the kill-vs-natural reap race included, where our own kill() and the child's natural exit contend for the same handle. AN ABSENT EXIT CODE IS NOT A ZERO AND IT IS NOT A NO-RECORD (the absent-is-not-zero discipline, releases#197): ExitEvent.code is ALREADY Option<i32>, so the Err arm can name the death with the code ABSENT rather than fabricating a 0 or suppressing the frame — a suppressed frame is indistinguishable to the viewer from a session still running. Gate: impl — Exit enqueued on BOTH arms of the wait outcome, code absent-but-named on Err, still behind the drain quiesce; unit — the event built for an Err reap carries code: None and is not skipped; int — a NARROW fault valve makes wait() yield Err while row removal, drain quiesce and stamp_reaped ALL still run (the existing SPT_TEST_EXIT_WAITER_SUPPRESSED is precedent for the shape but suppresses the ENTIRE waiter, so it does NOT reproduce this face) => the attached controller and viewer OBSERVE an Exit frame, with the valve-off control arm proving the same panel observes the healthy Exit (non-vacuity: a panel no assertion depends on is untested by construction); doc — KNOWN-HAZARDS.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3310678Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3310818Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3310917Z ### REQ-RC-VT-TEARDOWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3314064Z - Title: RC-RENDER-TRUTH W3 (ADR-0043 decision 2, hertz stale-glyphs RCA leg 2 P0): rc display teardown is a display RAII guard SEPARATE from the OS input/raw-mode guard, unconditional and idempotent on EVERY exit path including errors and unwind — best-effort SGR reset + full scroll-region reset + cursor show + leave alternate screen + clear/home, emitted while VT output processing is still enabled, THEN restore the prior console output mode, THEN parting prose (today RawGuard::drop restores raw/mouse/console-mode only; detach, child exit, displacement, first-event stall, fatal error, and the 30s reconnect give-up all can leave the operator terminal dirty; the reconnect banner clears+homes then give-up prints at the centered cursor). Gate: impl — split display guard + every-path coverage; unit — guard emits the cleanup postlude exactly once, idempotent on double-drop; int — dirty sink (?1049h ?25l SGR31) x every PumpEnd/error class => cleanup postlude precedes the final prose; doc — ADR-0043.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3316669Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3316831Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3316946Z ### REQ-PICKER-PURGE-STRUCTURED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3320162Z - Title: RC-RENDER-TRUTH W3 (ADR-0043 decision 3, hertz stale-glyphs RCA leg 3 P0): core verbs invoked from inside an active TUI return STRUCTURED outcomes and write NOTHING to the terminal — the picker purge path calls a structured-outcome purge core (no stdout/stderr under the live alternate screen) and remains the sole renderer via model.flash (today cmd_endpoint_purge writes diagnostics/PURGED to stderr while ratatui owns the alt screen, mutating the physical screen behind the previous-Buffer diff baseline => later draws skip 'already blank' cells and stderr glyph fragments persist — the x-purge symptom). Baseline-desync regression REQUIRES a stateful/recording backend (pure TestBackend view snapshots cannot catch it). Gate: impl — structured purge outcome + silent-under-TUI routing; unit — purge core emits no terminal bytes in structured mode, picker converts outcomes to flash; int — recording backend: draw ConfirmPurge, inject an external display mutation, transition back => next frame reconstructs the COMPLETE target screen; doc — ADR-0043.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3323005Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3323162Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3323276Z ### REQ-SCREENGRID-REPAINT-MODE-REPLAY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3325497Z - Title: RC-RENDER-TRUTH W3 (ADR-0043 decision 4, hertz stale-glyphs RCA leg 4 P1): ScreenGrid cold repaint replays EVERY tracked render-affecting mode — DECSTBM scroll margins at minimum — before final cursor placement (today render_repaint omits tracked margins, so client and server grids interpret subsequent raw scrolling against different regions => stale/moved rows after reattach/resize; the trailing-blank omission after ED2 is semantically correct and NOT the bug). Stateful emulator contract: dirty screen + synthesized repaint + next raw frame == server grid. Gate: impl — tracked-mode replay in render_repaint; unit — repaint emits tracked DECSTBM, emulator contract holds for scroll-after-repaint; doc — ADR-0043.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3327419Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3327572Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3327677Z ### REQ-HAZARD-RENDER-LIFECYCLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3329770Z - Title: RC-RENDER-TRUTH W3 (KNOWN-HAZARDS 7.47 — umbrella conformance seam for ADR-0043): the physical terminal is never mutated or terminated outside its renderer's ordered state model. Regression matrix from the hertz RCA: output-before-exit through the production path; unconditional display teardown across every rc exit class; TUI baseline reconstructs whole after out-of-band mutation (recording backend); repaint replays tracked modes. Deferred P2 seeds recorded, NOT this milestone: Exit{after_seq} watermark defense; per-client semantic baseline (only if spt ever transforms live frames). Gate: int — the matrix; doc — KNOWN-HAZARDS 7.47.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3331565Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3331708Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3331808Z ### REQ-CONTROLLER-LEASE-IDENTITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3340027Z - Title: RC-RENDER-TRUTH W2 (ADR-0044 decisions 1+2, hertz same-machine --take split-brain RCA P0-A/B, doyle seam-verified broker.rs resolve_subscribe 1296-1318 + 1334-1347): each rc invocation/attach stream mints a UNIQUE controller lease id carried through SubscribeReq, the controller slot, and Input/Resize; node identity stays separate as attribution/access policy only. The ONLY silent successor/replay case is same-lease + equal-or-newer generation (ADR-0038 fix-6 dispatcher-recovery contract preserved exactly); same node + different lease = DISTINCT controller. Explicit Take on a distinct incumbent lease ALWAYS revokes loudly AND authoritatively — atomically revoke/fence the old lease and FORCE its attach stream closed, then install the taker, regardless of whether by-node strings match; the Displaced notice is best-effort (today old.tx.try_send at broker.rs:1342-1345 can DROP the notice on a Full queue while become_controller still replaces — the revoke/close must land even when notice enqueue fails; the closed stream is itself the terminal signal rc's PumpEnd::Displaced/EOF path handles). Today same_identity keys on controller_by()==by alone, intent never consulted; two same-machine windows collapse to one identity and --take silently swaps the sink leaving the incumbent input-capable but blind. Acceptable identity seam: (by, nonzero attach generation) as the logical lease. GENERATION LADDER (doyle ruling 2026-07-18, resolves fix-6/Busy conflict at T6): within the SAME by — equal gen = silent successor (dispatcher recovery, unchanged); STRICTLY NEWER gen (Control or Take) = loud+fenced supersession (full W2 revoke — without it a live replacement viewport bounces Busy off a stale-replay worker serving a zombie stream forever = post-restart lockout, fix-6 order-independence regression); OLDER gen = refused Busy (unchanged). Across DIFFERENT by: Control = Busy, Take = loud revoke. Deliberate UX: a second same-node window's plain rc loudly displaces the first (pre-W2 did the same replacement SILENTLY with the loser blind-but-interactive; loud+fenced strictly better; --view = coexistence). redispatch_stall T6 must stay green UNMODIFIED. N-1: lease field additive; absent lease (older client) degrades to legacy node-identity semantics for that subscriber. Gate: impl — lease mint + carry + loud distinct-lease Take; unit — same-lease equal/newer gen stays silent, same-node different-lease Take displaces loudly, older-gen replay still refused busy; int — hertz regression steps 1-4 + 7-8 (A gets Displaced{by} + terminal stream completion, output reaches B only, metadata identifies B, one controller slot; separate equal-lease replay test proves dispatcher recovery stays silent); doc — ADR-0044.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3346841Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3347004Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3347108Z ### REQ-INPUT-CONTROLLER-FENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3351789Z - Title: RC-RENDER-TRUTH W2 (ADR-0044 decision 3, hertz same-machine --take split-brain RCA P0-C + scope clarification, doyle seam-verified broker.rs dispatch_input 3920-3935 session-addressed unfenced): broker-enforced input fencing SCOPED TO RC-ORIGIN INPUT — RC Input/Resize bind to the ACTIVE controller lease (or originating broker connection as the N-1 surrogate); commands from a displaced/stale lease are rejected/dropped after replacement. Do NOT globally gate generic KIND_INPUT: shell/system injection legitimately sends InputReq from non-controller connections (Minter::Shell, shellchan seam) — fence keys on an additive controller-ownership token validated only for token-bearing/Minter::Rc requests, or a dedicated guarded RC-input verb; token optional/default-none preserves generic injection exactly. REQUIRED DEFENSE, not optional hardening: this is what makes the at-most-one-input-capable-controller invariant TRUE even when the Displaced notification is delayed or lost (today the displaced window keeps typing into the PTY indefinitely — the field split-brain). Gate: impl — token/verb + lease-bound validation on the RC input path; unit — stale-lease RC input rejected post-replacement, active-lease applies, tokenless generic injection (shell) UNCHANGED, absent-lease N-1 falls back to connection fencing; int — hertz regression steps 5-6 (post-takeover Input+Resize from A mutate NOTHING, from B both apply) + shell injection still lands mid-controlled-session; doc — ADR-0044.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3355752Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3355911Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3356011Z ### REQ-HAZARD-CONTROLLER-LEASE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3358871Z - Title: RC-RENDER-TRUTH W2 (KNOWN-HAZARDS 7.48 — umbrella conformance seam for ADR-0044): at most one input-capable controller lease per PTY session; takeover revokes atomically and loudly; input is fenced to the active lease; node identity is never a lease. The full hertz 8-step deterministic two-loopback-client broker regression rides verbatim: A subscribes Control from node N and controls; B subscribes Take from the SAME node with a different lease; A receives Displaced{by:N} then terminal stream completion (rc exits via existing PumpEnd::Displaced); output post-takeover reaches B not A; A's Input+Resize post-takeover mutate nothing; B's both apply; controlled/driven_by metadata identifies B with exactly one controller slot; a separate equal-lease/equal-generation replay test proves genuine dispatcher recovery remains silent and never self-displaces. Gate: int — the matrix; doc — KNOWN-HAZARDS 7.48.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3361373Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3361510Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3361623Z ### REQ-DRIVEN-BY-OWN-NODE-NORMALIZE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3371772Z - Title: RC-RENDER-TRUTH v0.38.1 fast-follow leg 1 — RESHAPED by operator/hertz correction + CONTEXT.md:382-389 grounding (doyle ruling v3, 2026-07-19; the original own-node NORMALIZATION is WITHDRAWN): plain `spt rc` on a CONTROLLED endpoint is refused-with-guidance BY DESIGN (CONTEXT:386 — never silent-displace; --take is the opt-in kick), and `driven_by` = the CONTROLLING NODE including the own node (CONTEXT:386 single-writer datum — the stamp comment's remote-only claim was a legacy-path artifact, NOT the model). v0.38.0 shipped behavior is CORRECT: the own-hex latch + client guidance blocking a second same-node plain rc IS the documented refusal, and the W2 generation ladder stays reachable exactly where it belongs — the recovery seams (rc reconnect re-drive + dispatcher re-serve bypass the client gate; the hertz field FAIL leg is reclassified NOT-A-DEFECT). Remaining work = truth/cosmetics across ALL own-node display surfaces (doyle gate finding 2026-07-19 — the own-hex latch is truthful but only rc.rs first learned to HUMANIZE it; the picker pin + endpoint-info attached_node still read the own-hex stamp as a foreign remote driver and print raw hex): (a) rc.rs guidance copy names the actual state — controlled from another window on this machine — via a pure driver_phrase keyed on the SHARED own-node predicate (roster::is_own_node_hex); (b) picker control_line (view.rs) reads an own-node driver as controlled locally (driven_by_is_self computed at data-build where the raw hex is available, driven_by STAYS populated so View+Kick is still offered); (c) endpoint-info attached_node (reporting.rs derive_attached_node) self-attributes an own-node driver to THIS node, never a foreign null-label hex; (d) stamp_driven_by + set_driven_by/set_controlled comments rewritten to the CONTEXT:386 meaning (controller node, own included) + KH 7.15/secondary remote-only model-claim comments reconciled (selfheal/unlatch semantics unchanged) — STAGE-NOTE CORRECTION (todlando 2026-08-19, doyle-ruled): this item shipped only its FIRST half. The WRITER-side comments were rewritten (broker.rs stamp_driven_by, info.rs set_driven_by, info.rs set_controlled all carry the ruling and are the anchors). The `secondary remote-only model-claim comments reconciled` half was NOT executed: the InfoJson FIELD docs for driven_by/controlled, picker/model.rs's controlled field doc (which contradicted driven_by_is_self twelve lines above it in the same struct), and the REQ/triage records that restate the falsified model all still carried remote-only. Executed by the sweep commit that carries this correction. No prod behavior site ever encoded remote-only — display_status keys on driven_by || controlled, correct under both models — which is why the stale premise never shipped a bug; (e) plain-Control-on-controlled refusal + --view/--take bypass pinned for BOTH remote and own-node drivers. NO broker behavior change; ladder untouched; pure display (no int, same as the ruling-v3 dropped int). Gate: impl — rc/picker/endpoint-info humanization + shared predicate + comment/docs; unit — own-node latch stamps truthfully (broker), guidance fires for own+remote with the right copy (rc), driver_phrase names own-node plainly (rc), control_line reads own-node as controlled locally (view), attached_node self-attributes own-node (reporting), --view/--take bypass; doc — KH 7.15 + ADR-0044 consequence-note alignment.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3380350Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3380501Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3380616Z ### REQ-RC-SINGLE-PUMP-BRAIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3384365Z - Title: RC-RENDER-TRUTH v0.38.1 fast-follow leg 2 (hertz v0.38.0 field repro 2, hertz RCA confirmed + doyle-accepted): plain `spt rc` constructs EXACTLY ONE pump Brain — the W1 truth probe (SessionProbe::connect, rc.rs ~1388/981-987, KIND_SESSIONS then drop) and establish_attach (~1464/1632) each build a real pump Brain today = two transient IPC reader threads/conns + a doubled user-visible 'PUMP_IPC_READER: spawned' banner per invocation (brain.rs:254 emits once per BrainConn::split_with_reader via cold_start_pump — the log site is NOT duplicated). FIX (hertz seam, ratified): carry the SessionProbe's Brain INTO establish_attach and re-query sessions on that same conn for freshness — do NOT suppress the log line and do NOT switch to Whole (the banner is truthful; the double construction is the defect). Qualified/session-confirmed paths (which skip the probe) and the reconnect loop (one fresh pump per attempt, correct) unchanged. Gate: impl — probe-Brain carry + same-conn freshness re-query; unit — probe-then-establish reuses the conn (construction-count observable); int — rc_attach_truth offline_row_over_live_session_attaches extended: capture stderr, assert PUMP_IPC_READER spawned count == 1 PLUS existing behavior assertions; doc — none (internal seam).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3387634Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3387789Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3387898Z ### REQ-HOSTING-AUTHORITY-CONTROLLABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3395274Z - Title: RC-RENDER-TRUTH v0.38.1 fast-follow leg 3 (hertz todlando immortal-hybrid trace, doyle fork ruling 2026-07-18 = controllable-authority): ONE hosting authority — persisted `state` stays the durable endpoint TYPE (REQ-EP-6 open type system; establish_perch's prior-type preserve at startup.rs:346-350 is INTENTIONAL and stays), `controllable==Some(true)` is the source-definitive broker-PTY authority. FIELD ROOT (C1 coverage gap, not new family): an spt-hosted bind over a prior ready_agent perch preserves state=ready_agent while stamping controllable=true + online -> livehost restart_resume_gate (508-534) Skip's state!=live_agent so the orphan never resumes, and reconcile's C1 dead-pid hybrid heal predicate was scoped controllable=false so controllable=true escapes -> immortal dead-PID ready_agent hybrid, latch-driven Active projection (todlando field state; rc's no-session refusal was TRUTHFUL). FIX (hertz refinement, ratified): remove the state rejection from restart_resume_gate; reconcile routes only non-live_agent && controllable!=Some(true) through the PID-model hybrid heal, while controllable==Some(true) rows fall through BROKER-SESSION truth (orphan with ledger/adapter material => Resume; no session + dead pid => terminal offline via the W2 atomic normalize). Psyche hosting stays separately state-gated (live_agent only). endpoint_survival tables BOTH live_agent and ready_agent broker-owned rows -- both resume their PTY at daemon start, ready stays no-Psyche (hertz definitive-trace addendum). restart_resume_gate keys on online+controllable+session/relay/custody belts, no state arg. cmd_bind's online gate reads/verifies the PERSISTED state it just wrote, never only the requested arg (parity with cmd_listen's W2 creator gate). Gate: impl -- gate/reconcile routing + bind online-gate persisted-read; unit -- routing table (non-live+controllable!=true -> PID-model; ready+true -> session-truth; live_agent unchanged); int -- hertz matrix verbatim: (i) ready_agent+controllable=true+online ORPHAN (dead harness, ledger+material) => restart RESUMES; (ii) ready+true+online with dead pid/NO session => reconcile terminally offlines + Active projection removed; (iii) legitimate ready listener (controllable!=true, live pid) => stays messaging-online on the PID model, never treated as PTY-attachable; (iv) spt-hosted bind over prior ready_agent => controllable=true+online+restart-resume works with preserved type; doc -- ADR-0041 amendment note (authority split: type vs hosting).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3401789Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3401959Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3402070Z ### REQ-ENDPOINT-TEARDOWN-AUTHORITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3413842Z - Title: TEARDOWN-AUTHORITY W1 (ADR-0045; two hertz field RCAs 2026-07-19, doyle code-verified + ruled): ONE shared topology-aware broker-teardown primitive behind BOTH `endpoint shutdown` and `endpoint stop`. Today both verbs stamp state they never cause: cmd_shutdown (cli.rs:3979) = remove ready marker + cmd_rest(Suspend) — the Suspend edge (resting.rs daemon_rest_event_with_liveness -> apply_event -> cascade_shells_on_edge -> advertise) fires echo + shell cascade + advertise and NEVER touches a session, even though the verb already probed broker-session truth (cli.rs:3797-3804 has_live_session_honest) to force from=alive; cmd_stop (cli.rs:7071) = marker + unregister_address + terminal_normalize + advertise, whose own comment calls it a DEFINITIVE death observation it fabricates. Field: broker retains the whole subtree (adapter -> node -> harness -> nested resumed harness + MCP children; the surviving `spt api listen` is a DESCENDANT, so a direct-child kill misses it). PRIMITIVE (ordered, ADR-0045 decisions 1/6/7/9): resolve broker SessionInfo -> dedicated sid/endpoint-keyed broker kill claiming NO controller (NOT Brain::attach()+kill_session(), brain.rs:622 require_session() = controller theft under the ADR-0044 lease ladder; idempotent — unknown session is benign success) -> reap the whole DESCENDANT subtree (reuse spt_store::proc.rs kill-root+process_descendants, do not mint a second tree-walk) -> await broker-row removal under a bound -> ONLY THEN stamp + unregister + advertise. Stamp-after-reap is load-bearing: field-observed post-stop info.json read status=offline BUT rest_state=active + controlled=true because the SURVIVING host RE-BOUND after the CAS-less terminal_normalize(path, None) — no hardening of the write fixes this, only the reap makes the stamp true (shutdown passes Some(sid) for the concurrent-newer-bind CAS; stop's unconditional posture stays, it is the operator's own definitive command). TOPOLOGY SPLIT (decision 2): gated controllable==Some(true) (ADR-0041 hosting authority — the SAME predicate cmd_bind's online-earn and the livehost reconcile use); harness-hosted/external keeps marker+address+status-only behavior (CONTEXT.md:39 — core spawned nothing, holds nothing) and the misleading cmd_shutdown doc comment claiming marker-removal stops the listener is corrected to name its topology. VERB DIFFERENCES ARE ONLY ceremony + resulting intent (decision 3): shutdown = echo commune + shell cascade FIRST then teardown, result rest_state=suspended (wrap the EXISTING rest edge — apply_event already echoes before the flip per KH 3.3; do NOT reimplement the ordering); stop = NO ceremony, result terminal_normalize. TIMEOUT (decision 7): do NOT stamp cold over a survivor — exit non-zero, and because stop is the last rung with no in-band escalation behind it its failure line names the surviving ROOT PID + the scoped-kill remedy. reconcile_hosted_liveness stays the partial-failure catch-up net, not duplicated. Precedent: REQ-HAZARD-DAEMON-STOP-REAP already ruled this reap principle at DAEMON scope; this is the ENDPOINT scope it was never extended to. Gate: doc — ADR-0045 + CONTEXT.md amendments (190 record-vs-process axis, 640 verb semantics, 647 stop echo exception) + KNOWN-HAZARDS entry; impl — the shared primitive + both verb call sites + topology gate + corrected comments; unit — topology routing table (controllable=true -> teardown, harness-hosted -> marker/address/status only), verb-difference table (ceremony + resulting intent), timeout posture (no cold stamp on survivor, failure line carries root pid), REWRITE shutdown_soft_stops_and_suspends (it asserts marker+intent only = it asserts the bug); int — real broker-hosted endpoint: after each verb, no broker session row + process subtree gone INCLUDING the descendant `spt api listen` + perch ready=false/alive=false/address unregistered/unbound=false + effective and advertised state correct + (shutdown) echo/cascade ran BEFORE the kill + wake/resume works from the recorded sid under the recorded adapter.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3423743Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3423905Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3424014Z ### REQ-TEARDOWN-UNCOOPERATIVE-HOST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3426659Z - Title: TEARDOWN-AUTHORITY W1 (ADR-0045 decision 4): the teardown kill NEVER depends on harness cooperation — no graceful-input path, no waiting on PTY EOF, no ask-it-to-exit-first step. A WEDGED host is the design case, not the edge case: it is the situation that produced the ADR (doyle's own endpoint — read-only rc replayed the retained PTY and `rc --take` acquired control, but a direct prompt produced no output for 30+s because the retained harness subtree itself was nonresponsive while the broker correctly preserved and replayed its last PTY state). Any cooperation-dependent step re-imports the exact hang the verb exists to break. Gate: impl — the kill path proves no dependency on session responsiveness; int — a deliberately nonresponsive/wedged hosted harness is still reaped within the bound (broker row gone + subtree gone), asserted against a real broker-hosted session.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3428930Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3429297Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3429401Z ### REQ-HAZARD-TEARDOWN-DEADEND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3434079Z - Title: TEARDOWN-AUTHORITY W1 HAZARD (ADR-0045 decision 8; hertz RCA 2 — hit doyle's OWN live production endpoint, recoverable only by out-of-band scoped kill): `endpoint stop` followed by `endpoint start <same>` MUST succeed (a fresh session or a resume) and must NEVER answer ENDPOINT_CREATE_CONFLICT about a session that stop claimed to end. TRAP SHAPE (two individually-CORRECT behaviors composing into a lifecycle DEAD END with no in-band exit): (1) stop leaves the broker session alive (REQ-ENDPOINT-TEARDOWN-AUTHORITY), and (2) `endpoint run` correctly REFUSES ENDPOINT_CREATE_CONFLICT rather than silently reattaching (v0.37.0 no-silent-reattach rule, deliberately chosen). The survivor is therefore simultaneously what stop claims to have killed AND what run refuses to work around; with a wedged harness every in-band verb is exhausted (stop lies, run refuses, rc replays a dead PTY, rc --take controls a process that never answers). Neither behavior is individually wrong — the COMPOSITION is the hazard, so the regression must assert the composition, not either verb alone. This single assertion is the whole user-visible point of W1. Gate: impl — covered by the shared primitive; int — start a real broker host, hard-stop it, assert subtree + broker row gone, THEN `endpoint start <same>` SUCCEEDS (never CREATE_CONFLICT) and `endpoint run --resume <recorded sid>` creates a NEW PTY rather than rc-ing the old one; PLUS the durability leg — info stays offline + terminally-normalized across a bounded settle window (proves no re-bind by a survivor, the field rest_state=active finding made into an assertion).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3438254Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3438391Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3438574Z ### REQ-SCREENGRID-WIDTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3443451Z - Title: TEARDOWN-AUTHORITY W3 (hertz field RCA 2026-07-19, doyle-confirmed at source): ScreenGrid models every character as ONE display column, so wide characters (CJK, emoji, and other 2-column glyphs) shift subsequent text left and leave stale scraps at the right margin — field repro on the Claude settings UI (left-shifted rows + To/Wh/Es left-margin scraps). SOURCE: spt-term/src/screen.rs Cell { ch: char, pen } (~127) carries NO width datum, and put_char (~327-343) unconditionally advances col += 1, with pending_wrap likewise advancing a single display cell. FIX: give the grid a real display-width model — a wide glyph occupies its leading cell plus a continuation cell that renders nothing and is never independently addressable; cursor motion, wrap, erase, and scroll all reckon in DISPLAY columns. WIDTH POLICY (hertz-proposed, doyle-ratified — pinned so the renderer and the emulator can never disagree): share ratatui's pinned unicode-width 0.2.0 as a WORKSPACE dependency, ambiguous-width = 1, no CJK-context override. A second width authority in the tree is the defect this policy exists to prevent. Gate: doc — the width policy stated where the grid is documented; impl — width-aware Cell/put_char/wrap + display-column reckoning across cursor/erase/scroll; unit — wide-glyph advance + continuation-cell invariants, wrap at the right margin with a wide glyph that cannot fit, erase/overwrite of a continuation cell clears the whole glyph, combining/zero-width marks do not advance; int — regression oracle against an INDEPENDENT emulator's rendering of the same byte stream (the field repro shape: wide glyphs followed by EL and CUP row-addressed redraws must leave no left-shift and no margin scraps).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3447764Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3447930Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3448021Z ### REQ-DSR-SINGLE-CPR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3449759Z - Title: TEARDOWN-AUTHORITY W3 rider (hertz RCA 2026-07-19): a Device Status Report query yields EXACTLY ONE Cursor Position Report. Rides W3 because it is the same emulator-conformance surface as the width work and the same field capture surfaced it; kept a separate REQ so its evidence is not buried inside the width tags. Gate: impl — one CPR per DSR on the emulator reply path; unit — a DSR in the input stream produces a single well-formed CPR carrying the DISPLAY-column cursor position (i.e. consistent with REQ-SCREENGRID-WIDTH reckoning, not the raw char count).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3451268Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3451413Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3451526Z ### REQ-RC-RESIZE-GEOMETRY-EPOCH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3471480Z - Title: A resize transition is ATOMIC from ScreenGrid's perspective: every byte is parsed at the geometry it was EMITTED under. (hertz v0.39.0 field RCA 2026-07-21, doyle re-grounded at source the same hour; P0 — this falsifies a SHIPPED v0.39.0 release claim, so it is a regression, not new scope.) SYMPTOM: right-margin fragments and left-shifted rows on a node where CLI and broker are BOTH 0.39.0 — i.e. exactly the defect the v0.39.0 notes claim fixed. SOURCE (statically provable, no repro box required): broker.rs dispatch_resize calls session.resize(SurfaceSize::new(rows, cols)) (~4557-4559) and only THEN recover_log(&log).set_size_and_notify(rows, cols) (~4560), which reaches self.grid.resize(rows, cols) (~1492) — TWO SEPARATE recover_log acquisitions, so the reader thread's append/parse interleaves between them BY CONSTRUCTION. On ConPTY the resize ITSELF emits a full repaint asynchronously; the reader parses that repaint into the grid at the OLD geometry; the subsequent top-left-preserving grid.resize then faithfully preserves an ALREADY-MISWRAPPED model; the cold attach repaint emits the shift. WHY THE EXISTING TESTS PASS: the spt-term width oracle (REQ-SCREENGRID-WIDTH's int stage) is green 5/5 while the field is red — it never crosses the ConPTY-emission -> grid-geometry -> attach-repaint seam, and the surface mock structurally cannot. The W3 width model is therefore NOT falsified; it is correct work running under a broken geometry transition. FIX — and the record must carry WHY the obvious fix is wrong: merely REORDERING (set grid geometry before invoking the ConPTY resize) is INSUFFICIENT. It is safe on a GROW and unsafe on a SHRINK, because bytes already in flight at the old WIDER geometry are then parsed at the new narrow width and wrap early. Neither pure ordering is correct because the defect is not the ORDER — it is that the grid has no notion of 'these bytes were emitted under the old geometry'. Required shape: quiesce/gate the drain across the ordered surface+grid transition AND carry an explicit geometry EPOCH so parse always reckons at the emitting geometry, with rollback/refetch of the grid geometry if the surface resize fails. Gate: doc — the epoch/barrier contract stated where the resize path is documented, including the shrink counter-example so the insufficient reorder is not re-proposed; impl — barrier + geometry epoch + failure rollback in the dispatch_resize/set_size_and_notify path; unit — a resize whose repaint bytes arrive mid-transition is parsed at the emitting geometry (both grow AND shrink), and a failed surface resize leaves the grid geometry unchanged; int — Windows REAL ConPTY (not the surface mock): resize emits a dense frame, then the synthesized attach repaint is compared against an INDEPENDENT terminal authority, never ScreenGrid against itself. FIXTURE AMENDMENT (hertz field supplement 2026-07-21 second capture, doyle-accepted, carried by todlando at build): the dense frame is ordinary readable PROSE with REPEATED WORDS and punctuation, not sparse synthetic markers — the field captures are semantic corruption of rendered content (`ReQ2`, `ROADMAPnsayh'credertigls`, `Recommend:gdirect REST`, `thii reqw st`, `resdluuion`: clobber, merge, substitution and displacement of width-1 cells MID-ROW), and repeated words are what make a displaced fragment land somewhere that still looks plausible — the shape that let this read as cosmetic. The leg must fail on DELETION, INSERTION, SUBSTITUTION, MERGE or DISPLACEMENT of any width-1 cell, with NO normalization and NO presence-only assertions (full-row untrimmed string equality plus equal row counts satisfies this by construction). CONSTRAINT, binding: the fixture stays inside the region where the authority emulator and ConPTY AGREE — the screen at the resize instant carries no line reaching either margin and loses no row, so reflow-vs-truncate is a no-op on it, and the wrap-crossing prose is emitted AFTER the transition opens, at the new geometry. A fixture crossing the margin at the resize instant would red on emulator POLICY DIVERGENCE rather than on this defect; pinning the wrap policy between authority and ConPTY is separate work and must not be smuggled in here. The comparison is EVERY CELL, including cells expected to be BLANK — not row starts, right margins, or text presence. The dense frame must include erased interior spans and repeated spaces, and those cells must still be blank after the synthesized repaint. (hertz field supplement 2026-07-21, doyle-accepted: the operator confirmed a THIRD corruption shape on the same fully-0.39.0 node — stale characters surviving INSIDE nominal whitespace between words, e.g. `isnsettled`, `fulllyacaptured`. A mis-widthed repaint places glyphs into wrong interior cells; later differential output and EL operations address the CORRECT geometry and so do not necessarily clear them; the synthesized cold repaint then faithfully re-emits the contaminated interior. Accepted as further evidence for THIS requirement, not a new root, on a DISCRIMINATION rather than the prediction: the captured debris is pure ASCII, every glyph width-1, so no width-table or wide-half defect can produce it — and the erase paths are already width-normalized on both halves at screen.rs clear_cell_keep_pen ~416/~420, the span helper ~440-443, and delete/insert_chars ~617-620, with erase_across_a_wide_half_leaves_no_orphan ~1391 passing. Word-scale `isn`+`settled` collapsing across a space is the same shifted-by-N placement as the whole-row left shift, observed at word scale. OPEN DISCRIMINATOR: interior debris in a session where NO resize occurred at any point would mean a SECOND root that this fix will not clear.) BINDING CONSTRAINT on satisfying the blank-cell assertions: NO whitespace special-casing and NO extra clears — the barrier must restore ONE geometry authority for glyph placement AND erasure. A fix that passes by clearing harder satisfies the test and leaves the defect. KNOWN ACCEPTED RESIDUAL (doyle ruling 2026-07-21): a cold attach landing DURING a transition renders the PRE-TRANSITION screen — the held bytes are not parsed yet. Accepted because it is a strict improvement over the shipped behavior on the same input (pre-fix: miswrapped/corrupt; post-fix: stale but coherent). The window is bounded in TIME (settle + one surface call) AND — since REQ-RC-RESIZE-PRESENTATION-BARRIER (built 2026-07-21) — in VISIBILITY: the commit/abort-time sync frame delivers every attached sink, transition-era attachers included, the fresh repaint the moment the barrier tears down, quiet child or not (the successor REQ's commit-time sync frame IS the follow-up seed this residual carried, absorbed by construction). The attach itself still renders the pre-transition screen for the width of the window. REFUSED, so nobody builds it later without a fresh argument: making the attach repaint WAIT on an in-flight transition — that puts a user-facing attach behind the settle cap / serialize wait.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3488273Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3488435Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3488550Z ### REQ-RC-RESIZE-PRESENTATION-BARRIER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3511596Z - Title: During a resize transition, LIVE DELIVERY is barriered along with the grid parse: no attached sink (controller or viewer) ever receives mixed-geometry raw bytes; commit substitutes ONE synthesized sync frame at the target geometry. (hertz post-fix field RCA 2026-07-21 on a fully-0.39.3 node, doyle-accepted with every cite verified at source; SUCCEEDS REQ-RC-RESIZE-GEOMETRY-EPOCH, which shipped correct but scoped to the wrong surface — broker.rs's own ResizeTransition doc states append 'still rings + fans out every chunk exactly as before' during a transition, and OutputLog::append gates ONLY grid.advance. A live attached terminal therefore receives old+new-geometry differentials across an already-resized viewport; the cold-attach repaint model is definitionally blind to that path, which is why the shipped gate was green while the field was red. REQUIREMENT-SCOPE defect: the gate held against documented design.) CONTRACT (ADR-0031 Amendment II): (1) append still assigns seq and rings every chunk, but controller handoff and viewer fan-out are SUPPRESSED during the transition — a skip, never a block or sleep (KH 7.12 intact), and the suppressed window does not count toward the controller Full-eviction deadline; (2) commit replays held segments at their emitting geometry (the geometry-epoch machinery, unchanged), lands the grid at target geometry, then UNDER THE SAME OutputLog LOCK ACQUISITION pushes viewers the size frame FIRST and then one synthesized sync frame (render_repaint at target geometry ++ deferred non-grid bytes) to EVERY attached sink, controller included, before raw fan-out resumes — no raw frame may interleave; (3) the controller sync frame carries watermark seq = highest suppressed seq, so the cursor-of-record advances past the whole suppressed range as-if-written (repaint supersedes; the repaint_initial watermark shape); WIRE-FLAG AMENDMENT (doyle ruling 2026-07-21, from the build's real-wire int finding — the watermark jump would otherwise fatal every STRICT consumer as an output gap and ladder into ControllerIrrecoverablyBehind = marked truncation on every resize under a live controller): OutputEvent gains additive `sync: bool` (serde default false, never serialized when false — the resume_seq D4-1 additive shape), set by the broker on the commit AND abort sync frames AND on every repaint_initial batch; a consumer accepts a FLAGGED FORWARD jump and baselines on it on BOTH dedup paths (the supersession is explicit and broker-authored — B2-sound, nothing silently skipped); FORWARD-ONLY, binding: a flagged frame at/below the cursor dedup-drops exactly as today, never a backward baseline; an UNFLAGGED jump keeps strict reject-gap byte-for-byte; baseline_next_output STAYS as the old-broker x new-client cold-attach compat path (retirement is an N-2 seed at most); N-1 matrix published: new broker x old client = a resize in the mixed-version window ends the attach with a marked truncation (honest termination, strictly better than the pre-fix silent corruption; release notes carry 'update CLI and broker together'), old broker x new client = no flag arrives, strict paths byte-identical (unit-pinned as the N-1 leg); REJECTED shapes recorded in ADR-0031 Amendment II so none is re-proposed: unconditional baseline-on-jump, empty-frame delivery through the window, seq rebase, cold-reattach-on-second-gap; (4) abort takes the same uniform path minus the size frame, at the old geometry; (5) the log records the presentation floor (seq after last commit/abort) and a resume-from-floor asking BELOW it is served the cold-attach shape (sync repaint + skip to live), never a raw replay across the boundary — at-least-once preserved in effect because the repaint supersedes the skipped range. NON-GRID BYTE DISPOSITION (enumerated at triage, every class ruled): tracked-by-grid state (title OSC 0/2, alt screen 47/1047/1049, DECTCEM 25, DECSTBM, pen, cursor) = SUPERSEDED by the repaint by construction, unit-pinned per class; untracked STATEFUL sequences (bracketed paste 2004, mouse 9/1000/1002/1003 + encodings 1005/1006/1015, focus 1004, DECCKM 1, DECAWM 7, keypad ESC=/ESC>, DECSCUSR, OSC color 4/10/11/12/104/110/111/112, charset designation), ONE-SHOT events (BEL, OSC 52 clipboard, OSC 9/777 notifications) and child->client QUERIES (DA1/DA2, DECRQM, XTWINOPS, OSC 10/11 '?') = DEFERRED verbatim in emission order, flushed inside the sync frame (a dropped toggle is indefinite divergence, a dropped query can hang a waiting child; a deferred one is bounded-window latency); cell-scoped decorations the grid does not carry (OSC 8 hyperlinks, DCS graphics) = DROPPED as a balanced class (content superseded by the repaint; an unbalanced deferred open would decorate unrelated post-repaint text; matches the repaint's existing fidelity boundary). DSR is in NO class: the drain strips + answers it pre-append (REQ-DSR-SINGLE-CPR); its mid-transition CPR reports the pre-transition cursor — accepted bounded residual, recorded not built-around. MECHANISM CONSTRAINT, binding: classification runs in the ONE parser authority — ScreenGrid's vte::Perform in a capture mode during held-byte replay, re-encoding unconsumed sequences from callback parameters; NEVER a second scanner over raw bytes (two parsers = two truths about sequence boundaries). SIDE EFFECT, must be recorded when built: the commit-time sync frame IS the seeded 'push a fresh repaint to transition-era attachers' follow-up — the cold-attach-during-transition residual's 'not bounded in VISIBILITY' caveat dies (the stale window now ends at commit); update the KNOWN ACCEPTED RESIDUAL text at repaint_initial and in REQ-RC-RESIZE-GEOMETRY-EPOCH accordingly. RESIZE_HOLD_CAP overflow now also means suppressed-never-delivered bytes: the sync repaint after a partial parse leaves client and grid sharing the same self-healing partial view — strictly more consistent than shipped; keep the overflow loud. BINDING CONSTRAINTS CARRIED FORWARD from the predecessor: NO whitespace special-casing, NO extra clears (one geometry authority for placement AND erasure — a fix that passes by clearing harder fails gate); fixture rules verbatim (readable prose, repeated words, every cell incl. expected-blank interiors, full-row untrimmed equality, no reflow-crossing at the resize instant). FENCED SEPARATE, do not build in this wave: the heuristic epoch-split strengthening (mark_resize_issued precedes session.resize; the 20ms-quiet/250ms-cap split is a heuristic, RESIZE_SETTLE_CAP admits old-geometry bytes may land in the new epoch) — only if the field stays red after the fanout repair. Gate: doc — ADR-0031 Amendment II states the presentation contract incl. the byte-class disposition table; impl — suppression + commit-time sync frame + watermark cursor advance + presentation floor in OutputLog/append/commit_resize/abort_resize; unit — per-class disposition pins (a title change, cursor-visibility toggle, DECSTBM change, alt-screen switch, AND a bracketed-paste/mouse toggle inside the suppressed window each surface in or after the sync frame; a hyperlink pair does not), the watermark advance (a resumed controller never re-receives a suppressed seq), the eviction-deadline exemption, the abort path, AND the wire-flag matrix (flagged-forward accepted + baselined on both dedup paths; flagged-backward dedup-dropped unchanged; unflagged-forward strict reject-gap byte-for-byte; old-broker wire without the key defaults false and a cold attach still baselines via baseline_next_output); int — the REAL live controller writer driven across a transition: an attached controller whose socket feed is parsed by an independent terminal authority at the CLIENT TARGET geometry, full untrimmed row equality every row after the sync frame, every cell incl. blanks; a viewer leg asserting size-frame-before-sync-frame and zero raw frames between commit and sync; a resume-across-resize leg (controller detaches pre-resize, resumes post-commit, receives zero mixed-geometry raw bytes and lands exact at target geometry). The cold-attach oracle is insufficient by construction and does not satisfy the int stage.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3531256Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3531414Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3531533Z ### REQ-ENDPOINT-MESSAGE-ONLY-DISPLAY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3536179Z - Title: An online agent-family endpoint with NO session surface reads as message-reachable, not as a harness-hosted live agent and not as a plain ONLINE. (hertz v0.39.0 field report 2026-07-21; doyle PRODUCT RULING — deliberately NEITHER of the two options offered.) OBSERVED: an adapterless `spt ready` perch (type=ready_agent, adapter=null, ready/alive true) displays plain ONLINE with '(unknown adapter)'. SOURCE: picker/model.rs display_status returns Online for every non-live_agent type (~680-681) BEFORE consulting controllable, and amber HarnessOnly is live-agent-only (~683-687). RULING: that type gate is CORRECT and STAYS. 'ONLINE - HARNESS ONLY' means one specific thing — a LIVE AGENT whose session surface is owned by a harness rather than a broker PTY. Broadening it to 'online non-controllable agent-family' would make one label mean two different things, which is how a status label starts lying. An adapterless ready receiver is a THIRD truth: message-reachable, no session surface at all, nothing to attach to ever. So: a DISTINCT display state (working name 'ONLINE - MESSAGE ONLY') keyed on the endpoint TYPE (ready_agent), never on absence-of-adapter, and never an invented adapter name. SECOND RULING (same surface, separate lie): '(unknown adapter)' is itself a small diagnostic untruth — adapter=null is ABSENT, deliberately so, not unknown; the copy must say absent. Gate: impl — the distinct display state + the absent-adapter copy; unit — the display table gains the ready_agent row and the existing live_agent/gateway rows are UNCHANGED (this must not perturb the HarnessOnly gate), plus a label assertion for the new state.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3540437Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3540615Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3540727Z ### REQ-LISTEN-PRESERVES-HOSTING-TOPOLOGY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3548682Z - Title: `api listen` must not ASSERT hosting topology it does not know. (hertz v0.39.0 field RCA 2026-07-21, doyle re-grounded at source.) OBSERVED: the published adapter sequence `api bind` then identity-preserving `api listen --session-id` produces a self-contradictory live record — controlled=true AND controllable=false on a broker-hosted PTY endpoint — which controlled-precedence masks blue while attached and which a DETACH then unmasks as amber HARNESS ONLY. Detach is not the root; it only reveals the bad stamp. SOURCE: api/startup.rs passes controllable=Some(false) UNCONDITIONALLY on the relay/listen path (~191-195, reasoning 'the harness owns the process, so there is no broker PTY'), and establish_perch resolves controllable = controllable.or_else(|| prior…) (~379) — explicit wins, so that Some(false) OVERWRITES the Some(true) an earlier `api bind` EARNED. The carry-forward discipline that protects cwd/adapter/rest_state does not protect this field precisely BECAUSE the listen path is not silent about it. The defect is an ASSUMPTION about hosting authority made by a path that does not know the answer. FIX (preferred): represent LISTENER CUSTODY separately from PTY HOSTING AUTHORITY, so establishing a listener says nothing about who owns the session surface. Merely preserving controllable=true when a broker-hosted session with that session_id exists is weaker — it leaves listen guessing rather than removing the guess. Gate: impl — listen no longer asserts hosting topology for a session it does not host; unit — the stamp resolution table over (prior controllable, listen path, broker-hosted session present); int — bind -> listen -> control -> detach ends at alive=true, controlled=false, controllable=true, display ONLINE. TITLE AMENDMENT 2026-07-27 (doyle ruling, todlando build; rides the build PR per registry-mints-ride-build-PRs): THE REQ PRESERVES A **LIVING** HOSTING ARRANGEMENT ACROSS LISTENER RE-BINDS; IT DOES NOT RESURRECT A DEAD ONE'S CAPABILITY STAMP. FIELD CASE: emphasys rendered ONLINE for 25+ minutes with BOTH recorded pids dead, because its listener-only wake re-bind INHERITED a controllable=Some(true) earned in an earlier broker-PTY life, and the reconcile sweep exempts Some(true) rows from relay-death convergence (livehost.rs) — so an expired capability stamp ROUTED a liveness proof and the row was exempt from EVERY liveness model. The carry-forward is now scoped: Some(true) survives a listener re-bind unless the prior record's RELAY pid is provably Gone. Liveness of the arrangement is judged via the relay-role pid (REQ-PID-ROLE-EVIDENCE), the first record-internal key that actually measures it — NOT via 'earning pid alive', which was falsified pre-build: for a BrokerPty row the record holds no pid of the hosting life at all, only the announcing CLI's.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3555587Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3555783Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3555887Z ### REQ-DIGEST-JSON-SELF-CONTAINED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3563538Z - Title: TEARDOWN-AUTHORITY W4 (perri adapter-surface finding 2026-07-19, doyle-grounded and RE-SCOPED; title AMENDED at gate 2026-07-19 — the original welded version to --after polling, todlando falsified it from digesthub.rs/cli.rs and doyle ruled the amendment rides the wave: fifth instance of the claim-keyed-on-the-wrong-thing class, this one in the REQ registry itself): `spt endpoint digest <id> --json` must be self-contained on stdout. Today the digest snapshot version is NOT a field of the --json object at all — it exists ONLY in the DIGEST:<id> version=N trailer that cmd_digest eprintln!s at cli.rs:1619 — so a JSON consumer that wants it is FORCED to parse stderr. NUMBER-SPACE TRUTH (the amendment): version is digesthub's monotonic PROJECTION counter — it bumps when the projected digest CHANGES, serves as the --follow from_version floor and a change-detection cursor, and is NOT valid --after input; --after filters on entry seq ((ledger_ordinal<<32)|line_idx), a different number space, so a version passed as --after predates the window every time. NOTE the corrected history (perri's original RCA framed this as a fleet outage and doyle falsified it; perri confirmed): the trailer has been on STDERR since it was added 2026-06-03 (16f4c8e) and no stdout trailer ever existed, so stdout-only consumers never choked — this is a CONTRACT-COMPLETENESS defect, low priority, NOT an outage. FIX: (a) emit version as a top-level integer field inside the --json object (field name pinned by the consumer — perri's adapter parses 'version' — so no second round is needed), alongside the existing after_predates_window signal; (b) gate the stderr trailer on the non-json path so --json leaves stderr clean while the human path keeps its status line. Result: --json stdout = pure self-contained JSON including the version, safe whether the consumer reads stdout-only OR merges 2>&1. Additive to the JSON shape (REQ-CLI-JSON evolution rule). The published doc must state the number-space split with the EXPLICIT NEGATIVE (version is NOT valid --after input) — the original title proves the misuse is the natural reading. Gate: doc — the json-shapes digest section carries version, the stderr-clean --json contract, the complete entry-kind enum with per-kind produced-vs-injected provenance, and the seq/version asymmetry incl the explicit negative; impl — version field on the --json snapshot path + non-json-gated trailer; unit — the --json object carries version and stderr carries no DIGEST: trailer, the non-json path still prints it (predates ordering included), and the behavior-change sweep confirms no existing test asserts the old --json shape or the trailer presence under --json.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3570210Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3570358Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3570468Z ### REQ-RC-DISPLAY-SOLE-WRITER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3577298Z - Title: TEARDOWN-AUTHORITY W5 (hertz RCA 3 bug 1, 2026-07-19 — REPRODUCED on 0.38.1 CLI + 0.38.1 broker; doyle ruled, and it CORRECTS an incomplete v0.38.1 call of doyle's own): while `spt rc` owns the terminal (raw / alternate screen), rc is the SOLE writer to that display — no background thread may write to the inherited stderr. TODAY: BrainConn::split_with_reader (spt-daemon/src/brain.rs:253-270) unconditionally eprintln!s `PUMP_IPC_READER: spawned` / `exited` from its reader thread. Every reconnect attempt calls establish_attach -> Brain::cold_start_pump (rc.rs:1700-1712), and reconnect_banner_bytes (rc.rs:2040-2054) deliberately clears/homes and leaves the cursor immediately after the countdown with NO trailing newline — so the marker lands exactly at that cursor and the operator sees `Reconnecting to local daemon... 9sPUMP_IPC_READER: spawned`. Field screenshot confirms it also reaches the harness alt screen on a real `endpoint run` + `rc --take`. WHY THIS IS A CORRECTION, ON THE RECORD: v0.38.1's REQ-RC-SINGLE-PUMP-BRAIN removed the DOUBLE construction and doyle ruled the surviving single banner 'truthful, keep it' and classified the change Internal (diagnostic hygiene, not user-facing). Both halves of that ruling were wrong on facts doyle did not check: the marker is not merely a startup diagnostic, it is rendered INTO an rc-owned display, so it was user-facing all along and v0.38.1 reduced rather than eliminated the corruption. FIX: delete both unconditional eprintln diagnostics from the pump reader thread. If the observability is still wanted it goes to the daemon's persistent diagnostic sink or an explicit opt-in debug trace that NEVER inherits an interactive client's stderr — never to a stderr an attached client owns. Grounding: ADR-0043 terminal render lifecycle (one renderer owns the baseline); CONTEXT.md:33-36 (the broker's internals are not a client-visible surface). Gate: impl — diagnostics removed from split_with_reader (and any sibling unconditional client-inherited stderr write on the pump path); unit — insufficient alone and explicitly NOT the gate (the defect is cross-thread out-of-band stderr, which a banner-byte unit cannot observe); int — drive the REAL reconnect-banner path with the child's stderr captured into the SAME sink as the rendered terminal and assert neither PUMP marker appears anywhere in the captured stream, PLUS assert an ordinary initial `spt rc` is marker-free.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3583427Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3583576Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3583689Z ### REQ-TEST-LIVENESS-ORACLE-AUTHENTICATED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3590365Z - Title: IR-15 (INFRA-REGISTER, doyle-ruled 2026-08-03): a TEST that captures a pid and POLLS it to a verdict must poll the process it CAPTURED, never the number. `provably_gone` answers 'is *a* process at this pid', which is correct for a pid just handed over and WRONG for one captured seconds earlier: between capture and verdict the OS may recycle the number onto an unrelated process, and the bare-pid oracle then reads the stranger as the captured process, still alive, until the deadline burns. Specimen: golden 30776330383, daemon::tests::a_tree_teardown_reaches_a_grandchild_the_service_spawned sat the FULL 10s window (10.176s vs 0.19/0.24s passes) on a pid-churning Phase A leg, with a Cargo-dep-pin delta that has no mechanism path to it. THE PRODUCT PATH ALREADY AUTHENTICATES pid against birth stamp (process_identity, ADR-0047 decision 1, KNOWN-HAZARDS 7.51); the TEST oracle is the half that never got the stamp -- two death oracles in one tree and the tests poll the pid-only one. FIX: a PinnedProc identity (pid + birth stamp captured at FIND time, or handed in via from_stamp where a spawn helper or a stored pid_started_at already holds one) whose provably_gone reads Absent=>gone, Present(same stamp)=>not gone, Present(DIFFERENT stamp)=>gone (reuse: ours died), Present(_)+unstamped=>not gone (degrade to bare-pid), Unproven=>not gone. POLARITY IS LOAD-BEARING AND RULED: every uncertain arm errs toward NOT GONE, i.e. toward a red, because the two failure directions are not comparable -- a false GONE hides a real kill-tree miss behind a green gate and is unrecoverable, a false NOT-GONE is a visible recoverable flake. The pre-existing property that this oracle can only ever false-RED is therefore PRESERVED, not traded: a green from a poller built on it stays exactly as conclusive as before, which is what the same-sha-rerun authorization rests on. PLATFORM STRENGTH DIFFERS AND MUST NOT BE FLATTENED: Windows creation FILETIME is 100ns so Present(different) is decisive; Linux starttime is clock ticks since boot at 10ms granularity, so a reuse landing inside one tick reads Present(same) and errs RED (the safe direction) -- this NARROWS the window and does not close it, and Present(same) on Linux is never proof the pinned process survived. Image-path corroboration (releases#120) is the second axis that closes the remainder and composes onto the SAME pinned identity. SCOPE IS THE TEST-SIDE ORACLE: one shared helper covering the swept call sites (daemon.rs teardown test + endpoint_lifecycle.rs relay_pid, the latter not yet red), never a patch to whichever test happened to fire; product-side callers (teardown.rs root_provably_gone, servicehost.rs) stay out and belong to #120's product lane.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3596879Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3597027Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3597126Z ### REQ-LIVENESS-ORACLE-SOUND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3609592Z - Title: TEARDOWN-AUTHORITY W2 (todlando W1 gate-round-0 finding, doyle-scoped from the LANDED W1 code 2026-07-19): 'does this pid still exist' has ONE answer in spt-core and it is derived from the OS process table. TODAY spt-daemon/src/broker.rs session_is_zombie computes wrapper_alive from spt_store::proc::is_process_alive, which probes OpenProcess on Windows — and OpenProcess keeps SUCCEEDING for a TERMINATED process while any parent holds an open handle, which the broker ALWAYS does (Arc<PtySession>) for every PTY child it spawned. A correctly-reaped harness therefore reads ALIVE, flipping zombie_verdict off its PRIMARY class (Some(false) = dead root + surviving record = always a zombie) onto the conditional arm, which additionally demands adapter_labeled && past_grace && !has_live_descendants. CONSEQUENCE, live today: a dead-root session that is NOT adapter-labeled is claimed LIVE indefinitely — `endpoint run`'s dup-guard refuses ENDPOINT_ALREADY_LIVE over an already-dead tree and cmd_rest's Suspend alive_hint forces from=alive on the same false claim (both via has_live_session_honest, cli.rs:2014 and :3805). REQ-ENDPOINT-CYCLE-HONEST exists to give the cycle verbs ONE liveness authority; after W1 there are TWO and they disagree by construction (teardown.rs::root_provably_gone asks the table and is right; session_is_zombie asks is_process_alive and is wrong). THE DISCRIMINATOR (binding, and it makes the audit checkable rather than 20 judgement calls): is_process_alive is unsound EXACTLY when the ASKER — or a live ancestor — still holds an open HANDLE to the target; dropping a Child closes it, so a spawner that DROPS is honest and one that RETAINS is not. Hence the dangerous shape is asking 'is it GONE' about a process you OWN, and the SAME CALL IS SOUND IN THE CLI AND UNSOUND IN THE DAEMON FOR THE SAME PID — soundness is a property of the asker, not the call. REJECTED ALTERNATIVE, recorded in ADR-0045 Amendment 1 so it is not re-proposed: proc::reap_if_child before the probe fails twice — it is a NO-OP on Windows (#[cfg(windows)] let _ = pid), and decisively the broker holds the handle BY CONSTRUCTION for every pid this predicate is ever asked about, so no handle-based probe can EVER be sound at this site. FIX: (a) add a sound probe as a NAMED SIBLING whose name is the question — process_exists(pid) over process_table() — and state on is_process_alive's own doc which question it answers and which it does not, pointing at the sibling (the behavior was documented VERBATIM in legacy_resident_sweep_e2e.rs since 2026 and never reached proc.rs or zombie_verdict: written where DISCOVERED, not where CONSUMED); (b) route session_is_zombie's wrapper_alive through it, leaving zombie_verdict PURE and UNCHANGED (it was fed a lie, it is not wrong); (c) an EMPTY table is NO KNOWLEDGE — it must resolve to None (zombie_verdict(None) already means 'never guess') and must NEVER manufacture Some(false), which would mass-classify every live session a zombie = the W1 blocker inverted at broker scope; (d) AUDIT, do not mass-migrate, the remaining callers using the discriminator — roster.rs/api/startup.rs/api/auth.rs are already adjudicated SOUND (the asker never spawned the target); cli.rs purge psyche-quiesce is RIGHT ANSWER FOR A FRAGILE REASON (sound only because the CLI asks and the DAEMON spawned the psyche — it goes unsound SILENTLY if that check ever moves into the daemon) and gets a comment naming the asker as what makes it safe; the daemon-side population (livehost.rs, shellhost.rs, shellwake.rs, lifecycle.rs, in-daemon is_perch_alive) is adjudicated one verdict per site (sound/unsound/unreachable), fixing only unsound AND reachable and REPORTING the verdicts even where left — if unsound-and-reachable exceeds a handful, STOP and escalate to doyle rather than widening this wave. Gate: doc — KNOWN-HAZARDS 7.50 + ADR-0045 Amendment 1; impl — process_exists + the caveat on is_process_alive + wrapper_alive routed + the adjudicated fixes; unit — the empty-table arm resolves to None (never Some(false)), a handle-held corpse classifies as a zombie, and zombie_verdict's existing pure table is extended with the previously-unreachable case (dead root + not adapter-labeled + within grace); int — manufacture the REAL handle-held-corpse condition (broker retains a handle to a killed PTY child) and assert the session classifies zombie + the run dup-guard does NOT refuse over it; Windows-only if it cannot be made on Linux, and the test NAME says so.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3620320Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3620477Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3620577Z ### REQ-SHELL-FRAME-VOCAB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3625350Z - Title: The shell relay frame vocabulary is a PUBLISHED contract, not a reverse-engineered one. (flynn spt-alchemy clean-room audit 2026-07-21, doyle code-verified, seed pair item 1.) TODAY: shellchan.rs composes the exact frames a shell binary must parse — shell_command / shell_text / shell_file (+ shell_close, sensory, drive) — but the published export (docs-site/src/shells/) carries ZERO occurrences of those type names; the docs say only 'the shell child parses its own vocabulary', so every adapter author (notify-shell, alchemy) reverse-engineers the frame shapes compatibly from source. FIX: publish, in the shells section of the docs-site export, the frame type names + their attrs (op, xfer-id, path) + body encodings — a shell_command body is a JSON object of named args (positionals zipped against the manifest's declared arg names), a shell_text body is the raw text, a shell_file body is the original filename with the perch-relative landed path in the path attr, a shell_close body is the manifest's pre_close instruction (NOT vocabulary-checked — the vocabulary gates agent commands, the manifest is its own authority over its own binary). Fold in the quoted-composite-tail sharp edge: the vocabulary check REFUSES extra positionals (an op given more args than its declared arity errs, so a quoted composite tail must be ONE argv element). Docs-drift-gated like every published page. Gate: doc — the shells export carries the full frame vocabulary (type names, attrs, body encodings, shell_close) + the files/ landing contract (published together with REQ-SHELL-PERCH-DIR's key so the path attr is resolvable the day it is documented) + the arity sharp edge.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3629627Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3629755Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3629851Z ### REQ-SHELL-PERCH-DIR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3635134Z - Title: A shell binary can mechanically resolve where its files land. (flynn spt-alchemy clean-room audit 2026-07-21, doyle code-verified, seed pair item 2, P1 — HARD-GATES flynn's alchemy W4.) TODAY: `spt shell send --file` lands the blob at <shell-perch>/files/<xfer-id>-<name> and the shell_file frame's path attr is PERCH-RELATIVE (files/...) — but the spawn template substitution keys are ONLY {id}/{adapter_name}/{link_token} (shellhost.rs fill_spawn_command) and the spawned child inherits the BROKER's cwd, so no mechanical perch resolution exists: the binary cannot turn the frame's path into a real file without guessing SPT_HOME layout. DOYLE RULING, both halves binding: the frame KEEPS the perch-relative path (an absolute path in a spooled frame LIES across perch moves and node boundaries — frames outlive layouts); the fix is an ADDITIVE {perch_dir} spawn-template substitution key (opt-in — templates that do not use it are byte-identical, N-1-safe by construction) filled with the shell perch dir so the binary receives its root at spawn and joins the frame's relative path against it. REFUSED, recorded so it is not re-proposed: blessing SPT_HOME layout guessing as an interim contract. Published landing contract rides REQ-SHELL-FRAME-VOCAB's page. Sequence-not-version given to flynn (no version floor before it ships). Gate: doc — the {perch_dir} key on the manifest spawn-template docs + the files/<xfer-id>-<name> landing shape on the frame-vocab page; impl — fill_spawn_command passes perch_dir alongside id/adapter_name/link_token; unit — the filled template carries the perch dir as ONE argv element (the multi-word/space path shape the argv-fill hazard exists for) and a template WITHOUT the key is byte-identical pre/post (the N-1 guarantee); int — a real spawned shell binary given {perch_dir} resolves a shell_file frame's perch-relative path to the landed blob and proves the read.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3639939Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3640096Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3640206Z ### REQ-CI-POSTJOB-DAEMON-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3648405Z - Title: A CI job REAPS ITS OWN test-spawned daemons at battery end, in-job, and logs a process census at job start AND job end so contamination and reap effectiveness are visible in every run's log. (Load-flake family leg 1, doyle-ratified 2026-07-22 from deployah's third-run analysis.) THE SIGNATURE THIS CLOSES: a DIFFERENT single daemon-spawning test dying per run with a bare exit 1 and NO assertion output — process-level death, not a failed assert — while sibling tests in the same families pass alongside it, on BYTE-IDENTICAL code. Evidence: release PR #56 ran four times over a zero-.rs-delta tree; runs 1/2/3 killed brain_decouple (twice, on a disk-starved box), then adapter_translate, then adapter_digest at 105.9 GB free; box census during runs showed 43 live spt-family processes and 6486 handles against an 1881-test Phase-A full-parallel battery; run 4 went GREEN once disk and leaked session-0 daemons were cleared. WHY IN-JOB IS LOAD-BEARING AND NOT A CONVENIENCE: there are TWO leak populations on hfenduleam. Population A is session-1 (agent/gate-spawned) and is sweepable by path from any shell. Population B is SESSION-0, spawned by the actions.runner.* service — a session-1 shell CANNOT kill those (Access denied; ExecutablePath unreadable) even though they are healthy. Every CI run therefore leaves session-0 daemons behind that contend with the NEXT run while also leaking its own mid-run, and an external sweep can never reach them. The runner's own job context owns its session-0 children, so only a post-job step inside the job can reap them. KILL SCOPE IS NARROW AND PATH-VERIFIED PER-PID AT KILL TIME (never machine-wide, and never trusting the census snapshot, whose pids can be recycled): eligible only under the run's own build roots — CARGO_TARGET_DIR, the workspace target, the notify-adapter checkout's target, RUNNER_TEMP, and the pinned n1 old-broker build cache. TWO HARD EXCLUSIONS are checked AFTER the root test rather than instead of it, so that live infra survives a bug in the root computation: anything under an spt-core/bin/ install prefix, and any owl binary. A process whose image path cannot be READ is reported but NEVER killed — unreadable means unverifiable and the safe direction is to leave it standing. A BOUNDED SETTLE precedes the kill pass so a cleanly-exiting daemon is not counted as a leak; after it, a survivor is a leak by definition, which is what makes the strict-mode trigger a mechanism rather than a judgement call. Rides BOTH the test and n1-gate jobs (doyle scope ruling): n1_pairing spawns real daemon trees from the workspace and from the out-of-tree pin cache, so reaping one job leaves half the cause standing. Gate: impl — the two census/reap scripts under .github/ci/ plus their job-start and always() job-end wiring on both jobs, both runners. Kin REQ-CI-WINDOWS-PHASE-A-BOUND (the other cause-side leg), REQ-CI-DOCS-ONLY-THIN (recipe-layer precedent: impl-only, no product code).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3655564Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3655700Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3655802Z ### REQ-CI-PRERELINK-EXE-LOCK-REAP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3663675Z - Title: NO CI step that RELINKS a workspace binary runs while an earlier phase's leaked binary is still executing from the same target. (BAROMETER golden triage, hertz RCA 2026-08-02, releases#123.) THE DEFECT THIS CLOSES IS PLACEMENT, NOT MECHANISM: REQ-CI-POSTJOB-DAEMON-REAP's reap already kills exactly the right processes with exactly the right scoping, but it is the LAST step in the job, so it runs after every step it would have saved. Windows cannot overwrite a running image, so a leaked `spt.exe` from Phase A/B makes the next `cargo test -p spt --test <x>` die with 'failed to remove file ...\target\debug\spt.exe: Access is denied. (os error 5)'. EVIDENCE, twice out of twice on the same head: golden 30754060525 and 30758010357, both Windows `test` jobs — job-start census scoped=0 (so the leak is generated IN-job, not inherited), pre-reap census scoped=4 with the same handle-count signature both runs (two ~258-260 daemons + two ~134 brains), job-end reap killing 4 and 3 respectively AFTER the job had already died of them. The second run also shows the masking: run 1's Phase-A red hid this, and every run that survives Phase A dies at the notify relink instead. THE FIX IS CLASS-SHAPED: the guard rides EVERY relink-after-an-E2E edge (notify, installer, docs-drift, and the two-host gated-CLI step in twohost-a), not only the edge that reddened a run. ONE PREDICATE OVER ONE POPULATION: it is the same reap-census script under a `prerelink` phase, so a mid-job reap can never classify a process differently from the job-end reap; the pre-existing inline `Get-Process | Stop-Process` before the docs gate is REPLACED by it rather than left as a second, weaker rule (it scoped by GITHUB_WORKSPACE alone, missing CARGO_TARGET_DIR/RUNNER_TEMP/n1-cache roots, re-verified nothing at kill time, and printed no evidence). Census labels carry the phase (`prerelink-pre-reap`, `prerelink`) so a mid-job census is never counted as an end-of-job one by the strict-mode trigger. STRICT STAYS AN END-OF-JOB MECHANISM: a prerelink survivor warns and never reds its own step, because the relink it guards is the very next step and fails with the exact file it could not remove — a louder and more specific signal than a reap step exiting 1. WINDOWS-ONLY BY CONSTRUCTION: Linux replaces a running exe happily; role B (Linux) of the two-host pair needs no guard. Gate: impl — the `prerelink` phase in .github/ci/reap-census.ps1 plus its four wirings in golden.yml. No unit stage, for REQ-CI-POSTJOB-DAEMON-REAP's stated reason: the evidence is a recipe the runner executes and the acceptance is read off the run log (a `CI-REAP-PRERELINK summary:` line before each relink, and no os-error-5). Kin REQ-CI-POSTJOB-DAEMON-REAP (same machinery, the other placement), REQ-CI-WINDOWS-PHASE-A-BOUND (the co-tenant load leg).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3670565Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3670689Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3670799Z ### REQ-CI-WINDOWS-PHASE-A-BOUND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3679907Z - Title: Phase-A nextest parallelism is BOUNDED on the Windows self-hosted leg, so the full-parallel 1881-test battery stops saturating a box that also hosts the live agent fleet. (Load-flake family leg 2 = deployah option (c), doyle-ratified 2026-07-22.) Windows leg ONLY: kitsubito does not host the fleet, and its parallelism is deliberately untouched. MECHANISM AND WHY THIS ONE: the bound lives in a [profile.ci-windows] nextest profile selected by a STEP-LEVEL NEXTEST_PROFILE expression on the Phase-A step, NOT by a per-OS pair of Phase-A steps — duplicating that step would put a FOURTH copy of the <HEAVY> filter string in the tree, and .config/nextest.toml's own header names keeping THREE in sync as the standing hazard. THE NON-INHERITANCE GATE-CHECK (doyle demanded it discharged, and it did not come back clean): a custom nextest profile inherits scalar settings from default but NOT profile.default.overrides — the argument cuts both ways. Of the five overrides on default, exactly ONE is kind(test): the by-binary <HEAVY> integration filter, which is Phase B's alone and needs no mirror. The other FOUR are the FLAKE-LEDGER: attach_viewport_reconnects_across_a_broker_bounce class — real-broker units that are kind(bin)/kind(lib), escape the by-binary filter, and therefore RUN IN PHASE A depending on the heavy-broker-pty group to stay serialized (rc::tests four names, (applyhost|livehost|pump)::tests, wansend::tests, api::startup::tests). Shipping the profile without them would have SILENTLY UN-SERIALIZED ON WINDOWS the exact class whose un-serialization produced two separate 240s timeouts. They are mirrored verbatim, and the parity is ENFORCED rather than remembered: xtask check's check_phase_a_profile_parity fails the build when a default override that is not kind(test) is missing from ci-windows, keyed on that SHAPE and not on a name list — the same posture as that ledger entry's second half, whose whole lesson is that a class written in prose and shipped as an enumeration decays. A DRIFTED mirror reads as missing, not as present: the invariant is that it is the SAME filter in both profiles, not that something is in both. THE BOUND ITSELF IS CHOSEN, NOT DERIVED, and is recorded that way at the value: hfenduleam is 16 logical cores and the bound is 8 (half), for fleet-co-tenant headroom. No measurement separates 8 from 6 or 12 and none was run — the ratified fix is stop saturating the box, not find the saturation knee. Retuning is one integer. Gate: impl — the ci-windows profile with its mirrored overrides plus the ci.yml step-level profile selection plus the xtask parity check; unit — the parity predicate's exemption rule (a kind(test) override needs no mirror), its detection of an unmirrored Phase-A override, its rejection of a DRIFTED mirror, and a case over the REAL checked-in config so the check cannot ship green against a tree that already violates it. Kin REQ-CI-POSTJOB-DAEMON-REAP (the other cause-side leg), REQ-HEAVY-UNIT-CLASSIFICATION (the check one layer in), FLAKE-LEDGER: attach_viewport_reconnects_across_a_broker_bounce + the HEAVY-AT-BIRTH ruling (.config/nextest.toml).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3687539Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3687682Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3687793Z ### REQ-CI-LOAD-BEARING-PATCH-PIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3695861Z - Title: A `[patch.crates-io]` pin that FIXES A SHIPPED DEFECT is asserted still in force by `xtask check`, in BOTH of the two ways it can silently lapse. (INFRA-REGISTER IR-4 part 1, releases#125 fix-lane intake; hertz 2026-08-03.) THE PIN AT RISK: swarm-discovery 0.6.0-alpha.2's `updater::gc` answers a send to a stopped actor by scheduling another gc task 10ms later — a ~100 Hz retry loop per destroyed updater that can never reach a live receiver, so every updater recreation leaks one more loop. Latent in EVERY daemon since v0.38.1; the field cost was a kitsubito daemon burning two cores for two weeks (~9 accumulated loops). Fixed upstream in rkuhn/swarm-discovery PR #27, which is in NO crates.io release (0.6.3 predates it) and iroh pins swarm-discovery to EXACTLY 0.6.0-alpha.2, so no published version satisfies the graph — the tree carries a minimal-delta backport fork pinned by `rev`, i.e. content-addressed. TWO FAILURE MODES, WHICH IS WHY ONE ASSERTION IS NOT ENOUGH: (1) a routine `cargo update` or an iroh bump re-resolves Cargo.lock back to the registry crate while the stanza still sits in Cargo.toml looking correct — the lock disagrees with the manifest, or resolves from the registry outright; (2) the STANZA IS DELETED, after which there is nothing left for the lock to disagree with and a lock-only check reads clean over a reintroduced defect. So the manifest is asked whether the pin exists AT ALL, and only then is the lock asked whether it agrees. THE EXPECTED REV IS READ FROM THE MANIFEST, never duplicated into xtask: a third copy of the sha is one more thing to forget, and a legitimate re-pin would then red on the wrong file. What IS hardcoded is the crate plus the reason its patch is load-bearing — the judgement a lock file cannot carry and a human needs in order to decide whether dropping it is safe — and the refusal PRINTS that reason plus its own drop condition (upstream ships PR #27 AND iroh's pin reaches it), so the guard states when it should be removed rather than becoming permanent by default. Removing a crate from the guard list is therefore a reviewed edit in the same commit, not a silent lapse. Gate: impl = LOAD_BEARING_PATCHES + check_load_bearing_patch_pins wired into `xtask check` (already a golden docs-drift step on both OS legs, so this rides an existing leg rather than adding one); unit = the three failure modes each proved separately (deleted stanza, registry resolution, moved rev), the two parser traps that would make the guard answer for the wrong thing (a prefix-named crate, the trailing `[[patch.unused]]` table), and an arm that runs the real workspace so the guard cannot ship green against a tree it does not actually hold. Kin REQ-CI-WINDOWS-PHASE-A-BOUND, REQ-HEAVY-UNIT-CLASSIFICATION (same `xtask check` seam: a rule that outlived the memory it depended on).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3702774Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3702917Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3703022Z ### REQ-LOCK-TOUCHING-LANE-PROCEDURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3709164Z - Title: A lane that changes `Cargo.lock` follows a written procedure whose review step reads EDGES, not just the package set. (INFRA-REGISTER IR-4 part 2; hertz 2026-08-03.) THE HUMAN HALF of REQ-CI-LOAD-BEARING-PATCH-PIN: the guard catches a pin that lapsed, and this catches the re-resolve that lapses it — a `cargo update` with no `-p` re-resolves the whole graph, so a one-crate intent ships as an unreviewed graph move. THE SPECIMEN IS IN THIS TREE: at acaaa4f the `[[package]]` SET was identical before and after — no block added, none removed, not one `name`/`version` line in the diff — while EIGHT blocks had their `windows-sys` edge moved from 0.61.2 to 0.59.0 (consumer counts 18→10 and 5→13; both version blocks survive, so even a version-presence check reads clean). The commit message states 'changed one package and left 132 dependencies untouched', which is true of the set and false of the edges: the reviewer who counts blocks is told nothing happened. Hence the rule states BOTH reads as separate steps, because the cheap one alone is the one that lies. TOOLCHAIN DRIFT IS THE OTHER READING of a surprising diff — two resolutions of the same manifests that disagree are evidence about the resolvers, not about the dependencies, so the procedure sends the author to the golden toolchain-version print (REQ-CI-TOOLCHAIN-VERSION-PRINT) before shipping either lock rather than picking the diff they like. A HAND-EDITED LOCK IS ALLOWED and given a mechanical acceptance test — `cargo check --workspace --locked` — where `--locked` is the load-bearing half: without it cargo silently repairs the file it was asked to verify, which is the same class as running `cargo run` against a build-file mutation you are trying to measure. Gate: doc = the `Lock-touching lanes` section of docs/GOLDEN-CI.md (targeted update, the two-read review with its specimen, the drift stop-condition, the `--locked` acceptance test, and the `xtask check` pin guard as the lane's own preflight). Kin REQ-CI-LOAD-BEARING-PATCH-PIN (mechanical half), REQ-CI-TOOLCHAIN-VERSION-PRINT (the comparison this procedure sends you to).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3719919Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3720068Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3720183Z ### REQ-CI-TOOLCHAIN-VERSION-PRINT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3726969Z - Title: Every golden run PRINTS the toolchain that judged it, on BOTH OS legs, from inside the job. (INFRA-REGISTER IR-4 part 3, carrying IR-9; hertz 2026-08-03.) WHY A PRINT IS EVIDENCE AND A BOX IS NOT: both golden boxes own rustup-managed toolchains that drift independently, so 'did CI resolve this the way I did?' — the question the acaaa4f lock comparison needed answered — had NO answer in any run log. MEASURED on the two boxes' INTERACTIVE accounts 2026-08-03: hfenduleam (Windows leg) cargo/rustc 1.93.0, clippy 0.1.93; kitsubito (Linux leg) cargo/rustc 1.96.0, clippy 0.1.96 — three minor versions apart, which is IR-9's class with numbers on it. That measurement is a PRIOR, not the fact: a runner service account's toolchain is what judges a lane and an interactive shell on the same box does not prove it, which is precisely why the step prints from inside the job. Direction of the skew is deliberately NOT asserted — clippy renames and removes lints as well as adding them, so 'newer is stricter' is unmeasured. IR-9's docs half (align the boxes, or declare one authoritative clippy leg) is HELD by doyle's ruling of the same day: rule it once this step reports runner-account versions, rather than on the prior. STEP SHAPE: one `TOOLCHAIN ` line prefix on every line of both legs so a run's toolchain is one grep; cargo, rustc, and clippy versions are the load-bearing three and their absence reds the step; the rustup active-toolchain line is a convenience and its absence must NOT red a step whose whole job is to print — which needs a different construction per shell, and both were exercised before shipping rather than reasoned about. Windows: under GitHub's pwsh wrapper (`$ErrorActionPreference = 'stop'` + a trailing `$LASTEXITCODE` check) a MISSING COMMAND is a terminating error, so rustup's absence is TESTED with Get-Command rather than caught, and a present rustup's non-zero exit is cleared before the wrapper reads it. Linux: no `| head` anywhere — under `set -o pipefail` a producer SIGPIPEd by an early-exiting head surfaces as exit 141 and reds the print, so first-line trimming is parameter expansion. Gate: impl = the two `Toolchain versions` steps in golden.yml's `test` job (the job that builds, tests, and lints, so the one whose resolver and lint set a reader is asking about). Kin REQ-LOCK-TOUCHING-LANE-PROCEDURE (the procedure that sends an author here), REQ-CI-LOAD-BEARING-PATCH-PIN.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3732942Z - Required stages: impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3733079Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3733176Z ### REQ-CI-LINK-HEALTH-PROBE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3740792Z - Title: The shared-runner quiet predicate gains a NETWORK axis: both two-host jobs measure the link to their peer immediately before rendezvous, print it, and carry it in the bench ledger. (INFRA-REGISTER IR-1; hertz 2026-08-03.) WHY THE EXISTING PREDICATE CANNOT SEE THIS: its two axes are process-shaped (zero non-terminal CI runs; no local cargo/rustc/nextest by parent chain), and both PASSED on run 30771155390 — a run whose link took 321s for a 1s checkout with bidirectional 10s QUIC dial timeouts, PUMP_PEER_FAIL moving a 0→3→0 and b 8→22→8 across green/red/rerun. A network-shaped red was triaged as a product one because nothing in the run recorded the network. kitsubito is wifi-only INDEFINITELY (operator-confirmed 2026-08-02), so the link cannot be hardened and the predicate must SEE it. JITTER IS THE SIGNAL, NOT THE MEDIAN: the motivating link mostly worked, so the probe takes 5 samples and records BOTH `link-rtt-med-<peer>` and `link-rtt-max-<peer>` rows — measured while building this, an idle link ran 10..83ms on one direction and 3..75ms on the other, i.e. the spread is the whole datum and a median alone reads healthy through the failure. ALSO CARRIED: DERP-vs-direct path (a relayed rendezvous is a different network than the one the rig's timings were tuned on), sample loss, and the peer's resolved IP so a reader can check it against the rig's own SPT_TWO_HOST_PEER_IP. AN INSTRUMENT, NOT A GATE — always exits 0, no threshold refuses a rendezvous: whether a number should is an unmade ruling, and a probe that reds a run converts 'the link was slow' into 'the suite failed', which is the confusion it exists to remove. A FAILED PROBE IS A LABELLED HOLE, NEVER SILENCE: no tailscale on PATH or no reply still writes an `ok:false` row, because 'attempted and did not land' is a different claim from 'never probed'. The absence of the CLI is TESTED rather than caught on the pwsh side (under GitHub's `stop` preference a missing command is terminating), and the bash side uses no `| head` (pipefail + SIGPIPE = 141 on an instrument). Gate: impl = .github/bench/link-probe.{sh,ps1} + the probe step in twohost-a (peer kitsubito) and twohost-b (peer hfenduleam), both exercised on the REAL boxes before shipping — five-sample success, no-reply, and absent-CLI arms on each shell, the absent-CLI mutation counted before it ran after a first attempt silently re-measured the unmutated arm; doc = docs/GOLDEN-CI.md 'The link is a third axis' (how to read the LINK line, what relay/loss/jitter each mean, and that the probe does not gate). Kin REQ-BENCH-STEP-LEDGER (the row shape these writers share, and whose parity gate now DISCOVERS its writers instead of listing them), REQ-CI-FREE-SPACE-PREFLIGHT (the same predicate's disk axis, amended the same day).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3740969Z - Required stages: doc, impl
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3741002Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3741107Z ### REQ-RESUME-CUSTODY-IDENTITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3745010Z - Title: Resume custody is an identity pair (pid + process creation time), never a bare PID. (ADR-0047 decision 1; hertz v0.39.4 field bug 1, RCA accepted 2026-07-22.) TODAY: livehost's restart gate and liveness-reconcile DEFER both consume `read_resume_pid(..).is_some_and(is_process_alive)` — zero identity binding, so a dead wake-resume spawn's pid recycled onto an unrelated process (field: resume.pid=29456 -> cmd.exe) reads as a live resume forever: reconcile defers every tick, the row stays online-authoritative, FALSE-ONLINE with no self-repair. FIX: the custody record stores (pid, creation_time) written atomically at spawn-mint; every consumer tests the PAIR; mismatch = NOT OURS -> the discovering reader DELETES the record and proceeds (self-heal, not error); successful bind and spawn-reap clear custody atomically with their own outcome. Creation time from the process SNAPSHOT, never a retained handle (KH 7.50); platform without a snapshot -> unproven -> defer one tick, never a manufactured verdict. Gate: impl — the paired custody record + both livehost consumers on the pair test; unit — pair mismatch reads NOT-OURS + record deleted, pair match reads OURS, absent-snapshot defers; int — the recycled-pid rig: mint custody, kill the spawn, occupy the pid with an impostor, prove reconcile deletes custody and the row goes honest (the bug-1 field shape, RED-first against the bare-PID gate).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3745172Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3745206Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3745310Z ### REQ-ENSURE-DAEMON-STOP-INHIBIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3749826Z - Title: An operator stop outranks every implicit daemon ensure. (ADR-0047 decision 2, AMENDING REQ-DAEMON-3's anchor; hertz v0.39.4 field bug 2, RCA accepted 2026-07-22.) TODAY: every `spt api` invocation runs unconditional ensure_daemon() (api/mod.rs run()), so on a box with live adapter sessions a `daemon stop --force` loses the race to hook-driven api calls — respawn convoy (5-10 ephemeral spawner windows), several stops to stay down; the rc-side twins were fixed earlier, the api anchor stayed armed. FIX: `daemon stop` records a durable machine-scoped STOP INHIBIT before teardown begins; ensure_daemon()/ensure_running() consult it and DECLINE with one honest line naming the remedy ('daemon stopped by operator — spt daemon start to resume'); cleared by intent verbs ONLY (explicit `daemon start`; update paths that restart by design) — NO TTL (rejected: a timeout is the surprise respawn again, later); implicit autostart additionally takes a machine-wide lock around probe-and-spawn so N concurrent callers never launch N daemons. Gate: doc — the stop/start contract on the daemon CLI docs (stop now sticks; the refusal line + remedy named); impl — inhibit mint in cmd_stop + consult in both implicit anchors + clear in daemon start/update-finish + the spawn serialization lock; unit — inhibit present -> ensure declines with the message, absent -> spawns, intent verbs clear, non-intent paths never clear; int — the convoy rig: stop under a concurrent api-call storm -> daemon stays down + zero respawns + refusal printed, then explicit start clears and exactly ONE daemon comes up under the same storm (RED-first against today's anchor).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3749941Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3749970Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3750079Z ### REQ-ATTACH-IDEMPOTENT-REPLAY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3755283Z - Title: The equal-generation lease rung is idempotent for the same connection. (ADR-0047 decision 3, AMENDING ADR-0044's ladder inside the equal-gen rung; hertz v0.39.4 field bug 4, PINNED via OBS breadcrumbs on authorized same-seam `daemon refresh` 2026-07-22 — gen+1 premise FALSIFIED.) TODAY: a Control/Take subscribe with same identity + same nonzero gen classifies 'same lease, silent re-take' (broker.rs equal-gen branch — correct, no revoke) but re-take = become_controller, which unconditionally takes+drops the prior seat (writer exits channel-closed) with NO same-conn check — designed for the dead-seat dispatcher-restart successor, it also fires against the SAME LIVE conn re-served 15ms apart by post-cycle dispatcher replay: the lease kills its own writer, the rc viewer freezes until detach+re-attach (the field 'update freezes PTYs'). FIX: keyed (endpoint/session, by, conn, gen) — same-conn equal-gen = IDEMPOTENT REPLAY: seat + writer PRESERVED, no controller-replaced, no second initial batch; breadcrumb answers decision=idempotent (additive vocab). Equal-gen DIFFERENT-conn keeps today's silent swap (the ADR-0038 fix-6 successor — must not regress); strictly-newer keeps loud supersession, strictly-older keeps busy. BANKED open question (build-time look, not a blocker): why the dispatcher double-served one held attach 15ms apart — may have siblings. Gate: impl — the same-conn discriminator in resolve_subscribe's equal-gen branch + the idempotent decision label; unit — the four ladder cells (same-conn idempotent / different-conn swap / newer supersedes / older busy) against a mock seat; int — the bug-4 rig: replay one held Attach after a brain refresh, assert ONE writer + zero controller-replaced + the original rc interactive (RED-first), plus the different-conn successor leg stays green (redispatch/brain_swap suites).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3755442Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3755470Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3755570Z ### REQ-HAZARD-RESUME-CUSTODY-ABA
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3756877Z - Title: KNOWN-HAZARDS 7.51: process custody is an identity, never a bare PID — a recycled pid must read NOT OURS. The hazard-conformance twin of REQ-RESUME-CUSTODY-IDENTITY: its int-stage recycled-pid rig IS this hazard's required test (custody pair mismatching a live impostor pid -> record deleted, reconcile proceeds, row goes honest). Registered separately so the hazard list stays a conformance checklist (CLAUDE.md rule 4) — evidence may tag the same rig.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3756987Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3757020Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3757134Z ### REQ-HAZARD-BIND-CONFLICT-PID-ABA
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3768146Z - Title: THE BIND CONFLICT CHECK MUST ASK CUSTODY, NOT A BARE PID (KNOWN-HAZARDS 5.1/7.51 -- "custody is an identity, never a bare PID"; releases#134, FOUND AND ROOT-CAUSED BY hertz including the measured chain and the discriminating negative control). `establish_perch`'s under-lock conflict check read the recorded owner pid and asked `is_process_alive` with NO birth pairing, while `pid_started_at` sat unread in the SAME record and the shipped paired resolver (`liveness::relay_liveness`) was already in use 260 lines earlier in the same file (`prior_relay_died`). DECLARE SITE != ENFORCE SITE: the ABA fix landed on the relay-death and resume-custody paths and was never aimed here. CONSEQUENCE, MEASURED IN THE FIELD on the `hertz` endpoint (specimen preserved, sha256 1d8805ef841a1c1fe930b23eb8ce1683115e33735e190e426dd3ab3416ae3b1e): recorded pid 30576 with birth 2026-08-01T08:11:26.027Z, the pid recycled onto an unrelated process at 12:34:04.317Z, so every subsequent bind was refused CONFLICT and the row sat `unbound` FOREVER -- ready=false, alive=false, not addressable inbound, with `resume_unbound_stamp` re-arming a bind that could never succeed. It fails SILENTLY rather than loud, and Windows recycles pids aggressively, so it is latent fleet-wide rather than endpoint-specific. THE FIX PAIRS THE RECORDED BIRTH INTO THE CHECK, and both facts come from ONE read -- the under-lock `prior` snapshot -- replacing a second file read that could pair a freshly-read pid against `prior`'s session_id. UNPROVEN FAILS TOWARD ALLOW HERE, INVERTING `relay_liveness`'S OWN DEFAULT, and the inversion is the requirement rather than an implementation choice: that default exists so a HEAL is never mis-fired, but at this site "alive" means REFUSE THE BIND, so carrying it over converts an unknown into the same permanent lockout through a different input. MEASURED CORRECTION TO THE RULING'S OWN JUSTIFICATION (todlando recon, 2026-08-03): this does NOT confine the behaviour change to `Gone`. `process_identity` also answers `Unproven` for a LIVE pid whose birth cannot be read (a denied query, an exit race, or a platform with no birth oracle -- `process_started_at` is documented `None` on non-Linux unix), and that arm refuses today and allows after. The case given up is bounded by the owner's own exit race; the case fixed is permanent. THE FIX RESTS ON THE BIRTH PAIRING, NOT ON `pid_role`, AND THAT MUST BE PROVED RATHER THAN ASSERTED: the field record carries `pid_role: "binder"`, so a `pid_role == Relay` gate copied from `prior_relay_died` would ALSO have unblocked the reported case -- two mechanisms, one symptom. The pairing is load-bearing because a `pid_role = Relay` record whose pid is recycled is bricked identically and a role gate cannot fix it, so the requirement carries a Relay+recycled row specifically to prove the role gate is not carrying the fix. NO ROLE GATE IS ADDED HERE: it would change behaviour on `Held` binder records too, far wider than the defect. SQUAT PROTECTION IS NOT WEAKENED AND NEEDS ITS OWN ROW: a live owner whose recorded birth MATCHES still refuses the bind. NO INT STAGE, AND THAT IS A DECISION RATHER THAN A GAP (doyle, 2026-08-03): the field shape is covered at UNIT level because every fact this requirement rests on is reachable there -- the custody tri-state exhaustively, the remedy RUN from the refusal state, and both unknown-arm defaults -- while the arm that cannot be produced portably (a live pid whose birth is unreadable) is not reachable through an int seam either, since no single platform manufactures it. The int seams that would carry a field shape already run green beside these rows (`dummy_harness_e2e`'s bind/attach pair, `resume_custody_aba`), so an int stage here would re-run a topology that is exercised rather than test anything the unit rows do not. THE FIELD SPECIMEN IS REPRODUCED, NOT LOADED: the fixtures rebuild the specimen's construction (a live pid whose recorded birth is provably not its own, `pid_role` binder) and deliberately do not read ~/spt-specimens -- a test depending on a path outside the repo that no runner has would pass on one box and be silently skipped or red everywhere else. The specimen proves the hazard was field-real; the fixture is reproducible anywhere; coupling them costs the second job. Gate: impl -- the paired custody check at the bind conflict site, one snapshot, Unproven-allows; unit -- a recycled owner pid (live impostor pid whose recorded birth is provably not its own) no longer refuses the bind (RED on shipped code), a same-birth live owner still refuses (the control that keeps squat protection honest), and a `pid_role = Relay` recycled record is fixed too (the row that proves the role gate is not what carries this).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3768346Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3768374Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3768480Z ### REQ-HAZARD-STOP-RESPAWN-CONVOY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3769763Z - Title: KNOWN-HAZARDS 7.52: an operator stop outranks every implicit ensure — no convenience path resurrects what the operator just killed. The hazard-conformance twin of REQ-ENSURE-DAEMON-STOP-INHIBIT: its int-stage convoy rig IS this hazard's required test (stop under api-call storm -> down + zero respawns + honest refusal; start clears; one-daemon race). Registered separately per CLAUDE.md rule 4 — evidence may tag the same rig.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3769862Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3769891Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3770040Z ### REQ-STREAM-LIFETIME-CLASS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3786095Z - Title: RESCOPED at W2 activation 2026-07-22 (doyle verify-first, C3-retirement precedent): the CLEAN-CASE chain this REQ was minted for is ALREADY SHIPPED under REQ-STREAM-LEASE-CLASSES / ADR-0040 decision 6, verified against @7c0f12d — StreamLifetime is opener-declared and on the wire, serde-default Durable so N-1 openers keep exact today-semantics (msg.rs:810-836 + the additive-wire unit @msg.rs:1408); rc attach/view is the SOLE ConnectionBound opener (attach.rs:667-677); the broker binds the class at open (broker.rs:5689) and nethost carries it per StreamEntry (nethost.rs:1059-1076); the conn-exit sweep FINs each ConnectionBound stream toward its target and terminal-retires the local row while Durable rows never enter it (broker.rs:4118-4123/4227-4235/4429-4446); the target's serve_attach EOF arm runs detach_session_gen(serve_gen) so controller/viewer stamps clear on exactly one generation (attach.rs:580-597); the late-close gen guard (broker.rs:2179-2192, unit @8416) and converge_perch_stamps close the race; int coverage rides endpoint_lifecycle.rs:241. Building that again would re-implement shipped code — the C3 lesson. WHAT REMAINS, and what this REQ now owns: RESTART-REPLAY RE-ESTABLISHMENT. ADR-0038 dispatch replay re-serves every retained opener Attach across a dispatcher generation, and a ConnectionBound opener REPLAYING is a class contradiction — the conn that declared the class cannot exist after the restart that killed it, so re-serving resurrects a seat whose declared lifetime already ended. FIX: the dispatcher's restart-durable classification (ADR-0038 decision 2, dispatch.rs first_line) gains lifetime, and the replay filter TERMINAL-RETIRES ConnectionBound openers instead of re-serving them. Deliberately PRECISE, not ADR-0038's rejected clear-table-on-restart: Durable/brain-swap semantics are untouched and the brain_swap / daemon_refresh / redispatch D1+D1b families staying green IS the proof. The filter runs UPSTREAM of the W1 idempotence key (endpoint/session, by, conn, gen, from_seq) — a filtered opener never reaches serve, so the two mechanisms compose rather than overlap. Gate: impl — lifetime on the replay classification + the terminal-retire filter; unit — the filter predicate (ConnectionBound retires / Durable replays / unclassifiable stays terminal as today); int — RED-first: kill the rc opener raw, restart the broker, pre-fix the seat and CONTROLLED stamps re-establish via replay, post-fix they stay clear, with the D-legs green alongside. Kin REQ-STREAM-LEASE-CLASSES (the shipped clean case), REQ-ATTACH-IDEMPOTENT-REPLAY (downstream), REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT (the live no-FIN sibling, same wave). RESCOPE 2 — MEASURED 2026-07-22 (todlando, Leg A rig `restart_replay_lifetime.rs`, GREEN with its sibling probe passing): the FIX ABOVE IS NOT OWED. The premise was pre-registered as falsifiable by doyle BEFORE the rig was built, and the rig falsified it: in the residual ordering (dispatcher generation dies FIRST so no serve worker and no Served report, THEN the rc opener dies RAW with no detach frame) a fresh generation does NOT resurrect the seat — stamps stay clear and no DISPATCH line touches the dead opener's row. The population is closed BY COMPOSITION: the conn-exit sweep fires for this kill shape (`STREAM_CONNBOUND_RETIRE:<id>: opener conn exited — FIN + terminal retire`), the ConnectionBound opener row leaves the table entirely, its peer row carries the FIN as finished=true, and the worker's family-aware finished_row_is_terminal(Attach,true) retires it UNSERVED. TWO PRE-REGISTERED SUB-QUESTIONS ANSWERED, and the first is the non-obvious finding: (1) `retire` does NOT exclude from the CLAIM condition on this path — the dead opener's row is STILL in the dispatcher's claimable enumeration, merely finished=true, so what stops the replay sits DOWNSTREAM of the claim (retire-on-sight in the worker), which is ADR-0038 decision 1's `excluded by lifecycle state` arm and NOT its `removed from the enumeration` arm; (2) the sweep DID run for this kill shape. Consequently NO wire field (already settled independently: the re-served row registers Durable, class-blind by design at nethost.rs:1028-1041 / 1763-1771, so a lifetime field on the opener reply would report Durable for exactly the population a filter exists to catch) and NO broker-side enumeration filter are built. Stages drop to int ONLY — impl/unit are deactivated rather than pre-failed (the `activate, don't pre-fail` rule; the C2/C3 verify-first precedent), and the int evidence is the standing regression guard the property never had. SCOPE LIMIT STATED, NOT IMPLIED — and TIGHTENED 2026-07-22 (doyle rider, todlando self-flagged): the measurement rides the IN-PROCESS DUPLEX, which is the honest word and is tighter than the `loopback` this text first said. net_dial_loopback / open_loopback_pair yield a RecvHalf::Loopback duplex with NO QUIC ANYWHERE and NO idle timeout — a different transport leaf from RecvHalf::Quic; BindScope::Loopback plus a real net_dial WOULD be real QUIC over 127.0.0.1, and the two senses of `loopback` in this repo are NOT the same thing (the naming collision is itself an ADR-0040 amendment item, so future rigs pick their venue deliberately). Consequently the cross-node `conn.closed()` arm (nethost.rs:1000-1021) is a different mechanism reaching the same outcome and is NOT exercised, and a real-QUIC transport death sans FIN remains Leg B's instrument-first residual under REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3786361Z - Required stages: int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3786389Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3786572Z ### REQ-STAMP-CONVERGENCE-ORDER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3789099Z - Title: RETIRED at W2 verify-first (doyle 2026-07-22): the C3 poll-vs-reap ordering race (hertz emphasys RCA 2026-07-16, P1) was ALREADY CLOSED by REQ-CONTROL-STAMP-CONVERGENCE (ADR-0041 decision 4, REGISTRY-LIFECYCLE W2 build todlando 2026-07-17 — one day after the RCA). Code-verified chain: the exit-waiter reap (broker.rs stamp_reaped) bumps a per-endpoint StampSlot generation UNDER the stamp-write serial then clears (the comment names the emphasys C3 window); the KIND_SESSIONS handler snapshots stamp_gen under the log lock; converge_perch_stamps validates snap_gen under the same write serial and REFUSES stale (STAMP_STALE_SKIP) — a pre-reap snapshot can never relatch controlled=true. Full stage coverage rides that REQ: unit stale_snapshot_stamp_write_refused_after_reap_generation_bump + int endpoint_lifecycle.rs:488. Kept as a stable pointer; no build owed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3789204Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3789237Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3789344Z ### REQ-ATTACH-RESIZE-REPAINT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3795515Z - Title: RESCOPED 2026-07-22 by ADR-0047 Amendment 2 (doyle-ratified): this REQ no longer asserts a defect. Its original claim — that the attach-stream resize never arms the presentation barrier, and that this is v0.39.4 field bug 3's root — is RETRACTED; the W3 bisect falsified it three ways (static trace send_attach_resize -> serve_attach Resize arm -> brain.resize -> KIND_RESIZE -> dispatch_resize -> begin_resize_serialized; the synthetic sibling's pass; the broker's dynamic trace attach -> RESIZE_DISPATCH -> SYNC_PUSH{controller=true} with no RESIZE_SYNC_DROP) and then pinned the real root in the rc CLIENT's console mode (REQ-RC-NEWLINE-PRESENTATION-TRUTH / KNOWN-HAZARDS 7.56). The ADR-0047 Amendment 1 DECISION (geometry change = one transaction, one exit shape, any entry) stands on its own merits and is not disturbed. WHAT THIS REQ NOW OWNS — the captured-shape regression apparatus that the bisect proved worth keeping: hertz's ENLYZEAM production capture + its integrity pins (*.log -text, the fixture README sha256 table, per-record length refusal in both the player and the reader); the capture-player replay vehicle; and the probe ladder that makes any verdict from it mean something — vehicle transparency per CELL (ConPTY re-renders, so byte equality is unsatisfiable by construction), the pre-state soundness self-check (narrow-captured bytes into a wide authority is sound only if absolutely addressed), the capability probe re-run at every shape revision with its own precondition asserted, and the no-vehicle control (grid+resize+repaint over the same bytes = 0 divergent rows, the standing proof the seam is clean). Oracle clauses are binding for this rig class and are written out in Amendment 2. Gate: unit — the vehicle-transparency predicate + its non-vacuity sibling + the record-integrity refusals; int — the client-model rig pair (rc-fixed vehicle = clean, rc vehicle = reproduces the field scrap) plus the no-vehicle control. NO impl stage: there is no broker-side implementation owed, and pretending otherwise would point an activated stage at evidence that does not exist. Kin: REQ-RC-NEWLINE-PRESENTATION-TRUTH (the actual fix), REQ-RESIZE-INPUT-MODE-INTEGRITY (7.55, untouched — its capture has no replay vehicle in its path).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3795678Z - Required stages: unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3795706Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3795811Z ### REQ-RESIZE-INPUT-MODE-INTEGRITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3804395Z - Title: RESCOPED 2026-07-22 by ADR-0047 Amendment 2 + KNOWN-HAZARDS 7.55 (doyle-ratified), on the measurement rather than on the supposition. FIELD EVIDENCE IS REAL: hertz's second ENLYZEAM capture shows the operator's keystrokes as isolated one-byte OUTPUT records in the child->broker RAW DRAIN — server-side, upstream of any client console, so independent of the 7.56 presentation root that explains the other half of the /c/config line. LOCAL SEAM MEASURES CLEAN: a probe child under a real ConPTY, clamped raw at startup and resized 24x80->60x131 live, reports an IDENTICAL input mode word at four sample points (boot / before-resize / after-resize / before-write, all in=0x000001f0 echo=0 line=0), and typed bytes do not come back as output; a seeded capability probe moves BOTH observables, so the absence is earned, not vacuous. Amendment 1's addendum supposed the resize path re-enables console echo — on this box and portable_pty/ConPTY version it does NOT. TRIGGER UNPINNED. OPEN CANDIDATE (hertz field question, deliberately NOT built against): the pseudoconsole BOOTS with ENABLE_ECHO_INPUT/ENABLE_LINE_INPUT ON (in=0x000001f7 measured) and the CHILD clamps them off, so any UNCLAMPED WINDOW (startup, or a re-clamp after a TUI state transition) echoes by default with no seam re-enabling anything — reframing the question from who turns echo back on to whether there is a window where nobody has turned it off yet. NO impl STAGE, for a structural reason and not a scheduling one: the hosted child's console handles belong to the pseudoconsole it is attached to and the daemon holds only the master end, so the daemon can neither OBSERVE nor SET those modes — instrumenting spt-term's resize seam would probe a console that is not the one in question, and a server-side clamp is equally impossible. Shipping instrumentation that measures the wrong console is manufactured confidence (doyle, declined explicitly); the RIG is the instrument, and the probe-child pattern ships as a debug tool if the field ever needs live diagnosis. The restore-placement question (spt-term seam vs broker write_input) is MOOT, not answered: there is nothing to restore when the mode is preserved. WHAT THIS REQ OWNS: unit — the probe protocol contract (the verdict travels in the stdout protocol line because under a ConPTY the child's stderr is interleaved into the same re-rendered stream and arrives shredded, so a refused SetConsoleMode could otherwise read as a measurement); int — the four-sample measurement, the typed-bytes-do-not-echo symptom leg (which survives being wrong about the mechanism), and the seeded capability probe. Rig-craft pinned in the rig and transferable: a probe that never clamps raw sits at the very default the seam is suspected of restoring and cannot tell reset from never-changed; and ConPTY's post-resize REPAINT re-emits earlier output, impersonating a fresh reply to any rig that matches loosely. Kin REQ-RC-NEWLINE-PRESENTATION-TRUTH (7.56, the presentation half, FIXED) and REQ-ATTACH-RESIZE-REPAINT (7.54, rescoped the same honest way).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3804607Z - Required stages: doc, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3804640Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3804748Z ### REQ-NOTIF-DRAIN-ROW-VALIDITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3810468Z - Title: A spooled notify envelope is validated against its notif row at DELIVERY time — a copy outliving its row must not deliver. (ADR-0046 Amendment 1 + KNOWN-HAZARDS 7.53; operator field regression from perri's node 2026-07-22, doyle root-caused same day — DAEMON-LIFECYCLE W1 RIDER.) TODAY: quiet delivery (REQ-NOTIF-QUIET-DELIVERY) makes every surface an active_only SPOOL write per endpoint, and every row-lifecycle mechanism (apply-seam dismissal REQ-NOTIF-SEAM-DISMISS, coalesce supersession, TTL, the one-shot migration) touches ROWS only — so a copy spooled while the endpoint was busy/offline is a detached snapshot no dismissal can recall, delivering 'update available' on an already-updated node at the next drain, once per qualifying surface event (perri: twice; doyle's own session: four stale 0.39.x drains post-upgrade). FIX: at the safe-point drain choke point (api poll deferred presentation, spt/src/api/delivery.rs cmd_poll), a notify-kind envelope delivers ONLY if its notif_id resolves to a live UNDISMISSED row in the local notif store; dismissed/superseded/TTL-expired/unknown -> dropped silently; N copies of one notif_id in a drain dedupe to ONE delivery. Non-notify spool content is untouched (ordinary messages are not revocable and MUST deliver). Legacy pre-0.40.0 plain-message copies carry no notif_id, cannot be validated, and self-clear by their one drain — no machinery. Rejected: recall-on-dismiss spool sweeps (race the drain, span every perch, miss in-flight copies); live-only notify delivery (the spool IS quiet delivery's safe-point mechanism). Gate: impl — the validity gate + dedupe at cmd_poll's deferred presentation; unit — the gate predicate cells (live row delivers / dismissed drops / unknown drops / dedupe collapses / non-notify passes untouched); int — the perri rig RED-first: surface an update notif to a non-draining endpoint (copy spools), dismiss the row via the apply seam, drain -> NOTHING delivers; control leg: undismissed row's copy delivers exactly once.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3810628Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3810658Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3810767Z ### REQ-NOTIF-UPDATE-ROW-VERSION-RETIRE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3819369Z - Title: An update-available notif row minted by a node running PRE-0.40.0 spt is retired on the version the running node has ALREADY reached — because the keyed catch-up dismissal is structurally blind to it. (DAEMON-LIFECYCLE W2 RIDER, operator-ordered; doyle root-caused end to end 2026-07-22 on the live box.) FIELD CHAIN, verified: GRAVITY-NVDA-PC (f15d837b, BIGNET) runs pre-0.40.0 spt, whose legacy producer mints the update notice SUBNET-scoped with NO coalesce key (the scoped+keyed producer shipped in 0.40.0). The row replicated fleet-wide. The modern catch-up dismissal (REQ-NOTIF-SEAM-DISMISS, pump/update.rs dismiss_staged_notif_if_caught_up) dismisses ONLY by coalesce key, so a keyless row can never be retired by it: a FULLY-UPDATED node holds a live 'v0.41.0 available' row forever, surfacing once per endpoint at every boundary (observed: todlando ~19:54 + Librarian/Athenaeum-Library; store showed seen=2, undismissed, the only undismissed update row in the whole history). FIX: a version-grounded retirement sweep at the EXISTING catch-up site, same per-tick per-subnet cadence, running ALONGSIDE the key path (which stays PRIMARY — belt-and-braces, not a replacement): dismiss any UNDISMISSED row whose from_id == 'spt-update' AND whose body advertises a version that PARSES AND is <= the running image's own env!(CARGO_PKG_VERSION) (the same running-image self-truth the existing out-of-band leg reads). CONSERVATISM INHERITED VERBATIM from version_ge: an unparseable advertised version NEVER dismisses (the ancient 'update-available 5' counter-shape stays untouched), and advertised > running STAYS LIVE (a genuinely pending notice must survive the sweep). MUST NOT KEY ON kind ALONE: kind=consent is SHARED with the grants act-gate asks (grants.rs mints consent-kind through the plain front door with from_id = the asking agent), so from_id == 'spt-update' PLUS the body version-parse is the discriminator. The relevance predicate stays DAEMON-side (ADR-0046: the notif primitive evaluates no relevance predicate) — the store keeps only its existing undismissed()/dismiss() primitives. KNOWN LIMIT, stated not hidden: the ORIGIN node's one-time cross-node wake at mint is a plain live send from old code and is not preventable from our side; retiring/updating the legacy node is the operator's lever. This fix kills the row's AFTERLIFE (undismissable + boundary-resurfaces at every endpoint forever), which is the repeating harm. Gate: impl — the sweep + the pure advertised-version extractor at the catch-up site; unit — the extractor cells (dotted token found / v-prefixed / counter-shape and garbage refused) and the retire predicate; int — RED-first four legs: (1) legacy-shaped row (subnet scope, NULL key, from_id spt-update, advertised <= running) SURVIVES pre-fix ticks and is DISMISSED post-fix; (2) sibling advertising > running stays live; (3) sibling with a garbage/counter-shape body stays live; (4) regression: a modern Node-scoped KEYED row still dismisses via the key path; plus an asserted (not assumed) replication leg — a sweep-minted dismissal merges as dismissed through notifsync, since the fleet-wide kill is the point.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3819579Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3819607Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3819813Z ### REQ-ATTACH-SEED-REQUEST-DOUBLE-SERVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3825553Z - Title: A dispatcher-SEEDED attach Request is honored ONCE — the wire replay's copy of that same Request must not re-establish it. (Seed: DAEMON-LIFECYCLE W1 build, answering ADR-0047 decision 3's banked open question; origin CODE-PROVEN, not inferred.) THE ORIGIN: serve_attach (spt-daemon/src/attach.rs) processes the dispatcher-pinned `seed_request` through handle_attach_request BEFORE its event loop (ADR-0038 B, the durable-opener seed — it exists because a ROLLED ring can no longer replay the Request). It then subscribes the stream from the floor and enters the loop, whose `AttachRecord::Request` arm calls handle_attach_request UNCONDITIONALLY — there is NO `!attached` guard, and NO record that the seed already established this exact Request. When the ring has NOT rolled, the wire replay still carries that Request, so the SAME record is handled TWICE on the SAME conn, milliseconds apart, with identical (session_id, from_seq, intent, gen, identity) — exactly hertz's v0.39.4 bug-4 capture (conn1011, 15ms apart, post-refresh replay). The two arms are the same function on the same seed record; the seed is pinned by the dispatcher on the post-cycle replay, which is the field trigger. SIBLINGS to check at triage: any other serve family that seeds an opener record AND re-reads it from the replay (xfer/rest seeds), and whether a re-established seat should also re-run the access check. FIX SHAPE (not built, W1 deliberately shipped the broker-side idempotence instead): the serve worker knows it already honored a Request — a guard on the loop's Request arm (already attached + same record = ignore), which fixes the ORIGIN rather than absorbing it at the broker. The broker idempotence stays regardless: it closes the symptom for EVERY origin, including origins not yet found. A serve-path int rig replaying the REAL double-serve shape belongs to this REQ, not to W1 (doyle ruling 2026-07-22: do not simulate a behavior we have not explained). Kin REQ-ATTACH-IDEMPOTENT-REPLAY (the broker-side absorber), REQ-STREAM-OPENER-DURABLE (why the seed exists), ADR-0038 B.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3825664Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3825693Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3825797Z ### REQ-RC-NEWLINE-PRESENTATION-TRUTH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3829367Z - Title: W3 (v0.39.4 field bug 3 ROOT, pinned 2026-07-22): the rc client presents relayed bytes exactly as the emitter addressed them — KNOWN-HAZARDS 7.56. rc's with_vt_output enables ENABLE_PROCESSED_OUTPUT without DISABLE_NEWLINE_AUTO_RETURN (DNAR: zero grep hits tree-wide), so the operator's console translates relayed bare LF into CR+LF — a column reset the emitter never asked for; the /c/config field scraps are capture record t=1784714152501's bare-LF index presented through that mode. Relay byte-clean end to end (why both isolated rigs read NOT-REPRODUCED and the fresh viewer read clean — the synthesized repaint is CUP-absolute). FIX: DNAR joins the with_vt_output composition whenever processed/VT output is enabled; prior-mode capture/restore unchanged; Unix needs nothing (raw mode already clears OPOST/ONLCR). Regression: the W3 captured-bytes rig PAIR (vehicle console without DNAR = field-client model = RED pre-fix; with DNAR = GREEN post-fix) + the minimal LF column-preservation probe through an rc-mode console. Amends REQ-RC-WIN-VT-OUTPUT (#12); kin KH 7.55 + the W3 vehicle-fidelity clause (three console-mode-seam manifestations, one day). Attribution CLOSED when hertz confirms fixed-rc clean on the field session; no debug channel needed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3829576Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3829605Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3829710Z ### REQ-TERM-ECHO-CLAMP-WINDOW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3835361Z - Title: SEED (DAEMON-LIFECYCLE W3 rideout, field-grounded 2026-07-22): the hosted-TUI echo CLAMP WINDOW — a Windows pseudoconsole boots with echo/line input ON (in=0x1f7, measured by the 7.55 instrument @0f74bba) and it is the hosted CHILD that clamps them, so any window in which the TUI has not yet (re-)clamped echoes typed bytes into PTY output SERVER-SIDE with no seam re-enabling anything. FIELD GROUNDING (hertz capture-2 byte timeline, output-only taps): echo onset is NOT resize-instant — first echoed key lands 6003ms after the first resize-associated repaint burst, IMMEDIATELY after a 3225-byte TUI-reinitialization-shaped absolute repaint (no alt-screen/mode CSI anywhere — cursor hide/show + HOME/absolute repaints only); echo CEASES mid-input (isolated c/o/n/f/i, NO g) directly after a 535-byte TUI diff — consistent with a late clamp landing (a WinAPI mode call is invisible to a byte tap). The resize seam itself is measured MODE-PRESERVING (REQ-RESIZE-INPUT-MODE-INTEGRITY rig, four sample points). OPEN AT TRIAGE: (1) whether the clamp is the TUI's own SetConsoleMode or portable-pty/ConPTY-internal; (2) whether spt-core CAN mitigate at all — the daemon structurally cannot read or set the child console's input modes from the master side (platform fact, 7.55), so candidate mitigations are indirect (e.g. hold/queue injected input until first child output after a reinit-shaped burst — evaluate honestly, may be worse than the disease) and the honest outcome may be an OUT-OF-OUR-CODE finding filed upstream (hosted-TUI reinit behavior + Windows boot default); (3) whether the window also explains historical spt-hosted-only echo reports (non-spt sessions bypass the nested ConPTY — KH 7.55 note). Kin: KH 7.55 (hazard + instrument), KH 7.56 / the DNAR class (console boot defaults and clamp ownership = one seam family), REQ-ATTACH-SEED-REQUEST-DOUBLE-SERVE (the rideout-seed precedent). Instrument + rig to reuse: the 7.55 probe child (protocol-line verdict, raw-first precondition, seeded-echo capability probe).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3835475Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3835503Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3835599Z ### REQ-ACTIVITY-LINK-PUSH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3839118Z - Title: An owned Shell observes its owner's busy/idle transitions as an activity frame on the EXISTING shell-link event stream (ADR-0048 decisions 1-3; perri contract-lock 2026-07-24). Link-scoped (owner implied by the link token — no new verb, no addressing surface). Drive-class semantics: ephemeral, latest-wins, current-state-carrying; redundant same-state resend is a harmless no-op (consumer derives edges); NEVER spooled or replayed (stale transitions are actively wrong). Both directions (busy->idle, idle->busy). Current state emitted on EVERY link establishment and re-link — restart resync is free. Latency promise = BOUNDED OBSERVATION: a frame per transition, sub-second class, never hard-real-time; each frame carries the TRANSITION TIMESTAMP (when the sentinel flipped, not when the frame was emitted) so edge-anchored consumers self-correct emission latency. Frame name/attrs publish in the shell frame vocabulary doc (REQ-SHELL-FRAME-VOCAB lineage) — doc stage rides there. Gate: int — a live shell link sees busy->idle and idle->busy frames with truthful transition timestamps, a re-link re-emits current state, and a transition during link-down is represented by the re-link emit (current state), never a replayed backlog.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3839278Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3839311Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3839411Z ### REQ-ACTIVITY-INFO-PULL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3840284Z - Title: The endpoint's current activity state (busy|idle) is readable via `spt api endpoint-info` — a point-in-time read of the perch idle sentinel, for consumers that need a check rather than a stream (ADR-0048 decision 1, pull avenue; operator-ruled 2026-07-24). Additive key, N-1-safe per the additive-evolution posture.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3840438Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3840465Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3840556Z ### REQ-ATTACH-AWAY-ALERTS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3845634Z - Title: AN ENDPOINT LEFT UNATTACHED FOR FIVE MINUTES IS TOLD SO, ONCE, ON THE HOOK CHANNEL, AND TOLD AGAIN WHEN SOMEONE COMES BACK -- BUT ONLY IF IT WAS TOLD THE FIRST TIME (releases#45, rides REQ-ATTACH-LINK-PUSH). THE AWAY TEXT IS THE TICKET'S, VERBATIM, AND IS NOT OURS TO REWORD: it tells the agent to proceed but not to assume the user can see its output, to WITHHOLD user-aimed information until a controller or viewer attaches, that it will be notified when that happens, and -- second paragraph -- to share such information with viewed-and-relevant same-node endpoints it is actively collaborating with while avoiding unwarranted comms. It lives as ONE CONSTANT so the wording has a single home and its verbatim-ness is auditable at a glance rather than reconstructed from a formatter. IT IS SENT active_only, WHICH IS THE POINT AND NOT A DETAIL: active_only is the spool-only hook channel with NO live TCP and NO wake, so a message about nobody watching cannot itself be the thing that wakes an agent -- it arrives at the next turn boundary, which is the only moment the agent can act on it anyway. FIRE-ONCE LIVES IN THE CONDITION, NEVER IN A NOW-SIGNAL SEEN-SET (doyle, 2026-08-30): the away/return pair is delta-disciplined by construction -- away fires on the unattached edge at five minutes and latches, return fires on the re-attach edge and clears the latch -- so borrowing a seen-set would put the same fact under two disciplines and make which one is authoritative a question. THE RETURN NOTICE FIRES ONLY IF AWAY FIRED: an agent that was never told nobody was watching must not be told someone came back, because the second message is meaningless without the first. Its wording is NOT fixed by the ticket, which asks only for a short reciprocal message that may assume the agent remembers the away context -- so it is authored here, short, and deliberately does not restate what the away message said. RE-ATTACHMENT IS ANY ATTACHMENT: a controller or a viewer, from any node, ends the away condition, because the away message's own promise is about a controller OR viewer attaching and a notice that honoured a narrower rule than the promise would be a broken promise.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3845743Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3845772Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3845868Z ### REQ-ATTACH-LINK-PUSH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3851507Z - Title: AN OWNED SHELL OBSERVES ITS OWNER'S ATTACHMENT STATE AS AN ATTACHMENT FRAME ON THE EXISTING SHELL-LINK EVENT STREAM (releases#44). The SIBLING of REQ-ACTIVITY-LINK-PUSH in every structural respect, and deliberately so: link-scoped (the owner is implied by the link token, no new verb and no addressing surface), drive-class semantics -- ephemeral, latest-wins, CURRENT-STATE-CARRYING, so a redundant same-state resend is a harmless no-op the consumer derives edges from -- NEVER spooled and NEVER replayed, because a stale attachment is actively wrong rather than merely old. Current state is emitted on EVERY link establishment and re-link, which is what makes restart resync free. Bounded observation, sub-second class, never hard-real-time. IT GETS ITS OWN DriveHub SLOT CLASS: latest-wins is only correct WITHIN a class that supersedes itself, so an attachment push must never be able to eat an undelivered drive command or an activity frame, nor they it. WHAT THE FRAME CARRIES: whether a controller is attached and from which NODE, how many read-only viewers are attached and from which NODES, and which node CHANGED on this edge. THE VIEWER NODE LIST IS RETAINED IN-MEMORY ON THE BROKER'S ViewerSink FOR FRAME COMPOSITION ONLY, and that bound is part of the requirement rather than an implementation note: THE DURABLE CONTROL TRIPLE (driven_by / controlled / viewer_count) IS UNCHANGED, and durable viewer identity, if it is ever wanted, is ITS OWN REQUEST (kin: the register's IR-72 custody-surface gap -- noted in a comment, never built toward). The measurement that justifies retaining it at all: the viewer's origin node ALREADY REACHES the broker on the attach path (attach.rs attach_as_viewer_snap -> brain.rs subscribe_with `by`) and is DROPPED on the floor by a ViewerSink that keeps only tx/send/evicted/writer -- reachable-and-discarded on the correct write path, which is materially different from a source that was never built in the arm at all (releases#11b) and is why this is a retention rather than a board request. Gate: int -- a live shell link sees an attachment frame on controller attach and detach and on viewer attach and detach, naming the changed node; a re-link re-emits current state; and an attachment change during link-down is represented by the re-link's current-state emit, never by a replayed backlog.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3851698Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3851740Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3851831Z ### REQ-ACTIVITY-LIST-JSON
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3852694Z - Title: `spt endpoint list --json` carries a per-endpoint `activity` (busy|idle) key, for consumers surveying the idle/busy state of many endpoints at once (ADR-0048 decision 1, roster pull avenue; operator addition 2026-07-24). Additive key, N-1-safe; kin the flynn 2026-07-06 last-active/description/adapter list-enrichment seed (same additive posture, may ride together).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3852788Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3852816Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3852922Z ### REQ-DIGEST-SEAL-ON-IDLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3856022Z - Title: A digest turn's records gain their stable `seq` at the endpoint's IDLE TRANSITION — the adapter-reported, already-authoritative turn-finished signal — not at next-user-input arrival (which is demoted to a harmless no-op fallback seal). Kills the mint-then-idle deadlock (liam/spt-progress-tool W16: a finished-but-idle turn stayed partial/seq-less, so a seq-keyed scanner could never see the owner's latest turn until the owner was prompted again; interim drive-one-more-command workaround retires at ship). Sealing is IDEMPOTENT and SEQ-STABLE: it assigns seq to what the log holds at idle; a late-flushing straggler record folds into the sealed turn WITHOUT changing the assigned seq. (ADR-0048 decision 4; rejected: extractor-observed completion = banned heuristic inference class; provisional seqs = scanner bug factory.) Gate: int — the liam field shape RED-first: finish a turn, report idle, do NOT prompt again — the turn is sealed with a stable seq and a scanner keyed on seq sees it; fallback leg: next-input on an already-sealed turn re-seals nothing; straggler leg: a post-idle log record folds in, seq unchanged.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3856133Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3856162Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3856257Z ### REQ-DIGEST-CROSS-NODE-PULL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3858865Z - Title: The digest SNAPSHOT PULL crosses nodes: `spt endpoint digest <[subnet:]id@node>` (including `--after <seq>` incremental polling) resolves and serves under the EXISTING address gate — the CROSS_NODE_M4 qualified-address refusal lifts for the pull verb only. The structured-delta stream stays node-local until a real cross-node subscriber exists (ADR-0048 decision 5, defer-until-consumer; operator-ruled 2026-07-24). Access policy is NOT new — fetch was ratified address-gated long ago; this is routing. Composition note: REQ-DIGEST-SEAL-ON-IDLE's stable seqs are what make remote --after polling trustworthy. Forcing customer: spt-mobile 'view live digest of ANY endpoint' (host proxies transparently once the refusal lifts). Gate: int — two-node rig: a qualified digest pull from the non-hosting node returns the hosting node's buffer; --after returns only rows past the cursor; the address gate still refuses a non-resolvable caller.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3859094Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3859123Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3859223Z ### REQ-HAZARD-SHELL-STALE-ONLINE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3892516Z - Title: A shell instance's ONLINE-ness is DERIVED (recorded status AND its recorded `shell.pid` not provably dead), never the recorded `status` field alone — an abruptly-dead binary (force-kill, crash, OOM: no link-break, so `close_shell`'s offline flip never runs) must not read online forever. The shell-side twin of REQ-HAZARD-DAEMON-HOSTED-LIVENESS, which gave AGENT perches exactly this resolver and which shells never got. PROVABLY DEAD is the narrow discriminant: `shell.pid` present AND parses non-zero AND `!is_process_alive` — pid absent, unparseable, or 0 (a broker-hosted spawn whose backend exposed no pid records 0) reads ALIVE, the same interim-parity/fail-toward-alive stance `liveness.rs` already holds, so a pid-less backend is NEVER falsely declared dead. Recycled-pid caveat, accepted at mint: a reused pid reads alive, so the heal is missed, never mis-fired — the failure direction is 'stays stale', never 'kills a live instance'. SITE CLASSIFICATION IS PART OF THE REQUIREMENT (authoritative cfg(test)-excluded census at mint = 8 status reads, 3 classes — do NOT blanket-swap the predicate): (a) DERIVED — relink's already-online refusal (the gate that made recovery impossible), the `shell cmd` wake-if-offline arm (which silently spooled to a corpse), the drive drop-if-offline branch, `shelldisc::discover` (the single source of BOTH `shell list` renders, text + --json), and the activity fan-out's online filter; (b) RAW status, deliberately — `bind_shell_by_token`/`close_shell` (the WRITERS) and `cascade_owner_edge`'s suspend-close arm, where routing through the resolver would SKIP the close that is itself the cleanup, removing a heal path; (c) RAW recorded status AND the corpse-boot discriminant — the `shellwake::reconcile_once` watcher-eligibility read. AMENDED BAROMETER W2 (doyle, releases#78 comment 5156810267): this class's original text — 'RAW status, pending an operator ruling', with no spontaneous relaunch of anything — IS STRUCK, because it rested on a fact leg (a) deliberately ends. What actually held a force-killed instance out of the eligible set was the STALE `online` record itself; healing that record to the truth removes the accidental protection, so the guard had to move to a rule that STATES it. Eligibility is now recorded `offline` AND (no corpse, or the corpse's launch PREDATES THE BOOT INSTANT), reusing leg (b)'s `launch_predates_boot` and its slack constant verbatim. NO SPONTANEOUS RELAUNCH OF SAME-BOOT DEATHS: flynn's mid-deploy forcing case (an operator kills the process precisely to free the exe for overwrite — shared install dir ⇒ 'kill the process' is a routine deploy step) is preserved BY CONSTRUCTION, since a force-kill during steady state leaves a corpse launched AFTER boot, which the predicate can never accept; for those, recovery stays demand-driven (an unblocked `relink`, or a `shell cmd` that wakes). Boot-restoration of PRE-boot casualties is enabled, per #78 leg (b)'s operator-greenlit scope and this ruling (#78 thread). CORPSE IS DEFINED ON THE PARKED STAMPS, never on a bare pid re-probe: a RECYCLED pid — alive, but its native start stamp mismatching the one leg (a) parked — is corpse-equivalent because our process is dead, and the parked ABSOLUTE launch stamp is what decides pre/post-boot. Without that, the heal-then-recycle race reads 'alive ⇒ no corpse' on the next tick and walks back into the forbidden shape through a side door. Deriving is still WRONG at this site and this is NOT a swap to class (a): the census stays 8 reads / 3 classes — the site reclassifies, it does not multiply, the do-NOT-blanket-swap sentence above stands, and `shell list` still tells the truth by derivation (class (a), untouched). LOCALITY SYMMETRY (field-caught by flynn's leg-2 run, 2026-07-25): 'a shell cmd that wakes' holds for BOTH the local CLI cmd and the cross-node serve — at mint the wake arm lived in the SHELL_LINK_CMD serve handler only (module docs scoped wake-if-offline to remote cmd), so a LOCAL cmd against a corpse spooled silently and nothing woke, the exact accepted-happily/drained-by-nobody shape this req exists to kill; the arm is now the shared `linkhost::wake_if_offline_persistent`, called by both, and the derived status READ inside it is the same single census site as before (the census of 8 reads/3 classes is unchanged — the read moved, it did not multiply). ROTATION CARRIES THE DURABLE CHANNEL (flynn's frame-loss field catch, 2026-07-25, both trials): a spooled command frame is MAC-stamped under the link token current at SPOOL time, and the drain is a raw destructive passthrough — the shell verifies against its CURRENT key — so a relink's token mint orphaned every pending frame: drained to the woken binary, failed verify, correctly discarded BY THE ADAPTER, lost permanently; the wake-triggering command itself was the frame the wake lost (#23 armed the wake and never answered; #24/#19 spooled after rotation and drained in order). The fix is three-layered (todlando's A1/A2 race+crash hazards addressed at mint): (1) the token mint re-stamps all pending rows old-key→new-key (idempotent, crash-partial converges — an old-stamped remainder is converted by the next rotation or drain); (2) the rotated-out token is STASHED (`link.token.retired`, never a live credential — bind resolves only the parked file) so (3) the drain paths give any race straggler a second-chance re-stamp at delivery (`restamp_for_drain`), while frames verifying under neither key pass through untouched for the adapter to refuse exactly as before. Rows are selected by MAC verification against the threaded new key, never by token-snapshot equality (the D-2 class). MOCK CONFORMANCE IS A PROPERTY OF THE RIG, not a patch (todlando A4): mock-shell MUST verify inbound frame MACs exactly as the public contract demands of a real adapter and drop failures loudly — a mock that accepts what the field rejects is a broken rig, and that exact divergence (credulous mock) is how the frame loss passed the e2e while failing in the field. The adapter-side discard behavior is CORRECT and must never be softened to paper over the spool side. Relink additionally probes LOCALLY rather than trusting a daemon sweep, so recovery holds with the daemon down. RECOVERY PRESERVES CONSUMER STATE (the property consumers actually depend on, flynn 2026-07-25): 'same canonical id, same perch' exists so that state a consumer PERSISTED IN THE PERCH survives the recovery — an adapter's repo binding, a scanner's cursor. The teardown+spawn workaround destroyed exactly that, and its worst cost was SILENT, not the rename: alchemy's tag cursor re-baselines at the digest tip, so tags written between the kill and the re-bind are never scanned — not failed-and-retried, just never seen. A loud failure gets retried; a silent one does not. Gate: int — force-kill a bound persistent instance's process, then prove (1) `shell list` reads offline, (2) `relink` succeeds instead of SHELL_ALREADY_ONLINE and the SAME canonical id + perch survive, carrying perch-persisted consumer state with them (no teardown+spawn, no id churn, no re-baselined cursor), (3) no spontaneous relaunch occurs while the instance sits dead and undriven. FIELD VERDICT — PASS END-TO-END (flynn, alchemy-0, delivered 2026-07-26; v0.43.0, counter 77): every gate leg held in the field, on a record the pre-fix code had already poisoned. (1) `shell list` read OFFLINE while the on-disk info.json still said status=online — the daemon DERIVED offline from the corpse pid (29036 absent from the process table); the record was never corrected and did not need to be. (2) relink ADMITTED, no SHELL_ALREADY_ONLINE — verbatim SHELL_RELINKED:alchemy-0 owner=flynn pid=38644 status=offline, list online thereafter. (3) identity/state integrity: same canonical id, same owner, same perch; repo binding byte-identical (token_provenance=gh-cli); armed=true preserved; no spontaneous relaunch across the ~6.5h dead window. CURSOR SCOPING, ruled at closure (doyle 2026-07-26) — the one non-byte-identical field: the tag cursor moved 206158430541→210453397553 (gen:seq 48:333→49:49) because the recovery crossed a DAEMON restart that slid the retained digest window past the armed cursor. NOT a gap and NOT this req's property failing: spt-core raised after_predates_window and the consumer took its specced armed-cursor branch (alchemy REQ-TAG-SCANNER missed-rows leg — warn the owner, never silently re-baseline an armed cursor; alchemy src/tags.rs, two unit tests) — the FIRST FIELD FIRING of a path previously exercised only by unit tests. The 'no re-baselined cursor' gate property is hereby scoped: byte-identity holds across SHELL death within one daemon generation (the prior LEG 5 measurement, one daemon instance, uncontradicted — different scenario, generation never moved); across a daemon restart that slides the window the contract is DETECT-AND-ANNOUNCE, not preserve — corroborated independently by a second record's cursor decomposing under the same gen:seq scheme (4294967486 = 1:190). Practical exposure in this event: nil (every agent stood down through the gap; no tag traffic to miss). SECOND SPECIMEN HELD, not spent (doyle ruling 2026-07-26): liam's record — precondition verified by flynn (pid 35464 a CLEAN corpse, not recycled, so the accepted-at-mint recycled-pid caveat does not apply; same poisoned status=online shape; binding intact; cursor armed at 4294967486) — is deliberately NOT relinked while its owner is absent: the admit gate is already field-proven, a relink measurably re-baselines the cursor across a daemon-restart boundary, and liam's is the only untouched specimen with the longer (~8.5h) gap — spending it would destroy the cursor datum liam's own return produces, to buy a redundant second sample of a gate already proven to admit. It waits for liam. SPECIMEN HARVESTED (liam's own return, 2026-07-26 — operator-authorized endpoint start executed by doyle; pre-state snapshotted by doyle AND independently re-verified on disk by liam before touching anything): (1) relink ADMITTED at the ~8.5h gap — verbatim SHELL_RELINKED:alchemy-0 owner=liam pid=47608 status=offline (online at bind); the poisoned record did not refuse; info.json online is now TRUE. (2) integrity FULL PASS: id unchanged (no new mint slot), perch onlined at bind, repo binding byte-identical (token_provenance gh-cli), and the ROTATION-CARRIES-THE-DURABLE-CHANNEL machinery observed live in the field for the first time — link.token.retired present beside the fresh mint, and a post-relink round trip proven end-to-end (shell cmd spooled -> engine executed -> reply home on the owner's perch), not merely an outbound spool. (3) cursor, the sharpest datum of the harvest: BYTE-IDENTICAL through the relink itself (4294967486 armed at pid-change instant, doyle's file watch) — the relink preserves; the SCANNER moves. First scan re-baselined 1:190 -> 2:0 silently, and liam PROVED no-fire-by-precondition rather than assuming: the daemon restart bumped the generation but EVICTED NOTHING (window floor 4294967464 < cursor 4294967486, every gen-1 row past the cursor still retained), so after_predates_window is correctly false at every link of the chain (filter_after floor test -> emit-only-when-true -> unwrap_or(false)) and the missed-rows announce had no precondition to fire on. Flynn's earlier gen-bump reading is refined by this: a restart alone does not slide the window; flynn's announce fired because HIS window had genuinely slid. Scope note carried: a valid negative — the fix's announce chain verified link-by-link to contract on a specimen where it correctly stayed quiet. RESIDUE from the harvest (liam's find, alchemy lane, no core REQ): permanently-unsealable turns from a dark session are jumped by scanner cursor advance with no possible missed-rows notice (a generation bump is not a slide); ruled scanner-side announce for input-bearing null-seq jumps, pseudo-turns jump silently by design; core's per-turn input/input_seq/partial already suffice to discriminate.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3892942Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3892979Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3893107Z ### REQ-SHELL-ADAPTER-OWNED-DETACHED-SERVICE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3911166Z - Title: RULING OWED (unratified — do NOT satisfy without one): may a shell adapter own a DETACHED process that deliberately OUTLIVES its shell's link-break? Today the answer is 'no, silently, on Windows only'. `shellhost::kill_shell_pid` force-kills with `taskkill /PID <pid> /T /F` — /T is a TREE kill, so `close_shell` takes the shell's descendants with it; the Unix arm is `kill -9 <pid>`, a SINGLE process. So the same adapter's detached child dies on Windows and survives on Linux, undocumented either way. Two ratified positions collide here and neither may be quietly discarded: (a) CONTEXT §Shell model lifecycle states flatly 'the binary never survives a link-break', and the KNOWN-HAZARDS 'stop lies' RCA (two field cases 2026-07-19, one on doyle's own production endpoint) was paid for precisely because a surviving GRANDCHILD was orphaned where 'even a direct-child kill would have missed it' — that hazard is the standing argument FOR /T; (b) a node-singleton service that must not drop every time a shell relinks is a legitimate shape, and flynn's alchemy ships one today (Hub Daemon, CREATE_NO_WINDOW | CREATE_NEW_PROCESS_GROUP, lockfile-guarded), depending on surviving link-breaks to keep a Discord gateway up. Note CREATE_NEW_PROCESS_GROUP does NOT sever ParentProcessId, so it is not an escape from /T — the survival flynn depends on is unverified, not designed-for. MEASURED, not theorized (flynn, this node, 2026-07-25, current spt-core, no branch): the Hub Daemon's ParentProcessId WAS the shell's pid — a direct child, so `/T` reaches it by either reading — and `spt shell teardown alchemy-0` took the daemon to zero processes within 0.1s, still zero across a 15s poll. Nothing restarted it (no bind happens in that window and the adapter's ensure runs only at bind, so 'died and restarted fast' is excluded by construction); recovery needed an operator spawn + re-bind. BLAST RADIUS, the reason this outranks its filing: that daemon also runs alchemy's Watch engine, so tearing down whichever shell happened to parent it silently stops State-change notification delivery NODE-WIDE, for every registered Watch and every owner — cross-Project blocking waits simply never fire, with no error anywhere. It satisfies the LETTER of alchemy's own REQ-HAZARD-WATCH-SILENT-LOSS (the registry entry survives) while its INTENT fails (the delivery engine is dead) — filed separately adapter-side. Option space for the ruling: (1) adapter-owned detached services are UNSUPPORTED — such a service is an AlwaysOnEndpoint (REQ-EP-8 / ADR-0023: resident, daemon-supervised, addressable, independent of agent liveness), NOT a shell's descendant. NOTE this is not a new design: ADR-0023 was ratified 2026-06-21 and EXPLICITLY rejected 'make it a Shell' ('shells are single-owner, driven, control-exclusive; a multi-party bridge inverts every one of those invariants'), and named a Discord bridge as its first consumer — i.e. flynn's exact shape. The gap is DELIVERY (REQ-EP-8 is inactive pending its milestone), not design. (2) allow it behind an explicit manifest declaration that exempts named descendants from the tree kill AND obliges the adapter to reap them — viable only as an EXPLICIT INTERIM with (1) as the stated target, never a permanent answer, because permanence would re-adopt the shape ADR-0023 already rejected. (3) status quo, but then DOCUMENT the platform asymmetry and stop claiming 'never survives' unqualified. CONSUMER LEAN IS (1), argued against his own convenience (flynn 2026-07-25): the service is a shell's descendant only because a shell was the only thing he had that could start something; (2) buys that accident a manifest field plus a reaping obligation he must then honor forever, and leaves 'the next shell that happens to bind' responsible for the service being up — which IS the defect he measured. Available to a consumer TODAY without any core change and without an exemption: start the service out-of-band so no shell parents it (unsupervised, but never tree-killed) — the trade is 'unsupervised but safe' against 'supervised by accident and killed by design'. Whichever wins, the Windows/Unix divergence is a defect in its own right and closes with it — `/T` on one platform and single-pid `kill -9` on the other means adapters cannot reason about descendant lifetime at all. Filed by flynn 2026-07-25 as 'flagging it now rather than after'; code-read by doyle, then field-confirmed by flynn at the cost of one teardown. FIELD CORRECTION (flynn, 2026-07-25, alchemy v0.3.1): the measured kill was NOT /T over-reach — the 'detached' daemon was still the shell's DIRECT CHILD in the process table (CREATE_NO_WINDOW / CREATE_NEW_PROCESS_GROUP / null stdio detach the console and the signal group, never parentage), so any tree walk found it by construction; isolated A/B on this node confirmed a grandchild whose intermediate has exited survives /T. alchemy v0.3.1 ships the fix as one relay hop (the binary re-invokes itself, the intermediate exits, the daemon's ParentProcessId is dead and nothing can walk it) — production-verified (daemon pid 35472, ParentProcessId 11108 dead) — and WITHDREW the Scheduled Task autostart entirely (alchemy ADR-0012 now Rejected; ADR-0013 records the relay hop). alchemy no longer pushes on this seed. What remains core-side is narrowed, not changed in kind: /T's breadth (it reaches detached descendants of any adapter that has NOT done the relay hop) is a hardening item on its own merits, and the Windows/Unix kill asymmetry stands. Job-object caveat filed separately — the relay hop does NOT escape a Job Object: see REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE. PREMISE MOVED UNDERNEATH THIS SEED (BAROMETER, todlando 2026-08-02, REQ-SHELL-KILL-AUTHENTICATED — the ruling itself is UNTOUCHED and still owed): position (a) quotes CONTEXT's flat 'the binary never survives a link-break', and that sentence no longer reads flat. The force-close is now authenticated against the pid+birth pair, so a kill whose target cannot be proven ours is refused and named rather than fired. Option (3)'s demand to 'stop claiming never survives unqualified' is therefore already satisfied in part — but for a DIFFERENT reason than this seed argues (target IDENTITY, not the platform asymmetry), and it changes nothing about the option space here: the Windows /T tree-kill versus Unix single-pid `kill -9` divergence this seed exists to rule on is exactly as it was, and an authenticated kill still takes the whole subtree when it does fire.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3911427Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3911457Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3911575Z ### REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3926708Z - Title: HARDENING SEED (inactive — no defect claimed): a CLI-side `spt shell spawn` rises inside the launching terminal's Job Object when that job denies breakaway. Launch-path census (2026-07-25): `spt shell spawn` calls `shellhost::launch_shell` IN the CLI process, so the shell binary is spawned by a terminal-resident process and is subject to whatever job the terminal wrapped the CLI in; daemon-side (re)launches (`shellwake` relaunch-on-wake, linkhost relink) spawn from the daemon, which is job-neutral once its own cold-start ladder (WMI → schtasks → breakaway → in-job; REQ-HAZARD-VIEWER-CLOSE-DETACH) escaped. The shared spawn primitive (`daemon::detached_no_inherit`) requests CREATE_BREAKAWAY_FROM_JOB best-effort: a job without JOB_OBJECT_LIMIT_BREAKAWAY_OK denies it (ERROR_ACCESS_DENIED) and the DELIBERATE fallback spawns IN-JOB with the loud diagnostic 'DETACH_BREAKAWAY_DENIED: launching Job Object forbids breakaway; spawned IN-JOB (may be reaped if the launching terminal closes)' — chosen so a spawn that once worked never regresses to failure. spt CANNOT grant itself breakaway: BREAKAWAY_OK is a limit only the job's CREATOR (the terminal) sets on the job; a member process has no say. CONSEQUENCE, field-observed (flynn 2026-07-25, verbatim diagnostic in hand, alchemy #22): job membership is inherited by EVERY descendant regardless of parentage — an adapter's detached service that survives the /T tree kill via a relay hop (dead ParentProcessId, alchemy ADR-0013) does NOT thereby escape the job, so if the job sets JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE, closing the launching terminal reaps shell + detached service together, relay hop notwithstanding. Whether any given terminal's job sets KILL_ON_JOB_CLOSE is node-dependent and was NOT measured — the exposure is conditional; the diagnostic is the tell. SELF-HEALING PROPERTY, already true today: the exposure is launch-path-scoped, not instance-permanent — the first daemon-side wake/relaunch re-spawns the binary from the job-neutral daemon while the same canonical id + perch survive (REQ-HAZARD-SHELL-STALE-ONLINE recovery), so cycling an instance through a daemon wake is the zero-code mitigation available now. Option space for the ruling: (a) route CLI-side launch_shell through the same job-neutral ladder the daemon cold-start uses; (b) broker the first spawn through the daemon so no shell ever rises terminal-jobbed; (c) status quo + publicly document the diagnostic as contract, so adapters can read DETACH_BREAKAWAY_DENIED as 'this instance is terminal-coupled until its first daemon wake'. Seeded from flynn's observation; census + fallback semantics code-read by doyle at seed time. FIELD FIRING (2026-07-25 17:47, this node — flynn's owlery fact set + doyle's broker-stderr forensics): the conditional exposure is no longer unmeasured — one field event consistent with KILL_ON_JOB_CLOSE firing. At daemon-stop-begin, flynn's shell (last pid 29036, relaunched 17:15 from flynn's context) and the relay-hopped alchemy Hub Daemon (pid 35472, spawned 16:51 off a DIFFERENT, earlier shell — parent long dead) died in ONE two-second window (17:47:56–58), both abruptly with bookkeeping unrun (info.json still status=online on disk), while the broker itself kept draining to final exit 2m10s LATER (stderr abrupt-end 17:50:05.8) — so the closing job's handle owner was NOT the broker; it was some stop-begin casualty (leading read: the restart-initiating context, see REQ-DAEMON-RESTART-SELF-INTERRUPTION). Disjoint parentage + disjoint spawning contexts + one instant means the job spanned processes from DIFFERENT agent contexts — an INFRA-level job, not a per-terminal one — upgrading the worst case from 'this instance is terminal-coupled' to 'one infra job-close can sweep every shell-descendant on the node at once'. The handle owner is unpinnable post-mortem (4689 process-termination auditing off on this node); recorded open. ⚠ CORRECTION 2026-07-26 (doyle, source-verified answering liam — supersedes this title's launch-path census and its SELF-HEALING claim): local `spt shell relink` AND local wake ALSO spawn IN-PROCESS from the CLI — `spt_daemon::relink_shell` is a LIBRARY call in the CLI process (cli.rs ~12559) → `launch_shell` → `detached_no_inherit` runs its breakaway attempt in the CALLER, so the child inherits the terminal's job on denial; ONLY the cross-node arm (`ref@node`) and daemon-originated relaunches (`shellwake` from the daemon, reconcile) spawn daemon-side. Therefore 'cycling an instance through relink' is NOT the zero-code mitigation for a terminal-invoked local relink — the recorded self-heal holds only for daemon-ORIGINATED wake/relaunch, and a DETACH_BREAKAWAY_DENIED on CLI stdout is local truth about THIS spawn, not a relayed daemon diagnostic. FIX RULED IN (FIELD-TRUTH W1, doyle 2026-07-26, option (b) of the option space scoped to the reachable case): when a daemon is RUNNING, CLI-side `shell spawn`/`relink`/local-wake route the spawn THROUGH the daemon (job-neutral by the cold-start ladder) instead of spawning in-process; daemon not running → today's in-process path UNCHANGED as the fallback, with the diagnostic upgraded to name WHOSE job coupled the child (the launching terminal's, via this CLI process) so a field report can distinguish the paths. The first-spawn-brokered variant (option (b) full) and ladder-in-CLI (option (a)) stay open beyond the reachable-daemon case.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3926971Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3927004Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3927099Z ### REQ-DAEMON-BITS-AMBIGUITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3943069Z - Title: SEED (inactive, RCA-first — do NOT close on agreement): nothing on a node surfaces WHICH BITS ARE SERVING, and the same silent wrong-state shape bit twice in one day (2026-07-25). Case 1 (adapter-side echo): a post-reboot ensure race left a dev-build alchemy Hub Daemon serving release shells — version skew visible only by manually comparing process image paths. Case 2 (core, field-measured by flynn): TWO spt daemons resident with live brains on one node — the installed main daemon (owning ALL sockets: the 5474 listeners and every established connection, single home_tag pipe family) and an orphaned scratchpad-built daemon (auto-started into the node by ensure_running from a stray dev-binary invocation at 16:18, holding zero sockets, resident for hours) — while `spt --version` on any binary file answers nothing about which process is answering. Measured sharp edges to carry into the RCA: (a) exe path and resolved HOME are independent — the orphan ran scratchpad bits against the DEFAULT home, so 'where the binary lives' predicts nothing about 'whose state it mutates'; (b) the brain.ready breadcrumb is ONE FILE PER HOME, LAST-WRITER-WINS, keyed by generation — with two brains in one home the stamp can be written by the daemon you are NOT gating on, so any readiness/identity gate that trusts it must first establish single-writer; (c) the breadcrumb's exe_hash (SHA-256 of resident bytes captured at process start) is the RIGHT discriminator — image path answers what is on disk, not which bits are answering — but only under (b)'s single-writer precondition; (d) reap order matters: killing the breadcrumb's last writer leaves the file describing a dead brain's bits until the survivor's next ready write, so any bits-gate readback must be re-established AFTER a reap, never carried across one. Open RCA questions before any fix is designed: why did the second daemon's cold-start not refuse against the live singleton (socket-bind loss is survivable-and-resident today — is that the right posture?); what should ensure_running check BEYOND socket liveness (bits identity?); where does 'which bits are serving' surface to an operator (endpoint list? daemon status verb?). Kin: the NEVER-SEALING-OBSERVABILITY candidate (same shape — silent wrong-state only a human staring at the right field catches). Proposed by todlando (his lane), relayed by flynn with the socket-ownership + exe_hash measurements; seeded by doyle. The orphan pair was reaped by path 2026-07-25 (verified by exact ExecutablePath, supervisor before brain); the reap resolved the instance, not the class. RCA POINTS FROM THE PROPOSING LANE (todlando, extended into THIS record 2026-07-26 rather than minted as a second seed): (1) ORDERING — 'do both pids resolve the same spt_home?' is the FIRST question, not a co-equal fact, because every other discriminator is conditioned on its answer: brain.ready is `<spt_home>/brain.ready`, ONE path, single-writer BY DESIGN, so a shared home makes the breadcrumb a contended file and `generation` — the readiness gate's key, which exists precisely to prevent false promotion — becomes satisfiable by the stamp of the daemon you are NOT gating on. Prior art on this node: default-home `home_tag` sockets already cross-talk the live daemon's hubs, so shared-home cross-talk is an established class here, not a hypothetical. (2) GATE ON RESIDENT BYTES, NEVER ON IMAGE PATH — AND TREAT ABSENCE AS UNPROVEN. Path answers 'what is on disk where I asked'; with two daemons on different bits the only question that matters is 'which bits answered me'. Path is the exact field that has already lied in the field: KH 6.11 — the broker resolves `current_exe()` PER SPAWN (`crates/spt-daemon/src/brainproc.rs`), which on Linux is inode-tracking, so an `update apply` rename made the respawn land on the OLD bytes while readiness passed and the trial recorded `applied:N` (kitsubito v0.4.1); `exe_hash` (lowercase-hex SHA-256 of resident bytes, captured ONCE at process start — `current_exe_hash`, `crates/spt-daemon/src/brainproc.rs:402`) exists BECAUSE the path-derived belief was provably wrong, and the enlyzeam 0.3.0-under-0.3.2-on-disk case is the same record/reality divergence one layer up. Constraint any observability gate must inherit and must NOT weaken: `exe_hash` is ADDITIVE/BEST-EFFORT — omitted when the self-read fails, `None` on any pre-D7 stamp — and today's `bytes_gate` deliberately degrades an absent hash to readiness-only promotion with a loud `PROMOTE_BYTES_UNVERIFIED` (N-1 compat, `brainproc.rs:1042`). An operator-facing 'which bits are serving' answer must degrade the OTHER WAY: absent hash reads UNPROVEN — never PASS, and never a silent fall back to image path. A compat degrade that is correct for ACCEPTING an update is wrong for ASSERTING an identity. (3) SERVICE OWNERSHIP IS DECIDED BY SOCKET/HUB BINDING, NOT BY START TIME. Case 2 measured the instance (main holds all 5474 listeners + every established connection; the scratchpad daemon holds zero sockets and was the LATER start) but the INFERENCE RULE is what must survive the instance: a later start is not thereby the loser and an earlier start is not thereby the server — 'who is serving' is answered by who owns the binding, so any gate, reap, or diagnostic that ranks candidates by pid or start time is guessing at the one fact it is supposed to establish. (4) REAP-ORDER SYMMETRY — (d)'s re-establish-the-gate-AFTER-the-reap rule holds identically on the REVERT path; a bits-gate readback may never be carried across a reap or a rollback in either direction. (5) SINGLE RECORD — this seed is the one home for the class (premature-closure guard: convergent reads are not a root cause, and a green re-read after a reap assigns owner without closing); the socket-bind-loss posture question stays OPEN inside it, and the orphan-pair instance stays closed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3943332Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3943360Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3943470Z ### REQ-DAEMON-RESTART-SELF-INTERRUPTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3949744Z - Title: SEED (inactive — operator-workflow trap, field-paid 2026-07-25): an spt-hosted context CANNOT restart the daemon, because the restart's STOP phase tears down the very context running the restart command — the START half never executes and the daemon stays down until an operator starts it by hand. Field case (this node, 17:47–17:50): an agent-kicked restart's stop-begin swept the initiating context and everything sharing its Job Object (flynn's shell + the relay-hopped alchemy Hub, cross-context job members — see REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE's field-firing record); the broker drained ~2m10s to final exit (stderr ends abruptly at 17:50:05.8 amid routine traffic, no shutdown markers); the START was already dead; the operator manually started whatever binary was installed (v0.42.0), with no channel conveying which bits the restarting agent had intended — binary choice silently transferred to whoever brings the daemon up (kin: REQ-DAEMON-BITS-AMBIGUITY, the same which-bits-serve blindness). CONSEQUENCES: (a) every RESTART-REQUIRED apply (broker update, seed-skew restart per hazard 7.9) is operator-only today, and nothing documents that; (b) stop-begin kills bound shells with `close_shell` unrun, so even the GRACEFUL stop path manufactures stale-online shell records on every restart — healed at the read gates by REQ-HAZARD-SHELL-STALE-ONLINE's derivation, but manufactured nonetheless, and on pre-derivation binaries the records lie until the next bind; (c) a restart initiated from inside the system it restarts is a self-interruption with no error surface — the initiator dies believing the restart is in flight. Option space at activation: (1) daemon-owned restart verb — the OUTGOING broker spawns its successor job-neutrally (the 7.10 WMI→schtasks→breakaway ladder already exists) before exiting, so the caller only requests and its death is irrelevant; (2) a detached job-neutral restart helper (same detached_no_inherit + ladder) that survives the caller; (3) status quo + the public contract documents restart as operator-only. Whichever wins must also answer where the INTENDED-BITS declaration lives so a manual or automated starter picks the right binary (the (c)/BITS-AMBIGUITY joint).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3949963Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3949991Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3950099Z ### REQ-WHOAMI-EXPLICIT-SID-REFUSAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3961322Z - Title: RULED DESIGN, delivery unowned (doyle 2026-07-26): when a caller hands identity resolution an EXPLICIT non-empty $OWL_SESSION_ID that resolves to NO perch, core must REFUSE identity (unresolved, exit 1, loud distinct diagnostic) rather than fall through to an ambient/inherited one — today `detect_self_id` (roster.rs, legs a→b→b2→c) treats sid-UNMATCHED identically to sid-ABSENT, so the fallback chain re-adopts precisely the identity a sharper claim just failed to prove. MEASURED (perri, this node, 2026-07-26, three read-only whoami calls from a genuine descendant of the perri host process): (1) all SPT_*/OWL_* scrubbed → id null, exit 1 — ancestry resolved nothing (caveat honored from the probe: the perch's recorded pid was not in the caller's chain, so this run refutes lineage-as-the-mechanism for probe v1 without disproving a lineage path in general); (2) inherited SPT_ENDPOINT_ID=perri + explicit OWL_SESSION_ID matching no perch → perri, exit 0 — the mismatch datum was IN HAND (core had already scanned and failed to match the explicit sid) and the ambient id won anyway; (3) real OWL_SESSION_ID with endpoint id scrubbed → correct self — the healthy path any fix must leave untouched. SCOPE OF THE REFUSAL, ruled: only sid-PRESENT-AND-UNMATCHED poisons the fallback, and it poisons ALL weaker legs (b SPT_AGENT_ID, b2 SPT_ENDPOINT_ID, c pid-ancestry) — an explicit failed claim outranks every ambient claim below it; sid-ABSENT/empty keeps today's full chain unchanged, because the leg-b2 field root (live-repro'd 2026-07-10: the adapter surfaces OWL_SESSION_ID to the session shell as an UNEXPORTED var, so the child process legitimately carries endpoint id without sid) is exactly the flow the guard must not break — that flow is sid-absent, never sid-mismatched. WHY CORE AND NOT ONLY THE ADAPTER: the measured entry path is closed adapter-side (perri's REQ-HAZARD-INHERITED-IDENTITY-ADOPTION @ their a7558aa + claude-spt KNOWN-HAZARDS 7.4, shipped: whoami child calls scrub SPT_ENDPOINT_ID/SPT_AGENT_ID; rig discipline now detached AND env-scrubbed — the scrub is the operative half), but the inconsistency being fixed is CORE'S: the adapter fastpath's verified_env_id REFUSES an inherited SPT_ENDPOINT_ID on carrier-proof mismatch (carrier sid != payload sid) and core's fallback then RE-GRANTS what that layer just refused — one layer's refusal must not be another layer's grant, and every other harness/adapter gets the defense only if core holds it. SEVERITY UPGRADE recorded at mint: unlike the KH 7.1–7.3 shapes (lost reads), this adoption was WRITE-CAPABLE in the field — the adopting descendant re-pointed the ANCESTOR's session pin, so the ancestor went dark while the descendant looked healthy (perri's own pin, probe v1). KIN, same review same milestone: leg (b) SPT_AGENT_ID returns UNCONDITIONALLY today — not even perch-checked, weaker than leg b2's bound-perch gate; align it when this lands. MEASURED on the live node, not just code-read (perri, same probe run, reported 2026-07-26): SPT_AGENT_ID=nobody-xyz with a bogus OWL_SESSION_ID returned {'id':'nobody-xyz','ready':false,'alive':true,'unbound':false}, exit 0 — a phantom identity for an endpoint that does not exist, beating both the sid leg and ancestry; the returned shape has no state key and ready:false but a populated id, and the adapter parser takes .id first, so a whoami-trusting adapter writes state under the phantom — the same write-capable class as the inherited-adoption case, sourced from a made-up name instead of a real ancestor. perri's adapter scrub covers SPT_AGENT_ID as well as SPT_ENDPOINT_ID for exactly this reason. POSTURE UNCHANGED: whoami legs remain from-label/routing only, never authentication (KH 7.3/7.5, F-024 stays parked) — refusal tightens label discipline, it promotes nothing to auth. Gate at activation: unit — sid-unmatched + ambient endpoint id present → refusal with the distinct diagnostic (probe shape 2 goes loud); sid-absent + ambient endpoint id on a bound perch → still resolves (leg-b2 field root preserved); sid-matched → unchanged (probe shape 3).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3961537Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3961565Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3961680Z ### REQ-SHELL-LIST-DERIVED-PROVENANCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3964910Z - Title: SEED (inactive — observability, perri-backed 2026-07-26): a status a reader can act on should be distinguishable from a status a record actually holds. Since REQ-HAZARD-SHELL-STALE-ONLINE, `shell list` renders DERIVED online-ness (recorded status AND pid-liveness), deliberately healing poisoned records at the read gate — but nothing marks WHICH rows were healed, so an agent doing forensics reads the healed view and infers a clean record (field, twice on 2026-07-26: liam inferred close_shell had run when the raw info.json still said online over a corpse pid and proposed spending flynn's live instance to manufacture a specimen they already owned; perri independently named the same misread class from their own work). Shape at activation: an additive marker on the --json row when derived != recorded (e.g. recorded_status alongside status, or derived=true) — additive-evolution posture, text view unchanged or minimally annotated; NEVER a behavior change to the derivation itself. Kin: REQ-DAEMON-BITS-AMBIGUITY (silent wrong-state a human catches only by staring at the right field) and the NEVER-SEALING-OBSERVABILITY candidate — same class, view-vs-truth.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3965010Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3965038Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.3965133Z ### REQ-RESIDENT-SERVICE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4030040Z - Title: ResidentService substrate (ADR-0049, design ratified 2026-07-26): a daemon-supervised binary an adapter declares via a `[service]` manifest section — core-owned from birth, NO perch/identity/address. SPAWN: the daemon launches it job-neutrally (detached_no_inherit + the cold-start ladder posture), so it is never a shell's child (`/T` tree-kill cannot reach it; the shell-descendant hazard class of REQ-SHELL-ADAPTER-OWNED-DETACHED-SERVICE never arises) and never inside a launching terminal's Job Object (the REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE service half closes by construction). START TRIGGER declared in the manifest: start = 'boot' or start = 'bind'; supervised identically once running, with the wake-watcher scaffolding (backoff, give-up latch, one-per-instance lock, orphan-kill, brain-side reconcile) minus the offline-only flip. 'boot' is DESIRED-STATE-RUNNING, not an event: the supervisor reconciles a boot service toward running at EVERY opportunity — daemon boot, ADAPTER REGISTRATION while the daemon is live (operator addition 2026-07-26: installing or registering an adapter whose manifest declares a boot service starts it THEN — spt itself is never restarted to bring a new adapter's service up), update-hold release, and first shell bind as the defensive ensure. 'bind' starts only at the adapter's first shell bind. CARDINALITY: one supervised instance per registered adapter-option `<adapter>[:profile]` (consumer-confirmed as COHERENT TARGET SHAPE — flynn's precision, 2026-07-26: not exercisable by the first consumer until per-option config dirs exist; alchemy today has one config dir and daemon.toml carries exactly one guild_id); the adapter may keep its own kernel file lock as a private double-start guard — core neither reads nor depends on it. PER-OPTION IDENTITY IS THREADED (flynn's gap, accepted): the supervisor passes the adapter-option name and the per-option runtime dir into the service's spawn environment, so an adapter can scope its private guard AND its config per option — the mechanism that makes two-options-two-services deliverable rather than merely permitted. Without it, two options resolving one adapter config dir produce the silent flap flynn derived: instance two exits immediately on the kernel lock, core sees only start-then-die, and crash-relaunch backoff is CORRECT behavior against that observation — two correct components disagreeing about the unit. UPDATE IS A FIRST-CLASS SUPERVISOR OPERATION WITH AN EXPLICIT HOLD: quiesce -> hold (stopped and NEVER relaunched while held) -> bits swap -> start new bits -> release; adapter update-apply performs this ordered operation; crash-relaunch with backoff applies ONLY when not held. The forcing case is structural, not advisory (flynn, argued against their own convenience): an eager relaunch during a swap re-pins the OLD exe mid-deploy (Windows exe lock), converting a diagnosable os-error-5 into an unwinnable race — if delivery must sequence, the hold ships FIRST and a dead service stays dead until told otherwise (the STALE-ONLINE no-spontaneous-relaunch ruling, same reason, one layer down). FAST-EXIT IS A CONFIGURATION FAULT, NOT A CRASH: consecutive immediate exits (exit within a startup threshold, N in a row) trip the give-up latch EARLY with a distinct loud STARTUP_FAULT diagnostic carrying the captured early stderr — a double-start lock conflict then reads as the configuration fault it is, never as a silently flapping service ground through backoff. QUIESCE IS COOPERATIVE EXIT + DEADLINE: the supervisor places a stop-request marker (a file in the service's runtime dir — polling services observe it on their next cycle; no inbox exists or is added); the service exits WHEN SAFE and the kernel-observed exit IS the ack — 'not ready' is expressed by not-yet-exiting, so no busy record exists to go stale in either direction; a manifest-declared grace deadline (default ~30s) bounds the wait, then force-kill. Delay possible, veto never. An OPTIONAL advisory status line may surface in service status display — never consulted for decisions. LIVENESS IS DERIVED, NEVER RECORDED: the supervisor is the parent and holds the child handle (exit is kernel-observed); no supervisor-maintained running-record exists (the v0.43.0 stale-online lesson applied one layer down — flynn's condition, structural here). Any status/version identity surface keeps the locked-file split lesson: never require reading a file the service holds an exclusive OS lock on (Windows). CLI INVOCATION CAPABILITY (consumer-blocking, non-negotiable per flynn): the supervisor threads the environment so the service can invoke the spt CLI (`spt send` et al., identityless cli@node from-label, durable spooling per ADR-0002) — if a supervised Hub cannot shell out to spt send, node-wide Watch delivery dies silently. ADDRESSING: none — a service needing a two-way agent-facing surface has one at its adapter's endpoint/shell layer (the alchemy layering argument that re-scoped ADR-0023's faceless-service rejection); AlwaysOnEndpoint (REQ-EP-8) = this substrate + the addressable front. Gate at activation (all legs against a MOCK service adapter — the gate never depends on the first consumer being the boot specimen): int — a manifest [service start='boot'] binary rises with the daemon job-neutrally, a registration of that manifest against an ALREADY-LIVE daemon starts the service without any restart, survives a shell teardown of the same adapter (tree-kill does not reach it), a held update swaps bits with zero relaunch races (hold observed under a concurrent crash), quiesce marker -> cooperative exit within grace, deadline -> force-kill on a wedged mock, a mock that exits instantly N consecutive times surfaces STARTUP_FAULT (not a backoff flap), and the service successfully invokes spt send from its supervised environment. ACTIVATED FOR W1 2026-07-26 WITH THE FOLLOWING BUILD RULINGS FOLDED IN (doyle; constraints live in the artifact, not the dispatch thread). VERB SURFACE: the operator-facing verbs are `spt adapter service list` (all registered options + derived state) and `spt adapter service status <adapter[:profile]>`, nested under the ADAPTER group — NOT a bare `spt service`. Reason: 'service' is ALREADY public surface carrying an unrelated meaning — the platform daemon-service abstraction (REQ-DAEMON-6/-8, `crates/spt-daemon/src/service.rs`: the systemd user unit vs the Windows at-logon task) surfaces in `spt daemon` help as 'registered OS service' / 'managed service' / 'the managing service label'. Ownership-scoping separates the two meanings permanently: the OS-service is the DAEMON's and lives under `spt daemon`; the resident service is the ADAPTER's and lives under `spt adapter`. ADR-0049's 'service status display' means `spt adapter service status`; the W1 PR carries a one-line ADR errata note. GIVE-UP LATCH SCOPE: the latch suppresses relaunch grinding until something plausibly changed — it is NOT a durable verdict. Cleared by exactly three events: (1) DAEMON BOOT — desired-state-running enumerates boot as a reconcile opportunity with NO latch exception, and the re-trip is bounded (N fast exits) and LOUD (STARTUP_FAULT re-fires each boot); an in-memory per-daemon-lifetime latch is an acceptable implementation, and if the durable-marker scaffolding is reused then boot clears the marker; (2) ADAPTER RE-REGISTRATION — declared intent that manifest/config changed, reconciling immediately; (3) UPDATE-HOLD RELEASE — new bits invalidate the fault evidence. NOT cleared by the first-shell-bind ensure: a bind changes nothing about the service's config, so the bind-time reconcile SKIPS latched services — otherwise ordinary shell use converts the latch into the very flap it exists to stop. The REJECTED alternative is recorded deliberately: a durable latch with explicit-clear-only leaves an operator's already-fixed config fault sitting behind a service that stays dead and quiet forever — loud-bounded beats quiet-permanent (the heal-assigns-owner-never-closes shape one layer down). SANCTIONED BUT NOT W1-REQUIRED: `spt adapter service restart <adapter[:profile]>` as the explicit manual clear+reconcile — take it into W1 only if cheap once the verb group exists; the three automatic clears ARE the requirement. REGISTRATION-TIME START IS A WIRE OP: `registry::register` runs in the CLI PROCESS (`crates/spt/src/cli.rs`, the adapter-add and adapter-update call sites), so it cannot itself start anything in the daemon — registration-starts-the-service structurally requires ONE new adapter-scoped daemon IPC op, semantically `AdapterServiceReconcile { adapter }` (exact spelling matched to house op style where it lands), which the CLI calls after a SUCCESSFUL register on BOTH paths when the daemon is reachable. The daemon handler runs THE SAME reconcile code path as boot / hold-release / bind — ONE reconcile function taking an opportunity discriminant, never a second start authority. The response is a per-option outcome list (started / already-running / held / latched / bind-deferred / startup-fault) so the CLI prints honest per-option text. Daemon NOT reachable: registration STILL SUCCEEDS — never a refusal — and the CLI prints a REQUIRED notice that the service is declared, the daemon is not running, and it will come up at the next daemon boot. That notice is CONTRACT, not courtesy. RUNTIME-DIR ENCODING: cardinality is per adapter-option, so the option name becomes a PATH component and `:` is illegal in a Windows path. Core NEVER uses the raw option string as a path component — every construction site goes through ONE shared encoder, and that encoding MUST BE INJECTIVE (a lossless escape, never a strip/replace that can collide). Two distinct options mapping to one runtime dir means two services sharing a quiesce-marker namespace: the silent flap one layer down. The unit gate MUST include a collision-adversarial pair (e.g. if `:` maps to `_`, then `a:b` and `a_b` must remain distinct). MODULE PLACEMENT: the supervisor lands as `servicehost.rs` (the established `*host` convention — shellhost, harnesshost, linkhost, applyhost); `service.rs` is untouched and BOTH module headers cross-reference the other meaning of 'service'. INSTALL-DIR RESOLUTION RIDES W1 (operator-requested via flynn, ruled in after code verification): the `[service]` spawn resolves its binary through the EXISTING REQ-INSTALL-11 helper — the same primitive, NO parallel resolution path — and the same wiring lands at the two shell-family fill sites, which today resolve NEITHER the install-dir program token NOR `{adapter_dir}`. Without it a `--release`-installed shell adapter registers but cannot spawn (bare token → os error 2; `{adapter_dir}/x` → 'no value for substitution key'), released shell adapters need a hand-maintained per-node manifest, `spt adapter update` on them is a permanent no-op, and THIS req's hold/swap/start ceremony would be exercisable by MOCK ONLY — never by the named first consumer. Site census discharged BEFORE build (authoritative grep, cfg(test) excluded, accepted by doyle): the production template-fill sites are `shellhost.rs::fill_spawn_command` and `shellwake.rs::fill_wake_command` (both targets — threading not shape, since the wake caller already holds `AdapterRecord.source_dir`, which IS the install dir), plus `harnesshost.rs` session `role.command`, which is OUT OF SCOPE and already resolves correctly through `resolve_program_in_dir`. Scope guard: shell spawn/wake + `[service]` ONLY — this does NOT expand into the `[session.self]`/`[history]` follow-on sites. FAULT COUNTERS ARE TWO, NOT ONE (ruled 2026-07-26 after the builder surfaced the reading): (1) the FAST-EXIT counter increments ONLY on exits whose uptime is UNDER the startup threshold, and RESETS the moment any run EXCEEDS that threshold. Without the reset the latch mislabels slow-crash decay as a configuration fault — the latch lying about cause, which is worse than no latch. STARTUP_FAULT is reserved for THIS path alone. (2) The ORDINARY consecutive-crash give-up (the shell wake-watcher scaffolding's `give_up_after` = 6, deliberately UPTIME-BLIND) sits BEHIND it UNCHANGED in W1 and keeps its existing diagnostic label — no silent behavior fork from the shell watcher. (3) BOTH counters reset on the latch-clear events above (daemon boot, adapter re-registration, update-hold release): a clear that left either counter primed would relatch on the first post-clear crash and thereby defeat the clear. (4) NOTED-OPEN, deliberately NOT W1 and NOT a promise: the ordinary counter's uptime-blindness means a service that crashes once a day gives up after six days and then stays down until a clear event. Whether that decay behavior is right for SERVICES (as opposed to the shell watchers it was designed for) is a future ruling; it is recorded here as open so the next builder inherits the question rather than rediscovering it in the field. ORPHAN ADOPTION IS IMAGE-VERIFIED, AND ITS PLATFORM GAP IS RECORDED-OPEN (ruled 2026-07-26 after the builder surfaced the trade): a fresh daemon kills a dead daemon's parked orphan ONLY by path-verified identity — a live pid whose image path cannot be READ classifies `Unverifiable` and BLOCKS adoption, i.e. the start refuses loudly rather than proceeding. Loud-blocked over quietly-double-started is this design's whole posture (a bare-pid kill is the recycled-pid class, and a double-start is the silent flap the cardinality rule exists to prevent). RECORDED-OPEN consequence, NOT debt owed by W1: the image oracle is `/proc` on unix, so a unix WITHOUT `/proc` (macOS/BSD) would block on every live orphan until that pid dies. This is theoretical for every platform we ship — win, linux-gnu, musl — and no macOS/BSD asset exists; a future builder adding one inherits the question here rather than rediscovering it in the field. SUPERVISOR PLACEMENT IS BROKER-SIDE (ruled 2026-07-26): the supervised set, its boot sweep and the reconcile control socket live in the BROKER process, beside the digest/drive/tunnel hubs — NOT in the restartable brain child that hosts shellwake. Two reasons, both structural. (a) A supervisor owns LIVE CHILD HANDLES and, from the update ceremony on, an in-memory HOLD: that is a daemon-lifetime continuity resource, which is the ADR-0018 Q2/Q5 broker-side test; the Q5 exception that put shellwake in the brain reads 'a pure disk-reconciler' and this is not one. (b) A brain restart is the ROUTINE UPDATE PATH (StartReason::Update exists precisely for it), so brain-hosting would bounce every resident service through the orphan-adoption path with no quiesce, no grace and no hold — the ungoverned bounce this req's ordered update operation exists to replace — and would lose the hold mid-swap. Broker-hosting is also what makes the wire op possible at all: all control sockets are broker-served because a CLI cannot reach brain memory (stated in drivehub.rs's module header and obeyed by every hub). NO PERIODIC SWEEP — CHOSEN, NOT OMITTED (ruled 2026-07-26): the supervisor host runs the boot sweep and then parks; there is deliberately no timer re-sweeping on a cadence. The four ruled opportunities are all EVENTS, each with a caller that enters the one reconcile function directly, so a timer would be a FIFTH start authority nobody ruled in — and its only distinctive work would be silently healing a failed registration nudge, converting a diagnosable defect into invisible behavior. The REQUIRED daemon-unreachable notice is the honest answer to that case; machinery that papers over its own failure class is refused (the same instrument-soundness razor as the rest of this design). A SUPERVISOR WHOSE DECLARATION DISAPPEARS RECONCILES TOWARD STOPPED (ruled into W1 2026-07-26): every sweep runs a STOP side before its start side — an option whose adapter is soft-deregistered, hard-removed, or whose manifest no longer declares a [service] is torn down through the handle that names its child. This is the symmetric half of desired-state-running, not an addition to it: without it a deregistered adapter's binary outlives its own registration until the daemon dies, which is exactly the ungoverned-lifetime shape this req abolishes. TREE TEARDOWN ON EVERY SUPERVISOR-INITIATED KILL (ruled 2026-07-26): the force-kill deadline is where the unconditional-kill promise is WRITTEN, but it is not the boundary of the problem — a supervised service's descendants are torn down on every kill the supervisor initiates, including daemon-shutdown stop_all and the stop-side sweep teardown. Descendants outliving THOSE paths are strictly worse off than ones outliving a force-kill, because the next daemon's orphan sweep is structurally blind to them: it knows one parked pid and holds no handle to anything below it. Windows reaches the tree through a SUPERVISOR-OWNED Job Object assigned at birth (CREATE_SUSPENDED -> AssignProcessToJobObject -> resume, so no descendant is ever spawned outside the job; KILL_ON_JOB_CLOSE deliberately OFF, so a dying supervisor is never an unannounced service outage); unix through the process group setsid already establishes. Job-NEUTRALITY is not contradicted: that invariant governs OTHER people's jobs reaching our processes, which CREATE_BREAKAWAY_FROM_JOB still handles at birth. A job the OS refuses is a LOUD DEGRADE, never a refusal to start: the process still dies on demand and only its descendants become unreachable, which is exactly where this path stood before the job existed — refusing the spawn would convert a bounded descendant leak into a total outage over a failure in an OS facility rather than in anything the adapter declared. THE TREE PROMISE STATES ITS EDGE (ruled 2026-08-03, IR-16): a teardown whose TREE reach FAILS — as distinct from a job never acquired — does not silently wear the unconditional promise. It announces `SERVICE_TREE_KILL_INCOMPLETE`, naming the LOSS (the tree claim was not honored; descendants may still be running and nothing holds a handle to them) rather than the syscall, alongside the pid, the failed reach and the OS error; the process kill proceeds regardless, so this is a NAMED EXCEPTION to tree-teardown-on-every-kill and never a refusal to kill. It is the kill-time twin of `SERVICE_JOB_UNAVAILABLE` — ONE loss, one vocabulary, both ends of the lifetime, each code naming the other so grepping either finds both. THE SPAWN-SIDE DEGRADE RULING ABOVE MUST NOT BE CITED FOR THIS ARM: it rests on refusal costing a total outage, which is true at spawn and false at kill, where the process kill proceeds either way and refusing the tree claim costs the caller nothing — the two share a noun and not an argument. THE QUIET ARMS ARE A WHITELIST, so an unforeseen failure announces rather than being swallowed: on unix `ESRCH` ALONE is quiet (MEASURED 2026-08-03, Linux 6.8.0-124: `kill(-pgid, SIGKILL)` returns 0 for a live group AND for a group whose only member is an unreaped zombie, and `ESRCH` only once the group is gone and reaped — and since this path never reaps first, `ESRCH` means something else already did, which is the path where the supervisor took its exited branch and never called the teardown at all); on Windows the DIRECT-PROCESS return is not checked at ALL (MEASURED 2026-08-03, Win 11 Pro 10.0.26200: `TerminateProcess` against a handle to an already-exited process returns 0 with `GetLastError` 5 `ERROR_ACCESS_DENIED`, so a check there would fire on the ordinary path), because that arm already carries the strictly stronger downstream liveness confirm behind `SERVICE_KILL_UNCONFIRMED` and a second weaker rule beside a working one is refused. A FALLBACK PROCESS-TABLE TREE-WALK WAS CONSIDERED AND REFUSED as the degraded arm — the ceiling is chosen, not missed: live `(pid, ppid)` descent breaks at the middle hop the teardown itself kills, returning an empty set in exactly the failure case it would exist to detect (a silent loss upgraded to a false clean), and it would kill by bare pid, reintroducing product-side the recycled-pid class. Growing this into an image-authenticated population sweep stays open as its own instrument. DISCRIMINATION: a teardown failure WITH this code is this arm; WITHOUT it, a survivor is a victim of a bare-pid mis-kill — the two must not be blurred by wording. THE STATUS SURFACE IS DAEMON-ANSWERED OR IT SAYS NOTHING (ruled 2026-07-26, the leg-D companion of the tree-teardown ruling): the CLI NEVER derives service state from the pid file. Either the daemon answers `spt adapter service list|status` over the control socket, or the CLI prints that the daemon is not running — verbatim, and with no fallback read. The pid file is a KILL HANDLE for the NEXT daemon, and reading it as liveness in a display surface is the v0.43.0 STALE-ONLINE class one layer down: a record answering a question the record cannot know. Three properties follow and are requirements, not implementation taste. (a) The status op is a PROJECTION over the live supervised set — the supervision threads, the hold flags and the stand-down records — plus the registry; it starts, stops, holds and kills nothing, because a diagnostic that converges the thing it measures is a start authority wearing a diagnostic's clothes. (b) A row reports its EVIDENCE: a latch surfaces with the captured startup output behind it, since a fault reported without its cause is the instrument failing at its one job. (c) An option SUPERVISED WITHOUT A DECLARATION behind it is reported as exactly that rather than hidden — with no periodic sweep, a deregistered adapter's supervisor lives until the next opportunity's stop side reaches it, and that window is precisely when an operator asks what is running. THE ADVISORY STATUS LINE IS DISPLAY-ONLY AND BOUNDED: the service may write one line into its runtime dir (named in docs/MANIFEST.md beside the stop-request marker, so it is implementable); core reads the FIRST line under a byte cap, treats an unreadable file as simply no advisory (the locked-file split rule holds), and consults it for NO decision — core deciding on it would put a least-trusted binary's self-report in the control path, and a service that stopped updating it would silently become whatever it last claimed. WIRE LENIENCY IS PLACED, NOT SPRINKLED: fields a reader BRANCHES on stay typed with a `#[serde(other)]` unknown arm (KH-2.3), while a field only ever ECHOED carries the daemon's label verbatim — re-deriving a lenient copy of the manifest's validated `start` vocabulary for the wire would weaken the one place strictness matters (registration). An op an older daemon predates HANGS UP rather than reading the request and answering nothing: a server that silently ignores an unknown kind leaves the caller blocked on a reply that never comes, so an older daemon would WEDGE a newer CLI instead of failing it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4030670Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4030746Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4030857Z ### REQ-PSYCHE-TURN-STREAM-EVIDENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4033906Z - Title: A failed psyche turn preserves BOTH captured streams as evidence: TurnError::Failed carries the child's stdout alongside stderr, and the failure display appends a bounded single-line stdout TAIL (last ~500 bytes, UTF-8-boundary-safe cut, newlines collapsed, the literal <EMPTY> when the stream said nothing — absence stated, never implied by a missing field). WHY (2026-07-26 spend-limit RCA): a failed turn's stdout is not psyche output, so BOTH core (turn.rs kept {status_code, stderr} only) and the adapter (guarding its outbound channel) independently discarded it — the same blind spot implemented twice — and an account-level outage surfaced as a bare 'claude exited exit code: 1' with the decisive refusal text thrown away at two layers; three agents then chain-hypothesized on an error string the real failing path never emitted. The tail is cause-agnostic instrumentation: it does not care what the failure is, which is why it survives being wrong about it. Adapter twin: claude-spt v0.25.14 dual-stream tail (shipped 2026-07-26).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4034026Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4034056Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4034215Z ### REQ-PSYCHE-ACCOUNT-REFUSAL-EXIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4040515Z - Title: RESERVED EXIT 96 — account/credential refusal from a psyche_resume turn: the inner tool refused for account-level reasons (spend/usage cap, expired/revoked credential, org quota) — session healthy, code healthy, retry correct-but-pointless until a HUMAN acts. Core discriminates on the EXIT CODE ALONE (text-blind, the exit-95 layering exactly: adapters own text matching because their inner tool's wording is theirs to track; core's contract survives any rewording). SEMANTICS ruled 2026-07-26: (1) OWN PACING, fully separate from the C3(b) strike budget — an account refusal fails FAST (refused before a billed turn), so ten near-instant cycles could exhaust the defect budget in seconds and kill the psyche host as a thrashing component while nothing thrashes; the strike budget is a DEFECT budget and an outage must not be able to spend it (fold-with-higher-threshold REFUSED at ruling: it keeps the bug in a quieter form). Slow capped exponential ~60s doubling to ~15m cap, held INDEFINITELY (no give-up: a cap clears on human action or a calendar boundary — unpredictable but CERTAIN — and a permanently-given-up psyche is invisible), reset on first success, no state to unwind. (2) DISTINCT SURFACE: never the defect-shaped PSYCHE_TURN_FAIL prefix — renders as its own class (adapter-side PSYCHE_TURN_REFUSED; core-side an additive class discriminator beside psyche_host_error, never a fold into it), NAMES the actor and action (a human, the inner tool's account — not the endpoint/adapter/session), carries the inner tool's own words via the dual-stream tail (REQ-PSYCHE-TURN-STREAM-EVIDENCE), and states HOW LONG it has been refused. (3) NEVER reseeds — custody is fine; a reseed would destroy a healthy transcript for nothing. (4) Never counted as a crashloop defect. Adapter contract half: claude-spt docs/design/RESERVED-EXIT-ACCOUNT-REFUSAL.md (appendix of observed CC strings is informative-not-contract, populated ONLY from observed bytes — the invented-string chain of 2026-07-26 is the anti-pattern it refuses). Gate at activation: unit — exit 96 classifies refused (no strike increment, no reseed, own backoff schedule engaged); 95/generic/None unchanged; surface renders the distinct label + duration.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4040801Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4040834Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4040948Z ### REQ-MSG-INJECT-LEG-DROP-VISIBLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4045760Z - Title: SEED (inactive — observability): a silently-dropped delivery leg must be DISTINGUISHABLE from an honestly-offline endpoint on a status surface. The spt-hosted inject leg (spt-daemon inject.rs `try_spt_hosted_inject` — the ONE shared implementation behind local cmd_send, the WAN ingress, the idle-edge drain, and the parked-idle/pulse re-offer belts) gates on `is_spt_hosted_no_relay` → `deliver::is_online` → `liveness::is_perch_alive`: a perch PINNED TO A DEAD SESSION (the KH 7.25 wedge class — dead owner, record not yet healed by the next auth touch) makes EVERY belt on that leg silently return None → messages spool as if the endpoint were ordinarily offline, while the operator-facing view can keep reading the recorded state. Nothing anywhere surfaces 'the inject leg stopped firing for this endpoint' — the idle-window injections just stop, which from the outside is indistinguishable from 'no messages arrived' (field shape: IDLE-EDGE W1 field-verify, perri's killed-resident rig — their 'so it did not repeat' conclusion was exactly this invisibility, self-corrected only by re-rigging with a live resident). Shape at activation: a status/list surface DERIVES and reports the inject-leg verdict per endpoint (inject-target / not-a-target + WHY: no perch, dead session pin, no relay, not controllable) so a dropped leg is a READABLE state, never an inferred one; additive-evolution posture on any --json surface. Kin: REQ-SHELL-LIST-DERIVED-PROVENANCE (view-vs-truth, same class), KH 7.25 (`REQ-HAZARD-SESSION-PIN-WEDGE`, the pin that drops the leg), KH 2.5 (liveness authority lives in ONE resolver — the verdict here REPORTS through it, never re-derives beside it).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4045922Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4045951Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4046055Z ### REQ-ENDPOINT-STOP-RESOLVES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4051123Z - Title: `spt endpoint stop <id>` REFUSES an id that nothing on the node knows, instead of stamping success on a no-op — an unconditional-success verb is a lying instrument (find: liam via flynn's discriminating repro, mechanism corrected by flynn 2026-07-26 superseding the original shell-half-action framing; shells aren't endpoints and the verb correctly never tried to resolve one — it then answered incorrectly). TODAY (cli.rs `stop_endpoint_core`, read at mint): ready-marker removal is `.is_ok()`-best-effort, `teardown_hosted_session` topology-gates on a `controllable` flag a nonexistent perch cannot have and falls through, `unregister_address` is `let _`, `terminal_normalize` silently skips a recordless perch — so EVERY string returns `Stopped{removed:false}` → `STOPPED:<id> (no ready marker; address unregistered)` exit 0, and the 'address unregistered' clause prints whether or not any address existed to unregister. FIX SHAPE: resolve FIRST — an id with ZERO evidence on this node (no ready marker, no perch record, no registered address, no broker session row) is REFUSED with a non-zero exit and a line naming that nothing by that id exists here; ANY evidence → proceed EXACTLY as today (stop is the last rung of the teardown ladder and its wedge-breaking semantics on partially-dead state are load-bearing — the refusal must never make a wedged-but-evidenced endpoint harder to kill). STOPPED is claimed only when the verb acted on something that existed. Success-line honesty rides the same change: clauses name what actually happened ('address unregistered' only when an address was removed). Kin: KH 7.49 (a verb never stamps a state it did not cause — this is that hazard's resolve-half), REQ-ENDPOINT-TEARDOWN-AUTHORITY (the ladder whose semantics must survive unchanged).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4051294Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4051318Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4051437Z ### REQ-TEST-RIG-DAEMON-TEARDOWN-PROVEN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4060169Z - Title: releases#99: a test rig that causes a daemon to exist must stop it, and its teardown must be PROVEN to stop it rather than assumed to. Two findings make this a requirement rather than a fixup. (1) OWNERSHIP IS NOT DECLARED BY THE VERB: `api::run` calls `ensure_daemon()` before dispatching ANY subcommand (REQ-DAEMON-3), so a rig whose verbs are pure local reads still owns a real daemon tree one layer out — `psyche_download_e2e`'s own header asserted "no daemon — it is a pure local read" and leaked 2 `spt.exe` per run (the detached daemon plus its brain, measured against a 0 baseline) which hold `target/debug/spt.exe` open and break the next cargo build in that tree with os error 5. (2) THE TEARDOWN CAN REFUSE SILENTLY, BY TWO INDEPENDENT ROUTES. `cmd_daemon_stop` denies any caller that resolves as a hosted endpoint via `ceremony_agent_ground()`, a two-rung ladder: rung 1 is a non-empty `OWL_SESSION_ID` / `SPT_AGENT_ID` / `SPT_ENDPOINT_ID` IN THE RUNNER'S ENVIRONMENT, rung 2 is pid-ancestry against the perch records, which a fixture perch seeded with `std::process::id()` satisfies for every child of the harness. `--force` overrides neither. The rungs fire on DIFFERENT machines — rung 1 is dead on a CI runner and live whenever an agent runs the suite from its own hosted session — so a rig validated on one of them can leak on the other, and in EVERY arm the test still passes: the leak is invisible to the assertion. Gate: unit — the rig seeds pid 0, scrubs the three env markers on the commands it tears down with, runs every leg BEFORE any assertion (a panic must not skip the teardown), and keeps the authenticated breadcrumb reap as insurance BEHIND the stop rather than in place of it. Evidence discipline for any future rig of this shape: measure the surviving-process count on both arms; a green test proves nothing about the leak. Kin REQ-TEST-TMPDIR-HYGIENE (the same class one resource over), REQ-HAZARD-TEST-PID-TREE-KILL-IDENTITY (why the reap is authenticated), REQ-DAEMON-3 (the autostart that creates the ownership), REQ-BROKER-STOP-ENDPOINT-DENY (the refusal being worked around). AMENDED BAROMETER H2 (doyle ruling 2026-08-02, folding the releases#110 code remedy in here rather than onto #110): teardown completeness extends to EVERY SURVIVING DESCENDANT, not just direct children — a grandchild inherits the cwd through its parent and outlives a kill aimed one level up, which is precisely what the #110 positive control caught (an orphaned `PING.exe` still pinning a directory after its `cmd` parent was killed). The measurement discipline is unchanged and already meets the extended scope: surviving-process count on BOTH arms, by image path so a live fleet is not miscounted — the daemon's brain is itself a grandchild, so the 2 -> 0 evidence already spans the depth. SECOND CONSEQUENCE, now proven rather than theorized: a survivor does not merely hold `target/debug/spt.exe` open (os error 5 on the next build), it CWD-PINS the package root cargo handed it, leaving a `.worktrees` skeleton that cannot be renamed or deleted while files inside it stay writable — see KNOWN-HAZARDS 5.18 / REQ-HAZARD-TREE-CWD-PIN for the mechanism and for the two spawn-flag fixes refused on evidence.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4060370Z - Required stages: unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4060398Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4060498Z ### REQ-TEST-ENV-ONE-LOCK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4070725Z - Title: releases#111: a process-global environment variable is guarded by exactly ONE lock, and every test helper that mutates it takes THAT lock. THE FILED MECHANISM IS REFUTED — do not implement on it. The filing said three dispatch.rs sites go through `crate::test_home::with_home`, which writes the process-global SPT_HOME, and that a SIBLING with_home test retargets the home mid-test under threaded cargo test. That cannot happen as described: `with_home` holds its mutex across its ENTIRE body, so with_home callers are already perfectly serialized against one another. REPRODUCED AND MEASURED INSTEAD (hertz, HFENDULEAM 2026-08-02): `cargo test -p spt-daemon --lib dispatch::` loses 1-3 of 26 nondeterministically, and the panic text names the real root — `ACCESS_STORE_MINTED <tmp>\home\identity\trust\access.json`, a path with a `home` SUBDIR that `with_home` never produces (it sets SPT_HOME to the tempdir root itself). That shape is `spt_test_support::TestHome`, and the lib binary has exactly one caller of it: `dispatch::tests::the_receiver_decides_origin_and_flood_not_the_sender` (dispatch.rs:2536). TWO INDEPENDENT MUTEXES OVER ONE ENV VAR: `spt_daemon::test_home::ENV_LOCK` and `spt_test_support::ENV_LOCK` each serialized their own users flawlessly and guarded nothing between them. Because `spt_store::perch::spt_home()` is NOT memoized (re-reads env every call), a with_home test would `save()` its fixture into home A and load it back from home B — store absent, empty access baseline minted over it, and `an_unadmitted_asker_is_refused_at_this_nodes_own_seam` getting Some(offline) where the rules should have returned None. The other two losers are the same switch seen through a knock store and a byte-identity snapshot. Every loser passes ALONE (single-threaded: no concurrent holder) and 26/26 under nextest (per-test processes), which is why CI's nextest unit lane is structurally blind to it — the filing is right that this burns only whoever hand-runs the module. FIX (far smaller than the previously-ruled `*_at(home)` seam refactor, which was predicated on the refuted story): `spt_test_support` exposes its lease as `env_lock()`, and `spt_daemon::test_home::env_lock` returns THAT guard instead of declaring a second static — one variable, one lock. Explicitly NOT serial_test. Gate: unit — a with_home body holds the lease while a second thread attempts a TestHome, asserting the thread cannot enter and SPT_HOME cannot move; reds on the two-lock code, greens on one, and proceeds after release so a shared lock is proven to be a lock rather than a deadlock. NOT REENTRANT by construction — a TestHome holds the lease for its whole lifetime, so one must never be constructed inside a with_home body; the module doc says so at both ends. SWEEP, because one instance of a class is not the class: every crate declaring an SPT_HOME test helper was checked against whether the SAME binary also reaches `spt_test_support`, which is the only way the collision can form. A SECOND LIVE INSTANCE was found and fixed in the same pass — `crates/spt` carried `testutil::LOCK` while `cli.rs` (two sites) constructed `TestHome` directly, the identical two-mutex shape, latent and unreported; it now takes the shared lease too. The remaining helpers are genuinely single-per-binary and are left alone rather than pre-emptively churned: `spt-live::test_support` and `spt-store::perch`'s in-module helper (neither crate depends on spt-test-support at all), and `spt-msg`, which depends on spt-test-support but declares no helper of its own. The invariant to enforce at review is one-lock-per-variable-per-BINARY — a crate may keep its own ergonomic wrapper, but never its own mutex over a variable another helper in the same binary also writes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4070949Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4070982Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4071087Z ### REQ-HAZARD-TREE-CWD-PIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4081889Z - Title: releases#110: a directory that is a live process's CURRENT DIRECTORY cannot be renamed or deleted on Windows while files INSIDE it stay writable, so a test descendant that outlives its run leaves an undeletable `.worktrees` skeleton that reads as neither a file lock nor a rig failure. cargo runs each test binary with cwd = the PACKAGE ROOT, so every spawned child — and every grandchild inheriting through it — takes `<worktree>/crates/<pkg>` as its own cwd. THE FILED MECHANISM IS REFUTED AND THE CORRECTION IS THE POINT: #110 named the holder an orphaned `conhost.exe` holding the crate root; measurement on HFENDULEAM 2026-08-02 shows `CREATE_NO_WINDOW` does mint exactly one conhost per console child (counted by ParentProcessId) but that conhost's cwd is OS-assigned, not inherited — a census of every conhost on the box returned 43 readable, all `C:\WINDOWS\` or `C:\WINDOWS\system32\`, ZERO under any worktree (4 unopenable, stated). Positive control on a scratch dir: write-inside OK, delete BLOCKED, kill the CONHOST → still BLOCKED, kill the actual holder → deletes first try; the holder was an orphaned GRANDCHILD (`PING.exe`, cwd inherited through `cmd`) that survived its parent's kill. A CREATE_NO_WINDOW conhost is a byproduct, never the pin — killing it is not the cure and "no conhosts" is not the all-clear. AMENDED 2026-08-02, on field evidence that landed BEFORE this shipped in a golden run: a `--headless` ConPTY conhost is a DIFFERENT population and the word 'never' does not survive it. It inherits the cwd of whoever created the pseudoconsole and can be the SOLE pin — BAROMETER W4 specimen pid 46556, `conhost.exe --headless --width 80 --height 24`, parent dead, PEB cwd inside that worktree's crates/spt, killed and the tree deleted (todlando). Reproduced deliberately through CreatePseudoConsole from a chosen cwd, with the pin's own control (write-inside OK, delete BLOCKED while it lives, DELETED after ClosePseudoConsole) and the pty-teardown alternative excluded by a kill-ORDER rig: client killed first and the directory is STILL pinned, conhost killed and it deletes. Read a conhost's COMMAND LINE before deciding — a bare `conhost.exe 0x...` is never the pin, a `--headless` one can be, and its child count says nothing either way because a ConPTY client is a child of the creator, not of the conhost. Two tempting fixes are refused ON EVIDENCE: flipping the rigs' `CommandNoWindowExt::no_window()` to `DETACHED_PROCESS` removes the conhost (1 → 0) but not the pin, and `job_escape_e2e::conhost_children_of` shells to powershell through that helper with an `unwrap_or(0)` fallback, so under a flag where powershell does not execute at all (KH 5.17 amendment) the `REQ-HAZARD-WMI-DAEMON-WINDOW` guard would assert "no conhost" VACUOUSLY GREEN — a gate whose failure signature is identical to the fault it guards; and the helper cannot hand children a neutral cwd because `bind_cwd_project_e2e` and `resume_template_e2e` assert on the INHERITED cwd, which is the behavior under test. Doc stage carries the triage step that the diagnosis tool cannot: the finder answers WHO pins a directory, never whether it is SAFE TO KILL, and the blocked-delete error is identical for an orphan and for a working agent's own shell (confirmed live — one worktree's holder was an agent's pwsh tool shell with its Bash tool holding a SEPARATE cwd in the same tree; a pattern-matched kill would have cost that agent their session). Kin REQ-TEST-TMPDIR-HYGIENE (which lists 'children pinning the dir cwd so removal fails' as an unproven candidate root — this proves that class), REQ-TEST-RIG-DAEMON-TEARDOWN-PROVEN (teardown completeness is the prevention side, extended to grandchildren), REQ-HAZARD-WMI-DAEMON-WINDOW (the guard the refused fix would have hollowed out).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4082099Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4082136Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4082230Z ### REQ-TEST-TMPDIR-HYGIENE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4088911Z - Title: Windows test fixtures MUST NOT leak their temp dirs — find and fix the leak that accumulated 14,319 `.tmp*` dirs (163 GB) in %TEMP% on hfenduleam over 2026-07-19→26 and ate the box to 0.00 GB free during the v0.44.0 cut (find credit: deployah). The class presents as resource exhaustion wearing a timing-flake mask: the release-blocking red was spt-daemon::sync `two_tier_sync_lands_and_gate_refuses_server_side` dying 'No space left on device' INSIDE its own leaked-class tmpdir, and the PRIOR red (digest_cross_node brain-IPC deadline elapse) was the SAME root through a timing probe — burns release windows and invites false environmental discharges (deployah self-corrected his own). ROOT IS UNPROVEN AT MINT (investigate, don't assume): tempfile-crate dirs self-clean on Drop, so something defeats Drop — candidates from the incident record: process killed mid-drop (fixture children force-killed while owning the dir), detached/leaked children pinning the dir cwd so removal fails, panic paths that never unwind. CANDIDATE ROOT PROMOTED TO PROVEN (hertz, doyle ruling 2026-08-02, releases#110 measurement): the cwd-pin leg is no longer a hypothesis. Positive control on HFENDULEAM — spawn a child with cwd = a scratch dir, then attempt removal: writes INSIDE the dir succeed while delete is BLOCKED (the asymmetry that makes it read as neither a file lock nor a rig failure), and the dir deletes first try the instant the holder dies. The holder in that control was an orphaned GRANDCHILD (`PING.exe`, cwd inherited through `cmd`) that survived its parent's kill, so the defeating mechanism reaches deeper than the direct children this entry names. Corollary that changes where to look: the conhost is NOT the holder (its cwd is OS-assigned — a box-wide census returned 43 readable conhosts, all under `C:\WINDOWS`, zero under any tree), so a leaked-tmpdir investigation that clears conhosts and declares the path clean has proven nothing. Mechanism and tooling: KNOWN-HAZARDS 5.18 / REQ-HAZARD-TREE-CWD-PIN plus `.github/ci/find-cwd-holders.ps1`, which names the holder of any given directory. Deliverable: name the leaking fixture path(s) with evidence, fix the cleanup (guard/finalizer that survives the kill path, or a fixture-scoped reaper), and prove it with a before/after dir-count on the suite. Second recorded hfenduleam disk-full-CI instance.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4089145Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4089177Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4089287Z ### REQ-CI-FREE-SPACE-PREFLIGHT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4100750Z - Title: Every CI job on a shared self-hosted runner FAILS LOUD AND FIRST on insufficient free disk, never obscurely on a downstream timing/space symptom: a preflight step asserts a free-space floor on the workspace drive and fails naming the RESOURCE (free bytes, floor, drive) so the next exhaustion costs one clear red instead of a release window of mystery flakes (proposer: deployah, during the v0.44.0 disk-exhaustion incident — the rule-failed-its-author-needs-a-mechanism shape: 'check disk first' was already a memory rule and still cost two CI windows because it lived in judgement, not mechanism). Floor calibration honest at mint: the observed incident burned tens of GB per suite run (leaked fixture dirs + build targets); pick a floor from measured suite consumption plus headroom and RECORD the derivation in the workflow comment — an unexplained magic number invites drift. AMENDED 2026-08-03 (hertz RCA of golden 30860770146, doyle-ruled option (i) the same day): 'FIRST' now means first among EXPENSIVE steps, not literally step 1, in the two two-host jobs — there the floor is asserted AFTER `actions/checkout`, because checkout runs `git clean -ffdx` and that IS the reclaim. Measured: the Windows test leg materialises ~50 GiB of gitignored `target/` (29,777 of 30,022 files written inside that job's own window), the next job's checkout deletes it, and twohost-a starts seconds later — so the pre-checkout read is taken at the disk's maximum. 30860770146 died exactly there: RESOURCE red at 24.4 GiB free, no test run, over bytes its own next step was about to reclaim; the reorder alone would have turned that red green with zero reclaim. The protective purpose is intact — checkout is seconds and every build is still downstream — but the ordering is now a stated exception rather than an accident. EXTENDED 2026-08-29 to the n1-gate job (deployah, on the v0.66.0 SEMAPHORE cut; doyle informed with the measurement): n1-gate had kept the literal-first shape and hit the identical trap twice in one cut. Measured on golden 33273378238 attempt 2, hfenduleam: n1-gate asserted PRE-checkout at 21:58:36 and read 32,219,230,208 free against the 34,359,738,368 floor and failed in 9 seconds with checkout SKIPPED, while twohost-a on the SAME BOX asserted POST-checkout at 21:59:15 and read 104,530,997,248 and passed — 39 seconds apart, ~72 GB reclaimed by the intervening `git clean -ffdx`, opposite outcomes decided solely by read order. Two pre-checkout low-water readings 64 minutes apart (r2 20:54:36, r3 21:58:36) agree within 10 MB, so the adjacency is deterministic, not a flake, and a bounded WAIT placed before checkout cannot fix it by construction — the reclaim it would wait for is performed by its own next step. WIDENED the same day to the `test` job (doyle ruling on the scope note this entry carried): that latent-shape note is DISCHARGED, not deleted — leaving the amendment clause armed on one job is precisely how the trap survived 26 days to cost a cut two golden attempts. Gate applied before moving it: the `test` floor was verified to carry NO checkout-protective purpose — its comment derives the 32 GiB from the observed full-suite footprint plus headroom for one complete run, so it guards the SUITE, not checkout. The checkout-protective steps in that job are the two reap guards (Windows exe-lock, Linux flood orphans), whose own comments state they must precede checkout because the post-checkout guard is too late for the clean; they STAY pre-checkout and only the floor moved. EXTENDED 2026-09-06 (WEBSERVE floor trio IR-46/IR-59/IR-73): all eight ci.yml/release.yml floor sites are post-checkout, having no checkout-protective purpose. START and always-run END DISK assertions record raw free bytes, the unchanged 32 GiB floor, job/runner identity and PASS or RED, labelled INSTANT; END runs before teardown even after workload failure. Golden test and n1-gate carry the same readings, with a fresh assertion immediately before docs-drift. These samples are not a run minimum or a headroom guarantee. Raising the floor lacks measured peak evidence; continuous sampling is not part of this remedy.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4100965Z - Required stages: int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4100994Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4101093Z ### REQ-PID-ROLE-EVIDENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4109744Z - Title: THE RECORDED PID MUST CARRY WHAT IT MEANS. `info.pid` has two incompatible meanings decided by write path, and every reader has been guessing: the `api listen` path records a process that GENUINELY HOLDS the endpoint (its death IS the endpoint's relay death), while the `api bind` path records the announcing CLI, which is EXPECTED TO EXIT within seconds and whose death means NOTHING — the hosting life it announced (a broker PTY session) is not recorded anywhere in the row. LIVE MEASUREMENT (todlando, HFENDULEAM 2026-07-27, the finding that forced this mint): todlando pid 22588 DEAD, doyle pid 45160 DEAD, deployah pid 29176 DEAD — all controllable=true, state=live_agent, status=online, and all three GENUINELY ALIVE AND WORKING (the measurement was taken by one of them, messaging another) — against hertz pid 11216 ALIVE and mobile-gw pid 46152 ALIVE, which are real `api listen` relays. The split is by adapter integration pattern (claude-spt binds and exits; omp-spt/mobile hold a listener), NOT by anything a reader can see in the record. CONSEQUENCE ALREADY PAID: two proposed fixes for the emphasys convergence gap were BOTH falsified pre-build on this fact — oracle-first convergence, and carry-forward scoped to 'earning pid alive' — each would have converged three live agents node-wide. Both were keyed on a pid whose meaning they could not read. FIX: stamp the role at the seam that writes the pid — `relay` on the listen path, `binder` on every bind path — never inferred at read time. Absent ⇒ legacy row ⇒ NO KNOWLEDGE, and every consumer fails toward alive (inheritance stands, convergence never fires); such rows heal at their next re-bind. Consumers re-key on it: relay-death convergence fires only on `relay`, and the controllable carry-forward drops a stamp only when a prior `relay` pid is provably Gone. CLASS: a claim keyed on the wrong thing (kin: `is_perch_alive` reading a status FIELD as hosting topology; the inherited capability stamp routing a liveness proof) — the cure is to make the record SAY the thing rather than have readers infer it. AUDIT RIDER (doyle, required in the doc stage since convergence re-keys on this field): enumerate which row classes reach the convergence branch under the new key — fresh NonAgent/None rows, shell instances, gateway listens — and pin the answer structurally, not just for tonight's node. Gate: doc — the record-shape doc carries the field, the two meanings it ends, the legacy/no-knowledge rule, and the audit-rider enumeration; impl — the field on InfoJson stamped from the entry path at the bind seam, plus both consumer re-keys; unit — the role-stamp table over the three hosting authorities, the carry-forward table incl. the claude-spt-shaped NEGATIVE (binder-role dead pid + Some(true) + listener re-bind ⇒ inheritance STANDS, row never routes to convergence), and the convergence role gate incl. the legacy-absent row; int — the synthetic emphasys template (relay-role + dead pid/parent + valid birth stamp + listener-only re-bind ⇒ derives fresh ⇒ routes to convergence ⇒ oracle Gone ⇒ converged) with a BrokerPty sibling that re-asserts fresh and is untouched.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4110045Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4110073Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4110184Z ### REQ-RELAY-DEATH-CONVERGENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4116238Z - Title: A dead harness relay MUST converge the endpoint's projection — an endpoint whose relay process is provably gone cannot keep rendering `ONLINE - HARNESS ONLY` with ready=true alive=true and a registered address merely because the owner parent is still alive. RE-PROVEN PRESENT on 0.44.0 (hertz W0 item 2, 2026-07-27, fresh isolated build sha-prefix 00e15f): relay pid 38764 killed 06:21:01Z, owner pid 12156 live; 148s later info.json still pid=38764 status=online, list JSON ready=true alive=true address=127.0.0.1:57709, TCP to that address unreachable, human list `ONLINE - HARNESS ONLY`. Sibling probes: live-relay sibling's socket reachable and `send` -> SENT with the EVENT received (the rig CAN see delivery); clean `endpoint stop` sibling rendered status=offline ready=false alive=false (the rig CAN see convergence). FIX SHAPE: relay-death convergence — a dead/unreachable relay clears the ready/address/liveness projection for its endpoint within a bounded window, in ONE authority: the verdict MUST route through the shipped custody/process-identity predicate (KH 2.5 — liveness authority lives in one resolver, never re-derived beside it; Unproven never kills). Kin: the Athenaeum stale-ALIVE generator (HOSTING_AUTHORITY_DEMOTED demote-to-no-claim arm, REQ-LISTEN-PRESERVES-HOSTING-TOPOLOGY — the demote-vs-offline fork needs the same identity predicate), SHELL-STALE-ONLINE (same lying-signal class, shell flavor), REQ-MSG-INJECT-LEG-DROP-VISIBLE (the observability face of the same wedge). TITLE ADDENDUM 2026-07-27 (doyle ruling, todlando build): THE VERDICT FIRES ONLY WHERE THE RECORDED PID WAS A **HOLDER** (pid_role=relay, REQ-PID-ROLE-EVIDENCE). The shipped branch asks the oracle about whatever pid the record carries, and `info.pid` means two different things by write path — a holding `api listen` relay, or an `api bind` announcer that exits within seconds. Measured on HFENDULEAM 2026-07-27: todlando 22588, doyle 45160, deployah 29176 all DEAD-and-online (binder pids) against hertz 11216 / mobile-gw 46152 alive (relay pids), so an unrole-gated verdict would have offlined three live agents. A row with no role stamp (legacy) is NO KNOWLEDGE and never converges; it heals at its next re-bind.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4116413Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4116441Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4116541Z ### REQ-CREATE-BIND-REST-ACTIVE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4121455Z - Title: A successful fresh `endpoint run --create` bind MUST normalize rest intent to active IN THE SAME lifecycle transition — it must not leave `rest_state=suspended` from the prior life, and must never require a separate explicit `endpoint wake` to make a freshly-bound-online endpoint's rest vocabulary truthful. RE-PROVEN PRESENT on 0.44.0 (hertz W0 item 3, 2026-07-27, isolated build): `endpoint stop` -> raw status=offline rest_state=suspended session_id=5c93...; successful `run --create --start` minted session 714260b31d440df3 status=online — rest_state STILL suspended; independent repeat matched (new session 595f..., same sticky suspended). Sibling probes: fresh create with no prior perch carries NO rest_state field (the field itself is inherited residue, not a fresh stamp); explicit `endpoint wake` on the reproduced row flips suspended->active (the transition exists and works — it is simply never taken by the create/bind path). Downstream symptom from the original F-034 filing: `endpoint suspend` NO_EDGEs on a visibly ONLINE endpoint because the recorded rest state already claims suspended. FIX SHAPE: the create/bind success path stamps rest intent active atomically with the online transition (terminal-normalize family — same transition, never a follow-up repair step); deliberate suspend-while-online semantics (ADR'd rest vocabulary) must be preserved — the normalization applies to FRESH binds inheriting a dead life's rest state, not to a live session an operator suspended. Kin: KH 7.49 (a verb never stamps a state it did not cause — this is the inverse: a transition failing to stamp the state it DID cause), terminal-normalize work 0.41-0.43 (which closed the adjacent shapes but never reached this seam).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4121624Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4121652Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4121753Z ### REQ-ACL-SURFACE-VOCAB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4126488Z - Title: Access control is granular at the CONTROL SURFACE, not at the endpoint. A rule is (target endpoint x surface x subject) -> allow/deny, where a surface is a named remote-reachable operation class with an OPEN CONSTANT_CASE string vocabulary — new surfaces mint ids without a schema change, and an unrecognized surface string in a rule is legal (it governs nothing until that surface is built). The v1 set is the nine ratified ids: MSG, RC_VIEW, RC_ATTACH, DIGEST, WAKE, SUSPEND, XFER, SHELL_LINK, DISCOVER. WHAT THIS ENDS: the ADR-0009 whitelist was all-or-nothing per endpoint — admitting a node for messages also admitted it to drive the terminal, pull digests, and transfer files, because one access_check covered every wire-inbound family at once. On a SHARED SUBNET (member nodes belonging to different human operators, the gated adversary being agents) that coupling is the whole problem: there is no way to publish a view without handing over the keyboard. Each of the daemon's gate call-site families now tags itself with its surface, and the two families carrying a request-shaped distinction split: attach on AttachIntent (Viewer -> RC_VIEW vs Control/Take -> RC_ATTACH, see REQ-ACL-RC-VIEW-SPLIT), rest on the rest event (Wake -> WAKE vs Suspend -> SUSPEND). Gate: doc — the CONTEXT.md control-surface glossary entry; impl — the spt_store::access::surface vocabulary module, access_check's surface parameter, and the six call-site families tagging themselves; unit — the vocabulary shape (nine ids, CONSTANT_CASE, open to unminted strings) plus a per-surface decision table proving a grant on one surface does not admit the same node on another.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4126654Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4126682Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4126774Z ### REQ-ACL-SUBJECT-CHAIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4136738Z - Title: One FIRST-MATCH-WINS subject chain decides every access question, with an implicit-open bottom that preserves current fleet behavior. Order: per-endpoint sender-endpoint rule -> per-endpoint node rule -> per-endpoint subnet-wildcard rule -> node-scope node rule -> node-scope subnet-wildcard rule -> endpoint mode for the surface -> node mode for the surface -> join-time-captured subnet mode for the surface -> (nothing matched) OPEN. The stateful-firewall reply exemption and the same-node loopback Allow PRECEDE the chain and are not tiers — a degraded or locked-down node keeps its own conversations alive. Modes are the per-surface default posture for unlisted subjects (open/closed), settable at endpoint and node scope; the captured-subnet-mode table ships as a SCHEMA STUB in W1 (W2's join capture populates it — absent means the chain bottoms out open). Store schema v2 carries subject-kind entries at both scopes, migrates every v1 AccessEntry.nodes row into an equivalent (endpoint mode closed + one all-surface node Allow per listed node, so a listed node keeps access and an unlisted one loses it exactly as before), and DROPS the inert users field with the no-user-identity ruling (a shared subnet's trust unit is the node as human-proxy; 'user' is deliberately not a security identity). TIER 1 IS SCHEMA-REAL BUT INERT IN W1 (doyle ruling 2026-07-29, on todlando's pre-build finding): the design-of-record premise 'sender identity is daemon-stamped and nodes are trusted' is FALSE of its first clause today. The only wire record carrying a sender endpoint is WanMessage.from, which KNOWN-HAZARDS 7.5 (REQ-HAZARD-WAN-ORIGIN-AUTH) binds verbatim as reply-routing metadata 'never an authorization subject' — and it is caller-supplied (spt send --from; cli.rs resolve_from lets the explicit arg win over session detection), so keying a rule on it would admit a FORGED subject, the exact failure 7.5 exists to prevent. Precedent already ruled in-tree: REQ-MSG-5's classify_local_origin faces the same question and answers it with the session-proven perch id, noting '--from alone never confers an agent identity'. Independently, five of the six gate families (attach, xfer, rest, shell-link, digest) carry no sender endpoint on the wire in any form. So the kind persists, matches, and round-trips, but every W1 call site supplies None. Lighting it up needs an authenticated daemon-stamped sender field — a NEW additive field, never a repurposing of from — which is its own wave and its own REQ. Gate: doc — the CONTEXT.md endpoint-access-whitelist entry, whose false daemon-stamped premise this change corrects in the same diff, plus the control-surface-modes entry carrying the chain; impl — spt_store::access schema v2 (Subject/AccessRule/Modes/EndpointAcl/NodeAcl/CapturedSubnetModes), AccessStore::decide, the v1 migration, and the daemon gate threading origin subnet membership in; unit — the chain proven tier by tier (each tier decides only when every tier above abstains, bottom is open), the v1 verbs' polarity (allow restricts, revoke narrows without widening, open is the only widening), v1->v2 migration semantics, v2 round-trip of every construct, and TWO inertness guards — a store-level one proving the kind matches when fed and abstains when not, and a gate-level one proving no call site feeds it (that guard goes red on purpose if a later change threads a sender identity into the gate).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4136908Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4136938Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4137029Z ### REQ-ACL-FAIL-CLOSED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4144765Z - Title: A corrupt or unreadable access store degrades CLOSED, loudly (ADR-0053 — an ADR-level flip of ADR-0009's deliberate fail-open ruling). ADR-0009 justified fail-open explicitly: the whitelist was 'a same-subnet convenience boundary layered inside subnet membership, not the system's outer wall', because every member node was the one user's own machine. The SHARED SUBNET ruling breaks that premise — member nodes now belong to different human operators and the access layer gates agents — and a boundary that evaporates when its store file corrupts is not a boundary an operator can reason about. So a store that CANNOT BE READ refuses unlisted-subject traffic on every surface rather than admitting it, and says so on the refusing node naming the store path (silence plus refusal reads as network failure and burns diagnosis time). TWO THINGS SURVIVE THE DEGRADE: the stateful-firewall reply exemption (correlation state is a separate file keyed on the endpoint's own recent outbound — a degraded node keeps its own conversations alive) and the same-node loopback Allow. THE SPLIT THAT MAKES THIS SHIPPABLE: an ABSENT store file is NOT a degrade. It is the unconfigured baseline — every fleet node today has no access.json, and reading absence as closed would refuse all unsolicited cross-node traffic fleet-wide on upgrade. The two cases split on std::io::ErrorKind::NotFound and nothing else: never-created reads as an empty store whose chain bottoms out open; any other io error or a parse failure is a degrade. Absent-is-open keeps an unconfigured fleet reachable, unreadable-is-closed makes the boundary real. Consequence accepted per ADR-0053: a personal fleet with zero configured rules now blocks unsolicited cross-node traffic if its store file CORRUPTS — the failure is loud, local, and repairable, and the alternative (silent admission on a shared subnet) is the worse lie. Existing fail-open tests are repinned to the new contract as part of this diff (a product contract change, not a test fixup). Gate: doc — ADR-0053 and the CONTEXT.md control-surface-modes entry carrying the degrade rule; impl — AccessStore::load_checked/load_checked_from returning AccessDegraded (path + cause) with the NotFound split, and the daemon gate's refuse-plus-diagnostic arm ordered AFTER the reply exemption; unit — the degrade split (absent is baseline, corrupt and unreadable both degrade, diagnostic names the path) and the gate-level proof that the same call is allowed before corruption, refused on every surface during it, still allowed as a reply throughout, and allowed again once the store is repaired without a restart.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4144940Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4144974Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4145070Z ### REQ-ACL-RC-VIEW-SPLIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4148023Z - Title: Watching an endpoint's terminal and DRIVING it are separately grantable: attach gates on the request's AttachIntent — Viewer -> RC_VIEW, Control/Take -> RC_ATTACH. Before this, one access_check(endpoint, origin, Unsolicited) covered every attach intent, so admitting a node to view an endpoint necessarily admitted it to take the keyboard (and, with Take, to displace an incumbent controller). On a shared subnet that is the difference between showing a colleague's agent what happened and letting their agent drive yours. The split is keyed on the intent the REQUEST carries, evaluated at the serve side under the handshake-proven origin — never on anything the attaching side can restate after the gate. Kin: ADR-0042 (rc-attach truth) and REQ-ACL-SURFACE-VOCAB, which mints the two ids. Gate: doc — the CONTEXT.md control-surface entry naming RC_VIEW and RC_ATTACH as distinct v1 surfaces; impl — the attach_surface mapping and attach.rs gating through it; unit — the mapping over all three intents plus a decision table proving an RC_VIEW grant does not admit RC_ATTACH.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4148131Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4148159Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4148250Z ### REQ-ACL-DISCOVER-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4152190Z - Title: DISCOVER is a real gated surface: registry resolve/advertise and the resources blurb are filtered per viewer, so discovery leaks nothing a viewer could not reach. ADR-0009 NAMED this leg — 'discovery (resource advertisement) is gated by the first two gates' — and CONTEXT.md's resource-advertisement entry promises that an endpoint whose access rules exclude the viewer's node by naming DISCOVER in a deny never appears in that view; a legacy grant plus blanket-closed posture does not imply that exclusion because DISCOVER is default-on. Only the VISIBILITY half was ever built; the access half has been an unbuilt promise since M4. Un-gated discovery on a shared subnet is an inventory of every agent on every member node, including the ones an operator deliberately walled off — and a resources blurb is a yellow-pages description written to attract exactly the collaboration the access rules refuse. Gate: doc — the CONTEXT.md resource-advertisement entry (the promise this closes) and the control-surface entry minting the id; impl — the DISCOVER check on the registry resolve/advertise path plus per-viewer filtering of the resources blurb; unit — a viewer denied by a DISCOVER-naming rule sees neither the endpoint row nor its blurb, while a viewer allowed DISCOVER sees both, legacy blanket closure alone remains disclosed, and the filter is per-viewer rather than global.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4152352Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4152380Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4152482Z ### REQ-ACL-DISCOVER-DEFAULT-ON
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4160073Z - Title: DISCOVER IS ON BY DEFAULT: a `closed` posture at ANY mode tier -- endpoint mode, node mode, or the join-time-captured subnet mode -- no longer implies a DISCOVER deny, and the ONLY thing that closes DISCOVER is a deny that NAMES it: an access rule row, or a `per_surface` mode entry (engine-room-set at the node tier). Operator-ruled 2026-08-17 (releases#180/#181): being findable is what makes a knock -- the ask to be admitted -- possible at all, so a node that closed its posture to say 'do not talk to me' had also silently said 'and you may not ask', which was never the choice being made; the messaging-first majority pays for a discovery decision they never took. THE DEFAULT LIVES IN THE SURFACE VOCABULARY, NOT BESIDE THE CHAIN: the `surface::TABLE` row grows a `default_on` discriminant (single-source, the shape `attributable` already established) and exactly ONE method reads it -- `Modes::for_surface_governing`, which for a default-on surface resolves `per_surface` ALONE (exact key then case-fold, the releases#66 precedence rule VERBATIM) and declines the `self.all` blanket fallback. `Modes::for_surface` is untouched, so every reader that asks 'what posture is set here' keeps its present meaning; only the readers that DECIDE change. ALL THREE MODE TIERS AND `effective_posture` ROUTE THROUGH IT: the posture reading is deliberately the chain's own tiers in the chain's own order, so leaving it on the blanket would put two accounts of one fact out of agreement -- the exact failure that method exists to prevent -- and the `may_grant_node_subject` consequence is CONSISTENT rather than a hole, since post-change a node-subject DISCOVER allow admits nothing the default already does not. `MatchedTier::SurfaceDefaultOpen` is minted: a pass by surface default and a pass by chain bottom are different facts, needed by the ER/DISCOVER conjunction notice and the trust warning's pass-reason, and cheap only at mint. WHAT DOES NOT MOVE: ADR-0053's degrade (a store that cannot be read still refuses DISCOVER outright -- the default is a posture carve-out, never a licence to advertise policy we cannot read), REQ-ER-NOT-ADVERTISED's pre-chain engine-room carve-out (posture beats whitelist), and the redemption path, which is DISCOVER-free by design and node-tier-routed. Gate: doc -- the CONTEXT.md mode-tier entry stating the carve-out as ratified vocabulary, naming the one off-switch and the three things that do not move; impl -- the table discriminant, its single table-driven reader, the governing resolver, the three tiers, `effective_posture`, and the new tier; unit -- a blanket-closed node admits DISCOVER and STILL refuses MSG in one cell, an explicit DISCOVER-naming mode closes it at each of the three tiers SEPARATELY, a DISCOVER-naming deny ROW still denies, the case-folded key is honoured ON THE NEW PATH with exact-match precedence intact, the chain and `effective_posture` agree in both directions, the default-open pass is distinguishable from the implicit-open bottom, the reader is proven a function OF THE TABLE against a fixture the shipped table cannot express, and a degraded store refuses DISCOVER beside a readable blanket-closed one that admits it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4160245Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4160274Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4160393Z ### REQ-ACL-FORK-WITHOUT-DISCOVER-CONSEQUENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4167745Z - Title: A `FORK` GRANT WHOSE SUBJECT CANNOT RESOLVE THE ENDPOINT SAYS SO AT WRITE TIME -- a stated consequence, never a refusal: the rule lands exactly as typed and the operator is told that as written the subject cannot resolve the endpoint it may now fork, so the attempt fails later as an unresolvable subject. Forking a remote endpoint takes TWO surfaces and only one is obvious: `FORK` authorizes the operation, `DISCOVER` is what lets the grantee resolve the row at all. Field origin (releases#76, from the releases#29 cross-node rung): node B granted node A `FORK` alone, A could never fork, and granting the pair fixed it -- diagnosed empirically, not by reading. The operator-facing defect was never that the pair is required; it is that the requirement was INVISIBLE, since the write succeeds and reads back as typed. THE CONDITION IS THE CHAIN'S OWN `DISCOVER` VERDICT FOR THE SUBJECT, NEVER RULE-ROW PRESENCE, and the re-derivation matters because #76's own filed premise stopped being true inside this milestone: the filing reasoned that per-surface isolation closes every unlisted surface so a FORK-only grant DENIES DISCOVER, but read against the code a FORK rule simply does not COVER DISCOVER (`AccessRule::covers`), so DISCOVER fell THROUGH to the mode tiers and it was the blanket-closed posture there that refused it -- exactly what REQ-ACL-DISCOVER-DEFAULT-ON removed. A row-scan condition would therefore now be wrong in BOTH directions: silent on the explicit deny that still bites, loud on the blanket close that no longer does. ONE VERDICT, TWO CONSUMERS: the same predicate answers this write-time consequence and REQ-KNOCK-PRESCRIBES-FORK-PAIR, asked of one function rather than described twice -- this file already records what a second copy of an approval classifier cost. SUBJECT SHAPES ARE ANSWERED HONESTLY OR NOT AT ALL: a NODE subject is exact; a SUBNET WILDCARD is one rule with a verdict per machine, so the refused members are NAMED (with the count this node can SEE stated beside them, because a roster is this node's view and not the subnet's truth); a SENDER-ENDPOINT subject is deliberately NOT answered, since `FORK` carries no proven sender and such a rule matches no traffic at all -- its real defect is a different sentence owned by the attributability surface, and adding 'it could not resolve either' would rank a second problem above the first. A blanket rule (empty surface list) covers `DISCOVER` by definition and is never a gap; a DENY is never a gap. Gate: doc -- the CONTEXT.md entry stating the pair, the verdict-not-rows condition and the re-derivation that makes it necessary; impl -- the shared verdict function over a caller-held roster/subnet snapshot, the gap classifier, the consequence line, and the accept-site call; unit -- a FORK-only allow to a DISCOVER-denied node states the consequence, the same grant to a node that CAN resolve is silent (the earned silence), a FORK+DISCOVER grant is silent, a blanket grant is silent, a deny is silent, a subnet subject names the refused members apart from the seen count, and a sender-endpoint subject is silent by ruling rather than by accident.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4167917Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4167979Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4168084Z ### REQ-KNOCK-PRESCRIBES-FORK-PAIR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4173095Z - Title: THE KNOCK PRESCRIPTION PRESCRIBES THE PAIR WHERE THE PAIR IS NEEDED: when a pending knock asks for `FORK` without `DISCOVER` and the knocker's machine would still be refused `DISCOVER` on the target, `knock list` prescribes `spt knock approve <id> --surfaces FORK,DISCOVER` beside the form line, naming why -- the knocker would be granted an operation it cannot reach. Prescribed ONLY where the binary would otherwise refuse (doyle Q3), from the SAME predicate REQ-ACL-FORK-WITHOUT-DISCOVER-CONSEQUENCE answers, so the two statements about one question cannot drift; the rule an as-requested approval WOULD write is BUILT and handed to that predicate rather than described, which is the shape `approval_form` already established after a hand-written second copy of an approval classifier went stale in the field. IT RIDES BESIDE THE FORM LINE, NEVER REPLACING IT: the form line says what the SEAT must pass for the approval to be honored, this says what the approval must GRANT to be usable, and an operator who pasted the form line and stopped would write the exact grant that filed the request. `--approve-requested` IS NOT TAUGHT TO WIDEN: it means exactly what was asked for, and quietly granting a surface nobody requested would make that flag a liar at every other site that uses it -- so the prescription is an explicit `--surfaces` invocation the operator can read before pasting. Silent when the request already names `DISCOVER`, when it is blanket (which covers every surface), when it names no `FORK`, or when the knocker's machine can already resolve the target. Gate: doc -- the CONTEXT.md fork-pair entry, prescription half; impl -- the prescription composer over the built rule and the shared verdict, and its `knock list` call site below the form line; unit -- a FORK-only knock from a machine that cannot resolve gets the paired invocation with DISCOVER appended, the same knock from a machine that CAN resolve gets nothing, a FORK+DISCOVER request gets nothing, a blanket request gets nothing, and the composed command parses as the approve verb's own `--surfaces` form.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4173249Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4173277Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4173382Z ### REQ-KNOCK-NOTIFY-INSTIGATOR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4183880Z - Title: THE THREE CONSENTED KNOCK COURTESIES REACH THE PARTY THEY ARE OWED TO -- an approval notifies the KNOCKER, a redemption notifies the code's MINTER, and each is ADDRESSED to that endpoint rather than aimed at whoever the user was last seen at. Field origin (releases#149/#169): lia minted an invite code, it was redeemed, and lia was never told; the notification existed, landed on the right NODE, and could not surface. THREE STRUCTURAL FAULTS IN ONE SHAPE, written the same way at all four producing sites (local approve, cross-node approve, local redeem, cross-node redeem): the recipient rode the `from_id` slot because the row had NO ADDRESSEE FIELD, so the notif said the recipient issued it; the subnet was the empty string, which is not a member subnet, and BOTH surfacing paths walk member subnets only -- `resurface_at_boundary` iterates `policy.subnets` (built from real memberships) and first-fire admits candidates through `policy.visible(id, subnet)`, false for every endpoint at `""` -- so the row was unreachable by construction; and they called `NotifStore::produce_scoped` DIRECTLY, bypassing the daemon's produce-and-fire front door, so nothing was delivered live either. THE FIX IS AN ADDRESSED NOTIF, NOT A LOUDER MISS (doyle Q1, ADR-0046 amendment 2): `NotifRow` grows an optional `to_id` (additive serde, the `SubscribeReq.code` precedent -- an N-1 peer parses an addressed row clean and reads it as unaddressed), honored at BOTH surfacing paths -- first-fire targets the ADDRESSEE and the address BEATS most-recently-active, with NO fallback to the MRA winner (an absent addressee yields NoTarget and the row waits for that endpoint's own next boundary), and a boundary resurface at any OTHER endpoint SKIPS the row with its own outcome rather than a suppression, because `not you` and `not now` are different facts. Merely giving the rows a real subnet was REJECTED as a fix: delivery would stay presence-MRA, so on a 14-endpoint node the approval notice still lands on a bystander. Re-homing the three onto the message spool was rejected too -- they were deliberately put on the notif spool against inbox delivery by the ratified W4 decision, and the spool would silently retire it. ONE PRODUCER FOR ALL FOUR SITES, with a REAL member subnet: the correlation subnet the exchange rode (the member subnet whose registry has seen the peer's node) where one is derivable, else the first member subnet the ADDRESSEE IS VISIBLE IN -- visibility is the condition both surfacing paths impose, so a subnet the recipient is hidden in would reproduce the unreachable row under a nicer name. THE APPROVAL COURTESY IS LIFTED AHEAD OF THE MUTUAL ARM: the cross-node producer sat after the `ReceiptOutcome::Consumed` arm, which only a `--mutual` knocker reaches, so a plain knock's receipt returned `Ignored` and the ORDINARY knocker -- the party who asked, with no other way to learn the answer -- was structurally un-notifiable. It is now produced on every APPROVAL, proven by the outbound knock row THIS node sent (matched on correlation id, the answering endpoint and the handshake-proven origin node) rather than by the pre-authorization, so a receipt matching none of our knocks notifies nobody and a guessed correlation id cannot become a spray channel; a DENIAL still notifies no one, since the ratified set does not extend to it. A REPLAYABLE arrival carries a coalesce key naming the EXCHANGE (`spt-core:knock-answered:<correlation-id>`) and not the kind -- two approvals are two facts and both stand, while two receipts for one knock are one fact said twice, so ADR-0046 decision 2's supersession leaves exactly one LIVE courtesy per knock instead of nagging. Gate: doc -- ADR-0046 amendment 2 stating the addressee, both honoring paths, the member-subnet rule and the lift; impl -- the `to_id` field, column and addressed produce front doors, the addressed first-fire target and the resurface skip, the shared courtesy producer and its subnet chooser, the outbound-knock proof seam, and all four producing sites moved onto it; unit -- per courtesy produce->fire->surface, an addressed row NEVER lands on a bystander (the 14-endpoints-on-a-box case), an absent addressee yields NoTarget rather than the MRA winner, a resurface elsewhere skips and the addressee's own boundary surfaces it, a plain (non-mutual) approval receipt produces the courtesy, a receipt matching no outbound knock produces nothing, and the subnet chooser refuses a subnet the addressee is hidden in.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4184085Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4184114Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4184227Z ### REQ-ACL-ER-DISCOVER-CONJUNCTION-NOTICE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4193067Z - Title: AN ACCEPTED RULE THAT CANNOT CURRENTLY TAKE EFFECT SAYS SO: an endpoint-scoped access mutation naming the ENGINE ROOM is accepted and, when its `DISCOVER` half cannot presently disclose anything, the accept site prints a LOUD CONJUNCTION NOTICE naming the engine room's advertisement whitelist as the other lever and its current posture. Disclosure of the engine room is an AND across two records: `DiscoverGate` checks the ER advertisement filter BEFORE the access chain (REQ-ER-NOT-ADVERTISED, ratified and unchanged by this requirement), so a rule accepted against an empty whitelist discloses NOTHING while reading as policy in force. Field case: ENLYZEAM's sole `DISCOVER` allow was ER-scoped `any-of SPT_DEV` with an empty whitelist, and every SPT_DEV peer saw only its own rows (hertz RCA 2026-08-05). THE RULED SHAPE (doyle, releases#163) IS ACCEPT-AND-TELL, and both halves of it are load-bearing: do NOT refuse the mutation -- the rule IS the conjunction's legitimate chain half and refusing it would make the only expressible half unexpressible -- and do NOT route it into the ER whitelist, because that record is the human/engine-room seat's authority and an AGENT-INVOCABLE VERB MUST NOT MUTATE IT. Kin doctrine: refused-rather-than-quietly-ignored (#5); the defect is DECLARE-SITE VS ENFORCE-SITE SILENCE, and acceptance is not the defect. WHICH HALF IS MISSING IS NAMED, not merely that one is: the whitelist names nobody; the whitelist does not name the machine this rule admits (checkable EXACTLY for a node subject, because the whitelist is node-keyed -- an advertisement lands on a peer NODE and every endpoint there reads it -- and deliberately NOT guessed for a subnet wildcard, which this site cannot enumerate into node keys, NOR for a sender-endpoint subject, which names no node at all: resolving that id to a machine would be a guess wearing a lookup, since the directory answers where this node last SAW that endpoint and not where the grant will be exercised from, so a notice built on it would name the wrong machine with full confidence. Both fall-throughs are the same non-guess doctrine and both are PINNED BY A CELL, because an unstated deliberate silence is indistinguishable from an unhandled arm to the next reader (doyle, #146 review); or the whitelist would disclose and the posture withholds ahead of it. GAPS ARE REPORTED WHITELIST-FIRST THOUGH THE GATE CHECKS POSTURE FIRST: posture is a state that changes the moment a controller attaches, the whitelist is the durable lever the operator must actually edit, and naming a transient blocker while a permanent one sits underneath sends them to fix the wrong thing. ONLY AN ALLOW IS CLASSIFIED -- a deny's `DISCOVER` half takes effect the moment it lands, so a notice there would teach that a refusal is conditional when it is not -- and a REMOVAL never reaches the notice by an explicit op guard rather than by the decision it carries, since a removal restates the tuple with the WIDENING polarity the gate wanted and not the rule's own. The record is read only when the target IS the engine room, so an ordinary rule mutation gains no file read. Gate: doc -- the CONTEXT.md entry stating the conjunction, the accept-and-tell shape, the whitelist-first order and what must not happen; impl -- the pure classifier over (target-is-ER, rule, whitelist, posture), the notice composer, and the accept-site call after the acceptance line; unit -- each gap arm classified apart, an ALLOW that the whitelist DOES name plus an online posture yields NO notice (the silence is earned, not merely unimplemented), a deny and a removal are silent, a non-ER target is silent, and the notice text names the whitelist as the other lever and the posture as its current state.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4193285Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4193309Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4193410Z ### REQ-ACL-SURFACE-MODE-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4202557Z - Title: A NODE CAN CLOSE ONE SURFACE FROM ITS OWN ENGINE ROOM: `spt api access-node-surface-mode <SURFACE> <open|closed|unset> <id>` writes the NODE TIER's `per_surface` entry for exactly one control surface, and it is the ONLY off-switch a node owner has for a default-on surface. It exists because REQ-ACL-DISCOVER-DEFAULT-ON took the blanket posture out of a default-on surface's reach: after that change `access-node-mode closed` no longer closes DISCOVER, so the milestone's own promise -- a node owner who wants DISCOVER disabled can do so from their node's engine room -- is satisfied by this verb or by nothing (doyle 2026-08-17: shipping the carve-out without the off-switch is a greenlit-form deviation, and building it is the smaller act). THE NARROW TWIN, NOT A NEW AUTHORITY: it passes the SAME shared engine-room gate as `access-node-mode` (`api::engineroom::gate`, ADR-0052 decisions 5 and 6 -- one function, every engine-room verb through it, deliberately stated without a count) and needs NO empowerment, for the identical reason the blanket verb needs none: a node's own posture is its own business and the bring-up gate already proved membership. It lives in the `spt api` family rather than the rule-mutation family because that is where the gate, the auth proof and the ER capability vocabulary already are. NODE TIER ONLY: the endpoint tier's lever remains a deny row that names the surface, per-subject, until the concierge modernization mints its own form. THREE STATES, NOT TWO: `unset` REMOVES the entry, which is not a spelling of `open` -- an explicit open PINS the surface open against any later change of the vocabulary's default, so a two-state verb would make closing a default-on surface a one-way door whose only exit is a pin the writer never meant to author; the removal folds case for the reason every releases#66 reader does, since an entry stored as `discover` is the one that GOVERNS and a clear that missed it would report 'nothing was set'. THE PIN MUST BE VISIBLE (doyle's rider, 2026-08-17): an access view renders a pinned open distinguishably from a default open -- `DISCOVER open (pinned)` against `DISCOVER open (default)` -- because the same two words otherwise describe two different facts, and a blanket-closed summary that said only `closed` would read as closing DISCOVER too, which is exactly the reading the carve-out removed. The surface token is validated against `surface::TABLE` and canonicalized at the boundary: an unminted id stays legal in a RULE, where it governs only itself, and is REFUSED here, because this verb writes the key the chain READS and a typo would otherwise sit in the view as a posture that governs nothing. Gate: doc -- the CONTEXT.md mode-tier entry naming the verb as the node-tier off-switch and stating the three states; impl -- the store's node-tier per-surface setter, its case-folding clear and its read half, the api verb and its dispatch arm, the shared-gate call, the vocabulary refusal, and the pinned/default render in the access view; unit -- the verb writes only the named surface and leaves the blanket alone, `unset` restores the default rather than pinning open (with the default-on and ordinary cases asserted apart), a case-differing stored key is the one cleared, an unknown surface is refused with nothing written, a non-engine-room caller is refused by the shared gate, and the view renders pinned-open, default-open and closed as three distinguishable readings.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4202758Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4202791Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4202895Z ### REQ-UNLISTED-FOOTER-OMITTED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4207904Z - Title: THE UNLISTED SECTION RENDERS ITS ROWS AND NOT AN ESSAY ABOUT THEM: `endpoint list` omits the two footer explainer lines under the UNLISTED heading -- the always-printed `evidence is what this node recorded; the presence word is their own node's answer, asked just now`, and the conditional `not asked -- no node is recorded for that row, so there was nobody to ask`. Operator-filed (releases#184, split from releases#149): both were confusing rather than helpful, and they were the only two lines in the family that explained the family to a reader who had already read the rows. WHAT STAYS, EXPLICITLY, because the deletion must not strand the section: the purple heading that NAMES what the section is, every per-row cell and its phrases -- the status word, the provenance label, the node label including the stated `node unknown`, the presence word, the `not asked` cell itself, and the evidence detail -- and the CONDITIONAL `unknown` legend, which the filing does not name and which explains a word an operator is about to act on that its own spelling does not carry (a relay-hosted peer cannot tell busy from offline). The retained legend's own doc comment is corrected in the same change from `the two legends below` to what remains, because a count that no longer matches its code is the stale-carried-forward sentence the next reader trusts. THE RETRACTION SWEEPS THE STRINGS, NOT JUST THE RENDER SITE (doyle Q5): the deleted phrases are hunted through the test estate so no assertion outlives the text it asserts -- an assertion on a deleted string is either a red or, worse, a green on a substring the ROW still carries. THE OMISSION IS PINNED BY A NEGATIVE CELL over a fixture that HAS an unasked row, since a fixture without one would pass on a footer that is merely unreached rather than gone. Gate: impl -- `render_unlisted` without the two lines and with its legend comment corrected; unit -- one rendered fixture carrying an unasked row asserts BOTH phrases absent while the heading, the row's `not asked` cell and the retained `unknown` legend are still present, so the cell separates the footer from the per-row vocabulary rather than merely counting lines.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4208048Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4208077Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4208173Z ### REQ-SUBNET-DUAL-SEED-MINT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4211721Z - Title: `subnet create` mints TWO TOTP seeds in one ceremony — the member key (today's subnet seed, unchanged) and a second admin key — and provisions both into the creator's authenticator at that single moment (ADR-0051 decision 1, CONTEXT.md 'member key / admin key'). An admin key IS a membership key; a member key is NOT an admin credential. The same ceremony captures the subnet's universal control-surface mode: prompted with NO PRESELECTION (an operator must state open or closed rather than accept a default that a hurried Enter would pick for them), with `--open`/`--closed` bypassing the prompt for scripted creation. This is the moment the whole two-key model depends on: the admin seed has no reveal verb ever (REQ-SUBNET-ADMIN-SEED-REPLICATION), so a creation path that mints it without displaying it, or displays it without persisting it, permanently destroys the subnet's admin authority with no recovery but re-minting the subnet. Gate: doc — the CONTEXT.md two-key entry and ADR-0051; impl — dual mint at create, both authenticator provisionings, the no-preselection mode prompt and its flag bypass; unit — creation yields two DISTINCT seeds, the mode is recorded from prompt or flag, and no code path yields a subnet holding one seed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4211872Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4211906Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4212011Z ### REQ-SUBNET-ADMIN-CODE-JOIN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4214673Z - Title: The join ceremony accepts EITHER subnet code: the SPAKE2 responder computes the member-key TOTP and the admin-key TOTP and admits a joiner proving either (ADR-0051 decision 1 — 'an admin key IS a membership key'). Indistinguishable from the joiner's side: the ceremony must not tell a joiner, or an observer of the exchange, WHICH key authenticated beyond what the protocol inherently requires — an oracle that separates admin codes from member codes turns every join attempt into a probe for which secret a machine holds. Rate limiting, transcript binding and replay defenses apply identically to both, so the second acceptable secret does not become the cheaper one to attack. Gate: doc — ADR-0051 decision 1 plus the CONTEXT.md two-key entry; impl — the responder's dual-code computation and admit path; unit — a member code joins, an admin code joins, a wrong code is refused identically to today, and the refusal/accept surface carries no key-kind discriminator.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4214777Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4214806Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4214917Z ### REQ-SUBNET-ADMIN-SEED-REPLICATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4218126Z - Title: Every member node holds BOTH subnet seeds — the admin seed replicates at join exactly as the member seed does — because empower verification and admin-code joins are LOCAL operations any member node must be able to serve without consulting a privileged peer (ADR-0051 decision 2; the mesh stays symmetric, authority rides a key rather than a node). Carries the NO-REVEAL invariant, which is the load-bearing half: there is no admin show-code, no QR re-provision, no `--json` field, no debug/diagnostic/error/log rendering of the admin seed ANYWHERE — it is displayed exactly once, at creation, and thereafter no node can leak what no node can reveal. A lost authenticator entry is irrecoverable by design (ADR-0051 decision 3): re-mint the subnet. The invariant binds tests too — a test that asserts the seed's VALUE by printing it is itself the leak (secret-probe discipline: never expand a secret into an observable sink). Gate: doc — ADR-0051 decisions 2 and 3; impl — admin-seed replication on the join path and the absence of every reveal surface; unit — a joined node holds both seeds and can verify an admin code locally, and no CLI/JSON/diagnostic output path emits the admin seed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4218279Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4218307Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4218409Z ### REQ-ACL-SUBNET-MODE-CAPTURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4221938Z - Title: A subnet's control-surface mode is recorded on the subnet and CAPTURED AT JOIN TIME into the joining node's own store — the W1 captured-subnet-mode table stops being a stub and lights up tier 8, the chain's bottom fallback (CONTEXT.md 'control-surface modes' resolution order). Capture, not lookup, is the point: a node's effective posture must be a local, immutable fact it consented to when it joined, so a subnet owner cannot retroactively tighten or loosen what an already-joined member enforces (that is what makes the advisory-gossip posture in REQ-ACL-MODE-ADVISORY-GOSSIP coherent rather than a race). Migration posture is explicit and must be tested: an EXISTING subnet has no captured mode, so tier 8 stays absent, the chain bottoms out open, and fleet behavior is preserved exactly — an upgrade must not silently close a running mesh. Gate: doc — the CONTEXT.md control-surface-modes entry (three levels and the resolution chain); impl — the subnet-mode record, the join-time capture into the endpoint access store, and tier 8 reading it; unit — a joined-with-closed node refuses where an unlisted subject falls through to tier 8, a joined-with-open node admits, and a pre-existing subnet with no capture bottoms open.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4222089Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4222122Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4222228Z ### REQ-ACL-MODE-ADVISORY-GOSSIP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4224842Z - Title: A subnet-mode change gossips ADVISORILY — it produces a notification and nothing else. An existing member's EFFECTIVE posture never changes remotely: the captured mode (REQ-ACL-SUBNET-MODE-CAPTURE) is immutable except through the node's own refresh (REQ-ACL-ACCESS-REFRESH-VERB), so no remote party can reach into a member node and re-posture its gate. This is the difference between a subnet owner ADVISING members of a policy change and COMMANDING their enforcement — on a shared subnet whose members are different humans, only the former is defensible, and a producer that quietly applied would be a remote write to security material. Gate: doc — the CONTEXT.md control-surface-modes advisory-gossip sentence; impl — the notif producer on subnet-mode change, with NO apply path; unit — a mode-change gossip raises the notification and leaves the receiving node's captured mode and its decisions byte-identical.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4224956Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4224979Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4225090Z ### REQ-ACL-ACCESS-REFRESH-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4227880Z - Title: `spt api access-refresh` is MINTED THIS WAVE BUT REFUSES — the verb exists, parses and is documented, and its refusal names why: the capture-refresh is engine-room-only, and engine-room enforcement (ADR-0052) does not land until W3. Minting the refusing verb now is deliberate: it fixes the contract adapters and the engine-room brief will be built against, and it makes the wave that implements enforcement a change to ONE behavior rather than a new surface plus its gate. A refusal that merely says 'unknown command' would invite an adapter to route around it. When it does light up it updates ONLY the node's captured subnet-level fallbacks — never the node's own rules, which are the operator's, not the subnet's. Gate: doc — the CONTEXT.md capture-refresh sentence naming the verb and its engine-room-only gate; impl — the verb, parsing, and a clear refusal naming the W3 dependency; unit — invoking it refuses with the engine-room diagnostic, changes no stored state, and is not reachable as an unknown-command fallthrough.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4228043Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4228072Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4228176Z ### REQ-SUBNET-ADMIN-SEED-ROTATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4231963Z - Title: Evicting a node rotates BOTH subnet seeds, not just the member seed. ADR-0005 #10 made removal real revocation by rotating the seed a removed node still holds; the two-key model (ADR-0051) hands every member a SECOND durable secret, and `rotate_seed` does not touch it — so as of the two-key wave an evicted node keeps the admin seed forever. That is worse than residual admin authority: an admin key IS a membership key (REQ-SUBNET-ADMIN-CODE-JOIN), so the evicted node can REJOIN the subnet on its admin TOTP, and eviction becomes toothless against exactly the nodes that were trusted enough to hold elevated credentials. ADR-0051's consequences acknowledge admin-seed rotation as unassigned milestone work; this is that work. Minimum shape: the eviction path rotates both seeds and redistributes both over the same replication machinery the join path uses, with the one-deep prior-generation grace applying to the member seed as today (an admin seed has no re-provisioning surface, so its grace question is answered by the same replication, not by a reveal). Gate: doc — ADR-0051 amended with the rotation rule; impl — the eviction/rotation path covering both seeds; unit — a rotated subnet's admin seed changes, and a node holding only the pre-rotation admin seed neither verifies an admin operation nor rejoins.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4232117Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4232151Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4232249Z ### REQ-ER-RESERVED-ENDPOINT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4235412Z - Title: A node has exactly ONE engine-room endpoint, and 'exactly one' is STRUCTURAL rather than policed: the engine room lives at a reserved per-node endpoint id, so a second one cannot be created any more than a directory can hold two entries of the same name (ADR-0052 decision 1). It is an ordinary agent endpoint in substrate — harness-adapter-backed, spt-hosted, minded, so it can be briefed on and reason about the node's access posture — and an extraordinary one in lifecycle: its home subnet and its bound harness adapter are settable ONLY through the create/reset ceremony (REQ-ER-PURGE-RESETS), never by an ordinary endpoint edit. Creation IS that ceremony run against an empty record — one code path, so a creation that skipped a lock a reset applies cannot exist. Gate: doc — ADR-0052 decision 1 and the CONTEXT.md engine-room entry; impl — the reserved id, the engine-room record with its home subnet and bound adapter, and the single create/reset code path; unit — the reserved id resolves to at most one record, creation and reset run the same path, and an ordinary endpoint mutation cannot change the bound adapter or home subnet.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4235520Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4235549Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4235650Z ### REQ-ER-PURGE-RESETS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4238702Z - Title: `endpoint purge` against the engine room RESETS it rather than deleting it, and requires OS elevation to do so (ADR-0052 decision 4). Reset-not-delete is what keeps 'one engine room per node' structural: a node from which the engine room can be deleted is a node that can be left with no governance surface at all, and the recovery path would then be a create verb — the very thing REQ-ER-RESERVED-ENDPOINT removes. Elevation is the right gate HERE (unlike bring-up, REQ-ER-BRINGUP-TOTP-GATE) because the ceremony sets node-scope facts — the home subnet and the bound harness adapter — and because it must work at bootstrap, when the node holds no subnet material to prove a TOTP against. The reset is the ONLY way to change either fact. Gate: doc — ADR-0052 decision 4; impl — the engine-room arm of the purge path, its elevation requirement, and the reset outcome distinct from the delete outcome; unit — the purge decision table (engine room plus elevation yields reset, engine room unelevated refuses, an ordinary endpoint is unaffected) and a reset record retaining its reserved identity.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4238866Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4238894Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4239074Z ### REQ-ER-CEREMONY-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4243491Z - Title: The engine-room ceremony is invocable: `spt endpoint engine-room <subnet> --adapter <id>` runs the one create/reset code path (`provision_at`), reporting Created against an absent record and Reset against a present one (ADR-0052 §4a, fast-follow grill 2026-07-30). Before this verb the ceremony had ZERO production call sites — a user could not set an engine room up at all. Its gates, in refusal order: BOTH arms refuse invocation by an SPT agent, detected on env markers AND on process ancestry against the broker-hosted sessions' recorded pids (defense-in-depth in front of both arms, never a substitute for the reset elevation gate; ancestry powers only this REFUSAL, never a grant — the direction that keeps the F-024 ancestry-for-auth parking intact); an unjoined subnet refuses (no seeds to verify a bring-up code against later); an unregistered adapter refuses (bring-up fails closed on it anyway — fail at bind time instead); then creation (absent record) proceeds UNELEVATED — bootstrap friction ruled to outweigh pre-emption, the window closes permanently at the first run, docs say run the ceremony early — while reset (present record) requires confirmed OS elevation, with Unknown refusing like the purge gate. Gate: doc — ADR-0052 §4a; impl — the verb, the pure ceremony decision, the two-layer agent detection, and the provision_at call; unit — the decision table pinning agent-deny-beats-elevation on both arms, bind-time refusals before the arm split, create-unelevated across every elevation, and reset refusing on NotElevated and Unknown alike.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4243643Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4243672Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4243768Z ### REQ-SUBNET-REVOKE-ADMIN-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4246840Z - Title: `spt subnet revoke` (both forms, --force-rotate-seed included) requires the subnet's CURRENT admin TOTP — a member code is insufficient, and OS elevation stays on top answering its different question (ADR-0051 §2a, FF grill 2026-07-30). Eviction is a subnet-governance act, and the proof doubles as the identity gate for the re-surface: only the proven incumbent admin is shown the replacement key. The gate runs BEFORE any write, so a cancelled, thrice-wrong, or non-interactive attempt (refused up front — the gate needs a human and the ceremony after it needs one more) leaves roster, schedule, and seeds untouched. Acceptance is the same ±1-step window every other typed-code ceremony uses. A subnet predating the two-key model has no admin authority to prove; it proceeds loudly on elevation alone. Gate: doc — ADR-0051 §2a; impl — the per-subnet gate in the revoke path, ordered before all writes; unit — the windowed code acceptance (shared with the capture proof) and the nothing-written refusal orderings exercised at the gate seam.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4246954Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4246987Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4247082Z ### REQ-SUBNET-ADMIN-RESURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4251935Z - Title: Rotation re-surfaces the NEW admin key exactly once, to the human who just proved the OLD one, via a PARKED pending seed (ADR-0051 §2a + the parked-pending-key ruling, FF grill 2026-07-30). Choreography: after the revoke's admin gate passes, the pending admin seed is minted where the human is (never at the unattended rotation site), displayed with the same code-free capture-proof ceremony as create, proven captured, and PARKED on the rotation schedule BEFORE the tombstone write — so 'schedule exists but parked seed absent' is a corruption class, never a race. The window-close rotation ADOPTS the parked seed instead of minting; a later revoke in the same window re-displays the SAME parked key behind its own proofs (one pending key per window, however many humans capture it, one epoch bump at the close); --force is the same choreography with the window degenerate (park, rotate now, clear). DEGRADE, ruled: a close with the parked seed absent or corrupt rotates the MEMBER seed anyway — the evicted node must not stay inside member fabric waiting on admin choreography — keeps the OLD admin seed in force, and is LOUD (stderr + a node-scope notif naming the state and the recovery verb, revoke --force-rotate-seed); never a silent skip, never a bricked close. The parked seed is cleared on adoption. The member key never re-surfaces at revoke (show-code covers it). Gate: doc — ADR-0051 §2a; impl — the park/parked schedule fields, the adopt-not-mint rotation, the ceremony driver, and the degrade loudness; unit — park requires an existing entry, never overwrites within a window, round-trips, reads corrupt-as-absent; rotation adopts the parked seed and degrades member-only keeping the old admin key.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4252111Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4252144Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4252259Z ### REQ-SUBNET-CREATE-CAPTURE-PROOF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4255929Z - Title: `subnet create` proves the admin key was captured before anything persists (ADR-0051 §2b, FF grill 2026-07-30). Ceremony order, binding: the admin material displays FIRST — labelled otpauth URI + terminal QR, with NO current TOTP code anywhere on screen, because that absence is the proof's soundness (the typed-back code cannot be produced from what the screen shows, only from an authenticator that captured the seed); the human types a current admin code back, accepted within the same ±1-step window the pairing ceremonies use; the admin material is then cleared, scrollback included; and only then does the member material display, at the very end. Creation does not complete without the proof: the mint persists only after it, so a cancel, three wrong codes, or a non-interactive stdin (refused before any material is written into a pipe) leaves NO subnet — never a subnet whose admin key nobody holds, and decision 3's irrecoverability cost stays a choice rather than an accident of a missed scan. Gate: doc — ADR-0051 §2b; impl — the phased ceremony driver, the code-free capture display, the windowed proof check, and the proof-gated persist; unit — the capture display carries the provisioning material and none of the window's current codes, and the proof check accepts exactly the ±1 window.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4256085Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4256114Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4256227Z ### REQ-SUBNET-KEY-SCREENS-LABELLED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4265079Z - Title: The `subnet create` ceremony prints TWO secrets minutes apart, and each display LEADS WITH A PROMINENT LABEL naming which key it is — `--- ADMIN KEY (<ceremony>) ---` and `--- MEMBER KEY ---` — then states WHAT THAT KEY IS FOR in the operator's own terms rather than only how to store it. Labelling is the correctness half: two unlabelled code-plus-QR blobs in one ceremony are two chances to scan the more powerful secret into the wrong authenticator entry, and the admin key is the one that cannot be shown again. The ADMIN display names the capability the key actually confers — reaching any `spt endpoint engine-room` linked to the subnet and directing it to change the node's security mode, its access rules for the node and its endpoints, and the grants collaborating agents need — and states that the admin key DOUBLES as a member key, which is the fact deciding whether an operator must keep both. The MEMBER display names joining new nodes from anywhere, sharing with others whose nodes must join, re-viewing the key with `spt subnet show-code`, and scanning the QR into an auth app to pair again later. STRUCK, and it must not return: 'as a second entry' on the admin screen, which described the authenticator's bookkeeping — the one thing the operator does not need told — and made the more powerful of the two keys read as a footnote to the other; and the member blob's trailing re-pair sentence, whose remedy is now stated ONCE, on the bullets that teach what the key is for, because a ceremony stating a remedy twice invites the two spellings to drift. That sentence carried TWO arms and BOTH survive on the list — `show-code` and the auth-app QR — because the issue's own bullets duplicated only the first, so striking the sentence on the strength of that duplication would have dropped operator information the screen used to carry, and a loss needs a positive justification (doyle, releases#175). BOTH halves are asserted: the struck sentence must not return AND the QR arm must not go missing, the second being the row without which the loss passes silently. The one-shot warning SURVIVES the reshape and moves to its own line beneath the header: a header carrying a sentence is a header that reads as prose, and 'shown once, here, and never again' is the whole reason the admin display exists. `show-code` gains no header — it is a single-key surface with nothing to be confused with — and the member blob still carries NO admin material, which the capture-proof requirement already binds. Gate: doc — the networking overview section naming the two labelled screens and what each key is for; impl — the two composers, with the struck phrases removed at their only sites; unit — each display leads with its label, each carries its purpose list, the two struck phrases are asserted ABSENT (a later reword that quietly restored either would otherwise pass), and the ceremony word still distinguishes the create display from the rotation one.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4265340Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4265369Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4265574Z ### REQ-ACCESS-RETIRED-VERB-REFUSAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4272027Z - Title: A RETIRED SUBCOMMAND OF `spt endpoint access` REFUSES BY NAME RATHER THAN FALLING THROUGH ITS OWN OPTIONAL POSITIONAL AND ANSWERING PLAUSIBLY. `access` takes an optional endpoint id positionally, so once `list` and `rules` stopped being subcommands (retired when the roster views replaced them) clap handed those tokens to the POSITIONAL, and the view reported `no access entities ruled for 'list'` at exit 0 -- a well-formed, confident report about an entity nobody has ever created. Found by flynn in the v0.49.0 field verify (releases#67). THE DEFECT IS NOT A MISSING ERROR MESSAGE, IT IS AN ANSWER: the sentence is TRUE of any name nobody has ruled, so it is indistinguishable from the real result for a real endpoint, and an operator or agent still carrying the old form reads it as a report and stops looking. The same failure shape as a stale carried-forward instruction -- the surface looks diligent and is wrong. MEASURED BEFORE THE FIX, and the measurement widened the filing: `rules` falls through IDENTICALLY, so the population is the retired-token FAMILY and not the one token the issue named. The node tier is NOT affected and that was checked rather than assumed: `spt node access` declares no positional at all, so clap refuses an extra argument natively. THE REFUSAL FAILS OPEN ONTO A REAL ENDPOINT. This guard is added to a path that previously accepted EVERY positional, so it is a narrowing, and a narrowing has an unruled arm: an endpoint genuinely named `list` must stay viewable. The known-target check therefore runs FIRST and wins -- a fix that made a real target unreachable would be a new defect wearing the old one's repair. Known means the access store rules it or a local perch carries the id; the store is already loaded at that point, so the check costs no read. The token match is case-folded, because an operator who typed the old verb in any casing typed the old verb. Gate: impl -- the retired-token table with its replacement guidance, the case-folded lookup, the refusal composer naming token then retirement then the working form, and the guard placed AFTER the known-target check inside the view; unit -- a decision table whose expectations are WRITTEN OUT AS LITERALS: each retired token refuses with a nonzero exit and names its replacement, an ordinary unruled endpoint id still gets the honest roster sentence (the silence the fix must not swallow), a real endpoint that happens to BE named `list` is viewed rather than refused, the casing variants refuse alike, and every token in the table is a token the current grammar does NOT accept as a subcommand -- walked against the real parser, so a token that comes BACK as a verb cannot sit here refusing itself.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4272212Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4272245Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4272344Z ### REQ-ACL-VIEW-ROSTER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4276258Z - Title: Access views are roster-first (CONTEXT.md 'access entity', FF grill 2026-07-30): `spt endpoint access [<endpoint>]` lists each ruled target's access entities — the subnets, nodes, and endpoints its own rules name — grouped by type in that order, each with its rule count; a subnet or the home node also carries its mode summary; a captured-mode subnet is listed even with zero explicit rules (a mode source is part of the posture picture); external entities with no rules for the target are omitted entirely; a ruled endpoint resolves to `<id>@<node> (<shared subnets>)` where this node's registry can see it and renders bare where it cannot (ruled-but-unresolvable must not hide the rule count). The view is node-sovereign — no remote rule-read exists; viewing another node's rules means running the CLI there. Supersedes the `access list` prose view; the `--json` surface re-homes the old shape's explicit `locked` flag onto the roster envelope. Known limit, documented: an endpoint literally named after a write verb (allow/revoke/open) parses as the subcommand and loses the positional path. Gate: doc — the CONTEXT.md access-entity entry; impl — the roster builder, renderer, endpoint directory, and the superseding CLI surface; unit — the roster grammar (grouping order, counts, mode annotations, bare-vs-resolved endpoints, explicit empty line) and the parse surface.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4276420Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4276453Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4276554Z ### REQ-ACL-VIEW-DRILLDOWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4279555Z - Title: The granular rule list is viewable only per named ruled entity (CONTEXT.md 'access entity'): `spt endpoint access [--endpoint-rules <id> | --node-rules <node> | --subnet-rules <subnet>]` — mutually exclusive flags — renders exactly the rules whose subject names that entity, through the SAME ruleset-table renderer the engine-room briefing carries (REQ-ER-RULESET-TABLE), filtered on the TYPED rule subject rather than by re-parsing the rendered subject word (a rendered-string match is a second literal waiting to drift). A target positional scopes the slice to that endpoint's rules plus the node-scope rows that also decide for it; the drill's `--json` emits the rows verbatim. The one-flat-dump-of-everything view is deliberately gone — reading a posture is a comparison per entity, not a scroll. Gate: doc — the CONTEXT.md access-entity entry; impl — the typed filter seam and the flag surface; unit — the filter matches only its own entity kind (a subnet name equal to an endpoint id must not cross-match) and the flags parse mutually exclusive.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4279664Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4279697Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4279789Z ### REQ-ACL-NODE-VIEW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4281915Z - Title: `spt daemon access` is the node-tier roster: the entities the node-scope rules name (node and subnet-wildcard subjects — a node-scope sender-endpoint rule cannot exist by schema), this machine's own mode with its per-surface exceptions, and the captured subnet modes — the tier every hosted endpoint falls through to, in the same item grammar as the per-endpoint view so the two scopes read as one system. There is NO `spt subnet access`: a subnet is a subject tier and a mode source, never a rule-holding target — its mode facts surface on `spt subnet status` (REQ-SUBNET-STATUS-MODES). Gate: doc — the CONTEXT.md access-entity entry; impl — the node roster builder and the daemon verb; unit — the node roster's entities, mode-exception summary, and explicit empty rendering.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4282017Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4282103Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4282196Z ### REQ-SUBNET-STATUS-MODES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4284889Z - Title: `spt subnet status <name>` states the subnet's three mode facts (surface ruled 2026-07-30 — the per-subnet view is `subnet status`, no near-synonym `show` verb minted): the mode the subnet DECLARES as this node knows it, the mode this node CAPTURED (the enforced fallback — join-time immutable, changed only through the engine room's access-refresh), and any declared change SEEN but not adopted (`declared_seen`), named PENDING with when it was seen and the explicit statement that this node's posture is unchanged until the engine room adopts it. Absences are stated in words — a pre-mode subnet and an uncaptured fallback each say so — never rendered as blank, and the `--json` rows carry the same facts as optional fields. Gate: doc — the CONTEXT.md access-entity entry's mode-facts sentence; impl — the mode-facts resolver over the two stores that each own one half of the truth and the status-view wiring; unit — the three-way wording including both absence lines and the no-pending case.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4285039Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4285073Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4285169Z ### REQ-SUBNET-MINT-CAPTURES-MODE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4292394Z - Title: THE MINTING NODE CAPTURES ITS OWN DECLARED SUBNET MODE, so a `--closed` subnet stops being asymmetric BY CONSTRUCTION. RCA by hertz 2026-08-01 (releases#100, two-arm live evidence, both nodes 0.49.0): `capture_subnet_mode` had exactly TWO production writers -- the JOIN arm (pairhost) and the engine-room access-refresh -- while `spt subnet create` wrote the declared mode into `subnet.json` and never touched the access store. On the MINTER the captured-subnet-mode tier is therefore ABSENT and the resolution chain bottoms out at the implicit-open tier, per-surface-blind: every joiner enforces while the minter exposes MSG, RC_VIEW/RC_ATTACH, XFER, WAKE/SUSPEND, SHELL_LINK and DIGEST to any origin. Field evidence: the minter's access.json was literally {"version": 2}, its named status view printed 'mode captured here: none - chain bottoms out open', and the joiner withheld correctly. THIS IS THE DECLARE-SITE-IS-NOT-ENFORCE-SITE CLASS: writing the posture into the record that DECLARES it is not the same act as writing it into the store that ENFORCES it, and a ceremony that does only the first ships a subnet whose stated posture is unenforced on the very node that stated it. THE CAPTURE RIDES THE PERSIST, NEVER THE RESOLVE: the mint is in-memory until the create ceremony's admin capture-proof passes (a refused proof must leave NO subnet), so a capture written at resolve time would outlive a cancelled create and record a posture for a subnet that does not exist. SWEEP DISCIPLINE IS PART OF THE FIX: `resolve` is shared by create and show-code with the CALLER persisting, so the capture belongs at the ONE persist choke point every mint path funnels through -- a per-call-site capture is one forgotten path away from re-creating the same asymmetry, which is exactly how this defect existed. NO SILENT BOOT-TIME BACKFILL, and this refusal is REQUIRED TEXT rather than an omission: the subnet record carries no minted-here provenance, so 'declared present AND captured absent' cannot distinguish 'I minted this closed' from 'I joined before subnet modes existed', and retro-capturing the latter would silently close a running mesh -- the case the design refuses. A pre-fix minter is healed ONLY by the explicit `spt api access-refresh <subnet>` verb, and the create output NAMES that verb so the operator of an already-minted subnet is not left to discover it. Gate: doc -- the docs-site access page states that the minter captures at the mint and that older minters heal only through the explicit refresh; impl -- the capture at the persist choke point, driven by the mint's own declared mode, plus the create-output line naming the heal; unit -- the mint ceremony CAPTURES the mode it declared (the row that fails on a build persisting the declaration without capturing it, i.e. on the shipped defect), a persist that is NOT a mint captures nothing (the no-backfill arm, asserted rather than assumed), and the captured value is the DECLARED one rather than a constant (a row an always-closed or always-open capture cannot pass).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4292552Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4292582Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4292691Z ### REQ-SUBNET-STATUS-MODES-EVERY-VIEW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4296572Z - Title: THE MODE FACTS RIDE EVERY SUBNET STATUS VIEW, NOT ONLY THE NAMED ONE (ruled 2026-08-02 bag grill, releases#100). REQ-SUBNET-STATUS-MODES put the three mode facts on `spt subnet status <name>`; the BARE `spt subnet status` rendered membership shape alone (subnet, nodes, endpoints), so the precise state releases#100 exists to end -- declared closed, captured nothing, enforcing open -- read as FINE on the view an operator actually runs, and the blindness was itself part of why the defect survived in the field. The bare view therefore carries a compact per-subnet mode plus the captured-here fact for every row. ONE COMPOSER, TWO RENDERINGS: the bare view resolves its facts through the SAME mode-facts resolver and states them from the SAME wording source as the named view, so the two cannot drift into two vocabularies for one truth -- a second literal spelling of 'captured here' is the defect this clause forbids, not a style preference. Absences stay stated in words on both views (an uncaptured fallback says so; a pre-modes subnet says so) -- a blank cell reads as 'nothing to worry about', which is the exact misread this requirement removes. Gate: doc -- the docs-site access page describes ONE consistent surface rather than hedging the bare-vs-named asymmetry; impl -- the bare status view's mode facts, fed by the shared resolver and the shared wording source; unit -- the bare view states both the declared and the captured fact for every row, an uncaptured subnet renders its absence in words rather than blank, and the bare and named renderings agree on the same fixture (the row that fails the moment a second wording is introduced).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4296725Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4296754Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4296863Z ### REQ-ENGINEROOM-ADMIN-BRINGUP-EMPOWERS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4302550Z - Title: PASSING THE ENGINE-ROOM BRING-UP GATE WITH THE ADMIN TOTP EMPOWERS THE SEAT FOR ITS HOME SUBNET AT ATTACH (ratified 2026-08-01 bag grill, releases#102; CONTEXT.md empower entry amended). NO NEW CAPABILITY -- it collapses a double-entry of ONE credential: the human who just proved the admin key at bring-up had to prove the same key again through `empower` before touching a mode, which is friction that teaches nothing and protects nothing. GATE PARITY: attach OR take is the SAME gate and yields the same grant (a take already re-proves the gate, which is why it is allowed at all). LIFETIME IS IDENTICAL TO AN EXPLICIT EMPOWER -- until session end or controller detach, detach drops it, re-attach re-proves -- so this introduces no lifetime seam of its own and nothing about empowerment revocation changes. THE GRANT IS LOUD ON BOTH SURFACES A READER ACTUALLY READS: the attach output AND the session-start briefing each state that the seat is empowered for its home subnet via admin bring-up. A silent grant is the refused shape -- an empowered seat that never says so is indistinguishable from an unempowered one until a mode change succeeds unexpectedly. TWO NEGATIVES ARE PART OF THE REQUIREMENT AND MUST BE ASSERTED RATHER THAN IMPLIED BY THE POSITIVE, because both are satisfiable by a build that passes the positive row: a MEMBER-TOTP bring-up NEVER auto-empowers (the discriminant is WHICH seed verified, not that the gate passed -- a grant keyed on the gate would empower every member bring-up), and any subnet OTHER than the home subnet still requires an explicit `empower` (a build granting the seat authority everywhere passes an admin-empowers-home assertion unchanged). TERMINOLOGY, ruled with the feature: the engine-room's subnet is its HOME subnet -- 'anchor subnet' is retired and must not appear in code, docs or help in that sense. Gate: doc -- the docs-site engine-room page states the auto-grant, its scope and its lifetime; impl -- the credential-discriminating grant at the bring-up seam (attach and take) plus both loud surfaces; unit -- an admin bring-up empowers the home subnet, a member bring-up empowers nothing, no bring-up empowers a non-home subnet, both loud statements are present in the surfaces they ride, and the grant is recorded through the same seam an explicit empower uses so its lifetime is the same by construction rather than by a parallel implementation.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4302707Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4302740Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4302836Z ### REQ-ER-BRINGUP-PROMPT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4306095Z - Title: Bare `spt rc engine-room` prompts interactively for the bring-up TOTP instead of attaching straight into the gate's refusal (ADR-0052 §2 entry UX, fast-follow grill 2026-07-30). The prompt is the preferred entry because argv is readable by other processes on the box while a code is still valid; `--code <CODE>` stays for scripted/non-interactive use with that caveat documented in its help. Prompt rules: Esc-cancel (the ceremony-overlay pattern) and ctrl-c both cancel with NO attach attempt even when the buffer holds digits; Enter submits a non-empty buffer and is inert on an empty one; only ASCII digits accumulate, length-bounded, so pasted garbage never rides into the gate and spends ledger budget; every other endpoint never sees a prompt; and a non-terminal stdin refuses with guidance naming --code rather than blocking on a pipe. Gate: doc — the ADR-0052 §2 entry-UX note; impl — the prompt behind the bare invocation, the pure key-fold kernel, and the non-terminal refusal; unit — the key-fold rules (digits-only accumulation, bound, backspace, inert-empty-Enter, submit, and both cancel paths beating a full buffer).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4306270Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4306299Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4306405Z ### REQ-ER-BRINGUP-TOTP-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4309909Z - Title: Bringing the engine room online — and attaching a controller to it — requires a same-node CLI call PLUS a member-or-admin TOTP for its home subnet, and never OS elevation (ADR-0052 decision 2). The gate proves 'a human holding this subnet's material is at the controls', which is the question that matters for a surface that sets access posture; elevation proves only 'a process on this machine ran elevated', which every agent-spawned installer path can arrange and which says nothing about subnet authority. Either seed passes because an admin key IS a membership key (ADR-0051), and the two-acceptable-secrets budget is answered by REQ-ER-BRINGUP-ATTEMPT-BOUND rather than by refusing the admin key. Bring-up FAILS CLOSED when the bound harness adapter is missing — an engine room that cannot host its own mind must not come online half-formed (ADR-0053 spirit). Gate: doc — ADR-0052 decision 2 and the CONTEXT.md engine-room bring-up sentence; impl — the same-node CLI bring-up path, local verification of the member and admin TOTP against the replicated seeds, and the missing-adapter refusal; unit — a member code brings it up, an admin code brings it up, a wrong code refuses, elevation alone never substitutes, and a missing bound adapter refuses.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4310023Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4310051Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4310152Z ### REQ-ER-BRINGUP-ATTEMPT-BOUND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4315719Z - Title: The engine-room bring-up gate is bounded by ONE shared failure ledger with exponential backoff, not by a per-secret count (doyle ruling 2026-07-29 on ADR-0052 decision 2). Accepting either the member or the admin TOTP would otherwise hand an attacker a doubled online-guess budget (the ADR-0051 section 1a shape); a SINGLE persisted counter covering BOTH secrets removes that arithmetic entirely — the budget is the ledger's, not the keyring's. Backoff starts at one second and doubles to a one-hour cap. TWO classes of attempt are refused WITHOUT counting, named together here so the pair cannot drift apart: attempts arriving DURING a backoff, and attempts presenting NO code at all (whose own properties are owned by REQ-ER-BRINGUP-ABSENT-CODE-UNCOUNTED, minted 2026-08-19 for releases#197). Both classes exist for one reason: in this threat model the adversary is an agent on the same box, and any countable attempt it can produce WITHOUT holding subnet material lets it ratchet the human into permanent lockout — denial of governance is the attack, not merely a nuisance. The ledger resets on success and PERSISTS ACROSS DAEMON RESTARTS: a bounce that cleared it would restore the full budget on demand (the per-process-mint defect class the access-model spec found). Failures past the third raise a notification, so brute force is loud and silence buys the attacker nothing. This local bound is explicitly NOT ADR-0051 section 1a's network rate-limit argument, which does not apply on a local path with no round trip. Gate: doc — the ADR-0052 amendment naming ledger-plus-backoff as the local bound and distinguishing it from the network argument; impl — the persisted shared ledger, the backoff schedule, the refuse-without-counting rule in BOTH its classes, and the loud notification; unit — the schedule (one second doubling to the one-hour cap), one ledger for both secrets, an in-backoff attempt refused and NOT counted, a codeless attempt refused and NOT counted, reset on success, survival across a restart, and the notification threshold.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4316006Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4316034Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4316143Z ### REQ-ER-BRINGUP-ABSENT-CODE-UNCOUNTED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4322920Z - Title: An engine-room attach that presents NO bring-up code is refused WITHOUT spending a unit of the human's attempt budget (releases#197; ADR-0052 section 2a, second uncounted class). The ledger bounds GUESSES at a human-held TOTP, and an absent code is not a guess: it carries no candidate, can never admit, and is the truthful answer from every attach path on this box that has no human at a keyboard to read a code off. Counting it handed any local process the exact ratchet REQ-ER-BRINGUP-ATTEMPT-BOUND already forbids for in-backoff attempts — N codeless attaches shut the gate a human needs to take the controls back — which is why this MOVES that requirement's text rather than sharpening it, and why the two name the pair together. It is the same fact-about-this-node's-own-configuration shape that already makes a missing bound adapter uncounted (REQ-ER-BRINGUP-TOTP-GATE), applied one input later, and it costs the brute-force bound NOTHING: the bound is over PRESENTED candidates, every one of which still counts exactly as before. The distinction is presented-versus-absent and NEVER which-key-matched, so ADR-0051's indistinguishability is untouched — an absent code carries zero member-versus-admin bits and refusal uniformity binds codes that are neither key. The ORDER is load-bearing and unchanged: the backoff is evaluated FIRST, so a codeless attempt arriving at a shut gate is answered Throttled exactly as a wrong code is and gate state stays unreadable. The ledger is NOT WRITTEN for this outcome, extending the missing-adapter write-skip rather than writing it back unchanged, because a write that failed would turn a benign codeless attach into a ledger-unwritable refusal — a worse lie than the one being fixed. Gate: doc — the ADR-0052 section 2a bullet naming the absent-code class, its ADR-0051 reading, and the throttle-first order; impl — the presentation-typed gate input (absent versus code-with-one-verified-bit), the uncounted outcome that folds into the ledger as a no-op, its own refusal sentence and label, and the extended ledger write-skip; unit — an absent code is uncounted with the ledger struct byte-unchanged, a wrong code still counts and still shuts the gate on the same schedule, a codeless attempt DURING a backoff is still Throttled (the throttle-first order pinned by test rather than by reading order), and an absent code at a shut gate answers identically to a wrong code at a shut gate.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4323088Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4323117Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4323216Z ### REQ-ER-CONTROLLER-BOUND-POSTURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4326770Z - Title: The engine room is empowered ONLY while a controller is attached, and losing that controller drops its POSTURE — not its process (ADR-0052 decision 3, as amended 2026-07-29 on todlando's finding). Read literally, 'detach drops it offline' would kill a harness on detach and re-break the attach-lifecycle invariant (KNOWN-HAZARDS: an rc detach ends only the viewport, the harness keeps running and stays re-attachable — an invariant the broker's PTY ownership satisfies by construction). The buildable and equally strong reading is a posture: on detach the engine room refuses all inbound, drops every empowerment (REQ-SUBNET-EMPOWER-VERB), and stops being advertised, while the process lives and can be re-attached through the same TOTP gate. Empowerment is therefore session state with TWO named drop edges — detach and local take — each of which needs its own test; 'revoked by a restart' is not an available argument, because no restart happens (REQ-ER-RC-INTENT-LOCKS). Gate: doc — the ADR-0052 section 3a amendment; impl — the posture transition on detach and on take, covering inbound refusal, empowerment drop and de-advertisement, with no process teardown; unit — both drop edges revoke empowerments, a detached engine room refuses inbound, and neither edge terminates the hosted session.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4327014Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4327046Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4327143Z ### REQ-ER-RC-INTENT-LOCKS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4330791Z - Title: The engine room's attach surface is locked by INTENT: rc --view is denied even same-node, remote attach of any intent is denied, and local --take is allowed (ADR-0052 decision 3). Viewing is denied because a read-only spectator on the surface that renders access rulesets is an information leak with no operator benefit — and because the same-node loopback allow precedes the resolution chain, this must be an explicit engine-room carve-out rather than a rule row that the loopback shortcut would skip past. Local take is allowed on two grounds, neither of them the original 'it forces a harness restart' (it does not — a take is a broker lease displacement and restarts nothing): the displacing controller must pass the same bring-up gate the incumbent passed, so a take is a gate attempt and is bounded by the same ledger (REQ-ER-BRINGUP-ATTEMPT-BOUND); and the displacement is LOUD, so an incumbent human cannot be silently unseated. Gate: doc — ADR-0052 decision 3 and the section 3a amendment; impl — the intent-keyed engine-room carve-out ahead of the chain, the remote-attach refusal, and the take path's gate pass plus empowerment revocation; unit — same-node view denied, remote attach denied for every intent, local take admitted only after a gate pass, and a take revoking empowerments.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4330900Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4330932Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4331025Z ### REQ-ER-INBOUND-LOCK
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4334119Z - Title: The engine room refuses ALL inbound except replies to its own outbound, with a dormant knock exemption landed in the same seam (ADR-0052 decision 3; doyle ruling (f) 2026-07-29). The lock is what keeps a minded governance surface from being reachable — and therefore promptable — by the very agents whose access it governs; the reply exemption is the stateful-firewall correlation that already precedes the resolution chain, which the engine room itself depends on to hold a conversation it started. The knock hook lands NOW rather than in the knocking wave because accepting knocks is part of the lock's shape as specced, and a security-critical seam reworked twice is a seam whose second version is reviewed against the first instead of against the requirement; W3's hook default-refuses, W4 fills it with knock semantics. Gate: doc — ADR-0052 decision 3 and the CONTEXT.md engine-room entry; impl — the inbound lock riding the reply-exemption seam plus the dormant knock hook; unit — a reply to its own outbound passes, an unsolicited inbound of every other shape is refused, and the dormant hook refuses today without a knock surface.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4334268Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4334296Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4334387Z ### REQ-ER-NOT-ADVERTISED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4337554Z - Title: The engine room is NOT registry-advertised by default, and is advertised only to endpoints it has whitelisted (ADR-0052 decision 3). An advertised governance surface is a discoverable one, and discoverability is the first half of every reach attempt the inbound lock then has to refuse; keeping it out of the feed means the agents on a node cannot even name the thing that governs them unless it has chosen to be nameable to them. This rides W1's DISCOVER gate rather than minting a parallel visibility notion — one advertisement filter, one place to reason about who sees what. De-advertisement is part of the posture drop (REQ-ER-CONTROLLER-BOUND-POSTURE): an engine room without an attached controller is not merely unreachable but unlisted. Gate: doc — ADR-0052 decision 3; impl — the advertisement filter excluding the engine room by default and honoring its whitelist, reached through the existing DISCOVER gate; unit — a default engine room is absent from the local advertisement, a whitelisted viewer sees it, a non-whitelisted viewer does not, and a posture-dropped engine room is absent regardless of whitelist.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4337713Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4337737Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4337831Z ### REQ-SUBNET-EMPOWER-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4341770Z - Title: empower <subnet-id> --admin-code <admin-totp> grants the engine room authority over that subnet's control-surface modes, lasts until session end or controller detach, and is invocable ONLY by the engine room (ADR-0052 decision 5; doyle ruling (b) 2026-07-29). It ships as an spt api verb gated by the perch capability proof plus an engine-room identity check, NOT as a plain CLI verb: the caller IS an agent — the engine room has a mind and is the specified invoker — so the gate cannot be 'no agent' and must be 'no agent except the reserved one'. The admin TOTP remains the authority proof, verified locally against the replicated admin seed (REQ-SUBNET-ADMIN-SEED-REPLICATION) with no privileged peer consulted; the engine-room binding is what makes the grant session state with a controller lifecycle to die with, which a grant to an arbitrary CLI session would not have. One shared authentication function serves this verb and the capture-refresh (REQ-ACL-ACCESS-REFRESH-ER-ONLY) — two call sites, one gate, unit tested once. Gate: doc — ADR-0052 decision 5 and the CONTEXT.md empower entry; impl — the api verb, the shared engine-room authentication, local admin-TOTP verification, and session-scoped grant storage; unit — a non-engine-room caller is refused, a wrong admin code is refused, a valid grant authorizes mode writes for exactly that subnet, and the grant dies at detach and at take.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4341881Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4341909Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4342008Z ### REQ-ACL-NODE-MODE-SET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4344914Z - Title: The node's control-surface modes are settable through the engine room and nowhere else (ADR-0052 decisions 1 and 3, CONTEXT.md 'control-surface modes' — the node level of the three). Modes are exactly what a confused or adversarial agent would loosen, so the mutation surface must be the one place an agent cannot reach without passing a human-held TOTP; every other candidate — a plain CLI verb, an elevation-gated verb, a config file the daemon reads — is reachable by something running as the user. Subnet-scope mode authority is separate and rides empower (REQ-SUBNET-EMPOWER-VERB); this requirement is the node's own posture, which needs no empowerment because the bring-up gate already proved subnet membership. Gate: doc — the CONTEXT.md control-surface-modes entry naming the engine room as the node-level setter; impl — node-scope mode writes reachable only through an engine-room-authenticated path; unit — an engine-room caller sets a node mode, every other caller is refused, and the resolution chain reads the written mode at its node tier.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4345067Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4345100Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4345195Z ### REQ-ACL-ACCESS-REFRESH-ER-ONLY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4348616Z - Title: spt api access-refresh stops refusing and becomes real, gated to the engine room, updating ONLY the node's captured subnet-level fallbacks (ADR-0052 decision 6; the W2 refusal REQ-ACL-ACCESS-REFRESH-VERB was minted precisely so this wave changes one behavior rather than adding a surface and its gate). The refresh is the CONSENTED half of advisory gossip: a subnet-mode change reaches a member as a notification, the engine room is briefed with the exact new posture, and a human decides whether this node adopts it — which is why the verb writes the captured fallbacks and never the node's own rules, and why no remote actor can invoke it. Its authentication is the same shared engine-room function empower uses. The W2 refusal test is repinned to the new contract in this same change, not left asserting a behavior the wave removed. Gate: doc — ADR-0052 decision 6 and the CONTEXT.md capture-refresh sentence; impl — the real refresh behind the shared engine-room gate, writing captured subnet fallbacks only; unit — an engine-room caller refreshes and the chain's bottom tier changes, a non-engine-room caller is refused, the node's own rules are untouched, and the repinned W2 test asserts the new contract.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4348762Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4348790Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4348881Z ### REQ-ER-SESSION-BRIEFING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4358809Z - Title: Every engine-room session opens with a system-authored briefing message stating the node's exact current access posture, any pending advisory-gossip deltas, the current ruleset, the session's empowerment with its spendable verbs (empower, access-refresh), and the seat-authority statements (one-seat lifetime, no cross-node reach, no unchosen advertisement) (ADR-0052 decision 3 and decision 6; doyle ruling (e) 2026-07-29). AMENDED BY REPLACEMENT in the KEYSTONE #182 W3 lane (doyle ruling on releases#179, 2026-08-19): capabilities and responsibilities LEFT this requirement and became the engine room's durable in-core role (REQ-ER-ROLE-STATIC-IMMUTABLE), because they are static facts about the seat rather than per-session weather. The replacement is recorded here rather than annotated because a partition ruling falsifies the requirement's own ratified sentence, not just the code beneath it — a refactor UNDER a requirement is a different act from one that makes its sentence false. What stays is the per-session half: a minded governance surface is only as good as what it knows at the moment it acts, and posture is per-session state — which is why the briefing is a message spooled at bring-up under a reserved system author, NOT the endpoint's durable role text. THE BRIEFING WRITES NO ROLE TEXT: that pin is unchanged and is more load-bearing after the partition, not less, since the engine room's role now has no writer at all. The message spool is already core-side, harness-independent data that any adapter renders as ordinary inbound, so the briefing needs no harness-specific cooperation — the boundary rule holds by construction. EXTENDED for releases#177 (doyle dispatch 2026-08-19): the cadence this sentence always named is now enforced at the ENQUEUE seam — a session opens with a briefing ONCE, not once per seat-taking attach. The endpoint keeps running between attachments, so the pre-#177 product re-briefed a human who detached and came back to the SAME live session with a posture statement they had already read; "every session opens with a briefing" was true of the first attach and false as a cadence. A FRESH session — a new bring-up, or a daemon restart that re-hosts one — briefs exactly as before, which is why the bound lives on the broker's per-session log rather than in an on-disk last-briefed record: such a record would keep suppressing across a daemon restart whenever the harness outlived the broker and kept its session id, silencing the one case that must still brief. CONDITION IS NOT CADENCE: nothing here changes what a briefing says or when one is composed. The bound is on the ENQUEUE ALONE and never on delivery — REQ-ER-BRIEFING-PRESENTED clause 4 rules that a briefing whose presentation missed is retained and re-offered at the next seat-taking attach, so gating the presentation call on "did this seat enqueue" would fix #177 by re-breaking #164. Gate: doc — ADR-0052 decision 3's briefing clause and the CONTEXT.md engine-room entry; impl — the briefing composer reduced to per-session facts, spooling at bring-up under a reserved system author; unit — bring-up spools exactly one briefing carrying current posture, pending gossip deltas, the ruleset, the session's empowerment with its spendable verbs and the seat-authority statements, and no role text is written, AND a second seat-taking attach on the same session spools no second briefing while the first one still lands in that same run (the positive control that keeps the green from being a green nothing could red); int — a real second seat on a running engine-room session, pinned to be the same session by its session id, adds no briefing row.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4359114Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4359233Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4359341Z ### REQ-ER-BRIEFING-SESSION-SCOPED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4367248Z - Title: An engine-room briefing is SESSION-SCOPED: it states one session's weather, so a briefing that outlives the session it was minted for is stale by construction and must never be delivered (releases#208, doyle ruling 2026-08-21). The scope is enforced at SESSION OPEN, not at drain — the same predicate brief-once (REQ-ER-SESSION-BRIEFING, releases#177) already computes when it decides 'new session, enqueue a briefing' ALSO drops the undelivered briefing rows earlier sessions left behind, ordered immediately before this session's own spool so it cannot take the row it is about to mint. One site, one predicate; the drain stays dumb and learns nothing about sessions. SCOPE: UNDELIVERED rows of the reserved briefing author only — a DELIVERED row is history, cannot participate in a burst, and deleting it would be a retention change nobody filed; another author's pending mail is never touched. The count is reported, never a silent deletion, and a sweep that fails is LOUD but never blocking (stale rows reachable is a condition to state, not a reason to deny a proven human their controls). TWO MECHANISMS ARE RULED OUT WITH REASONS. (1) The `ephemeral` persistence axis: its deletion set IS the retention set of the releases#164 retained-row rescue — evaporation fires on the rows the drain RELEASED, i.e. the briefing whose presentation MISSED, which is the single case that rescue was built for; the native drive arm never evaporates at all, so the two arms would disagree about whether a briefing survives its own miss (measured at c62904e7: claim, deliver, release, then evaporate, idle arm only). (2) A time TTL: DEFAULT_TTL_SECONDS stays 0 — a time bound would evaporate a live session's own undelivered briefing on a slow attach AND still leak a stale one on a fast restart, wrong in both directions, because the honest scope is a SESSION and not a duration. The releases#164 intra-session rescue is UNCHANGED: the sweep fires only when the session is NEW, never between seats of one session, and presentation stays unconditional — this changes RETENTION, not presentation. Field measurement that opened it: six briefings minted across sixteen days on one node, delivered in a single burst oldest-first, three of them asserting an EMPTY ruleset in vocabulary the tree had already retired. Gate: doc — the CONTEXT.md engine-room briefing-retention sentence; impl — the sweep seam and its call at the session-open predicate; unit — the seam drops one author's undelivered rows and leaves that author's DELIVERED rows and every other author's pending rows intact, and an empty sweep is a zero rather than a failure; int — rows minted under session N then session N+1 opens: exactly ONE briefing delivers and it is the NEW one (the positive control is required — a fix that deletes everything satisfies the negative alone), and a seat that fails to present in ONE session still has its row re-offered to the next seat of that SAME session.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4367432Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4367461Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4367557Z ### REQ-ER-BRIEFING-PRESENTED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4378650Z - Title: The engine-room session briefing is PRESENTED, not merely spooled: it reaches the session's input before its first actionable turn (releases#164, doyle's five ruled clauses; root restated from measurement and ACCEPTED 2026-08-19). REQ-ER-SESSION-BRIEFING is satisfiable by an INSERT that nobody reads, which is the false confidence #164 names — this requirement is the consuming half, and the two are only meaningful together. THE DEFECT IS TIMING, NOT ELIGIBILITY, and that distinction was measured rather than argued: at the seat the ER perch is already a fully eligible spt-hosted inject target (controllable=Some(true), online, no relay — all three legs of is_spt_hosted_no_relay true), the row is spooled non-deferred and claimable, and the EXISTING idle-inject leg takes and delivers it correctly the moment the session declares idle (audited taken_leg=idle-inject, pending 1->0). Nothing is unreachable and no new taker is needed. What is wrong is WHEN: the row's only taker fires at the session's FIRST IDLE, which by construction is AFTER the first actionable turn, while clause 5's bar is BEFORE it. A window-gated arm cannot meet that bar. TWO EARLIER ROOTS ARE FALSIFIED and must not be rebuilt on: the `.idle` sentinel HAS a production writer (the `spt api state idle` seam), and the engine room is NOT adapter-less (its bring-up refuses outright unless its bound adapter is a registered HARNESS adapter). The remedy rides the NATIVE arm, which this codebase already defines as exactly this case — the window owns WHEN, native owns THROUGH WHAT — and which was proven to carry into a never-yet-idle ACTIVE ER session on the EXISTING surface before a line of the fix was written. Riding native satisfies every ruled clause by REUSE rather than new machinery: the same delivery path and the same single renderer (clause 2 forbids a second renderer), the same BEGIN IMMEDIATE claim kernel and taken_* stamping so a poll race cannot double-present (clause 3 — exactly-one-taker by claim, not by timing), and miss => release => row retained pending plus a loud post-seat notice, with the attach NEVER refused (clause 4, extending the denial-of-governance doctrine already at the spool-failure arm). Clause 1 is untouched: #142 post-seat composition is not relitigated. Gate: impl — the post-seat native drive of the briefing through the existing spt-hosted inject leg, reusing the audited claim and the single renderer, with the loud-notice-and-retain arm on presentation failure and no refusal path added to attach; int — a real mock ER session in which the briefing reaches session input BEFORE the first actionable turn, the spool audit shows exactly one taker, and the never-seated arm shows zero, driven end to end through the real verbs; AND the MISS half of clause 4 witnessed on the same real verbs, because a fence that only ever sees the happy path is not the fence that was ruled — a seat whose harness never binds must make the failure LOUD (and only after the drive's bounded wait is honestly spent, since an early give-up turns a merely slow bind into a lost briefing: the same defect, rarer and harder to see), must leave the row RETAINED and pending with its taker columns UNSTAMPED, and must NOT refuse the attach; and then the next seat-taking attach WITHIN THE SAME SESSION must RE-OFFER that retained row and deliver IT — asserted on the row's own id rather than on the arrival of any briefing. At a SESSION boundary the retained row is instead SUPERSEDED under REQ-ER-BRIEFING-SESSION-SCOPED: swept loudly at the new session's open, with the new session's own briefing delivered at that same attach — the chain proven cross-session is miss => release => retained => superseded-with-delivery, never a silent loss. The eligible-but-inject-FAILS shape is a DECLARED residual (doyle's ruling 2026-08-19): its only unique witness is the second loud branch, the claim-then-release it would exercise is the same shared drain path the arms above already walk, and it earns a cell if that branch ever fires unwitnessed in the field.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4378865Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4378892Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4379070Z ### REQ-ER-ROLE-STATIC-IMMUTABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4386219Z - Title: The engine room's role is a STATIC, IMMUTABLE value served from core — its seat line, its rule-tier semantics, its control-surface vocabulary and its discipline — and it has NO WRITER AT ALL (releases#179, greenlit; doyle rulings 2026-08-19 in the KEYSTONE #182 W3 lane; the ratified first-output skeleton is releases#165). Every other endpoint’s role is durable identity authored by its owner and carried by tracked/agents/<id>/live-role.md; the engine room is the degenerate case, because its seat is minted by the node rather than chosen by a person, so there is nothing for an owner to author and a per-session writer would race the role editor and push session weather into the mind's durable substrate. Serving it from core is what makes IMMUTABLE a property of the system rather than a promise: BOTH readers of role text — the resume path’s <live-role> emission and the bare-read CLI arm — serve the core value for engine-room, so an on-disk live-role.md planted for that id is ignored dead weight and is never consulted, and the sole writer (the --overwrite arm) REFUSES engine-room loudly, naming the in-core role as the reason. The carrier is a FUNCTION and not a const, and that is load-bearing rather than stylistic: a const cannot call the shared surface composer, so a const role would have to hardcode the surface list — the exact defect REQ-ER-BRIEFING-SURFACE-VOCAB refuses — while a function is still a static value in the sense #179 asks for (no store read, no writer, no per-session input, deterministic output). The role is also PROGRAM TEXT: it prescribes verbs, so every verb it prescribes is walked against the clap grammar over its WHOLE span, re-derived rather than sampled. Gate: doc — the ratified ER skeleton artifact landed under docs/ and the CONTEXT.md engine-room entry stating the role is served from core and has no writer; impl — the in-core role composer building its control-surface section from the shared table composer, both readers serving it for engine-room, the --overwrite refusal, and the briefing composer reduced to per-session facts; unit — the grammar walk over the whole role text, both readers serving the core value while IGNORING a planted on-disk live-role.md for engine-room, --overwrite refusing engine-room with a non-ER-succeeds discriminator, and both skeleton-amendment controls (a panic arm for the kept-ellipsis fault and a PRESENCE arm for the silently unwalked continuation cell, because a silent hole walks clean past a panic expectation and the two faults cannot share one control); int — an engine-room bring-up serving the in-core role, declared first-execution.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4386382Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4386415Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4386519Z ### REQ-ER-RULESET-NODE-NAMES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4391828Z - Title: A node subject in a ruleset row renders the node's NAME (`node:ENLYZEAM`), not its pubkey hex — the second half of releases#210's unreadability (the first is the table shape, REQ-ER-RULESET-TABLE). Resolution goes through an INJECTED resolver `Fn(&str) -> Option<String>` on the ruleset-rows seam (the `derive_attached_node` precedent): the store crate holds no registry edge, and a render provable with no filesystem, no node and no gossip is worth more than one that reaches for a name itself. Consumers supply the real lookup — this node's own subnet rosters and hostname, layered under the gossiped registry labels the picker and `endpoint list` already render from, so every view on a box names a node the same way. DEGRADE (ruled, doyle 2026-08-21): an unresolvable node renders the FULL 64-hex — never an error, never blank, and never a truncation, because a truncated hash is the filed defect itself. A whitespace-only label has not answered and degrades identically. The JSON keeps the IDENTITY: `subject` stays the full hex and the resolved name rides beside it as an ADDITIVE field, omitted rather than null when unresolved — a machine keys on the pubkey and a label is not a key (the human/JSON asymmetry rule releases#206 paid for). Row ORDER follows the identity, never the name: the table is diffed across postures, and a label arriving or going away must not reorder the grid. Gate: doc — the CONTEXT.md engine-room ruleset sentence and the access-viewing drill-down section; impl — the resolver seam on the rows builder, the subject render, and the two consumers' real resolvers; unit — a resolved subject renders the name with the hex absent from the cell, an unresolvable one keeps the full untruncated hex, a blank label degrades, only node subjects resolve, the JSON keeps the hex and carries the name additively (omitted when absent), and naming does not reorder rows.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4392031Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4392070Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4392162Z ### REQ-ER-RULESET-TABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4397013Z - Title: The engine room presents access rulesets as TABLES (ADR-0052 decision 3). The rendering is a requirement rather than a nicety because the operator decision this surface exists to support — is this node's posture what I think it is — is a comparison across subjects, surfaces and tiers, and prose forces a human to hold that grid in their head while an agent narrates it to them. A table also makes an omission visible: a row that should be there and is not is legible in a grid and invisible in a paragraph. It rides the same briefing message the session opens with (REQ-ER-SESSION-BRIEFING) and the same renderer serves an on-demand ruleset request. Gate: doc — ADR-0052 decision 3's table clause; impl — the ruleset table renderer used by the briefing and by an on-demand request; unit — the renderer emits one row per rule with subject, surface, tier and decision, renders an empty ruleset as an explicit empty table rather than silence, and is stable enough to diff across two postures. AMENDED releases#210 (doyle ruling 2026-08-21): the rendering is a MARKDOWN pipe table with space-padded cells — valid markdown in the chat surface an agent relays it through AND still column-aligned in a terminal, so the one renderer serves both consumers (the briefing and the drill-down view) and the grid cannot fork into two spellings. A space-aligned grid is reflowed into a run-on by the surface a human actually reads it on, which is the defect: the table stopped being a table in transit. Cell content is escaped at the row edge so a value containing a pipe cannot silently stop the grid from being a grid. Unit additionally: the header, the separator row that makes it a markdown table, one pipe-delimited row per rule with a fixed cell count, the empty case still explicit, and the pipe-bearing cell.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4397132Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4397160Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4397262Z ### REQ-CI-LOCAL-GATE-DISPOSAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4399656Z - Title: Local gate-battery parity (path-scoped reap before target disposal + free-byte proof): a local self-hosted gate battery that creates a throwaway Cargo target reaps only process trees owned by that battery, with ownership proved by executable path or owned temporary/cache root under its workspace or declared target roots — never by process name alone; proves the scoped survivor census is zero BEFORE deleting the target; and reports drive free bytes before and after disposal. It MUST NOT machine-wide kill spt processes. Evidence: six Phase-B child daemons outlived suite completion for about two minutes in-job and indefinitely in local rigs; foreign job processes exited with the job; post+30s scoped census was zero. This extends existing CI end-reap semantics to local gate rigs, not production lifecycle behavior.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4399795Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4399828Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4400036Z ### REQ-HAZARD-PROCESS-GLOBAL-ONE-RESOLUTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4402238Z - Title: Seed: resolve a process-global exactly ONCE per public operation and thread that value inward; a public function that resolves the global and calls a callee which resolves it again contains a latent disagreement. Field-near discovery: `daemon_inhibit::set_stop_inhibit -> inhibit_path` and `servicehost::service_env -> env assembly` both carried this production shape, invisible until a test became the victim. The eventual regression must pin SINGLE RESOLUTION PER OPERATION, not merely the presence of an `_at(home)` seam: count `spt_home()` occurrences in each file and require exactly one inside each thin public boundary (current repaired shape: servicehost one occurrence in its wrapper; daemon_inhibit five, one per public function), so no inner callee can silently re-read the process-global. Invariant repair: resolve once at the public boundary, thread the value inward. Design source: KNOWN-HAZARDS 7.57.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4402373Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4402407Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4402516Z ### REQ-HAZARD-TEST-PID-TREE-KILL-IDENTITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4408302Z - Title: Seed (DE-SCOPED from TEST-only, BAROMETER 2026-08-02 — the id keeps its `-TEST-` infix for registry stability, but the rule always covered both populations and the product half is now proven, tracked by REQ-SHELL-KILL-AUTHENTICATED): any process kill driven by a pid read from a best-effort breadcrumb FILE — tree or single-process, IN A TEST RIG OR IN SHIPPED PRODUCT CODE — must first distinguish an already-exited process (benign: log and skip) from a live process, then prove the live process is the one the record MEANS before terminating it: in a rig by re-resolving its executable path and requiring it under that test job's own target directory (self and test-harness ancestors always refused); in product code by the pid+birth PAIR via `liveness::relay_liveness`, since the daemon can park a birth stamp at launch and an image path cannot separate two shells sharing one binary. A live but unidentifiable process is NEVER a legitimate kill target in either population, and the refusal must be AUDIBLE — a destructive path that treats unknown as do-not-fire trades a loud wrong action for a quiet wrong state unless it names the pid it spared and why. `/T` grades blast radius; it is not the defect. Field trigger: golden run 30501468421 Windows job 90742055246 ended worker_lifecycle_e2e with bare exit 1 after every assertion and observability point had been placed after taskkill /PID <daemon.pid> /F /T. Predicate-bounded breadth on crates/*/tests/*.rs: 42 taskkill-/T files; 30 also reference a literal pid/ready breadcrumb filename; 23 breadcrumb-to-tree-kill flows manually confirmed and 7 unconfirmed. brain.ready dominates (26 references), and its heartbeat refresh makes staleness correlate with the original target already being dead — precisely when pid reuse bites. An independent wider-root predicate reproduced exactly the original 6 daemon.pid tree-kill flows. A graded second tier adds 12 manually-confirmed daemon.pid taskkill-/F files without /T: smaller blast radius, identical unauthenticated-termination defect.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4408408Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4408437Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4408536Z ### REQ-ROSTER-SELF-LEASE-HEAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4414297Z - Title: WAN-TRUTH #40 F1: a node's OWN advertised roster row can never be frozen by a regressed epoch counter. Before authoring a self-entry — at pump boot and on every roster-exchange provider pass — the node consults the fleet-replicated lease it already holds for its own pubkey (RosterStore, the copy peers merged back to it) and fast-forwards its EpochSource strictly past that ceiling, so every self-advertisement out-ranks the copy the fleet holds and merge_entry's strictly-greater rule admits it. Field shape this repairs: HFENDULEAM's counter restarted at 0 after a hard reset (NUL husk, see the twin) while its fleet-replicated self row carried lease 803460 with a Jul-18 port; every later self-advertisement merged Stale on every peer, forever, and the node could not repair its own advertised address by any means short of operator surgery — the defect that makes a rebind (F4) invisible and strands the node symmetrically. The heal is retroactive: it repairs an already-damaged node on its next boot, which is why it, and not counter durability, is the primary fix; the durable epoch write and the loud corrupt-husk log ride along as defense in depth, and atomic.rs stops naming epoch counters as safe-for-non-durable RECONSTRUCTIBLE state (that sentence is now a documented-false invariant). Twin: REQ-HAZARD-SELF-ROW-LEASE-FREEZE. Kin REQ-MESH-2 (the upsert_self authorship site), REQ-HAZARD-REGISTRY-EPOCH-LEASE (the counter's own monotonicity contract, unchanged here). Gate: impl — the fleet-lease ceiling read, the fast-forward, its wiring at boot and at the provider, the durable write and the husk log; unit — a counter below the fleet ceiling fast-forwards strictly past it, a counter already above it is untouched (never a gratuitous jump), a healed node's next self-entry merges Updated (not Stale) against the stale high-lease row, and a NUL husk is distinguished from an absent file in the log; int — a node booting with a regressed counter and a high-lease stale self row re-advertises a self entry the fleet admits, with zero state surgery.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4414500Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4414534Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4414637Z ### REQ-HAZARD-SELF-ROW-LEASE-FREEZE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4417675Z - Title: HAZARD: a node whose epoch counter has regressed below the lease on its own fleet-replicated roster row is FROZEN — it can never again change its advertised address, on any peer, and nothing in the system says so. The failure is silent by construction: the node keeps authoring self-entries at a lower lease, every peer's merge_entry returns Stale, net_up stays true, the heartbeat stays fresh, and the roster rows peers hold keep a fresh last_seen riding a dead address. Regression is near-deterministic on a hard reset because the counter is rewritten every few seconds through the non-durable atomic path and resurrects as a NUL husk that parses to absent and reloads as 0 (evidenced twice: ENLYZEAM Kernel-Power 41 seventy-two seconds after its last winning row; HFENDULEAM Jul-19 resets against a Jul-18 frozen row). Forbidden state: a node advertising a self-entry the fleet cannot admit, with no self-repair path. Twin of REQ-ROSTER-SELF-LEASE-HEAL. Gate: doc — the KNOWN-HAZARDS entry; int — the frozen-row shape is set up on a real node root and the boot heal is proved to break it (a pre-fix build strands).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4417781Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4417809Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4417913Z ### REQ-DIAL-FAILED-ADDR-MEMORY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4421825Z - Title: WAN-TRUTH #40 F2/F3 mechanism: the node remembers the exact ADDRESSES its dials just failed on — never the peer, never the chain leg (doyle ruling 2026-07-31, amending the RCA's per-leg/per-peer wording, which would have deleted the strand-heal guarantee REQ-PEER-ROUTE-CHAIN was built to provide). The record is keyed on the full address actually dialed, compared by exact equality; it is TTL-bounded and cleared by a successful dial or validation of that address, so a transient failure can never permanently ban an address that works. It is RAM-only and node-LOCAL: a restart forfeits it (one wasted dial, re-marked on the next failure), no new persisted store is introduced, and the fact never rides the gossip/roster DTO in any form. It is BUILT at the dial site (which owns the address that was dialed) and consumed by its two leaves — REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP and REQ-RECONCILE-FAILED-ADDR-REFUSE — through ONE shared helper, so neither consumer re-derives the equality. Gate: impl — the type, its construction at the dial site, the clear-on-success, the TTL, and the carry to the pump-side consumer over the existing local presence field; unit — an exact address matches and a differing address does not, a successful dial clears the record, an expired record stops matching, and the type carries no serialization onto any gossip DTO.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4421973Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4422001Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4422106Z ### REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4424699Z - Title: WAN-TRUTH #40 F2 (the ROUTE-CHAIN consumer of REQ-DIAL-FAILED-ADDR-MEMORY): leg 2 of resolve_submit_addr skips a validated roster address that IS the address the last dial failed on, falling through to leg 3 (id-only discovery) — the leg the field incident could never reach. Every other roster address still resolves exactly as today: this is a skip of one known-dead value, NOT a demotion of the roster leg, so a node holding a genuinely fresher roster address still heals connection-free (REQ-PEER-ROUTE-CHAIN's guarantee, re-pinned by intent rather than inverted). Sibling: REQ-RECONCILE-FAILED-ADDR-REFUSE, the same memory read at the reconcile consumer. Gate: impl — the leg-2 skip through the shared helper; unit — a roster address equal to the just-failed one falls through to discovery, a roster address DIFFERING from it still resolves at leg 2 (the strand-heal intent), and with no failure recorded the chain order is unchanged.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4424852Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4424880Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4424980Z ### REQ-RECONCILE-FAILED-ADDR-REFUSE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4427898Z - Title: WAN-TRUTH #40 F3 (the RECONCILE consumer of REQ-DIAL-FAILED-ADDR-MEMORY): reconcile_peeraddrs refuses to reinstall over a suspect cache row the very address whose dial just failed, and leaves the suspect mark standing — while still installing any DIFFERING validated roster address and clearing the mark exactly as today. This kills the livelock the live-fire injection proved (fail at 19:42:19 -> demote -> the 19:42:34 roster exchange reinstalls the byte-identical stale address and clears the mark -> fail), without removing the connection-independent recovery the same function exists to provide. Sibling: REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP, the same memory read at the route-chain consumer. Gate: impl — the suspect-arm predicate through the shared helper, at both the startup and the roster-merge sink call sites; unit — a suspect row is NOT overwritten by the just-failed address and stays suspect, a suspect row IS replaced by a differing roster address with the mark cleared (re-pinned by intent), and absent/invariant-invalid rows behave as before.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4428023Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4428050Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4428163Z ### REQ-HAZARD-FAILED-ADDR-REINSTALL-LOOP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4431364Z - Title: HAZARD: a peer is never stranded by an address that has ALREADY failed — no path may re-serve or reinstall a just-failed address such that the node retries it forever and never reaches the discovery leg. This is the second clause of KNOWN-HAZARDS 7.42, added rather than carved out: 7.42's first clause (a valid roster address must never be deleted by a failed dial) remains true and is what REQ-HAZARD-MESH-BOOTSTRAP-TRAP pins; the cross-site incident falsified the unstated assumption BEHIND it, that a retained roster address is fresher than the failed one. Forbidden state: fail -> demote to suspect -> reinstall the identical address -> fail, cycling on every roster exchange while the id-only discovery leg stays unreachable and every status surface reads healthy. Kin REQ-DIAL-FAILED-ADDR-MEMORY (the mechanism that forbids it), REQ-HAZARD-MESH-BOOTSTRAP-TRAP (the first clause, distinct anchor). Gate: doc — the KNOWN-HAZARDS 7.42 second-clause entry; int — the livelock is set up on the real pump seam (dead roster address, discovery live) and the node is proved to reach discovery and connect; a pre-fix build never converges.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4431532Z - Required stages: doc, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4431560Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4431665Z ### REQ-SELF-ADDR-REBIND-READVERTISE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4435036Z - Title: WAN-TRUTH #40 F4: when this node's live endpoint address changes — a rebind to a new port after a restart, the everyday shape behind the incident's dead Jul-18 port — it re-authors its own roster self-entry with the new address immediately, rather than waiting for a peer to dial in and trigger the exchange provider. A node whose address changed is exactly the node peers can no longer reach, so making propagation depend on an inbound connection is the wrong direction of dependency; the local roster row is refreshed at once (so any exchange, in either direction, serves the current address) and the advertise wake is set so the next pump round pushes it. The re-authored entry carries a strictly-greater lease, which is only sound once REQ-ROSTER-SELF-LEASE-HEAL guarantees the counter is above the fleet's ceiling — F4 is the propagation half of the same field failure, F1 the ordering half. Gate: impl — the address-change detection against the last-advertised self row, the re-author, and the advertise wake; unit — a changed address re-authors the self row with a strictly-greater lease and sets the wake, an unchanged address does neither (no advertise storm), and a null/unbound address is never advertised.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4435183Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4435206Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4435313Z ### REQ-DIAL-ROUTE-LEG-ATTRIBUTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4439282Z - Title: WAN-TRUTH #41 leg 1: every submitted dial says WHAT address it dialed and WHICH leg of the route chain produced it, at submit and again on failure. The 2026-07-30 cross-site RCA had to infer the dialed address from timing alone, which is what made a days-long partial outage expensive to diagnose rather than merely bad. The attribution is a VERDICT type over the chain, not a free-text log fragment: one token per outcome, single-sourced so the log sites and the tests that match them can never spell it differently. Critically, the post-lane-1 skip is its own verdict and never collapses into plain discovery: after REQ-ROUTE-CHAIN-FAILED-ADDR-SKIP a node that HOLDS a validated roster address can still fall to discovery because that exact address is the one its last dial failed on, and reporting that as discovery asserts the opposite diagnosis -- that this node has no roster address for the peer -- which would poison the #42/#49 relay RCA this observability exists to serve. The unresolved outcome splits the same way. This requirement owns only the REPORTING; REQ-PEER-ROUTE-CHAIN continues to own the chain order and this must never change an outcome. Gate: impl -- the leg verdict type and its single-source token, returned by the resolver and logged at the submit site, at the submit-refused failure, at the no-route failure, and carried to the drained DIAL_FAILED line (unrecorded means unknown, never a guess); unit -- each chain leg resolves to its own verdict on the existing chain rig, the just-failed roster address resolves to the SKIP verdict while a differing roster address still resolves to the roster verdict, and the unresolved cases split the same way.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4439391Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4439419Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4439525Z ### REQ-SELF-ENDPOINT-ADDR-SURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4442940Z - Title: WAN-TRUTH #41 leg 2: this node OWN dialable address -- id, direct paths, and the relay it is actually homed on -- is reported by spt daemon status and its --json twin. The home relay reached no surface at all before this: the fleet homed onto iroh-canary relays while daemon.json still declared N0Default, and nothing an operator could run would contradict the config file. The value is therefore read off the LIVE endpoint (the broker net-status reply, which already carried it unconsumed), never echoed from configuration -- a line that restates config would have agreed with the wrong answer. No relay advertised is a reported state, not an absence of one, and an unparseable or unknown address shape degrades to that rather than failing the status read. Distinguish from REQ-PUMP-STAGE-TRUTH, which reports whether we can reach OTHER nodes; this reports what we advertise about OURSELVES. Gate: impl -- the relay accessor over the opaque EndpointAddr JSON, the status --json fields (self_addr, home_relay, node_id_hex, all additive), and the human status line; unit -- the accessor is proved against a REAL serialized EndpointAddr rather than a hand-written fixture (this repo existing opaque-addr fixtures spell paths as bare strings, which iroh does not emit, so a fixture-verified accessor would return no relay for every node in the field), a relay-less address reports no relay, and junk degrades without panicking.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4443126Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4443154Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4443255Z ### REQ-PEER-HEALTH-PARTIAL-DEGRADE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4447408Z - Title: WAN-TRUTH #41 leg 3: a partial peer outage renders its own verdict (degraded-partial) instead of healthy. The field shape: 2 of 7 peers live and the other 5 failing for days, reported green, because the green test was at-least-one-live-connection and any single dial success also closed the only incident window there was. INSTRUMENT SOUNDNESS is the governing principle and the reason this is a requirement rather than a nicety -- the monitor green must not be producible by the fault it watches, and persistent per-peer dial failure was exactly such a producer. Two changes carry it: the failing set is consulted BEFORE the live count so green requires that nothing is failing rather than that something works, and an ANY-fail window spans the all-fail one so a single peer reconnecting narrows the verdict without erasing the incident measured age. The full-sequester verdict, its window, and the stage attribution are unchanged; this is additive on the machine surface, and an older reader meeting an unfamiliar token is the intended failure mode, since healthy is precisely what it used to be told. Distinguish from REQ-PUMP-STAGE-TRUTH (same ADR-0039 Decision 5 surface): that owns the TOTAL-failure fingerprint and the per-stage attribution, this owns only the partial-failure verdict and the window that survives one peer recovery. Gate: impl -- the verdict variant, the any-fail window recomputed with the all-fail one, the ordering change, and both render surfaces (human line and machine token); unit -- some-failing-while-others-live renders the partial verdict and never healthy, green requires progress on EVERY target, one peer success does not restart the incident clock, and the total-failure fingerprint still renders the unchanged full verdict.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4447509Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4447538Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4447656Z ### REQ-HAZARD-MONITOR-GREEN-SELF-PRODUCIBLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4453559Z - Title: HAZARD: a monitor green state must never be REACHABLE BY the fault that monitor exists to report. A surface that can certify a broken system as healthy is worse than no surface, because it ends the operator investigation rather than merely failing to start it. Paid for twice on one surface in one batch: the 2026-07-10 sequester (net_up meant a local host object exists, the heartbeat meant the loop is alive, durable counts meant membership -- none was a function of reaching a peer, so all three stayed green while every dial failed), and then AGAIN in the fix for it (issue #41: the reachability verdict returned Healthy on any live peer BEFORE consulting the failing set, and its only incident window required every target to be failing, so 2 of 7 live with 5 failing for days read healthy and one dial success closed the window). The second instance is the binding lesson: at-least-one-thing-works is the intuitive spelling of green and it is precisely the spelling the fault can satisfy. Forbidden state: any state reachable by the fault that the surface reports as green. Invariant: green asserts the ABSENCE of the fault, never the PRESENCE of some success -- nothing failing rather than something working; a partial fault renders its own verdict instead of collapsing into a neighbour; an incident window closes only when the fault clears, never on one participant recovery, elapsed time, or a heartbeat. Corollary: dropping the failing subject from the monitored set produces green just as silently, so every membership-change path is a re-entry path and must be examined as one (the known open door is documented in KNOWN-HAZARDS 7.61 rather than closed here). Twin: REQ-PEER-HEALTH-PARTIAL-DEGRADE, the positive requirement repairing instance 2. Kin REQ-PUMP-STAGE-TRUTH (the total-failure fingerprint and stage attribution, produced by instance 1 and unchanged here). Distinct from the instrument-soundness rule about TEST gates, which governs a rig verdict rather than a production monitor and is never requirement evidence. Gate: doc -- the KNOWN-HAZARDS 7.61 entry naming the class, both instances, and the open eviction door; unit -- the fault at full strength (five of seven peers failing behind two live ones) is asserted NOT green in its own terms; int -- on the real pump seam, the dial path does not emit the reading it would produce in the benign case (plain discovery) while sitting in the fault (a held roster address that was refused).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4453748Z - Required stages: doc, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4453777Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4453878Z ### REQ-PEER-COUNT-TARGET-SCOPED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4458798Z - Title: The rendered peer-reachability fraction counts ONE population at both ends: the live count is the intersection of the pump live connections with the CURRENT fan-out targets, re-derived whenever the targets move. The field specimen was 7/1 -- seven live peer connections over one remaining membership target -- because the numerator came from the connection cache (inserted on every PRESENCE_CONNECTED, is_target computed beside it and not gating the insert, removed only on PRESENCE_DISCONNECTED) while the denominator was roster-derived. Leaving a subnet disconnects NOBODY, so ex-members went on counting while the denominator followed the leave; the state therefore travels a targets change with no presence event anywhere near it, which is why the count cannot be maintained at the presence seam alone and must be re-derivable from a live-connection SET rather than stamped as a number. The fix is an INTERSECTION and explicitly not a teardown at leave: a peer can be justified by a second subnet, so dropping its connection would make the count right for the wrong reason and wrong again the moment the peer is re-justified. Connections to non-targets stay real and stay reported; they are simply not part of the answer to how many of the peers we are trying to reach are up. Consequence, in the honest direction: the sequester test narrows, since a live connection to a node we no longer fan out to used to hold the all-fail window shut while every actual target was failing. Distinguish from REQ-PEER-HEALTH-PARTIAL-DEGRADE, which owns WHICH VERDICT a mix of live and failing peers renders; this owns only the population the counts are taken over. Gate: impl -- the live-connection set on the snapshot, the derivation against targets, the re-derivation on set_targets, and the pump seam handing the whole conns key set rather than a length; unit -- a subnet leave re-derives the numerator with nobody disconnected and the connections still reported, a re-join restores it without a redial, a live non-target never enters the count nor renders green, and the rendered line reads 1/1 where it read 7/1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4458907Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4458936Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4459112Z ### REQ-PEER-ABSENCE-VERDICT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4465853Z - Title: Peer reachability has a THIRD verdict -- peers-absent, rendered `peers unreachable:` -- for the state where the failing peers are simply not there, distinct from healthy and from both degraded verdicts and never a synonym for either. The vocabulary had no way to say that machine is off: PRESENCE_DIAL_FAILED fires for any reason at all including the ordinary powered-down peer, so the word the operator read (degraded) pointed at THEIR OWN node. The discriminator is POSITIVE and INDEPENDENT, two conditions that must both hold and neither of which any peer SUCCESS can supply: every currently-failing target is a node the registry holds rows for and none of those rows is routable, AND last_registry_admit_ms is within the registry own silent-peer eviction window of the instant that offline set was sampled. Silence about a node is not evidence -- a node with no rows keeps the conservative verdict -- and stale gossip is memory rather than observation, so no fresh gossip means no basis to call anyone absent. The independence requirement is the load-bearing one: the tempting inference that a live peer proves this node egress and therefore acquits it of the other peers failures is one peer success testifying about a DIFFERENT peer failure, which is REQ-PEER-HEALTH-PARTIAL-DEGRADE (#41) outvoting logic wearing a new word; egress to X says nothing about the route to Y. The freshness gate is also what preserves the 2026-07-10 sequester fingerprint with no carve-out: a node that can reach nobody admits no inbound feed either, so its stamp goes stale and the verdict falls back to degraded on its own. SCOPE: it replaces a degraded verdict and only ever a degraded verdict -- unreachable with an empty failing set (so healthy is unreachable from it) and never replacing connecting (a round still working through its first dials has established nothing). Additive on the machine surface like degraded-partial before it, for the mirrored reason: an older reader meets an unfamiliar token rather than a degraded that blames the wrong machine. Gate: doc -- the ADR-0039 Decision 5 amendment naming the third word, both halves of the discriminator, the scope, and why the sequester survives; impl -- the verdict variant and its arm ordered ahead of both degraded arms, the registry per-node routability accessor whose three states keep unknown distinct from offline, the pump-side sample taken beside the admit stamp, and both render surfaces; unit -- a failing peer whose node the registry reports offline reads the new word and never healthy, ONE unaccounted failing peer holds the degraded-partial verdict (including a peer the registry merely knows nothing about), stale or never-admitted gossip forces the conservative read at the window boundary, and the arm never displaces connecting nor outlives a departed target.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4466019Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4466048Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4466171Z ### REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4471124Z - Title: The inbound-reachability verdict is written by the process that BINDS the UDP socket (the daemon, at endpoint bringup) into a record every renderer reads, and that record is PINNED to the binder's identity — pid AND image path — with validity RE-DERIVED from the process table at read time: the recorded pid must still resolve to an image and that image must be the recorded one, or the record is discarded as UNKNOWN. The pin is the whole point — a daemon that restarted onto a new ephemeral port, or died before re-verifying, must not leave behind a verdict that still reads reachable, because a stale green is producible by exactly the fault the verdict exists to detect (KNOWN-HAZARDS 7.61). Image path is part of the identity because a pid alone is recyclable. The pin explicitly does NOT key on <spt_home>/daemon.pid: that breadcrumb is best-effort by contract and is written BEFORE the socket bind that arbitrates single-daemon-per-home, so a losing starter overwrites the winner's value on its way out (measured on HFENDULEAM 2026-07-31 — the file named a pid dead since startup while the real daemon served on another), and a verdict keyed to it would be discarded for the daemon that actually wrote it. Absent, corrupt, dead-binder and recycled-pid are the SAME answer: unknown, never fine. Only the binder writes; the CLI renders and never probes on its own, because only the binder knows both its own image path and the port it actually got. Gate: impl — the record type, the binder-side write at daemon bringup, the process-table-validated read; unit — a dead binder reads UNKNOWN not its recorded verdict, a live pid running a different image reads UNKNOWN, absent and corrupt read UNKNOWN, a live binder round-trips its verdict.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4471282Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4471314Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4471434Z ### REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4475764Z - Title: Windows inbound reachability is verified by PATH MATCH against the binder, not by rule name: the check passes only when the installer's program-scoped firewall rule names the executable of the resident daemon — the process that binds the QUIC/mDNS UDP socket — and the elevated repair rewrites the rule to THAT path. Supersedes the name-presence probe REQ-INSTALL-7 shipped, which a rule pointing at a moved or dev-build binary satisfies while inbound is blocked in fact (gap class 2). Measured on HFENDULEAM 2026-07-31: the rule names %LOCALAPPDATA%\spt-core\bin\spt.exe and the resident daemon runs that same installed binary, so this host is a MATCH, not a live mismatch — the class is proven by construction (a program-scoped rule admits exactly one path) and by unit fixture, not by a field specimen. An earlier version of this title claimed the mismatch was live here; direct measurement refuted it. The authoritative binary is never the invoking CLI's argv[0]: a repair keyed to the caller would rewrite the rule onto whichever build happened to run the command. With no resident daemon the verdict is UNKNOWN — the check reports that it cannot say rather than guessing a path. Unelevated: report loudly with the exact command, write nothing. Gate: doc — KNOWN-HAZARDS/install docs state that the rule is verified against the binder's path; impl — the netsh verbose probe, the Program-line parse, the decide seam, the elevated repair; unit — path match passes, path mismatch fails with the rule's path in the verdict, a missing Program line and a failed probe both read UNKNOWN rather than either pass or fail.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4475921Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4475950Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4476079Z ### REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4479485Z - Title: Linux inbound reachability is VERIFIED and rendered, never repaired: the daemon detects the active host firewall (ufw, nftables, firewalld), decides whether inbound UDP to the port it ACTUALLY bound is permitted, and renders the exact command an operator would run. Zero writes to the host firewall. The Linux sibling of REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH, split on the platform axis and stopping short of repair for a stated reason: a durable rule needs a stable port and production binds ephemeral (BindScope::Port is test-scope only), so an auto-written rule would be stale at the next restart while reading repaired. Auto-repair is relocated to releases#54 behind the pinned-port decision, not dropped — see REQ-NET-PINNED-UDP-PORT. No detected firewall is not a pass: it is UNKNOWN unless the probe positively determined the port is reachable. Gate: doc — the install docs state the Linux posture (verify + tell, no writes) and name the command; impl — the bounded ufw/nft/firewalld probes and the decide seam over (firewall kind, ruleset, bound port); unit — an allowing ruleset passes, a blocking one fails carrying the rendered command, an absent/failed probe reads UNKNOWN.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4479593Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4479623Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4479737Z ### REQ-INBOUND-PROVIDER-FIREWALL-DOCS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4481926Z - Title: Provider-level firewalls (cloud vendor security groups — the DigitalOcean droplet case) are unreachable by any installer BY DESIGN, so inbound UDP for QUIC is a stated hosting REQUIREMENT in the public docs rather than something code pretends to fix. The docs leg exists because the failure is otherwise indistinguishable to the operator from the host-firewall classes REQ-INBOUND-WINDOWS-RULE-BINDER-PATH-MATCH and REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY cover: same silent NO_SEED_HOLDER symptom, a cause no local probe can see. Gate: doc — a public-docs section naming the inbound-UDP requirement, that it is the operator's to satisfy at the provider, and the symptom it produces when unsatisfied.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4482027Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4482057Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4482156Z ### REQ-NET-PINNED-UDP-PORT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4483936Z - Title: Seed (releases#54, doyle L3 ruling 2026-07-31): a pinned UDP port for the production QUIC endpoint, so a host-firewall rule can be written once and stay true across restarts. Today BindScope::All binds ephemeral and BindScope::Port exists only in test scope (pairhost maps it back to All), which is why REQ-INBOUND-LINUX-HOST-FIREWALL-VERIFY ships verify-only — the repair half has nothing durable to allow. Not a rider on the verify wave: pinning a port is a transport-config AND security-posture decision with pairing/ticket/two-host ripple, and it is operator-visible, so it takes its own wave and its own gate.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4484075Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4484108Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4484221Z ### REQ-ACL-SURFACE-ATTRIBUTABILITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4488349Z - Title: Whether a control surface's inbound carries a PROVEN sender endpoint is single-sourced per-surface metadata, never a hardcoded MSG-vs-rest split. Attributability decides which SUBJECT TIER a grant for that surface can actually bind: attributable => a sender-endpoint subject can match (today MSG, via the W2b daemon stamp); non-attributable => only node-tier subjects are real, and a sender-endpoint entry on such a surface is dead on arrival — it can never match, so writing one is a silent no-op the CLI must refuse rather than persist. The single-source form is a per-surface table carrying the flag beside the id, with the v1 id list DERIVED from that table and exactly one reader answering the question; a second site that re-derives 'MSG or not' is the drift class this requirement exists to prevent (a property matched at one site and built at another). The payoff is automatic: when a surface's records grow their own sender stamp (XFER is the expected next), flipping one row makes it attributable and it exits every restriction keyed on this property with no re-ruling and no second edit. Gate: doc — the CONTEXT.md sender-attributability entry; impl — the per-surface table with the derived id list and the single is_attributable reader; unit — the derived list matches the table exactly, MSG reads attributable and a non-stamped surface does not, and flipping one row's flag moves that surface across every attributability-keyed decision without touching another site.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4488468Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4488497Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4488590Z ### REQ-ACL-ORIGIN-QUALIFIER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4494845Z - Title: An access rule may carry an ORIGIN QUALIFIER (any|user|agent) restricting it to invocations of that origin class, so a rule can say 'the humans on node A, not its agents' and let that node's agents fall through to the mode. TWO TYPES, NOT ONE (doyle-ruled design): the RULE side is a three-valued qualifier defaulting to `any` for N-1 records; the REQUEST side is a TOTAL two-valued class (user|agent) with no unknown arm, because `any` is a rule-side value that no classifier ever emits — a single three-valued type would let a classifier return `any`, which is meaningless. Classification is ambient and ceremony-free, performed by the SENDING daemon over the existing local-origin predicate (interactive terminal with no perch/broker ancestry => user; agent-session ancestry => agent) and carried to the receiving gate as a daemon-stamped sibling of the sender-endpoint stamp — the same shape of fact, so the same seam, never a parallel path. ABSENT OR UNCLASSIFIABLE MAPS TO agent AT THE RECEIVING BOUNDARY: the restrictive class, so a `user` rule never admits an unknown and N-1 senders land safe automatically without a compat flag. Honest limit, stated and never to be inflated: this is the honest member daemon's report — sound against agents on honest nodes (ancestry cannot be env-scrubbed away), NOT against a malicious node, and a detached process spawned outside an agent's session tree can launder to `user`. Defense-in-depth, not proof; a forged origin stamp sits at the same trust tier as a forged sender stamp and never elevates the subject chain. The `user-proven` TOTP-minted pid-linked token is FORWARD DESIGN and must not be built. Gate: doc — the CONTEXT.md origin-qualifier entry plus the amended wire-module identity-field doc carrying origin's forgery blast radius; impl — the two types, the rule field with its serde default, the request field, the chain's qualifier check, and the sending-daemon stamp; unit — the qualifier matches its own class and abstains on the other, `any` matches both, an absent request-side stamp evaluates as agent, an N-1 rule record with no qualifier decodes as `any`, and the wire field is additive in both directions exactly as the sender stamp is.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4495058Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4495086Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4495179Z ### REQ-KNOCK-VERBS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4498885Z - Title: Knocking is one origin-classified verb family under `spt knock ...` — no user-flavored parallel commands and no second namespace. Agent-invoked, the knocker is the session-proven self endpoint and is never caller-supplied; user-invoked from a bare terminal with no perch, the knock requests the deliberately NARROW `subject <invoking-node>, origin user` ('the humans on my node') rather than a bare node entry, so the commonest approval admits humans only, with an explicit flag to knock on behalf of a local endpoint the sending daemon VERIFIES exists. Target-side minting of an invite code is self-sovereign for an endpoint's own agent; the node-target form is engine-room-only. Every form's stdout states plainly what was created, granted or activated — subject, surfaces, scope, expiry — because the grant a user cannot read is the grant they did not mean. Gate: doc — the CONTEXT.md knock-initiation entry and the public CLI reference; impl — the verb family with invocation-time origin classification and the local-endpoint verification; unit — an agent invocation stamps itself and cannot supply another knocker, a bare-terminal invocation produces the narrow node+user subject rather than a bare node subject, an unknown local endpoint is refused at send, and every form's stdout names subject, surfaces and scope.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4499076Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4499104Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4499212Z ### REQ-KNOCK-UNRESOLVED-REFUSES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4506777Z - Title: A KNOCK THAT RESOLVED NOWHERE REFUSES LOUDLY AND RECORDS NOTHING, and a knock that lands in the sender's OWN inbox says so. Operator-ruled 2026-08-03 (releases#145): if `spt knock` cannot reach endpoints on nodes lacking a DISCOVER rule, it must directly report that it cannot find the endpoint. The defect was one site with two halves. First, the wire leg's NotFound outcome fell through to the LOCAL landing unconditionally, ten lines under a comment naming the exact hazard it then committed — 'a local-only record would leave the operator believing they asked when nobody was told' — so a target that existed on no reachable node was written into the SENDER's own store and reported with the fully positive 'It is waiting in their inbox', exit 0. Field case: ball-b@ENLYZEAM knocked lia@HFENDULEAM and got a positive stdout while lia's node held zero knock rows; both nodes were members of one CLOSED subnet, where endpoint-tier discovery is deny-default BY DESIGN, so resolution NotFounded correctly and the whole defect is the CLI's answer to it. Second, the LOCAL and remote-QUEUED landings rendered an IDENTICAL closing sentence, so the operator could not tell 'their node has it' from 'this machine recorded it in hope'. THE LOCAL LANDING SURVIVES ONLY FOR A TARGET VERIFIED TO EXIST HERE — it exists for a LOCAL endpoint carrying no registry row (unregistered or asleep), and the question that separates that from a target existing nowhere is whether the target is an endpoint on this machine, asked with the same predicate `--for` already asks of the knocker. THE REFUSAL NAMES THE REMEDY THAT ACTUALLY REACHES AN UNDISCOVERABLE ENDPOINT: the knock-code (mint on their machine, redeem here), because in a closed subnet the bare knock is not merely failing, it is the wrong mechanism — and the prescribed invocations must be forms the binary HONORS (REQ-KNOCK-PRESCRIBED-REMEDY-HONORED applies to a refusal's advice exactly as it applies to a listing's). Gate: impl — the landing decision as a PURE classifier over the outcome plus the target's locality, the locality predicate, and one composer rendering every landing's line; unit — a NotFound at a non-local target refuses while a NotFound at a local endpoint still lands, the landing classifier and the wire-refusal renderer partition the outcome enum with no variant covered twice or missed, and the three landing lines are RENDERED and asserted distinct (the identical-sentence half is invisible to any test that does not render); int — the real binary knocking a target that exists nowhere exits nonzero, names KNOCK_NOTFOUND and leaves the store with no row, beside a local endpoint on the same home landing and exiting 0 so the refusal is discriminating rather than a verb that always refuses.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4506998Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4507027Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4507129Z ### REQ-KNOCK-KNOCKER-STAMP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4510382Z - Title: BINDING: the knock record's knocker field is daemon-stamped at mint (session-proven, the W2b discipline) and never caller-supplied. This is the load-bearing security property of the whole knock mechanism, not a hardening detail — an approval WRITES A WHITELIST ENTRY FOR THAT ID, so a forgeable knocker field is a grant-to-attacker primitive: an attacker who can name someone else as the knocker gets the target's own agent to authorize reach for an identity the attacker controls. KNOCK is therefore attributable by construction, independent of the per-surface attributability of whatever surfaces the knock requests. The stamp is applied at the same sending-daemon seam that proves the sender endpoint, and no CLI flag, envelope field or record edit may override it after mint. Gate: doc — the CONTEXT.md knock entries naming the stamp as binding; impl — the mint-time stamp with no caller-supplied path to the field; unit — a knock minted by an agent carries that agent's proven id, a caller-supplied knocker value is ignored or refused rather than persisted, and an approval writes its entry for the STAMPED id and never for a supplied one.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4510502Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4510531Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4510640Z ### REQ-KNOCK-AUTHORITY-SPLIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4515421Z - Title: Who may answer a knock, or mint an invite code, follows the TARGET TIER of what it grants. Node-target grants (node-tier rules, node modes, any permission no single endpoint owns) are answerable and mintable ONLY by the node's engine-room and land only in the engine-room's inbox. Endpoint-target grants stay SELF-SOVEREIGN — the target endpoint's own agent answers — with one guard: approving a surface that is not sender-attributable writes a NODE-SUBJECT entry, admitting every endpoint on the knocker's node whatever the knock named, so that approval (and a code-mint baking such a surface) must carry an explicit widening acknowledgment at the CLI and is gated by the node's grant-nodes policy. No silent widening, ever. A code is a pre-approval, never a widening loophole: it carries the same acknowledgment as the approve it stands in for. Where a single knock mixes attributable and non-attributable surfaces under a false policy, the attributable SUBSET is approvable and the refused remainder STAYS PENDING with stdout naming the engine-room as the seat that can answer it — the mixed case renders its own verdict and must not collapse into a blanket approve or a blanket deny (hazard 7.61: a partial fault renders its own verdict). Gate: doc — the CONTEXT.md grant-authority entry; impl — target-tier routing, the widening acknowledgment, and the partial-approve path; unit — a node-target knock reaches only the engine-room inbox, an endpoint-target knock is answerable by its own agent and not routed to the engine-room, a non-attributable approval without the acknowledgment is refused, and a mixed knock under a false policy grants the attributable subset while the remainder stays pending naming the engine-room.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4515572Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4515602Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4515740Z ### REQ-ACL-LOCKED-POSTURE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4526567Z - Title: The **locked** claim is one predicate, and it asks the CHAIN. `ACCESS_LOCKED` (the `revoke` arm) and the access view's `locked` field are two renderings of a single fact — this endpoint refuses ALL unsolicited remote inbound — and both take that fact from ONE predicate, `AccessStore::is_locked(endpoint)`. It is CHAIN-SCOPED by necessity, not by preference: the superseded `EndpointAcl::is_locked` was record-scoped and therefore structurally unable to answer, because an endpoint that names no posture of its own inherits one from the node mode and from captured subnet modes, neither of which a record can see; it counted node-subject allows (`allowed_nodes().is_empty()`) and never read a mode at all, so a `revoke` on a default-open endpoint told the operator their endpoint now refuses all remote inbound while the chain admitted everyone, and `--json` said `locked: true` about a store the human view correctly rendered as open in the same breath (releases#206). LOCKED MEANS, for every surface in the set: the effective posture is closed AND no ALLOW rule at endpoint-or-node scope covers it. BOTH halves are load-bearing — posture alone re-mints the same false sentence in mirror image, since rules outrank modes (tiers 1-5 above 6-8) and a closed endpoint carrying one allow row still admits somebody. Only ALLOW rows are holes (a deny row is the posture agreeing with itself), an allow qualified by origin class is still a hole because it still admits somebody, and the hole-scan reads surface coverage through the chain's OWN matching machinery rather than re-deriving what covers means — a second reading of rule semantics is precisely how the two renderings drifted apart. THE SET IS DERIVED, never enumerated: every non-default-on row of the surface table, so a later wave's surface joins the claim by the sole act of existing, and the derivation is proven against a FIXTURE table whose default-on row is not DISCOVER (with `TABLE` a const, a reader hardcoded to all-but-DISCOVER agrees with every shipped row and no test over `TABLE` can tell the two apart). DISCOVER — the one default-on row — is deliberately OUTSIDE the predicate: a blanket `closed` never GOVERNS it (releases#180), so a literal reading of the sentence would be false for every blanket-closed endpoint in the fleet and the line could never truthfully fire at all. That fact is carried BESIDE the sentence by `discover_still_open_line`, required ADJACENT IN THE SAME EMISSION wherever the locked claim prints, sibling-arm precedent: the sentence alone is the overclaim, sentence-plus-caveat is the honest composite, and the `ACCESS_LOCKED` wording itself is unchanged under this shape. The JSON view exposes the same facts from the same predicate and the same composer data, so the machine and human accounts cannot disagree. Scope of the claim is REMOTE — same-node reach and the reply exemption lie outside what the sentence asserts. Separately but in the same lane: `AccessStore::revoke` prunes a record left carrying neither rules nor modes, as `apply_mutation` already does on a Remove, because `is_vacant`'s own doc names a vacant record as the shape that must not persist — it read as restricted through the old predicate. Gate: doc — the CONTEXT.md locked-claim entry; impl — the one chain-scoped predicate, the derived surface set, the chain-machinery hole-scan, the adjacent discover caveat at every emission site, and the vacant prune in revoke; unit — a revoked default-open endpoint is not locked, a node-wide close locks an endpoint that names no posture, a closed endpoint with an allow hole is not locked while a deny row does not unlock, an origin-qualified allow still counts as a hole, a node-scope allow holes an endpoint's lock, DISCOVER stays outside the claim while a fully closed endpoint still reads locked, the surface set derives from a fixture table carrying an invented row, and revoking the last rule leaves no vacant record.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4526738Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4526820Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4526929Z ### REQ-ACL-GRANT-NODES-POLICY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4531637Z - Title: ENDPOINTS_CAN_GRANT_NODES is a node-tier policy toggle, settable only via the engine-room, gating whether an ordinary endpoint may write a NODE-SUBJECT entry into its own whitelist — the widened grant a non-attributable-surface approval produces. Explicitly set it is true or false; UNSET DERIVES PER-DECISION from the effective posture of the REQUESTED SURFACE at the target node: open => endpoints may self-approve (an allow entry on an open surface punches no hole), closed => engine-room only (a node-subject allow would punch a hole in a closed posture). The gate applies in BOTH POLARITIES — adding a node allow and removing a node deny are the same widening act — and it is enforced at the STORE MUTATION SEAM rather than in any one caller, so neither the CLI nor the knock-answer path can bypass it. It is distinct from the resolution chain's node-scope TIER: per-node chain entries are engine-room-owned always, policy or no policy; this toggle governs only the SUBJECT side of self-sovereign whitelists. The engine-room is not bound by it — its bring-up gate is the authorizing ceremony. Name caveat accepted at mint: 'grant nodes' means node-SUBJECT grants, not node-tier rules. Gate: doc — the CONTEXT.md policy entry; impl — the toggle, the unset-derivation from the requested surface's effective posture, and the both-polarity check at the mutation seam; unit — explicit true and false both honored, unset derives open-permits and closed-refuses from the requested surface, removing a node deny is gated exactly as adding a node allow, and neither the CLI nor the knock-answer path can reach a widening write without passing the seam.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4531746Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4531775Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4531874Z ### REQ-ACL-RULE-MUTATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4538276Z - Title: Access rule mutation and revocation are TUPLE-SHAPED, never id-shaped: a removal restates the subject, surfaces and origin qualifier rather than naming a generated rule id, which makes it idempotent and script-safe and removes rule-id bookkeeping from the model entirely (tuples ARE the identity). Every entry records its PROVENANCE — knock-approve, code-redeem, or manual — and the access drill-down view prints the exact removal command beside each rule together with that provenance, so revocation is copy-paste from the view that showed it. Entries born of knocks or codes have no special lifecycle after birth. Authority is threefold: the owner endpoint's agent (narrowing mutations always free, widening node-subject mutations in either polarity gated by the grant-nodes policy); same-node users always (node-sovereign, the emergency lever against a bad agent grant — there is no remote rule mutation of any kind, the remote-human path is to rc into the node); and the engine-room, which may edit node-tier entries, modes AND endpoint-scope entries across the node as the node's admin command center for access. That engine-room rule-EDITING authority supersedes the earlier 'engine-room owns modes only' clause; knock-ANSWER routing is unchanged — endpoint-target knocks still land with, and are answered by, the target endpoint. Every mutation path loads the store through the FAIL-CLOSED reader: a degraded store refuses the mutation loudly, leaves the store bytes byte-identical, and — where the mutation was a knock answer — leaves the knock PENDING rather than consuming it, because a refused write must never burn a single-use answer. Gate: doc — the CONTEXT.md rule-mutation entry and the CLI reference; impl — the tuple-matching removal primitive, the provenance field, the view's per-rule removal command, and the fail-closed load on every mutation path; unit — a tuple removal is idempotent and removes only the matching tuple, provenance survives a round-trip and renders in the view, the printed removal command actually removes the rule it was printed beside, a narrowing mutation needs no acknowledgment while a widening one does, and a mutation against a degraded store refuses loudly with the file bytes unchanged and any answering knock still pending.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4538476Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4538504Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4538596Z ### REQ-KNOCK-FLOOD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4543804Z - Title: Knocking cannot be used to flood, enumerate or brute-force. One pending knock per (knocker, target) pair — a re-knock UPDATES IN PLACE rather than queueing a second row, so an inbox cannot be filled by repetition. Knocks carry a TTL of one day and the expiry is enforced AT THE ANSWER SEAM: an expired knock is unapprovable regardless of what a stale list rendering showed, because a TTL that only filters a view is a display convention rather than a boundary. Inbound knocks are rate-limited per node (roughly ten an hour by default, knob-adjustable) using the existing windowed-counter shape rather than a newly minted clock pattern, and code redemption attempts are rate-limited per node likewise. Redemption is single-use and ATOMIC — two concurrent redemptions of one code yield exactly one success — and a redemption whose resulting write is refused does NOT burn the code. Code entropy is sized so guessing is closed under the TTL and rate limit together, and codes carry their target so no blind enumeration is possible through the discovery bypass (the docs state this). An expiry that removes a knock from the inbox must render as expired rather than as a clean nothing-to-approve: set-membership change is a re-entry path for hazard 7.61 and is pinned by test. Gate: doc — the CONTEXT.md knock entry stating TTL, one-pending-per-pair and the enumeration property, plus the public docs note on codes carrying their target; impl — the in-place upsert, the answer-seam expiry check, the per-node rate windows, and atomic single-use redemption; unit — a re-knock updates rather than appends, an expired knock is refused at answer even when a stale list showed it pending, concurrent redemptions produce exactly one success, a refused write leaves the code unburned, the rate limit refuses past its window and admits within it, and an expired-out knock renders as expired rather than as absence.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4543917Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4543945Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4544035Z ### REQ-KNOCK-MUTUAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4551785Z - Title: Two-way reach is ENCOURAGED but never imposed, and NOBODY WRITES ANOTHER ENDPOINT'S RULES — the principle this requirement exists for, unchanged through two amendments of its mechanism. AMENDED 2026-08-04 (USHER, releases#144 / ADR-0055), CORRECTING the 2026-08-01 DOORBELL W2 amendment rather than adding to it: two-way reach DECOMPOSES INTO TWO SOVEREIGN ACTS, each side opening only its own inbound, and each act is declared by the side that PERFORMS it. The requester declares theirs at the requesting verb (--send-receive pre-authorizes a rule on the requester's OWN endpoint, written by their own daemon at answer-receipt, keyed to the knock's correlation id and the node-proven answer, subject exactly the endpoint knocked, and CONSUMED EXACTLY ONCE: a replayed or duplicated answer must not write it twice, and an answer that never arrives leaves it unconsumed rather than dangling as an open grant). The RECEIVER declares nothing when accepting — accepting IS their own-side act — and REVERSE REACH IS ARMED BY THE OTHER SIDE'S OWN KNOCK-BACK, an ordinary knock carrying its own declaration, never a rider on an approval and never a grant written across the boundary. SUPERSEDED SPELLINGS, both of which this requirement once carried: "one-directional approve stands as the default" (a silent default nobody typed), and "approving with the mutual flag performs approve-plus-counter-knock" (a second grammar for the knock verb's own job — removed, not renamed, by ADR-0055). What survives every revision intact: auto-mutual stays BANNED, and so does a standing "mutual mode" setting. The forced-choice machinery now lives at the requesting seats and is specified by REQ-KNOCK-DIRECTIONALITY-SENDER. NOTIFICATIONS ARE NOW TWO, not three, and the reduction is a CONSEQUENCE of the counter-knock's removal rather than a separate decision: an approval notifies the knocker, and a code redemption notifies the code's minter. The third — a counter-knock's arrival notifying the original knocker — was produced by the counter-knock path and dies with it; a knock-back is an ordinary knock and lands inbox-only, which is the never-auto-surface default the other two are exceptions to. Nobody whose own act did not invite the notice is ever notified. Gate: doc — the CONTEXT.md mutual-whitelisting entry, carrying the two sovereign acts and the knock-back as the reverse's only instrument; impl — the pre-authorization record with its correlation-id keying and once-only consumption, and the two notifications; unit — a pre-authorization is consumed exactly once under a replayed answer, an unanswered knock leaves it unconsumed, the send-only stdout prints a reverse command that actually PARSES under the mandatory-flag grammar, and no third notification path exists.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4551993Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4552026Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4552122Z ### REQ-ACL-SURFACE-DESCRIPTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4557408Z - Title: Every control surface carries its operator-language DESCRIPTION as a third column of the same single-source surface table that already carries its id and its attributability, and each description states that surface's SUBJECT CONSEQUENCE rather than merely naming the traffic: an attributable surface says a grant binds the single proven sender ('MSG — direct messages (a grant binds the single sender)'), a non-attributable one says a grant admits the whole machine, and STOPS THERE: the remedy stays sited with the flag that owns it (the --admit-node help on knock approve and on endpoint access allow|deny|remove, plus the store's write-time refusal), because a second remedy spelling in a section that renders at a dozen sites is a drift pair — and would be outright FALSE at daemon access, a seat that acknowledgment does not bind ('XFER — file transfer (a grant admits the whole machine)'). Consequence, not category, is the load-bearing half: an operator choosing surfaces is choosing WHO gets admitted, and a description that omits that is decoration. The text is composed into every rendering AT RENDER TIME from the table, never restated at a display site, so the vocabulary a human reads and the vocabulary the gate enforces cannot drift apart and A NEW SURFACE APPEARS IN THE RENDERED HELP BY THE SOLE ACT OF EXISTING IN THE TABLE — that property is the point of the requirement and is proven directly rather than inferred from the shipped rows, which are uniform in it. Gate: doc — the CONTEXT.md surface-vocabulary entry carrying the consequence rule; impl — the description column beside the id and attributability flag, plus the one composer every renderer calls; unit — a fixture table carrying an INVENTED row renders that row with no edit to any display site, an attributable and a non-attributable row render their differing subject consequences, and the composed text is byte-derived from the table rather than matched against a second literal.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4557570Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4557599Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4557704Z ### REQ-CLI-SURFACE-SECTION-SITED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4563912Z - Title: The composed `Control surfaces:` section rides the --help of exactly the verbs whose invocation NAMES A SURFACE, and of no others, so the vocabulary meets the operator at the moment of choosing rather than in a manual: `knock` bare, `knock send`, `knock approve`, `knock new-code`, `knock list`; `endpoint access allow` / `deny` / `remove` and the FLAGLESS `endpoint access` listing (which is an EndpointCmd variant, not an AccessCmd one — a distinct site that a subcommand-only sweep silently misses); `daemon access` and its `allow` / `deny` / `remove`; and `subnet create`. DELIBERATELY EXCLUDED and recorded as decided, not overlooked: `knock redeem` and `knock deny` (the surfaces are already fixed by the code or the knock — printing the table there invites the reader to believe they have a choice), and `endpoint fork`, which keeps its existing INLINE FORK+DISCOVER prose because a two-surface verb is better served by a sentence than by a table. The section is appended through clap's after-help placeholder, which the tree uses nowhere today — a NEW PATTERN, so the root help template's existing but unused placeholder is what carries it, and the section text itself comes from the surface table's composer rather than from any per-verb literal. Public help stays free of internal codes at all depths, including the three-deep sites the docs-site drift gate cannot reach. Gate: doc — the public CLI reference; impl — the after-help wiring at each named site, fed by the single composer; unit — every named verb's rendered help carries the section and every excluded verb's does not, the flagless listing site is covered distinctly from its subcommands, the rendered text matches what the composer produced for the same table, and A WALK OVER EVERY NAMED SITE'S RENDERED HELP ASSERTS NO INTERNAL CODE (REQ-, ADR-, F-) APPEARS AT ANY DEPTH — the row that closes the three-deep gap the docs-site drift gate cannot reach, and which earns its green two ways rather than by default: the walk's site set is PINNED (it asserts it visited exactly the named sites, so an empty or truncated enumeration fails loudly rather than passing vacuously) and the same predicate is proven ABLE TO FAIL against a fixture help text carrying a code.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4564070Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4564103Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4564202Z ### REQ-CLI-MONIC-TRIGGER-SECTION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4570704Z - Title: `spt endpoint monic --help` carries a composed `Trigger kinds:` section naming every kind a trigger can watch, WHAT it watches, and WHETHER ANYTHING EVALUATES IT TODAY — the third column being the load-bearing one, because `user-input` and `agent-output` are ratified but INERT, and a section that listed them beside the live kinds without saying so would present a trigger that can never fire as one that works. That is the same honesty `monic list` already owes a stored trigger, now owed at the moment of CHOOSING one. The section is composed AT RENDER TIME from a single row table whose row carries the `TriggerKind` ITSELF, so the kind's wire spelling and its evaluated-today answer are DERIVED — from the enum and from the existing `has_live_consumer` predicate — rather than restated beside them: a kind cannot appear in the help under a spelling the `--triggers` parser would reject, nor be described as evaluated when nothing evaluates it, and a kind added to the vocabulary reaches the help by the sole act of being in the table. PLAIN TEXT, no inline Markdown, for the reason the surface section carries the identical rule: the CLI renders help through `helpfmt`, and a composer in the store crate can be read by a consumer that never passes through that renderer, so a Markdown marker reaches one audience styled and the other as literal asterisks. The words match the published docs table (kind | watches | evaluated today) rather than paraphrasing it, so an operator who read the manual and an operator who read the help learned the same vocabulary. Gate: doc — the docs-site trigger-kind table these rows speak in the same words, and the generated public CLI reference; impl — the row table beside the enum it describes, the render-time composer taking the table AS A PARAMETER, and the after-help wiring at the sited verb; unit — a fixture table carrying an INVENTED row renders that row with no edit to any display site (table-drivenness proven rather than inferred from a snapshot whose rows all agree), EVERY enum variant is present in the table (a kind added to the vocabulary cannot be silently missing from the section), a live and an inert row render their differing third column, the rendered help at the sited verb carries the composer's own text byte-for-byte rather than a second literal, and that help leaks no internal code.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4570918Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4570942Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4571038Z ### REQ-ER-BRIEFING-SURFACE-VOCAB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4576439Z - Title: The engine room is made aware of the surface vocabulary in the same words the CLI teaches it: the surface section is composed FROM THE SAME TABLE AND THE SAME COMPOSER the CLI help uses, WHEREVER THE ENGINE ROOM RECEIVES IT, rather than restating the vocabulary in prose. AMENDED BY REPLACEMENT in the KEYSTONE #182 W3 lane (doyle ruling on releases#179, 2026-08-19): the surface section moved from the bring-up briefing to the engine room's durable in-core role (REQ-ER-ROLE-STATIC-IMMUTABLE), so this requirement names the PROPERTY rather than one carrier — single-source is preserved across the carrier move, and role, briefing and CLI help remain unable to diverge. Before this section existed the engine room saw surfaces only as the SURFACE column of the ruleset table — a rendering of what rules already say, which tells an engine room what is configured but never what the words mean or what granting one costs. The single-source property IS the requirement: an engine room taught at seat time and an operator reading --help must be unable to receive different vocabularies, and a surface added to the table must reach BOTH renderings with no second edit — which is why the composer is table-PARAMETERIZED, and why a hardcoded surface list, in the role or anywhere else, is a defect this requirement refuses (the carrier of the role is a function and not a const for exactly this reason). The engine room must also not be sent to a verb that no longer exists: a section that teaches the vocabulary while prescribing a dead command teaches half a lie. Gate: doc — the CONTEXT.md engine-room entry naming the surface section as table-composed wherever it is served; impl — the role composer and the briefing both calling the shared composer, never a literal surface list; unit — a fixture table carrying an INVENTED row reaches the engine room exactly as it reaches the help, the section text is identical to the CLI's for the same table, and no prescribed subcommand is one the CLI does not parse.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4576591Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4576619Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4576709Z ### REQ-KNOCK-BARE-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4580502Z - Title: `spt knock <target>` is the bare form of the knock verb — sugar routing to `knock send` with identical semantics, identical origin classification and identical defaults, never a second code path with its own behavior. The docs already describe this form (the CLI's own knock doc-comment and the CONTEXT.md knock-initiation entry both state it): this requirement makes those sentences TRUE rather than amending them away, which is the correct repair for a documented-but-unbuilt affordance. Because clap resolves a subcommand name before a positional, an endpoint whose id collides with a subcommand name (`send`, `list`, `approve`, `deny`, `new-code`, `redeem`) is shadowed and must be knocked as `knock send <id>`; that SHADOWING RULE IS DOCUMENTED where an operator meets it rather than left to be discovered, since the failure mode is a knock that silently runs a different verb. Gate: doc — the CONTEXT.md knock-initiation entry and the public CLI reference stating the bare form and the shadowing rule; impl — the optional-subcommand-with-positional shape routing to the send path; unit — the bare form produces the same knock the explicit send form produces for the same arguments, and a target whose id equals a subcommand name resolves to THAT SUBCOMMAND (the precedence is pinned, not assumed).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4580618Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4580646Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4580740Z ### REQ-KNOCK-DEFAULT-SURFACE-MSG
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4584575Z - Title: A knock sent with no --surfaces requests MSG AND NOTHING ELSE, because the commonest knock is 'let me talk to you' and a default that requests every surface asks an operator to approve a machine-wide grant they never intended. The narrowing lives ENTIRELY IN THE CLI, which materializes an EXPLICIT [MSG] list at compose time: the store's wire encoding is UNCHANGED and empty still means every surface, so `--surfaces ALL` keeps mapping to the empty vec through the same field and an N-1 record with an empty list still reads as all. DISCOVER is deliberately OUT of the default (ruled): reachability and enumerability are different asks. SCOPE IS send AND THE BARE FORM ONLY — `approve` and `new-code` keep their current defaults, so any helper shared with them must not be changed underneath them; a narrowing applied at the shared helper would silently re-scope two other verbs. The help sentence states the affordance positively ('only use --surfaces if you need more than MSG') rather than describing the encoding. Gate: doc — the CONTEXT.md knock-initiation entry stating the send-side default; impl — the CLI-side materialization at the send/bare compose site only; unit — a bare send composes exactly [MSG], ALL composes the empty vec and still reads as every-surface, approve and new-code defaults are unchanged by the same call, and a store fixture carrying an empty list still evaluates as every surface.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4584732Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4584762Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4584870Z ### REQ-KNOCK-DIRECTIONALITY-EXPLICIT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4594338Z - Title: RETIRED 2026-08-04 (ADR-0055, releases#144 bag grill) — SUPERSEDED BY REQ-KNOCK-DIRECTIONALITY-SENDER, which owns the surviving fact at its new seats. The forced explicit choice was RIGHT and is kept; the SEAT was wrong. Directionality is sender-declared, so the mutex moved to `spt knock` / `knock send` / `knock redeem` and left `approve` and `new-code` declaring nothing, and the mint-side pre-authorization this requirement specified is removed with the flag that armed it. Retained in the registry rather than deleted so the reversal reads back. The superseded text follows verbatim. Answering a knock and minting a code both FORCE AN EXPLICIT DIRECTIONALITY CHOICE: `knock approve` and `knock new-code` require exactly one of --mutual or --one-way, and a bare invocation REFUSES LOUDLY naming both options rather than proceeding on a silent default. A mandatory choice is not auto-mutual — nobody's rules are written without their own act — it removes the default whose consequence an operator most often failed to notice. --one-way is the explicit decline and is RECORDED (on the answer for approve, on the code record at mint for new-code) so the declining act is legible afterward, not merely an absence. `new-code --mutual` is a MINTER-LOCAL persisted pre-authorization of the REVERSE grant, armed at mint and keyed to the CODE ID, consumed EXACTLY ONCE at receipt of the node-proven REDEEMED outcome, at which point the minter's own node writes its whitelist entry naming the redeemer. There is no counter-knock at mint — at mint there is no knocker yet, which is precisely why arming defers to redemption — and this is approve --mutual's consent shape transposed from knock correlation to code id, SYMMETRIC with redeem --mutual: each side arms only its OWN side, neither ever writes on the other's node, and full mutuality requires both. The pre-authorization record is the EXISTING one, extended with an EXPLICIT TWO-VALUED KEY KIND (knock | code) rather than overloading its knock-id field with a code id: consumption is a string match, so an overloaded field makes a code pre-authorization consumable by a knock answer that merely carries the same id string, and a discriminant makes that unrepresentable instead of merely improbable. The discriminant is additive with a serde default of knock — the only kind shipped records can be — so N-1 records decode unchanged, and the code record's directionality field is additive by the same discipline so a code minted before the field existed still reads. Gate: doc — the CONTEXT.md mutual-whitelisting entry, amended so the forced choice replaces the one-directional default while the auto-mutual ban survives intact; impl — the mandatory-one-of arg shape on both verbs, the --one-way record, and the code-id-keyed pre-authorization with its once-only consumption at node-proven redemption; unit — a bare approve and a bare new-code each refuse naming both options, a mint with --mutual plus a node-proven redemption writes the minter-side entry exactly once, a SECOND redemption notice finds the pre-authorization already consumed, --one-way writes nothing on redemption, a forged or unproven redemption notice consumes nothing, A CODE PRE-AUTHORIZATION IS NOT CONSUMABLE BY A KNOCK ANSWER CARRYING THE SAME ID STRING (the row that fails under an overloaded key), and an N-1 record with neither the key kind nor the directionality field still decodes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4594543Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4594576Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4594677Z ### REQ-KNOCK-DIRECTIONALITY-SENDER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4602827Z - Title: DIRECTIONALITY IS SENDER-DECLARED, AND ONLY SENDER-DECLARED (ratified 2026-08-04 bag grill, releases#144 / ADR-0055). The reach-REQUESTING surfaces — `spt knock <target>`, `spt knock send` and `spt knock redeem` — take a MANDATORY, MUTUALLY EXCLUSIVE pair, --send-only | --send-receive, with NO default: a bare invocation refuses loudly naming both, and naming both together refuses as opposite answers to one question. The declaration names what the DECLARER'S OWN SIDE does — --send-receive arms the declarer's own inbound to the counterparty, at answer-receipt for a knock and at redemption for a code, and nothing more. The RECEIVER verbs `knock approve` and `knock new-code` carry NO directionality flag at all: accepting IS the receiver's own-side act, so there is nothing further for them to declare, and the `approve --mutual` COUNTER-KNOCK IS REMOVED RATHER THAN RENAMED — a receiver who wants reverse reach knocks back, because the counter-ask is the knock verb's own job and a rider on approval duplicated it with a second grammar. VOCABULARY: send-only and send-receive are canonical; mutual and one-way are RETIRED from every user-visible surface — help text, refusals, stdout claims and the published guide alike — because 'mutual' misdescribes an act that only ever opens the declarer's side. MIGRATION IS A CLEAN BREAK WITH A SPEAKING REFUSAL: --mutual and --one-way are parse errors that NAME the flag which replaced them and the seat they were typed at, never clap's bare unexpected-argument, and there are no deprecation aliases (an alias keeps the retired mental model alive in scripts and agent habits). THE RENAME IS THE USER-VISIBLE SURFACE ONLY: store and wire field names are untouched, and PRE-AUTHORIZATIONS ARMED UNDER THE OLD FLAGS STAY HONORED — a record armed before this change still consumes through the answer-receipt path and still opens the reverse it was armed for. Gate: doc — the CONTEXT.md knock/knock-code directionality sentence and the mutual-whitelisting entry corrected by replacement so no entry states the retired seats, plus the published knocking guide; impl — the mandatory mutex at the bare form, `send` and `redeem`, the absence of any directionality argument at `approve` and `new-code`, the removal of the counter-knock path, and the retired-flag refusals; unit — a bare requesting invocation refuses naming both new flags, each flag ALONE is accepted, both together refuse, `approve` and `new-code` refuse the directionality flags outright, a retired flag's refusal NAMES its replacement at every seat that carried it, no user-visible string on the knock family carries the retired vocabulary, and — the load-bearing row — A PRE-AUTHORIZATION RECORD ARMED UNDER THE OLD FLAGS, DECODED FROM ITS SHIPPED BYTES RATHER THAN BUILT BY THE NEW CLI, STILL CONSUMES THROUGH THE RECEIPT PATH AND STILL OPENS ITS REVERSE, with the store and wire field names it names unchanged.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4602995Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4603024Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4603124Z ### REQ-KNOCK-INBOX-DAEMON-OWNED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4606977Z - Title: The knock inbox is DAEMON-OWNED and durable independently of any agent's attach state: knocks land and persist whether or not the target's agent is running, attached, or resting, and an engine-room that is posture-offline loses nothing it was sent. This rules OUT the per-perch message spool as the substrate — that store is a property of a perch and dies with `endpoint purge`, which would make purging one endpoint destroy knocks addressed to another and would silently discard a pending knock at exactly the moment an operator is reorganizing endpoints. The store is therefore node-level and daemon-owned, and its durability is proven rather than asserted: purging the KNOCKER's perch leaves the knock answerable by the target, since the record's authority is the daemon's mint-time stamp and not the continued existence of the knocker's perch. Knocks are never auto-surfaced to the receiving agent — the inbox is queryable and the user or another agent must ask — with the sole exceptions being the three consented notifications. Gate: doc — the CONTEXT.md knock entry naming the inbox as daemon-owned and queryable-not-surfaced; impl — the node-level daemon-owned store; unit — a knock survives the target agent being absent and is answerable when it returns, purging the knocker's perch leaves the knock answerable, and no knock reaches an agent's event stream unbidden.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4607130Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4607160Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4607268Z ### REQ-HAZARD-WIRE-UNTAGGED-RECORD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4612535Z - Title: A NEW WIRE RECORD MUST CARRY A `kind` TAG, because the untagged shape is already claimed. The stream dispatcher classifies a feed by sniffing its FIRST LINE, and the message family (`WanMessage`) is deliberately untagged: any first line carrying `target` plus `op_id` and no `kind` is read as a message feed. A new record type that omits the tag is therefore not merely unrecognized on an older daemon — it is MISCLASSIFIED as a message and DELIVERED INTO THE TARGET ENDPOINT'S SPOOL AS CHAT, on every N-1 node in the fleet, silently and without error. The failure is invisible to any same-version test, because both ends of a same-version pair agree; only a cross-version reading finds it. Discovered in W4 T10 (releases#53) while designing the knock record, which necessarily carries a `target` and would have hit exactly this arm. INVARIANT: every wire record minted from here on carries a `kind` tag that the dispatcher's tagged arm routes, so an older daemon's `Some(_)` catch-all resolves it to the Unknown family and DROPS it cleanly — no delivery, no wedge, no misread. The correct degrade for a request an old peer cannot serve is that it never arrives, never that it arrives as something else. PROOF OBLIGATION, both halves, or the pin goes vacuous: (a) this version routes the record to its own family AND is asserted NOT to route it to the message family; (b) the same bytes under a tag this version does not know resolve to Unknown; and (c) the untagged shape is asserted to genuinely BE claimed by the message arm — without (c) the test passes for the wrong reason the day the record's fields drift and it would no longer have collided anyway. Gate: doc — the KNOWN-HAZARDS entry stating the invariant and the misdelivery mechanism; impl — the tag on the record plus the dispatcher arm that routes it; unit — the three-part classifier pin above, run against the REAL classifier rather than a restatement of it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4612702Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4612730Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4612915Z ### REQ-ACCESS-VERDICT-REASON
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4619117Z - Title: The endpoint access gate reports WHY a pass passed, not merely THAT it passed: the gate's verdict carries, on its allow arm, the reason the chain admitted the interaction — the same-node short-circuit, the reply exemption, an entry whose subject NAMED the peer (a proven sender endpoint or the origin node), an entry that matched only by SUBNET WILDCARD (an entry, but one that never named this peer), or a posture pass (an endpoint / node / captured-subnet mode, or the implicit-open bottom of the chain). The reason is computed AT THE GATE, in the one place that holds the whole chain, and travels with the decision. The alternative — a downstream consumer re-deriving it — means RE-OPENING the access store after the gate has closed it, which is both a second read of a value that may already have moved (the stale-snapshot class) and a second entry point into the security chain; the trust warning is a consumer of the decision, never a second decider. Refusals stay BARE: a denial's diagnostic tier is already printed where it is refused, and no enforcement caller does anything with a deny but drop it, so giving Deny a payload would force every refusal site to destructure a field it never reads. Enforcement sites therefore gate on a refusal PREDICATE, which is what keeps the ripple across them rename-shaped rather than a scatter of partial matches. Same-node and reply are carried as reasons in their own right precisely so that a consumer can never warn on them: same-node is inside the node's own trust unit, and a reply is traffic the receiving agent itself invited. Gate: impl — the pass-reason type, the payload on the allow arm, the tier-to-reason classification, and the predicate helpers, with every production enforcement site converted to the predicate; unit — one row per pass arm produced by the REAL gate rather than by calling the classifier directly, each row arranged so that only its own arm can produce the pass (the named-entry rows sit on a closed endpoint, the wildcard row's peer is a subnet member no rule names, and the same closed endpoint is asserted to refuse a non-member), plus the helper split: the refusal predicate is true for exactly the refusal, its complement holds for every pass reason, and no pass reason is readable from a denial.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4619283Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4619313Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4619408Z ### REQ-FORK-MIND-COMPLETE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4624867Z - Title: Forking an endpoint copies its tracked MIND TIER AS A WHOLE DIRECTORY AT TIP — every tracked file in the source's agent branch, enumerated from the tree itself — never a list of filenames the copy function happens to know. The enumerating shape is not a style preference: a fork that reads named files drops every mind file nobody remembered to add to the list, silently, one omission per file, and the loss is discoverable only by someone later noticing an absence. It had already happened in the field before this requirement existed: the live ROLE file (the endpoint's durable statement of purpose) was tracked on the same branch and was simply not copied, so every fork produced an endpoint whose role had vanished, and the next mind file to be added would have been lost exactly the same way. Copying the directory closes the past gap and the future ones in one structural move. EXACTLY ONE EXCLUSION, and it is a decision rather than an omission: surfaced-but-unresolved conflict artifacts stay with the mind that surfaced them, because a fork starts clean — a fork inheriting the source's unresolved pairs would make 'the fork starts clean' quietly false. Bytes are copied as bytes, not through a lossy UTF-8 round trip: the tier's file shapes are not the fork path's business. Sibling seams are unaffected by construction — a rename MOVES the whole worktree and so has never had this defect, and removal is explicit — so this requirement binds the fork path and is proved by a test whose load-bearing row is a file NO CONSTANT IN THE CRATE NAMES. Gate: impl — the tree-enumerated whole-directory copy with the conflict exclusion named as such; unit — a fork carries (a) a file no code path names, (b) a file nested a directory deep, so 'whole directory' means the tree rather than its top level, and (c) the live role file, the real gap this closes; while carrying NO conflict artifact, with the source keeping all of it, and the pre-existing copy-then-diverge behavior unchanged.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4625030Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4625064Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4625159Z ### REQ-MONIC-STORE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4639455Z - Title: A monic — a REACTIONARY STRING: a trigger set plus a body revealed when something in the endpoint's session matches — is stored IN THAT AGENT'S OWN MIND TIER, ONE FILE PER RECORD, at `tracked/agents/<id>/monics/<monic-id>`. A MONIC IS NOT INHERENTLY ABOUT A PEER: classifying a peer is one use of ONE trigger kind, not the definition, and identity is the MONIC ID, which is not necessarily any of its triggers. Two properties are load-bearing and neither is a layout preference. FIRST, it is mind, so it replicates with the mind: same branch, same commits, same sync path, no second store to keep in step and no chance of an agent's instances disagreeing about what the agent decided because a side-store did not travel. SECOND, ONE FILE PER RECORD, because the mind's merge driver resolves PER FILE PATH and never merges contents — so the path granularity IS the conflict granularity. With every monic in one file, two instances of the same agent writing DIFFERENT monics concurrently would collide on that single path and surface a whole-file conflict — a conflict about nothing, between two facts that never disagreed, which the agent must then resolve by hand. Per-record files make those writes invisible to each other and confine a genuine conflict to the one record both instances actually wrote. Per-record is strictly finer-grained than per-peer, so this addressing IMPROVES conflict behaviour rather than trading it away. A SINGLE-FILE STORE IN THE MIND TIER IS REFUSED — sqlite or one json — for that same reason plus the sidecar problem: WAL/SHM files would materialise as untracked artifacts inside a git-replicated worktree. Lookup cost is a SEPARATE OBJECT from the record: if the delivery edge's scan is ever MEASURED to matter the answer is a node-local derived index outside the mind tier, rebuildable from the files, and NO INDEX IS MINTED UNTIL A MEASUREMENT ASKS FOR ONE. The record carries its own id as a field as well as in its filename, so a record recovered from a conflict artifact, a bundle or a copy still knows what it is and a filename/field disagreement is detectable rather than silently resolved. W5 RECORDS DO NEED A MIGRATION (operator-ruled 2026-08-03, superseding the previous never-migrated commitment, which covered ADDING A FIELD to a peer-keyed record and never covered a RE-KEY): a W5 record maps to id = the old peer-id, triggers = one sender trigger on that peer-id, body unchanged. The mapping is applied AT READ so every reader is correct immediately — including the store-free readers on the inbound message path, which cannot write anything back — and an in-place rewrite makes the stored bytes say what the record means; the rewrite is IDEMPOTENT, because every write here is a commit that replicates. A monic id is charset-validated as an endpoint id before it becomes a path component or a tracked filename — an unvalidated one is a traversal out of the mind — while a TRIGGER PATTERN is deliberately NOT so constrained, since it never touches the filesystem and must be able to carry arbitrary symbols. The store answers the trust warning's question as a NAMED PREDICATE — does this endpoint hold any monic whose SENDER trigger matches this peer, a scan of the monic directory rather than one path-addressed read — so the warning path never decides on its own what an absent-versus-unreadable record means; classification is monic-only, and an access-rule entry naming a peer is not a classification. Removal is idempotent and tracked — a withdrawn monic must not survive at the branch tip. Gate: impl — the monic-id-keyed record with its trigger set and origin provenance, the CRUD over the mind worktree with a checkpoint per mutation, the read-side legacy upgrade and the idempotent in-place migration, the classification predicate as a sender-trigger scan, and monic-id validation on every path-forming call; unit — the CRUD round trip (a rewrite REPLACES rather than accumulating, removal idempotent, an agent holding nothing lists nothing rather than erroring on an absent directory, monics are per-owner), a write and a removal are both visible at the mind's own branch tip, an illegal monic id is refused rather than written WHILE a trigger pattern full of metacharacters is accepted and matches literally, THE RE-KEY ROW — a monic's id is INDEPENDENT of the peers it classifies, proven by a record whose id is not the peer it classifies, one record classifying several peers, and several records classifying one peer, none of which is expressible under peer-keying — THE MIGRATION ROW — a planted W5 record reads correctly through every path before any rewrite, then rewrites in place to the current shape, idempotently, with a husk left as a husk rather than repaired into an invented record — and THE STORAGE-SHAPE ROW — two instances of the same agent writing DIFFERENT MONICS concurrently merge through the REAL sync path with ZERO conflicts and neither side clobbered, WITH a SAME-MONIC control proving the same path does surface a real disagreement (without the control the row would pass on a merge path that never conflicts about anything).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4639688Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4639716Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4639808Z ### REQ-MONIC-VERBS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4652457Z - Title: An agent edits its own monics through `spt endpoint monic <list|add|update|remove> [--owner <id>]` and copies another endpoint's through `spt endpoint monic clone <monic-id>|--all --from <src> [--to <dst>] [--overwrite]`. ADD, UPDATE AND REMOVE REQUIRE `--target <monic-id>`; ADD AND UPDATE REQUIRE `--triggers <triggers-json>`; AND THE BODY ARRIVES ON STDIN, because a monic body is prose carrying newlines, quotes and shell metacharacters, which an argv-borne body hands to whatever shell is in the middle to mangle. ONE STDIN PAYLOAD MAY CARRY SEVERAL MONICS: the multi-record form takes whole records from stdin as a JSON array, each with its own id, triggers and body, and it is a DISTINCT INPUT SHAPE from the single-record form rather than a reinterpretation of it — the flags name the record and stdin is its body, so a payload that also had to carry ids would be two sources for one fact, and the surface refuses the two spellings together so neither is ever ambiguous. A multi-record write applies RECORD BY RECORD and does not roll back what already landed, because each record is an independent fact and a partial application that names exactly which ids landed is more recoverable than an all-or-nothing failure the operator must then diagnose; the exit code is non-zero if ANY record was refused, so a script cannot read a partial application as success. NO MONIC VERB IS EVER ELEVATION-GATED (ratified): a monic is the agent's own judgement, written by the agent, and an agent holds no OS privilege to prove — gating one would make an agent's own mind editable only by the human standing at the machine, which is the opposite of what the register is for. That invariant is a CHECKED PROPERTY, not a comment: the verbs' one decision point TAKES the process's real elevation and ignores it, so a gate added later in either direction fails a test rather than passing unnoticed as a filled-in absence. ADD AND UPDATE ARE SEPARATE VERBS because they refuse opposite states — add refuses to replace a monic that already exists, update refuses to invent one that does not — so a typo'd id or a re-run script cannot quietly change a record; the refusal names the other verb. THE LISTING SHOWS UNREADABLE RECORDS AS UNREADABLE. A record that is present and unparseable reads as never having matched at the delivery edge, which is correct there because it fails safe (it warns more, never less) — but a husk that also vanishes from the listing is a file the agent can neither act on nor discover, the erased-distinction class. So the list names it UNDER ITS OWN MONIC ID, marks it unreadable, and points at the verb that rewrites it. The listing also states a trigger kind that is RATIFIED BUT INERT as such, since a trigger that cannot fire today must not be presented as working. CLONE COPIES THROUGH THE FORK'S COPY SEAM (REQ-FORK-MIND-COMPLETE), not a second copy path, and copies the source's mind AT ITS TIP; a record the destination already holds under that id is KEPT and reported rather than silently replaced (--overwrite is the deliberate replacement), and every copied record is re-stamped as inherited so the destination can tell its own monics from the ones it was handed. A husk in the source travels as a husk — visible in the destination's listing, never dropped and never invented. A clone that copies nothing mints nothing: no branch, no worktree, no empty commit. Gate: impl — the five verbs over the monic store with owner defaulting to the session's own endpoint, the stdin body read, the trigger-set parse with an unparseable set REFUSED rather than defaulted to empty, the multi-record payload form, the elevation-taking decision function, the add/update preconditions, the unreadable-record row in the listing, and the clone routed through the shared copy seam; unit — the elevation table (every verb x record-present/absent yields the SAME outcome under elevated, not-elevated and undeterminable), the add/update split including the husk reading ratified 2026-08-04 (a husk is PRESENT for these verbs, so add refuses it with the unreadable diagnosis and update replaces it while announcing that it did — see REQ-MONIC-HUSK-PRESENT, which owns that polarity and its escape hatch), the clap surface (bare `monic` lists, --target and --triggers required without the multi-record flag and refused with it, clone takes exactly one selector), the two-part husk row (delivery edge says never-matched, list path names it unreadable under its id), and the clone rows (existing destination record kept and reported, --overwrite replaces, copies stamped inherited, source untouched, self-clone refused, nothing-to-copy mints no mind).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4652673Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4652702Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4652800Z ### REQ-MONIC-HUSK-PRESENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4661014Z - Title: A PRESENT-BUT-UNREADABLE monic record — a HUSK — COUNTS AS PRESENT when `add` and `update` classify what they found (ratified 2026-08-04, bag grill; this REVERSES the reading that shipped in W5 and was deliberately preserved through the releases#70 re-key). The question the two verbs ask is whether the monic id is already SPOKEN FOR, and a file filed under that id speaks for it whether or not anything can parse the bytes. So `add` REFUSES a husk, naming it as unreadable and pointing at `update` and `remove`, and `update` PROCEEDS over one, announcing the replacement out loud. The superseded polarity was not dishonest — both arms said what they saw — but it made `add`, the verb whose entire job is refusing to clobber what is already filed, the one that destroyed content, and `update`, the verb whose job IS replacement, the one that refused to perform it; it then instructed the caller to reach for the destructive verb in order to replace a record, teaching precisely the reflex the add/update split exists to prevent, in the ONE case where the operator cannot read the old content to judge what the replacement costs. THE ESCAPE HATCH IS VERIFIED, NOT BUILT: making `add` refuse a husk would strand a caller only if nothing else could clear a corrupt record, and `remove` decides on FILE EXISTENCE rather than readability, so it already withdraws a husk by construction — no `--force` flag is minted, and that shipped property is asserted by a test rather than trusted. THE POLARITY IS ONE FACT AND MUST BE SPELLED THE SAME EVERYWHERE IT IS ENCODED: the CLI's classify call, the store's own add/update primitive, and every printed line that names a verb for an unreadable record — a listing hint still pointing at `add` would be a surface instructing the caller to run the arm that now refuses. UNCHANGED, deliberately: the DELIVERY EDGE still reads a husk as never-classified (it fails safe — it warns more, never less), and the LISTING still shows a husk under its own id marked unreadable. Gate: doc — the CONTEXT.md mnemonics entry states the ratified polarity, the reason the previous reading was reversed, the verified escape hatch, and what stayed unchanged; impl — the classification input counts a husk as present at BOTH encoding sites (the CLI verb path and the store's write primitive, which classifies on the FILE question rather than on a successful parse), the `add` arm refuses with the unreadable diagnosis naming `update` and `remove`, the `update` arm proceeds and keeps the announced-replacement line, and the listing's advice names the verb that now replaces; unit — a husk REFUSES `add` as Exists AND SURVIVES THE REFUSAL UNREAD (the refusal is not a partial write, which is the whole point of refusing over content nobody can read), a husk is REPAIRED IN PLACE by `update` (the caller has no other route to repair), and `remove` withdraws a husk and stays idempotent over the cleared id, proving the escape hatch that made the `add` refusal safe to ship.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4661625Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4661667Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4661819Z ### REQ-KNOCK-MONIC-IMPART
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4705197Z - Title: A knock answer can impart a MONIC about whoever it admits: `spt knock approve <id> --monic <message>` writes the note at the approval, and `spt knock new-code --monic <message>` bakes one into a code that is imparted when the code is REDEEMED. The code path is deferred by necessity rather than by design — at mint there is nobody to write a classification about yet, and the redeemer's identity only becomes stamped-and-real at redemption. THE NOTE IS ABOUT A DAEMON-STAMPED ID, never a caller-supplied one: it is written about the same stamped knocker id an approval writes its whitelist entry for, so a note can no more be planted on an innocent peer than a grant can. A knocker with no endpoint id — a bare-terminal human, stamped as their node — CANNOT be classified: the note is refused loudly and the grant stands, because writing a classification under a node id would produce a record no delivery-edge lookup can ever match while reading back as though someone had been classified. AN EXISTING CLASSIFICATION IS KEPT. Both paths route through ONE shared impart primitive whose rule is that the owner's standing judgement outranks a judgement arriving with a grant — an approval must not silently rewrite what an agent already decided about a peer, and a note typed at code-mint hours earlier certainly must not — and the caller is told which happened so it prints the replace command instead of implying the note landed. An UNREADABLE record is not a classification, so imparting replaces a husk. THE NOTE RIDES THE GRANT AND NEVER CHANGES IT: it is imparted only AFTER the grant has committed, is skipped entirely on a refusal (a classification of a peer you did not admit), and a mind that cannot be opened costs a loud diagnostic rather than a retracted approval. Whose mind holds the judgement is RECORDED, not derived: a node-target code is minted by the engine room and a node has no mind, so the imprint carries its owner endpoint from the mint, and the redemption path never guesses. The code record's imprint field is ADDITIVE — a code minted before the field existed still reads, and a code with no note serializes without the key. Gate: impl — the `--monic` flag on approve (a NEW public flag; it existed only on new-code, where it was recorded and inert), the owner-carrying imprint on the code record, the shared impart primitive, and the impart calls at the approve and redeem sites after their commits; unit — imparting writes with knock provenance, KEEPS a standing judgement and reports what is held, replaces a husk, the imprint field reads with and without a note in the record bytes, and both answer surfaces parse the flag.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4705855Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4705911Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4706088Z ### REQ-TRUST-WARNING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4727441Z - Title: When a message reaches an endpoint because an access ENTRY admitted its sender, and the receiving agent holds NO MONIC about that sender, the delivery edge composes a system-authored TRUST WARNING and delivers it alongside the message. The entry is a routing decision — often made by a human at a knock, sometimes weeks earlier — and it says the peer may speak; it says nothing about whether the receiving agent has decided anything ABOUT them, and the warning is what closes that gap before the agent acts. THE CLASSIFICATION QUESTION IS MONIC-ONLY: an access entry naming the peer is NOT a classification, since the entry is the very thing that let them in, and reading it as evidence of judgement would silence the warning exactly when it is warranted. THREE RATIFIED NON-WARNING CASES, stated because a warning that fires on invited traffic teaches agents to ignore warnings, which costs it its only job: SAME-NODE arrivals are inside the node's own trust unit; a REPLY is correlated to the agent's own outbound, so it is traffic the agent itself invited; and a POSTURE-OPEN pass admits nobody in particular — no entry named this peer, the endpoint simply is not refusing anyone. A WILDCARD entry warns exactly as a named one does: it admitted a peer the agent never named at all. THE WARNING NEVER CHANGES DELIVERY. The gate already allowed the message; the warning is advisory text that rides alongside, is skipped for a duplicate (the replay check precedes it, so a retried message does not re-warn), and — when it cannot be delivered at all — costs a loud diagnostic naming the unwarned delivery rather than withholding a message the gate permitted. IT IS NEVER PART OF THE PEER'S BODY, because a warning inside the body is indistinguishable from one the sender wrote — precisely what a stranger would forge. THE CARRIER IS THE DELIVERED MESSAGE'S OWN ENVELOPE (REQ-TRUST-WARNING-ENVELOPE, which changed the carrier and left this rule untouched): the block rides as a `trust-warning` attribute composed by the RECEIVING node, so the caution and the message it is about reach the agent in ONE arrival, and the sender authors the text in neither design — an attribute is not the body, and it is composed exactly where a matched monic's is. Where the body is ALREADY A TYPED ENVELOPE it can carry no attribute, and there the warning keeps its own system-authored delivery under a RESERVED author id (not a legal endpoint id, so no peer can author under it), delivered FIRST over the same cascade the message takes, so the caution is read before the message it is about. THE DECISION CONSUMES THE GATE'S OWN VERDICT AND NOTHING ELSE: the pass reason IS the posture question (an entry matched means the chain never reached a mode tier), so there is no second read of the access store, whose snapshot would be taken after the decision it purports to explain. The receiver's own mind is read as a PLAIN FILE off the tracked root, never through the store's ensure-worktree path, because that path spawns git and this question is asked on the inbound message path. An unreadable monic is not a classification, so a husk makes the warning fire rather than suppressing it. TWO LIMITS, RULED (doyle 2026-07-31, at T6's acceptance): (1) a sender the daemon could not prove IS still warned about, and that warning is UNSUPPRESSIBLE by design rather than merely fail-safe — a peer nobody can name is more of a stranger, not less — since monic-only classification means no provable id yields no monic, so every unproven sender on an entry-admitted pass warns, which is honest — they ARE unproven — and self-heals as the fleet's daemons come to stamp their senders. THE TEXT DISCIPLINE IS THE LIMIT THAT KEEPS WARN-MORE FROM BECOMING WARN-NOISE, and is required, not stylistic: the block names the admitting RULE as the way out and NEVER prints a classify command that cannot be run, because an instruction the reader cannot carry out is what turns an unsuppressible warning into noise the agent learns to skip; (2) the override text (the elevation-gated verb, own requirement) replaces ONLY the advisory paragraph — RATIFIED at the same acceptance, on the grounding that override text is agent-behavior instruction and therefore a prompt-injection surface, so keeping the factual spine unforgeable BOUNDS that surface: a whole-block override would let one elevated write hide who is knocking, which no legitimate override needs — the line naming the sender and stating that no note is held, and the line saying how to classify them, are always core-composed, so an override can change what the agent is cautioned about but never hide who is knocking. Gate: impl — the pure warn-or-not decision over the verdict's pass reason and the monic predicate, the store-free tracked-root read, the composer with its reserved author, and the delivery-alongside at the WAN edge ahead of the message legs; unit — the full table (every pass reason x monic-held/not, with the three non-warning reasons asserted by name and the wildcard case asserted to warn), the composer naming the peer, the three cautions and the exact classify command, the override replacing the advisory while identity survives, the unnamed-sender text carrying no unrunnable command, and the tracked-root read answering identically to the store form while creating no worktree for an agent that has no mind.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4727684Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4727712Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4727814Z ### REQ-TRUST-WARNING-OVERRIDE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4738045Z - Title: An operator can replace the ADVISORY PARAGRAPH of one endpoint's trust warning with their own text, through `spt endpoint trust-warning set <text> [--owner <id>]`, withdraw it with `reset`, and read what is in force with `show`. THE SCOPE IS PARTIAL BY RATIFICATION (doyle 2026-07-31, at T6's acceptance): custom text replaces the advice and NOTHING ELSE — the line naming who reached the endpoint and stating that no note is held about them, and the line saying how to classify them, are always core-composed. The grounding is that override text is agent-behavior instruction delivered under a RESERVED SYSTEM AUTHOR, which makes it a prompt-injection surface, and an unforgeable factual spine BOUNDS that surface: a whole-block override would let one elevated write hide WHO is knocking, which no legitimate override needs. THE VERB STATES THAT SCOPE IN ITS OWN OUTPUT — required, not stylistic: the operator writing agent-facing instruction is told at the moment they write it which lines they did not reach and why, rather than only in a doc they may never open. WRITES ARE ELEVATION-GATED AND READS ARE NOT, and this is THE ONE ELEVATION GATE IN THE MONIC/TRUST-WARNING FAMILY (REQ-MONIC-VERBS asserts the opposite invariant for the monic verbs, and this requirement must not be read as loosening it): writing is a human-at-the-machine act because an agent must not be able to rewrite the caution it is about to be handed, while showing what an endpoint is told leaks no authority and is exactly the visibility that makes a planted override discoverable — gating the read would protect nothing and hide the only thing worth auditing. Elevation that cannot be POSITIVELY CONFIRMED refuses like no elevation at all. THE TEXT IS STORED NODE-LOCALLY BESIDE THE ACCESS STORE, ONE FILE PER ENDPOINT, AND NEVER IN THE MIND TIER: a mind file replicates between every instance of an agent, so an override filed there would let a peer instance's mind push warning text onto this node — the injection surface the elevation gate exists to hold shut, re-opened by a sync. TWO WRITE-TIME REFUSALS: a blank override (withdrawal is its own verb, so a blank one is a shell mishap far more often than an intent to caution an agent about nothing) and one past a length bound (the block is read ahead of every admitted stranger's message with the classify line BELOW the advisory, so an unbounded advisory buries the line an override may not touch — the harm the whole-block override was refused for, reached by length instead of by scope). THE READ IS FAIL-SAFE AND STORE-FREE: the delivery edge reads the override off a plain path after it has already decided to warn, and an absent, unreadable, or blank record all read as NO override, falling back to the default advisory — what a damaged override costs is the operator's wording, never the caution. An override belongs to ONE endpoint: cautioning one agent never rewrites what another on the same node is told. Gate: impl — the store's per-endpoint node-local record with its validated write, fail-safe read and withdrawal, the pure verb decision keyed on whether the verb WRITES, the three CLI verbs with the scope notice in the set path, and the edge read wired into the composer's custom slot; unit — the gate table (every write refuses under not-elevated and undeterminable, show proceeds under every elevation, and gated-iff-it-writes asserted as the keying property), the refusal naming the endpoint and the elevated re-run, the stored override reaching the composer and a reset restoring the default, per-endpoint isolation, a blank/damaged record falling back to the default advisory, a traversal endpoint id refused on read and write alike, the blank and over-length write refusals, and the surface parsing with a bare `set` refused.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4738249Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4738282Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4738379Z ### REQ-TRUST-WARNING-CADENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4753540Z - Title: The trust warning surfaces ONCE PER SESSION PER PEER, not once per message. THE CONDITION AND THE CADENCE ARE DIFFERENT QUESTIONS and this requirement exists because the first was ratified without the second: REQ-TRUST-WARNING settled WHEN a warning is owed (an entry admitted the sender and the receiver holds no monic) and never said HOW OFTEN, so the shipped edge composed one per admitted message. The dedup already named there is REPLAY dedup — a retried op-id is not re-delivered — which is a different question wearing similar words, and reading it as repetition coverage is what let the gap ship. A 665-byte block ahead of every message from one admitted stranger is a warning an agent learns to skip, which costs it the only job it has. THE DEDUP KEY IS (BOUND SESSION ID, PEER). The session id is the harness session BOUND TO THE RECEIVING PERCH, read from the perch record the delivery edge already holds a path to — one derivation serving both the live case and the offline-spool burst, so a hundred messages spooled while an agent was away surface ONE warning when it returns rather than a hundred. State lives in the node-local per-session scratch dir, one marker file per peer, which is the seam that already re-arms once-per-session state by construction: a `/clear` mints a new session id, hence a fresh dir, hence a re-armed warning. It is per-peer BY FILE and not a single seen-set file, deliberately — the seen-set's read-modify-write lost-update race was acceptable for keyword hints only because that writer is serialized per session, an assumption the WAN inbound path does not share. FOUR PROPERTIES, ALL FAILING TOWARD THE WARNING, stated because each is a place a later reader would 'fix' the caution away: (a) AN UNREADABLE MARKER AND AN ABSENT MARKER BOTH MEAN WARN, and this is CORRECT AND LOAD-BEARING rather than an oversight — it is the husk-reads-as-default shape, named here so a future fixer who reaches for a tidier read finds this sentence at the line they were about to change; a damaged dedup store costs a duplicate warning, never a silent one. (b) TWO MESSAGES FROM ONE PEER ARRIVING CONCURRENTLY MAY BOTH WARN — the check and the claim are not atomic across processes, and that is an ACCEPTED LIMIT, not a defect to close: the failure is a second warning, which is benign and direction-correct, and closing it would mean a lock on the inbound message path to save one duplicated advisory. (c) A MARKER WRITE FAILURE ALSO WARNS: the claim is best-effort, and an edge that could not record 'already warned' must behave as though it never warned. (d) TWO UNNAMED SENDERS ON ONE NODE SHARE ONE MARKER, because the origin node is the only identity there is to key an unprovable sender on — an ACCEPTED LIMIT that is the truth about what the daemon can name, not a collision to repair; a named peer and an unnamed one are never folded together, since the two arms carry distinct marker prefixes and neither class's marker can quiet the other. (e) NO BOUND SESSION RECORD MEANS NO KEY, AND NO KEY MEANS WARN EVERY MESSAGE — correct and rare, and the honest reading of a receiver whose session cannot be named. THE CLAIM IS MADE ONLY AFTER THE WARNING IS ACTUALLY DELIVERED, so the cadence can never eat the one warning a session gets: if every delivery leg fails (the loud undelivered diagnostic), nothing is claimed and the next message warns again — a marker on disk must never assert a caution that no agent ever read. THE CADENCE APPLIES UNIFORMLY, INCLUDING TO SENDERS THE DAEMON COULD NOT PROVE, and this does not loosen the unsuppressible-warning limit ratified in REQ-TRUST-WARNING: that limit is about CLASSIFICATION — no provable id yields no monic, so the monic path can never silence an unnamed peer — and a cadence is not a classification and silences nothing, since the caution still reaches the agent in every session and re-arms with each new one. Exempting unnamed senders would aim the exemption at the one class no monic can ever quiet, preserving the per-message flood exactly where it is unbounded. An unnamed peer's key is NODE-SCOPED because the origin node is the only identity there is to key on, so two unnamed senders on one node share one marker — that is what the daemon can honestly name, not a collision to repair. THE PEER COMPONENT OF THE PATH IS VALIDATED BEFORE IT IS JOINED, on the precedent the override store already sets, because the proven-sender id arrives off the wire: an id that fails validation yields no marker and therefore warns. THE OVERRIDE SEMANTICS ARE UNTOUCHED — cadence decides whether a block is composed at all, never what it says. Gate: impl — the per-peer marker claim over the per-session scratch dir with its validated peer component, the bound-session read at the delivery edge, and the claim-after-delivery wiring at the one surfacing site; unit — a second admitted message from the same peer in the same session composes no second warning, a new session warns again, per-peer isolation (a warning about A leaves B's first warning owed), a spooled burst of N messages from one peer yields ONE warning, an absent perch record warns every message, a marker write failure still warns, an unreadable marker still warns, an invalid peer component claims nothing and warns, two messages from UNNAMED senders on one node in one session yield one warning while a new session re-warns, a named peer and an unnamed sender on the same node neither quiet each other, and an undelivered warning (every delivery leg failed, the loud diagnostic printed) leaves the marker unclaimed so the next message warns again.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4753811Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4753845Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4753940Z ### REQ-TRUST-WARNING-ENVELOPE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4774251Z - Title: The trust warning RIDES THE DELIVERED MESSAGE'S OWN ENVELOPE as a `trust-warning` attribute composed by the RECEIVING node, so an agent reads the caution and the message it is about in ONE arrival rather than two. THE CARRIER CHANGES; THE RULE DOES NOT — when a warning is owed (REQ-TRUST-WARNING) and how often it surfaces (REQ-TRUST-WARNING-CADENCE) are untouched by this requirement, which settles only WHERE the composed block travels. THE GROUNDING IS THAT A SEPARATE DELIVERY IS A SEPARATE INJECTION: under an spt-hosted harness each delivery becomes its own context injection, so a caution delivered alongside costs the agent a second interruption for a block it must read with the message anyway. THE UNFORGEABILITY REASON IS PRESERVED, NOT TRADED, and this is the distinction the change turns on: the ratified rule forbids SPLICING THE WARNING INTO THE PEER'S BODY, because a warning inside the body is one a sender could have written. An envelope attribute is not the body — it is composed by the receiving node exactly as a matched monic's `mnemonics-json` is, so the sender authors it in neither design. THE ATTRIBUTE IS ADAPTER-VISIBLE BY DECISION, NOT BY ACCIDENT: the surface question was resolved before building and it was decidable rather than preferential, because the payload is text the AGENT MUST READ and any carrier stripped before the EVENT would ship a caution that never surfaces. It therefore enters the PUBLISHED envelope surface, which obliges the public envelope documentation to state it and a re-rendering adapter to surface it. FOR THIS ATTRIBUTE, BEING IGNORED IS THE FAILURE, which INVERTS the mnemonics-json precedent: an adapter safely ignoring an unknown attribute is exactly how a security caution goes missing, so 'additive and N-1-safe' is necessary and NOT sufficient here, and the doc must bind a custody pipeline that re-renders a delivery to carry the attribute through, on the precedent already set for carrying matched monics through intact. THE FAIL-SAFE IS NAMED, NOT DISCOVERED. A body that is ALREADY A TYPED ENVELOPE carries no attribute — it rides verbatim by construction, and splicing into a finished envelope would mean hand-rolling the grammar a second time. For exactly those deliveries the warning KEEPS its own system-authored delivery under the reserved author, unchanged. The second injection therefore survives precisely where no carrier exists and nowhere else, and the caution is never traded for the fix. THE INBOUND VALUE IS INERT BY CONSTRUCTION. A sender-supplied body that is itself a typed envelope rides verbatim through the wire, the spool and every renderer, so a peer can write this attribute into one and have it arrive wearing the receiver's own voice. Every point at which a sender-supplied body enters this node STRIPS the receiver-composed attributes BEFORE any is attached, so the value a recipient reads is the receiver's own by construction rather than by the sender's restraint. THE STRIP IS BY CLASS, NOT BY NAME: receiver-composed attributes are a named set, because two name-strips at one seam authored in two lanes is a drift pair, and inertizing the class costs exactly what inertizing one name costs while holding for the next receiver-composed attribute too. Attributes an envelope's own AUTHOR legitimately carries (`type`, `from`, a notify's id, an alarm's times) ride end-to-end intact — the strip removes named receiver-composed attributes from an otherwise untouched envelope, and it is not the wholesale re-compose that re-stamping an envelope's TYPE performs. A key that could not be re-emitted safely is DROPPED rather than written back unescaped. Gate: doc — the public envelope surface states the attribute, that the receiving node composes it, the MUST-surface obligation on a re-rendering adapter with ignored-is-failure as its reason, and the typed-envelope fail-safe; impl — the attribute constant and the receiver-composed class in the envelope grammar, the class strip at each sender-supplied ingress, the attach at the WAN edge through the envelope renderer so a matched monic still evaluates under the one rule, and the fail-safe branch that keeps the separate delivery when the body carries no attribute; unit — a forged inbound trust-warning attribute is inert on a delivered envelope, an admitted stranger's message carries the warning on its OWN envelope with no second delivery spooled, a typed-envelope body still draws the separate system-authored delivery, the strip preserves every other attribute and the body, and the cadence still claims only after the carrying message was actually delivered.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4786666Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4786831Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4786930Z ### REQ-MONIC-DELIVERY-TRIGGER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4805500Z - Title: The monics a receiving agent holds that MATCH an arriving message RIDE THAT MESSAGE'S ENVELOPE as a `mnemonics-json` attribute carrying a JSON array of the matched records, so the agent reads its own standing judgement about the sender in the same breath as the message rather than having to go and look it up. THE MATCH IS EVALUATED AT THE ENVELOPE RENDERERS, NOT AT THE WAN EDGE (ruled 2026-07-31): a classification that fires only when the peer happens to be REMOTE is one the agent cannot rely on, and the trust warning's edge is the wrong home for it because that edge exists to consume the ACCESS GATE's verdict — the two are different concerns that happen to read the same register. THERE IS EXACTLY ONE EVALUATION PRIMITIVE and every delivery surface calls it: a match rule copied per surface is a classification that fires on one channel and not another, which is worse than none because the agent cannot tell which it is looking at. The renderers therefore take the RECIPIENT's id as well as the structural sender/body pair, and NO OWNER-LESS RENDERER REMAINS — a renderer that did not need the recipient is the shape a future delivery surface reaches for by habit, arriving attr-less with nothing failing. THE ATTR IS PRESENT IF AND ONLY IF SOMETHING MATCHED: an empty array would say 'evaluated, no match' where absence says 'not evaluated', a distinction no consumer has a use for and a second shape every consumer would have to handle. THE TRIGGER VOCABULARY IS RATIFIED (operator ruling 2026-08-03, superseding W5's sender-match-only limit) AND IT BINDS BOTH CONSUMERS — this edge and the now-signal MONICS surface — precisely so that the second consumer adds a CONSUMER and never a record migration. Triggers are a JSON array of matchers over five kinds: `sender` (identity match on the PROVEN sender id, which is the trust warning's classification question and the only kind that answers it), `content` (the incoming message body), `json` (a custom payload), `user_input` and `agent_output`. MATCHING COPIES THE KEYWORD-HINTS RULE VERBATIM — a literal CASE-INSENSITIVE SUBSTRING by default, a REGEX when `regex` is set, and an INVALID REGEX NEVER MATCHES (a bad pattern silences its own trigger and never panics) — and it copies it BY CALLING IT: the rule lives in one place with two consumers, because a rule copied verbatim into a second place is two rules that merely agree today. Literal-by-default is what lets a trigger carry arbitrary symbols with no escaping burden. WHICH KINDS HAVE A LIVE CONSUMER IS A SEPARATE QUESTION FROM WHICH ARE RATIFIED: `sender`, `content` and `json` evaluate at this edge, which exists; `user_input` and `agent_output` are RATIFIED BUT INERT until the now-signal / IO-parser funnel is built, and a record carrying one is not malformed — it is waiting for its consumer. Reading 'ratified' as 'has a live consumer' is the error this clause exists to prevent, and any surface that lists a trigger must say which it is looking at. THE TWO EDGE QUESTIONS ARE DELIBERATELY ASYMMETRIC AFTER THE RE-KEY: a content-triggered monic rides a message it matched WITHOUT classifying its sender, because classification is a `sender` question — so the delivery attr can be present where the trust warning still treats the peer as a stranger. The direction that must hold is the one that protects the agent: anything that classifies the sender ALSO matches the delivery, so an agent is never warned about a stranger whose monic it was handed in the same envelope. The ARRAY shape is not premature generality but the ratified envelope contract, and it is what lets a trigger kind matching several records ride with no envelope change. THE READ IS STORE-FREE AND PURE-PATH, off the tracked root, for the reason the trust warning's is: it happens on the inbound message path, where the store's ensure-worktree spawns git per message. A RECIPIENT WITH NO MIND — a shell link, an agent that has classified nobody — READS NOTHING AND GETS NO ATTR, and that is the primitive telling the truth rather than a case to special-case; it costs one sentence in the module doc, not a branch. An UNREADABLE record rides nothing, the same fail-safe reading the trust warning takes, and the two consumers are asserted to agree over every state a record can be in — an agent must never be warned about a stranger whose monic it was handed in the same envelope. The attr KEY is a compile-time constant and its VALUE is attr-escaped by the one composer, so monic text carrying quotes or angle brackets cannot forge an attribute or terminate the envelope. STATED LIMIT, NAMING ITS ONE PEER-TRAFFIC CASE: a body that is ALREADY a typed envelope passes through verbatim and carries no attr — splicing an attribute into a finished envelope means re-hand-rolling the grammar this codebase consolidated into one composer, and typed envelopes are otherwise machinery (notify, file-drop, echo-commune) that is not peer chatter. THE ONE CASE WHERE IT BITES PEER TRAFFIC IS `restamp_wan_user_msg` IN THE WAN EDGE, named here exactly so a later wave can lift it without re-deriving which path is meant: a FORGED `user-msg` — one whose sender the daemon could not prove — is re-stamped into a typed plain-`msg` envelope, which then rides as a typed body and gets no attr. What is lost there is the MONIC RIDE, never the caution: the trust warning is composed at that same edge from the gate's verdict and is untouched by this leg, and an unprovable sender is warned about unsuppressibly in any case. Lifting the limit means re-composing the restamp through the owner-aware renderer, which requires threading the RECIPIENT into `restamp_*` — real work on adversarial-path code, deliberately not taken in this wave, and to be requested through the board rather than bled into a neighbouring change. A SENDER-SUPPLIED TYPED ENVELOPE CANNOT CLAIM THE RECEIVER'S JUDGEMENT: every inbound `mnemonics-json` attribute is stripped at `receive_wan` before delivery, while the peer's body remains unchanged; the forged value is inert. Gate: impl — the one match primitive over the tracked root, the msg composer's extra-attribute form, the owner-aware renderers on both delivery edges, and every production render site converted to hand over its recipient; unit — a sender-matched monic rides as a JSON array carrying the record verbatim with `from` still first and BOTH edges composing identically, an unclassified sender and a mindless recipient get no attr at all, a husk rides nothing AND reads identically to the warning predicate over every state, a typed body carries no attr even when a monic matches, monic text full of envelope metacharacters cannot break out of the attr, and the attr survives the listener's chunk/reassemble round trip.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4821614Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4821785Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4821886Z ### REQ-BROKER-STOP-ENDPOINT-DENY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4830083Z - Title: A broker-stopping command invoked from a context that resolves to an spt ENDPOINT is a FULL NO-OP that refuses, under every flag combination. Two commands are broker-stopping: `spt daemon stop` (INCLUDING `--force`) and `spt update apply --finish`. THE GROUNDING IS THAT THE CALLER CANNOT SURVIVE ITS OWN COMMAND: stopping the broker kills the hosted PTY of every spt-hosted endpoint on the node INCLUDING THE INVOKER'S OWN, so the agent's next chained command dies with the session that would have reported the outcome — the failure is silent from the only side that could see it, which is why this is enforced at the tool layer and not written as advice an agent is asked to follow. THE HUMAN CONTRACT IS UNTOUCHED: the pre-existing live-session refusal keeps its exact shipped behavior and `--force` remains a human's override of it. The endpoint deny is deliberately NOT overridable by any flag, because the caller who would reach for `--force` here is precisely the caller who cannot live through the result; an override would be a footgun with a safety catch that only the wrong hand can reach. THE RESOLUTION SEAM IS REUSED, NEVER RE-INVENTED: the same agent-ground resolution the engine-room ceremony refusal already uses answers this question, so 'what counts as an agent' has ONE definition on this node and a change to it can never make two refusals disagree. REFUSAL PRECEDES EVERY SIDE EFFECT — before the live-session guard, before the stop-inhibit is minted, before any teardown — so a refused call leaves nothing behind to clean up. ONE GUARD SITE PER COMMAND FAMILY, and for the finish command that site is INSIDE the apply function's finish arm, which is what BOTH the explicit `update apply --finish` verb AND the composite update's lethal-last Finish leg route through: guarding the verb alone would leave the composite lethal, and guarding both separately would be two rules free to drift. The composite already treats a failed finish leg as non-aborting, so the refusal degrades into the existing contract instead of inventing one. THE NON-FINISH `apply` ARM STAYS UNGUARDED and that is a decision, not an omission: it hands off to the running broker in place, the broker survives, the invoker's PTY does not die, and guarding it would deny agents a leg that is safe for them today. Gate: impl — the pure deny decision over the reused agent-ground resolution, wired at both sites ahead of every side effect, with the single-site rationale stated at the finish guard so no one later adds a second one at the verb; unit — an endpoint context is refused with force=true and force=false alike, a human context is unaffected in both, the finish arm refuses while the non-finish arm proceeds, and the decision is pure over its ground input; int — an e2e proves an endpoint-context caller cannot stop the daemon by ANY flag combination and that the daemon is still running afterwards.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4837166Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4837315Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4837424Z ### REQ-BROKER-STOP-DENY-NAMES-BLAST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4843839Z - Title: The endpoint-deny refusal TELLS THE CALLER WHAT IT COST THEM AND HOW TO PROCEED, carrying TWO required elements rather than a bare denial. FIRST, THE BLAST RADIUS BY NAME: the refusal states that the operation would kill the running sessions of all spt-hosted endpoints and LISTS THE RESIDENT SESSIONS, reusing the composition the live-session refusal already prints — a refusal that says only 'denied' teaches nothing, while one that names the eight endpoints about to die explains itself. SECOND, THE GROUND AND ITS CURE: the refusal names WHICH ground identified the caller as an endpoint, and the ONE action that clears THAT ground. THE PRINTED ACTION MUST BE TRUE FOR THE GROUND THAT ACTUALLY FIRED — an environment-variable ground prints unsetting that named variable, an ancestry ground prints running from a shell not descended from an agent session — because an instruction that cannot clear the condition it is offered for is the same defect as a warning that prints a command the reader cannot run, arriving from the opposite direction. THE REASON IT IS SAFE TO PRINT A CLEARING ACTION AT ALL is that clearing the environment does NOT clear the ground: an agent that unsets its identity variables is STILL caught by the ancestry leg, so the printed line helps a HUMAN whose shell merely inherited the variable while doing nothing for an agent trying to escape. That property is load-bearing and therefore PINNED BY ITS OWN UNIT — environment variables cleared plus an ancestry ground still refuses. Without that pin the printed unset line IS an escape hatch and this requirement inverts from a guard into a bypass manual, which is exactly the failure mode a prohibition written as text rather than enforced at the tool layer always reaches. Gate: impl — the two-element refusal composition with the per-ground clearing action selected from a TYPED ground rather than by matching the ground's prose, so the two can never disagree about which leg fired; unit — the refusal carries BOTH elements (the resident list AND the ground with its clearing action), each ground kind yields the action that actually clears it, and the escape-hatch pin: env cleared + ancestry ground still refuses.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4849577Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4849726Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4849839Z ### REQ-INBOUND-RECORD-WIRE-FIDELITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4859079Z - Title: THE INBOUND RECORD ROUND-TRIPS EVERY VERDICT VARIANT, AND THE PIN IS EXHAUSTIVE BY CONSTRUCTION RATHER THAN BY A LIST SOMEONE REMEMBERED TO EXTEND. `InboundRecord` carries `binder_pid` and `binder_path` and FLATTENS `InboundVerdict` beside them; the `PathMismatch` variant carried a `binder_path` of its OWN, so serializing it emitted a LITERAL DUPLICATE KEY, `read_current` failed the parse, and the reader fell closed to `Unknown` (releases#172; the duplicate confirmed in the on-disk record on HFENDULEAM 2026-08-06). The one verdict class the record exists to surface was STRUCTURALLY UNRENDERABLE: the file plainly said `path_mismatch` while `spt subnet status` said unknown, and the operator learned of the real mismatch only from a manual probe. IT STACKED WITH A SECOND DEFECT — the firewall rule genuinely WAS wrong — which is the shape that makes a self-erasing diagnostic expensive rather than merely untidy: the instrument went quiet in exactly the condition it was built to announce. THE COLLIDING FIELD IS RENAMED ON THE WIRE (`running_path`), NOT UN-FLATTENED: un-flattening would move every OTHER variant's shape too, for a defect that lives in one variant, and the flattened form is what every existing record on every node already carries. The variant keeps a path of its own rather than borrowing the envelope's, because `InboundVerdict::warning()` renders from the verdict ALONE and has no envelope in hand — a renderer that reached for one would be a second source for a field the record already owns. MIGRATION IS NOTHING, AND THAT IS DERIVED RATHER THAN HOPED: an old duplicate-key record already reads `Unknown`, which is the safe reading, and the next binder write replaces the file wholesale. The reader stays FAIL-CLOSED — an unparseable record is still `Unknown`, never a guess. WHY THE COVERAGE THAT EXISTED WAS GREEN THROUGHOUT: `REQ-INBOUND-VERDICT-RECORD-BINDER-PINNED`'s unit sentence says a live binder round-trips its verdict, and it was satisfied — by round-tripping the VARIANT, never the variant THROUGH THE ENVELOPE. The collision cannot exist until the two are composed, so every test that touched one half passed. The pin this requirement adds is therefore not another round-trip; it is a WILDCARD-FREE MATCH over the enum that stops the crate compiling until a newly added variant is placed in the table, plus one specimen per variant with EVERY field a distinct value (identical fillers would hide a field that round-trips to a sibling's value). Gate: doc — the published status-JSON field table and example in the inbound-reachability page, carrying the rename and the reason the old name was never emitted; impl — the renamed variant field and its producers and renderers moved with it, one name on the wire and one in the code; unit — every variant written through `write_to` and read back through `read_current_from` under a live-binder oracle, the variant tags asserted against WRITTEN-OUT LITERALS rather than counted, the failing set reported with the on-disk body so a red names which variant and what the record actually held, and the exhaustiveness carried by a match the compiler enforces.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4866885Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4867039Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4867148Z ### REQ-INBOUND-VERDICT-SURFACED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4878074Z - Title: The inbound-reachability verdict is carried on the MACHINE surface — `spt subnet status --json` — in EVERY state, present always and omitted never. THE SCOPE IS `--json` ONLY, and the HUMAN/MACHINE ASYMMETRY IS THE DESIGN RATHER THAN A GAP LEFT OPEN: the human surfaces (the coming-online banner, `spt subnet status`, its `--nodes` view) stay WARNING-ONLY by ratification — they render `InboundVerdict::warning()`, which is `None` for `Ok` AND for `Unknown`, so a verified-healthy node and an unsayable one both say nothing there, and that silence is deliberate. A reading view earns its lines: M8 decision 12 narrowed HINT_FOOTER out of `subnet status` on exactly that argument, and a line that says 'inbound is fine' on every healthy run is the noise that teaches an operator to stop reading the one run where it is not. A MACHINE READER HAS THE OPPOSITE NEED and it is not a matter of taste: a consumer that must distinguish verified-ok from cannot-say from blocked cannot do it by ABSENCE, because absence already means 'this reader is old' or 'this field was skipped', so a field that appears only when something is wrong makes the healthy state and the unimplemented state the same bytes. THREE CONSTRAINTS, ALL REQUIRED AT MINT AND ALL LOAD-BEARING. (a) THE FIELD RIDES BESIDE `peer_health_verdict` IN THE SAME PAYLOAD AND IS POPULATED IN EVERY ARM INCLUDING `Ok` AND `Unknown`, NEVER OMITTED — no `Option`, no `skip_serializing_if`. The `Ok` arm is the row a warning-only mindset forgets, and it is the row the whole requirement exists for. THE PAYLOAD HAS TWO EMIT SITES, not one — the membership view and the `--nodes` view both construct it — and BOTH carry the field, because a field that appears and disappears with an unrelated flag is a field no consumer can depend on. (b) THE STATES MIRROR THE STORE'S VERDICT VOCABULARY 1:1 AND NO NEW VOCABULARY IS INVENTED AT THE RENDER SITE. This is satisfied STRUCTURALLY rather than by a mapping function: `InboundVerdict` already derives `Serialize` with `serde(tag = "verdict", rename_all = "snake_case")`, so the store already publishes the wire spelling of its own states and the render site EMBEDS THE VERDICT rather than translating it. A token table in the CLI would be a second vocabulary that agrees with the first only until someone adds a variant — the drift class the surface table's single-source discipline exists to prevent — and it would also drop the `fix` command each non-`Ok` variant carries, which the store builds ONCE in the process that knows the real path and port and which a machine consumer would otherwise have to re-derive wrongly. (c) THE UNITS ASSERT, BY NAME: each state serializes to its documented value; the field is PRESENT IN THE `Ok` ARM; and the HUMAN PROSE IS UNCHANGED IN `Ok` AND `Unknown` — that last one is a characterization test guarding the docs-only half of this ruling, so a later change that starts printing an all-clear line on the reading view fails here rather than in the field. STATED CONSEQUENCE OF 'NEVER OMITTED', named so it is not later read as a leak: the human path computes its hint only when the daemon is running, while the `--json` arms read the verdict unconditionally. With the daemon down the binder pin resolves no live process and the read returns `Unknown` on its own, so daemon-down serializes as `unknown` with no special-casing and no vocabulary outside (b) — the machine surface says 'cannot say' in a state where the human surface deliberately says nothing at all. Gate: impl — the verdict field on the `subnet status --json` payload, populated unconditionally at BOTH emit sites; unit — every state serializes to its store-defined spelling, the field is present in the `Ok` arm and in the daemon-down `Unknown` arm, both emit sites agree, and the human render stays byte-identical under `Ok` and `Unknown`.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4887390Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4887592Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4887757Z ### REQ-KNOCK-PRESCRIBED-REMEDY-HONORED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4896049Z - Title: A REMEDY THE CLI PRESCRIBES IS ONE THE CLI HONORS. `spt knock list` prints, beside every waiting knock, the command that answers it; running exactly that command from exactly that seat must not then be refused by the approve path. The defect this closes was observed verbatim in the field (releases#66, flynn -> Librarian during the v0.49.0 verify): the listing prescribed `spt knock approve <id> --approve-requested`, and the same binary answered that invocation with `not approved — <surface> stays pending, which only the engine room can answer`. PRESCRIBE-THEN-REFUSE IS THE WORST OF THE THREE AVAILABLE BEHAVIOURS, and the reason is not tidiness: a printed command is read as authoritative — more so than prose, because it is copy-pasteable — so a wrong one spends the operator's trust in the surface that exists to be trusted, and it does so at the moment they are deciding whether to widen access. Refusing with an explanation would be honest; prescribing the honored form would be helpful; prescribing an unhonored form is neither, and it is indistinguishable from the tool being broken. THE FIX IS A SHARED PREDICATE, NOT A SECOND LITERAL. The listing must compose its remedy from THE SAME decision the approve path evaluates, so the two cannot drift apart again — the single-source discipline the surface table already carries for attributability, applied to the prescription. A remedy composed by re-typing what the approve path is believed to do is the same defect one refactor later. WHERE NO INVOCATION FROM THE LISTING SEAT WOULD SUCCEED, THE LISTING SAYS SO AND NAMES THE SEAT THAT CAN ANSWER, rather than printing a command that seat cannot run: the honest arm of a prescription is sometimes 'not by you', and that is information the operator can act on. THE PRESCRIPTION MUST NEVER RECOMMEND A WIDENING THE GRANT DOES NOT REQUIRE. Stated as its own constraint because it is the failure mode a naive reading of the field report produces: telling an operator to add the whole-machine acknowledgment for a grant that binds a single proven sender would trade a confusing refusal for a silent over-grant, which is strictly worse — a refusal costs a round trip, an unnecessary widening costs the access boundary. Gate: impl — the shared answerability predicate and the listing composing its remedy line from it; unit — a knock the listing seat can fully answer prescribes an invocation that the approve path accepts, a knock it cannot fully answer prescribes the form that WOULD succeed or names the seat that can answer instead of printing an unhonored command, no prescription recommends an acknowledgment the grant does not require, and the listing's prescription and the approve path's decision are asserted to be the same predicate rather than two agreeing literals.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4903318Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4909531Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4909650Z ### REQ-KNOCK-CODE-SEALED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4915818Z - Title: A KNOCK CODE CARRIES ITS OWN ROUTE, SEALED TO THE MINTING NODE'S SUBNET (ADR-0054, ratified 2026-08-01). The string is `sptkc_` + unpadded lowercase base32 of one envelope; the prefix is the FORMAT VERSION MARKER (a future format mints a new prefix, never a flag day) and the standing agent-recognition hook. Payload = the minting node's SHORT key (4 B) + the code secret (10 B): 80 bits is ample under the receiver-enforced redemption rate limit and the 24 h TTL, and the length is bought with payload economy because NO INVERTIBLE TRANSFORM EMITS FEWER BITS THAN IT CARRIES -- 'shrink by adding an encryption layer' is refused on the record so it cannot resurface looking clever. SEAL, as ruled: keys HKDF-SHA256 from the subnet seed under DISTINCT domain-separated labels for encryption and authentication (a tag key and a cipher key must never be the same key); the tag is truncate-8 of HMAC-SHA256 over the PLAINTEXT and that tag IS the SIV nonce, padded to the cipher's nonce width, so the envelope is tag||ciphertext at 22 B and ~36 base32 chars -- SHORTER than the shipped 32-hex form. Determinism is safe ONLY because the 10 B secret is fresh per code; a reused secret would repeat an envelope, and that is the property this construction rests on. Verification is CONSTANT-TIME. THE REDEEMER TRY-DECRYPTS with every subnet key it holds, CURRENT AND PREVIOUS SEED, so a code inherits the subnet's own one-deep rotation grace (Mesh-D7) rather than a private key schedule -- and EVERY failure is INDISTINGUISHABLE from every other: a wrong subnet, a tampered byte, a bad length and an unknown code all return the same nothing, because a decode that reported WHY would be the oracle the redeem refusals already refuse to be. A pasted code reveals nothing to a non-member -- not the node, not the subnet, not which subnet -- and the decode-set is exactly the population that could dial the minter anyway, so no capability is lost. LEGACY BARE-HEX CODES STAY LOCAL-REDEEMABLE, untouched. Gate: doc -- the CONTEXT.md sealed-code entry naming the format, the payload economy and the rotation grace; impl -- the codec, its two derived keys and the try-decrypt; unit -- a round trip through a real seed, a code sealed to one subnet refusing under another, the previous seed still opening a code the current one minted before rotation, a single flipped byte anywhere in the envelope refusing, every refusal shape returning the identical nothing, and a legacy bare-hex code still reading as itself.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4922171Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4922329Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4922434Z ### REQ-KNOCK-CODE-MULTI-ENVELOPE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4932803Z - Title: A CODE MINTED ON A MULTI-SUBNET NODE OPENS FOR EVERY MEMBERSHIP THAT NODE HOLDS, AND THE MINT SAYS SO. The ratified design always had it (ADR-0054 sketch line 17, `--subnet` selecting only when the minter belongs to several); the W4 build DEFERRED the slice and marked it UNBUILT in amendment 3, and the shipped surface then taught the deferral as the design -- `--subnet` took exactly ONE value and several memberships with no `--subnet` REFUSED with `KNOCK_WHICH_SUBNET`, whose copy states 'a sealed code opens only for members of ONE subnet' as though it were a rule rather than a gap. The operator's restatement (2026-08-04) governs and supersedes amendment 3: `--subnet` TAKES A LIST, and OMITTED means seal for ALL memberships. ONE SECRET, N KEYS -- NEVER N SECRETS: the store record keys on the secret, so a second draw would mint a code whose envelope opens to a secret no record holds, and this is also what keeps the SIV construction safe, since the envelopes differ by KEY and never by a repeated (key, plaintext) pair. The envelopes ride ONE string, concatenated at a fixed 22 B width so the count is DERIVED FROM THE LENGTH rather than declared in a header -- nothing in the string says how many there are, for the same reason nothing in it says which subnets they are for. THE DISCLOSURE DELTA IS ACCEPTED AND STATED RATHER THAN PADDED AWAY (doyle, 2026-08-18): a concatenated code reveals HOW MANY memberships the minter holds, never WHICH, and padding to a fixed envelope count would spend the length budget the whole ADR defends in order to hide a fact strictly weaker than the ones the format actually hides. THE N-1 ARM IS REAL AND IS ANSWERED AT THE MINT, NOT BY A VERSION FLOOR: an older binary refuses a multi-envelope string on its length check and reports it through the anti-oracle silence every other failure uses, so no redeemer can ever diagnose it -- and a new prefix would not help, since an unknown prefix routes to the legacy path and misses just as silently. The mint is therefore the only place the fact can be told, and it tells it: sealing N>1 envelopes PRINTS the consequence, naming that the code redeems only at or past the version that ships this. No fleet version floor is claimed, because a floor claimed before the feature ships is a floor about an unshipped thing. TWO OPENINGS ARE NOW POSSIBLE AND THE WINNER IS PINNED, NOT INCIDENTAL: a redeemer holding two of the minter's subnets opens two envelopes, and the winner selects the registry that resolves the short node key -- so the loop's exit condition is ROUTED, NOT OPENED (try every opening, prefer the first that resolves a route), with ties broken by SUBNET-NAME LEXICOGRAPHIC ORDER so the choice is a stated property rather than an artifact of store iteration. This cannot reach a wrong destination by construction: the short key is the MINTER's, so every opening names the same physical node, and preferring a routed one can only avoid a thin registry's NoRoute. Gate: doc -- the CONTEXT.md sealed-code entry gaining the multi-envelope mint UX and the count-disclosure qualifier; impl -- `seal_to_all` over N seeds sharing one secret, the length-derived envelope split, `open_all_among` returning EVERY opening with its label, the redeem route's prefer-routed selection with the lexicographic tiebreak, the mint's subnet-list choice replacing the single-choice refusal, and the N>1 mint print; unit -- a two-membership code opening under BOTH seeds and yielding the SAME secret and node (the property the one-draw rule exists for), the single-envelope form byte-unchanged and still exactly 36 base32 chars beside a multi-envelope sibling pinning the N>1 length as a LITERAL (71 for N=2, because the envelopes are base32-encoded as ONE blob rather than encoded separately and joined -- twice-36 is the wrong figure and a derived expectation gets it wrong, which is why the pin is written out), a non-member opening NOTHING from a multi-envelope code (the anti-cross-open pair kept as the negative control), prefer-routed selecting the subnet that RESOLVES when the lexicographically-first one does not, the lexicographic tiebreak deciding when BOTH route, and the previous-seed rotation grace still opening one envelope of a multi-envelope code.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4943182Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4943343Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4943439Z ### REQ-KNOCK-CODE-ROUTE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4948012Z - Title: THE REDEEMER RESOLVES THE MINTING NODE FROM THE CODE, NEVER FROM DISCOVERY. The sealed payload's 4 B short key is matched against the node-tier rows the redeemer's own subnet registry already replicates -- node-level labels and the authoring nodes of instance rows -- because a code exists precisely to reach an endpoint that discovery does NOT surface. Routing through endpoint DISCOVER would rebuild the hidden co-requisite the fork-surface rig finding already paid for (releases#76 grounds): any cross-node verb that resolves its target through registry replication inherits a DISCOVER dependency it never declared. THE RESOLUTION SET IS THE UNION of both node-tier carriers rather than the label map alone -- a member that never named itself holds no label row, and that member is exactly the undiscoverable minter this feature exists to reach, so a label-only lookup would fail for the case the feature was built for. AN AMBIGUOUS PREFIX REFUSES AND NEVER PICKS: 4 B is 32 bits, collision is negligible and not zero, and guessing dials a stranger with a live code -- the resolution policy's own refuse-and-qualify discipline, applied where the cost of a wrong guess is a capability handed to the wrong machine. Resolution runs INSIDE the one subnet whose key opened the envelope, so the ambiguity surface is that subnet's node set rather than every node known. Gate: doc -- the networking entry stating what the route resolves against and what it must not widen; impl -- the union lookup and the ambiguity refusal; unit -- a short key resolving to its full node key through each carrier INDEPENDENTLY (a label-only row and an instance-only row, so neither leg can be the only one working), two nodes sharing a prefix refusing rather than resolving to either, and an unresolvable short key reading as its own outcome rather than as a refusal by the far end.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4952793Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4952953Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4953048Z ### REQ-KNOCK-REDEEM-WIRE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4962060Z - Title: REDEMPTION TRAVELS AS ITS OWN KIND-TAGGED WIRE FAMILY, never a field on `KnockRecord`. Extending the knock record was refused on the record and the reason is the decisive one: UNKNOWN FIELDS DECODE FINE, so an older minter would ACCEPT a redemption as an ordinary knock -- pending in its inbox, no auto-approve, the code unconsumed, a knock-shaped ack returning -- and MISREAD IS WORSE THAN DROPPED. A new kind means an N-1 daemon resolves it to the unknown family and DROPS IT CLEAN, which is the honest failure. THE REDEEMER'S IDENTITY IS DAEMON-STAMPED at the proven-sender tier and never caller-supplied, the same seam the knocker stamp already rests on. THE OUTCOME IS A TRIPLE AND THE THIRD MEMBER IS LOAD-BEARING: REDEEMED (the granted surfaces, the one-directional sentence and the reverse command), REDEEM_REFUSED (ONE anti-oracle message covering unknown, expired, consumed-by-ANOTHER-EXCHANGE AND rate-limited alike -- WHICH budget or which reason a caller exhausted is itself the oracle), and REDEEM_UNCONFIRMED (no answer at all -- an older node or an unreachable one), which must NEVER collapse into refused: silence is not a decision, and a redeemer told 'refused' would stop trying a code that was never seen. THE REDEEMER RENDERS FROM THE REPLY, not from its own store, because redemption executes on the MINTING node and the redeemer holds no code record -- so the granted surfaces, the target and the acknowledgment citation ride the REDEEMED reply, while REFUSED CARRIES NOTHING AT ALL and UNCONFIRMED CLAIMS NOTHING (a refusal carrying a target would be the oracle the single message exists to prevent). THE RATE LIMIT IS THE RECEIVING NODE'S OWN, enforced against its own store and clock, and it SHARES ONE BUCKET with knock arrivals from that origin: both are attempts at the same door. A REPEAT OF THE EXCHANGE THAT ALREADY SPENT THE CODE IS ECHOED, NOT REFUSED (releases#193): the receiving node records WHICH wire exchange consumed each code -- the handshake-proven origin, the stamped redeemer and that presentation's own correlation id, plus the `reverse_requested` its first reply carried, which is the one field a later reply cannot recompute once the due is consumed -- and a presentation matching all three is answered with the SAME REDEEMED payload, reply-only: no second rule, no second minter courtesy, no second monic. This is the promise the seam's replay comment already made -- a replayed REDEEMED finds nothing unconsumed and writes nothing -- and the claim arm contradicted: measured on the two-host ladder, two dispatcher PROCESSES on one node each served one redemption, the winner consumed it and notified the minter, and the LOSER's refusal reached the presenter 88 ms ahead of the winner's REDEEMED -- so a redeemer was told 'nothing was decided and nothing was spent' about a grant written in their own name, which is the misread the outcome triple exists to prevent. The single anti-oracle message is UNCHANGED for every other cause, byte for byte, and the oracle does not widen: an echo requires proof of the exchange, which a guesser holding only the code string does not have. The dispatcher-exclusion half -- why two serve loops can exist at all -- is NOT this requirement's (releases#194). Gate: doc -- the networking entry naming the family, its tag and the outcome triple; impl -- the record, the reply, the classifier arm and the serve side; unit -- the record classifies into its own family and is never read as a message feed, an N-1 receiver drops it clean, the three outcomes are distinct with silence never rendering as refusal, refused and rate-limited emit the IDENTICAL message, and a refused reply carries no target.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4971132Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4971286Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4971391Z ### REQ-KNOCK-REDEEM-SERVE-INTENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4975940Z - Title: THE SERVE SIDE EXECUTES THE MINT'S STANDING INTENT, NEVER THE NODE-SOVEREIGN LEVER. A redemption arriving over the wire is answered with the authority recorded AT MINT -- owner-agent for an endpoint code, engine room for a node code, both already enforced where the code is minted -- and never `SameNodeUser`: no human is present at a wire redemption, and borrowing the node-sovereign authority would falsify the audit trail by recording a machine's act as a person's. SUBJECT BINDING MIRRORS THE APPROVAL PATH'S OWN SPLIT rather than restating it: an ATTRIBUTABLE surface binds the stamped redeemer as a sender endpoint, a NON-ATTRIBUTABLE one binds the handshake-proven origin NODE -- which is real widening, and therefore `--admit-node` ARRIVES ON `new-code`, is REFUSED for a non-attributable bake without it, PERSISTS on the code record, and is CITED when the redemption executes. That is the mechanism the glossary's 'same widening acknowledgment as an approve' promised and never had. A BARE-TERMINAL REDEEMER binds the narrow node-plus-origin-user subject, exactly as a human's knock does. Gate: doc -- the entry stating whose authority answers a wire redemption and what binds; impl -- the mint-recorded authority, the acknowledgment on the code record and the shared subject split; unit -- an endpoint code answering under owner-agent and a node code under engine-room authority with NEITHER answering under same-node-user, a non-attributable bake refused without the acknowledgment and accepted with it, the acknowledgment surviving a store round trip and being cited at redemption, and an attributable surface binding the redeemer while a non-attributable one binds the node -- the pair asserted together, since either alone passes an implementation that binds everything the same way.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4980658Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4980801Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4980912Z ### REQ-KNOCK-CODE-INERT-RULE-REPAIR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4984983Z - Title: A SHIPPED DEFECT, REPAIRED IN THE OPEN RATHER THAN RIDDEN ALONG. `spt knock redeem` as shipped in v0.49.0 writes `Subject::SenderEndpoint` for EVERY surface and hardcodes the widening acknowledgment true at the mutation seam. For a NON-ATTRIBUTABLE surface that rule CAN NEVER MATCH TRAFFIC: it is written, reported as approved, rendered in the access view as though it governed something, and governs nothing -- the dead-rule class, and the silent arm of the same fault whose loud arm was already filed. The acknowledgment was never actually given by anyone, either; it was asserted by the code on the operator's behalf, which is the more serious half. THE REPAIR IS ONE IMPLEMENTATION UNDER BOTH ARMS -- the local verb and the wire serve side compute the grant through the SAME code, in the shape the fork-local split already established -- because a repair applied to one arm is a defect scheduled to return through the other. IT IS NAMED IN THE WAVE CARD AS A REPAIR OF SHIPPED BEHAVIOUR, not folded silently into the feature that happened to touch it: an operator whose access view currently shows an inert rule deserves to find the reason under its own heading. Gate: impl -- the shared grant construction replacing the every-surface sender-endpoint write and the hardcoded acknowledgment; unit -- a non-attributable surface redeemed LOCALLY writes a rule that MATCHES the traffic it names (asserted against the real chain, not against a second reading of it), the acknowledgment is honoured rather than assumed, and the local and wire arms produce the identical grant for one fixture -- the discriminator that proves it is one implementation and not two that currently agree.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4989381Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4989549Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4989653Z ### REQ-HAZARD-CODE-SEAL-SEED-ORACLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4993305Z - Title: THE CODE SEAL MUST NEVER BECOME AN ORACLE AGAINST THE SUBNET SEED. The seed is live credential material with an existing TOTP use, and the sealed code is a string DESIGNED TO BE HANDED AROUND OUT OF BAND -- so the envelope reaches populations the seed never should. The invariant: the seal touches the seed ONLY through HKDF-derived keys under domain-separated, VERSIONED labels distinct from every other derivation the seed already feeds, so possession of any number of envelopes yields nothing about the seed and nothing about any other key derived from it. THE RAW SEED NEVER ENTERS THE ENVELOPE, the cipher key and the authentication key are SEPARATE derivations rather than one key used twice, and derived key material is wiped after use in the shape the membership-key primitive already established. This is the KDF no-reveal invariant ADR-0054 records, stated as a hazard because it is the kind of property that survives review and dies to a later refactor that 'simplifies' two derivations into one. Gate: impl -- the domain-separated derivations and the wipe; unit -- the encryption and authentication keys derived from one seed are DIFFERENT (the assertion a collapsed refactor fails), the derivation label is versioned and distinct from the membership-key and seed-proof domains, and no envelope byte equals any seed byte run for a real seed -- with a contrasting fixture proving the scan can see a match it is looking for.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4997055Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4997193Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.4997299Z ### REQ-PICKER-LIST-SCROLL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5006247Z - Title: EVERY LIST VIEW IN THE ENDPOINT PICKER SCROLLS TO KEEP THE CARET VISIBLE. A selection the operator cannot see is a selection they cannot make: when a list is longer than the terminal, moving the caret past the last drawn row currently walks it off the bottom of the screen, leaving the highlighted row unrendered while the keys still move it — so the picker is taking input about a choice it is not showing (releases#65, reported from the field with a screenshot). THE REQUIREMENT IS ON ALL LIST VIEWS, NOT THE ONE THAT WAS REPORTED. Stated that way at mint because the reporter's own words ask for it and because the failure is structural rather than incidental: every view that draws a bounded window over an unbounded list has the same gap, so fixing the reported view alone leaves the identical defect behind every other list a later operator happens to fill up, with nothing failing until they do. A SCROLLED VIEW IS ONE CONCERN AND BELONGS IN ONE PLACE — a single primitive every list view draws through, never a per-view calculation repeated until one of them is subtly different. THE MECHANISM IS STATED BY REPLACEMENT AFTER RECON (this sentence previously described a hand-rolled offset derivation over (caret index, item count, visible rows), which was written before the render path was read and is NOT what the picker's shape calls for): the views render with ratatui, and a plain stateless list widget has no offset at all — it draws from the first item and stops at the bottom of the area, which is exactly why a caret below that line is never drawn while the keys keep moving it. The primitive therefore HANDS THE CARET OVER AS LIST STATE and lets the widget scroll to keep it visible; re-deriving the offset by hand beside a widget that already does it correctly would be a second implementation to keep in agreement, which is the drift this requirement exists to prevent rather than an instance of preventing it. WHAT THE PRIMITIVE MUST BE GIVEN IS THE CARET'S ROW AMONG THE RENDERED ITEMS, NOT A MODEL CURSOR, and this is the subtle half: the endpoint list interleaves group headers and subnet sub-lines as NON-SELECTABLE display rows, so the caret's row index runs ahead of the cursor by however many headers precede it. Handing over the cursor would scroll short by exactly the number of groups above the caret — invisibly correct on an ungrouped list, and wrong on the only list long enough to need scrolling at all. The caret stays visible at BOTH ENDS and across every way it can move. Gate: impl — the one caret-aware draw primitive, and EVERY picker list view going through it (asserted by there being no stateless list render left); unit — over a viewport deliberately SHORTER than the list, the caret's row is drawn with the caret at the first row, the last row and each step across both boundaries, the grouped list still reaches its last row (the header-offset property, which a cursor-indexed implementation fails), and list views beyond the reported one are covered too; the evidence is buffer-level through the picker's existing TestBackend seam, which is this module's established gate, so no separate int stage is owed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5014144Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5014350Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5014439Z ### REQ-RING-BLOCKS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5028181Z - Title: `spt ring` BLOCKS until the reply arrives or the wait elapses, in the arms where blocking is the honest behaviour. Ringing is a question, and a verb that returns instantly having only DISPATCHED the question makes the caller invent their own wait — which is the shape the request was filed against (releases#39). THE SCOPE IS BLOCKING ONLY. The wait UNIT and its DEFAULT VALUE are releases#59 and stay OUT of this requirement entirely: they are a separate ratification and folding them in would let one change smuggle a timing default past the gate that ruled on behaviour. THE ARMS ARE MAPPED AND THE MAP IS PART OF THE CONTRACT, recorded here so a later reader does not re-derive it wrongly from the symptom. THE MAP IS STATED BY REPLACEMENT: an earlier three-arm reading of this code (the builder's own, posted to the issue and carried into the dispatch) said flatly that 'a perchless caller already blocks', and that is TRUE ONLY WHEN THE TARGET IS LISTENING AT THAT INSTANT. It is corrected here rather than annotated, because that sentence is what made the report look like it might be about expectations rather than a defect. THE ARM THAT WAS MISSING IS THE ONE THE REQUEST IS ABOUT: a perchless caller takes `Occupancy::Vacant` and builds its ephemeral reply perch, then `deliver` attempts a live send and FALLS BACK TO THE SPOOL whenever that fails — which is not merely the offline case but the ordinary state of a WORKING agent that is mid-turn, the same condition that makes `spt send` report QUEUED. On that path ring used to tear the ephemeral perch down (`remove_dir_all`) and return immediately, DELETING THE ONLY ADDRESS THE REPLY COULD ROUTE BACK TO before any reply could exist. So the reply was unreachable by construction — literally the report's 'a reply can never be processed' — and the same command had opposite semantics for the same caller depending on whether the callee happened to be mid-turn. THE FIX IS THAT A SPOOLED DELIVERY WAITS EXACTLY LIKE A LIVE ONE, entering the same loop, with cleanup still running on every exit. The loop needed no change to cover it: it already drains the perch's SPOOL as well as polling the listener, which is the leg a late reply arrives on. This touches NEITHER ruled constraint — `Vacant` means there was no perch to adopt so the adoption guard is not on this path, and the caller has no live listener to race. THE TIMEOUT OUTCOME MUST SAY WHICH SILENCE IT GOT: a spooled message that was never collected is a different event from a live message that was read and not answered, and a caller told 'did not reply' about mail nobody has picked up draws the wrong conclusion about the peer. The two are therefore SEPARATE OUTCOMES rather than one flag. The superseded `Queued` outcome is KEPT UNCONSTRUCTED rather than deleted: removing it is a public API change with nothing to do with this defect, and the wait-unit request may want exactly that shape back as an explicit no-wait mode. TWO ARMS ARE NON-BLOCKING FOR REASONS THAT SURVIVE THIS CHANGE, and neither is a defect to close: (1) `Delivered` — the caller HAS a live listener, and blocking in the ringing process would race the listener that is already going to receive the reply, so the reply is delivered where the caller is actually listening rather than to a second waiter competing for it; (2) `PerchExists` / `StaleDir` — these are held by REQ-HAZARD-RING-PERCH-ADOPTION, where adoption once deleted a LIVE endpoint AND its spool. THAT GUARD IS NOT THE BUG AND MUST NOT BE REMOVED TO SATISFY THIS REQUIREMENT — it is named here in as many words because deleting it is the shortest path to a green demo of blocking and it would re-break an invariant already paid for once. ALL THREE NON-BLOCKING ARMS ALREADY PRINT EXPLANATORY STDERR (verified in `cmd_ring` at recon), so this requirement adds no diagnostics and must not be read as asking for any. Gate: impl — the spooled path entering the existing wait with cleanup on every exit, the distinct not-yet-collected timeout outcome, and the adoption guard untouched; unit — a reply arriving inside the wait returns it, a LATE reply on the spooled path (the arm where the reply used to be unreachable) still reaches the caller, a spooled wait that elapses returns the not-yet-collected outcome and is asserted NOT EQUAL to the live timeout outcome so the two cannot be collapsed later, and each non-blocking arm is asserted to STILL not block and to still carry its explanatory stderr (the regression rows that keep a later 'make it always block' from eating the hazard guard); int — the real binary rings a real perch whose peer answers LATE, and the reply reaches stdout, with the elapsed time asserted to show it both waited and stopped waiting on the reply rather than on the deadline.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5039806Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5039967Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5040073Z ### REQ-RING-TIMEOUT-MINUTES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5045492Z - Title: `spt ring --timeout` IS DENOMINATED IN MINUTES, DEFAULT 30, WITH AN EXPLICIT SUFFIX STILL ACCEPTED (releases#59, CHANGE; ruled 2026-08-02). A ring is a question put to another agent, and an agent answers on agent time -- a 60-SECOND default expires while the peer is mid-turn, so the verb that exists to WAIT for a reply routinely reported a timeout against a peer that was about to answer. A bare number therefore reads as MINUTES, and the parser ALSO accepts an explicit s or m suffix (90s, 2m) so sub-minute waits remain expressible. Ruled and accepted with the change: callers written against the old second-intent get a longer wait, which is low risk because the failure mode of over-waiting is patience and the failure mode of under-waiting was a false negative about a peer. THE UNIT MUST FOLLOW THE VALUE ALL THE WAY TO THE SURFACES THAT REPORT IT: both no-reply arms -- the timeout arm and the spooled-but-uncollected arm -- state what was ACTUALLY waited, suffix-aware, rather than a hardcoded s, or the same wait gets reported in two units by two outcomes of one command. THE PARSE LIVES IN EXACTLY ONE PLACE, taking the argument from a bare integer to a parsed duration value, because a second parse site is how two spellings of one rule are born; garbage is REFUSED rather than silently defaulted, since a value the caller typed and the tool ignored is a wait nobody chose. IN-REPO CALLERS AND DOCUMENTED EXAMPLES REPIN WITH THE SEMANTICS, and this is required text because the defect it prevents is invisible in review: an existing bare 30 written as a 30-second ceiling becomes a 30-MINUTE one, so the ring end-to-end test loses the very bound it exists to enforce and a red arm parks instead of failing. The help sentence, the argument doc, the how-to example and the generated CLI reference all state the new unit and default; the public-help gate applies to the new wording. Gate: impl -- the single suffix-aware parse, the minutes default, the duration threaded to the wait, and both no-reply arms printing the true wait; unit -- a bare number is minutes, an s suffix is seconds, an m suffix is minutes, garbage is refused, and the no-reply arms render the wait they actually took in the unit the caller expressed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5051196Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5051368Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5051477Z ### REQ-FORK-CONTROL-SURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5065572Z - Title: Forking an endpoint is reachable from another node, as a CONTROL SURFACE in the ratified sense — 'a named remote-reachable operation class on an endpoint' (CONTEXT.md, access-control grill 2026-07-28). Today `spt fork` is local-only and says so: a source that is not on this node is refused outright. THE SURFACE ID IS MINTED, NOT INVENTED, and the distinction is the whole of the design fork raised before building: the control-surface vocabulary is RATIFIED OPEN — 'new surfaces mint ids without a schema change', and 'later waves mint their ids when the capability itself is built' — so a one-row addition to the surface table is the extension MECHANISM the model was given, not a new grant vocabulary. Nothing else in the access model moves: no new tier, no new subject kind, no new authority, no new decision; the grant is expressed entirely in the existing (target endpoint x surface x subject) shape, and the chain, the modes, the fail-closed degrade and the mutation seam are untouched. GATING IT UNDER AN EXISTING SURFACE IS REFUSED ON THE RECORD rather than left unconsidered — it is the only way to add the capability without minting an id, and it is the W3 dishonesty class exactly: a fork copies an endpoint's ENTIRE MIND (live context, role, every project tier, every monic), so folding it under SUSPEND or XFER would mean an operator who granted 'you may suspend my agent' or 'you may transfer files' had silently also granted 'you may clone my agent's whole mind'. A grant that confers an authority its name does not describe is worse than a refusal, and REQ-ACL-SURFACE-VOCAB exists precisely because ADR-0009's all-or-nothing whitelist did this. THE WIRE RECORD IS `kind`-TAGGED, on the knock precedent and for the same N-1 reason rather than for symmetry: the untagged `WanMessage` classification sniffs `target`+`op_id` on a stream's first line, so an untagged fork request would be claimed by that arm and DELIVERED INTO SOMEBODY'S SPOOL AS A CHAT MESSAGE by a receiver too old to know the verb. Tagged, it lands in the dispatcher's tagged arm, which an N-1 daemon resolves to the unknown family and DROPS CLEANLY — a fork request that never arrives at an old node is the correct degrade; one misread as a message is not. That degrade is PINNED BY TEST, not assumed. The new stream family must also be learned by the family census (`StreamFamily::ALL`) and every exhaustive walk over it — named here because a family added to the enum but not to the census is precisely the assembly gap that had to be repaired once already. THE REMOTE ARM NEVER DELETES THE SOURCE. `--delete-source` stays a local-only flag: deleting an endpoint is not forking, so carrying it would put two authorities under one grant (the same fault the surface split exists to prevent, re-committed inside a single verb), the destructive half is unrecoverable where the additive half is not, and the local path's 'the fork is complete; re-run to delete' degrade assumes an operator standing there, which a wire caller is not. AND THE CLI REFUSES `--delete-source` AGAINST A REMOTE TARGET LOUDLY RATHER THAN TRIMMING IT (ruled): silently forking-without-deleting honours half an invocation, which is prescribe-then-mislead in miniature — the operator asked for one thing, got another, and was not told. Refuse, do not trim. Gate: impl — the surface id, the tagged wire record with its decoder and one-shot reply, the new stream family classified and routed, the census learning it, the target-side serve that performs the fork where the source lives, the client arm that dials the resolved node, and the loud remote-plus-delete-source refusal; unit — the record round-trips and carries its tag, an N-1 receiver classifies it unknown and drops it (the anti-spool row), the family census contains it, the remote-plus-delete-source invocation is refused with nothing forked, and a local fork is unchanged; int — the receiving side end to end over REAL stores: an admitted request produces a whole new endpoint on the node that holds the source (perch record, home subnet, adapter carried, and the source's monics riding the mind), the source is left intact, and a request from a node admitted only for a NEIGHBOURING surface produces nothing and answers nothing. THE INT ROW IS STATED BY REPLACEMENT AND ITS LIMIT IS NAMED RATHER THAN GLOSSED: it was minted as 'driven across a real node boundary', and what is proven is everything on the receiving side EXCEPT the QUIC hop itself. The hop is unit-covered where its risk actually lives — the tagged record round-trips, is never classified as the message family, and an N-1 daemon drops it — and a genuine two-node rung belongs on the env-gated two-host rig, which does not run in ordinary sweeps. Claiming the boundary here on the strength of a same-process test would be the promise this project asks for evidence instead of.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5080052Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5080267Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5080395Z ### REQ-FORK-ACCESS-GATED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5087641Z - Title: A wire-borne fork is refused unless the access chain admits it, gated on the SAME (target endpoint x surface x subject) shape as every other control surface and on the HANDSHAKE-PROVEN origin node — never on any field the request carries. The target endpoint is the SOURCE being forked, because that is the endpoint whose mind is about to be copied and therefore the endpoint whose owner's grant is the one that matters. THE SURFACE IS `attributable: false` FOR THIS WAVE, and it is a deliberate restriction rather than an oversight: only families carrying a daemon-stamped, session-proven sender endpoint may be attributable, and making fork the second such family would change WHICH SUBJECT TIER can express a fork grant — sender-endpoint rules would become real for it, not just node-tier ones — which is a second decision riding a wave that was scoped to one. So node-tier subjects govern fork, a sender-endpoint rule naming it is dead on arrival exactly as the table's restrictive default says, and the flip later is a ONE-ROW EDIT with no re-ruling, through the same door XFER already stands in front of. Because the surface table is the single source for that property (and reads case-insensitively since releases#66), a future flip cannot leave one reader disagreeing with another. A REFUSAL FORKS NOTHING AND SAYS NOTHING BACK beyond the family's existing refusal posture — the attach/rest precedent, where existence is not advertised to an unadmitted caller. THE SYNERGY WITH releases#66 IS STATED SO IT IS NOT MISTAKEN FOR LUCK: because `knock list` now composes its prescription from the same predicate the approve path decides on, a knock requesting FORK prescribes the whole-machine acknowledgment correctly from the day the surface exists, with no per-surface work — a non-attributable surface binds a node subject, which is the widening form, and the listing says so because it asks rather than because someone remembered to teach it. Gate: unit — a node the chain admits for FORK is served while one it does not is refused with nothing created, a grant on a DIFFERENT surface does not admit the same node to fork (the per-surface isolation property the vocabulary exists for), the gate reads the proven origin rather than any claimed field, and a fork grant expressed as a sender-endpoint rule does not admit (the attributable:false consequence, asserted so the restriction is evidenced rather than assumed).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5093681Z - Required stages: doc, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5093827Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5093933Z ### REQ-ER-BRINGUP-SPAWNS-SESSION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5120317Z - Title: Passing the engine room's bring-up gate BRINGS THE ENGINE ROOM UP: the node spawns its session through the adapter bound at the ceremony, and the operator's attach then lands on it. Today it does not, and the endpoint is entirely inaccessible (releases#71, operator-reported): the ceremony provisions a record, the gate is complete and correct, and NOTHING ANYWHERE SPAWNS THE SESSION — `BringUp::Admitted` briefs and returns proceed, and the attach falls through to the ordinary no-live-session refusal. THE SPAWN LIVES DAEMON-SIDE (ruled): the broker owns hosting, so a client-side spawn would replicate hosting logic in the CLI and race the attach that follows it; the daemon already launches harnesses on its own behalf at autostart, which is the shipped precedent for the mechanism and for its threading. The attach that follows the spawn WAITS FOR READY UNDER A BOUND — a wait with no bound turns a broken adapter into a hung terminal, and no wait at all reintroduces the same no-live-session refusal one race later. THE ENTRY POINT IS PART OF THIS REQUIREMENT AND IS STATED HERE BECAUSE IT IS WHERE THE DEFECT ACTUALLY BITES: with no session hosted, `spt rc engine-room` never subscribes at all — it resolves no local session, resolves no owning node for an endpoint that is deliberately never advertised, and returns the reported 'No live session' before any code reaches the daemon, so the typed code is verified NOWHERE and the Admitted arm is unreachable in exactly the flow the operator ran. A fix that adds a spawn leg to that arm without giving a session-less bring-up a way to reach the gate closes nothing. VERIFICATION STAYS DAEMON-SIDE WHEREVER THE ENTRY LANDS: the adversary in this threat model is an agent on the box, which can speak the broker's IPC and never run a line of the CLI, so a client-side check is a courtesy and the rule must be evaluated where the session is hosted. THE ENTRY IS AN ADDITIVE BROKER REQUEST carrying the code (ruled): the daemon runs the same classifier it already owns, spawns on admit, and replies the session the operator then attaches to. Additive is the ADR-0001-safe shape, and an N-1 broker that does not know the verb answers unknown — WHICH THE CLIENT REPORTS HONESTLY IN THE OPERATOR'S OWN WORDS, naming the version skew, and NEVER falls through silently to the resolve path that produces the very no-live-session refusal this requirement exists to kill. The spawn RUNS OFF THE REQUEST HANDLER on its own thread, following the autostart replay's shipped shape, because the launch dials the broker as a client and must not run inline inside the handler serving that request. THE GATE IS SPENT ONCE PER BRING-UP, and the deciding argument is NOT budget arithmetic but the TOTP WINDOW RACE: the bounded spawn wait can outlive the ±1 ceremony window, so a code re-presented at the following subscribe can be REFUSED by the same gate that just admitted it — charging the human a ledger failure and rebuilding gate-admits-then-attach-refuses one seam later, which is the exact shape #71 exists to kill. The admitted bring-up therefore mints a SINGLE-USE ADMIT TICKET for the subscribe that seats the controller: a random secret of at least 128 bits, returned in the reply, SCOPED TO THE SESSION ID the bring-up spawned, and EXPIRING 30 SECONDS AFTER THE REPLY. A CONNECTION-KEYED exemption was ruled first and is STRUCTURALLY UNREDEEMABLE at this topology, which is why the key is a ticket and why that is stated here rather than left as an implementation choice: an rc attach opens a net stream, and the subscribe that seats the controller is sent by the DISPATCHER'S OWN broker connection, never by the connection that asked for the bring-up, so the two connection ids can never match and a conn-keyed exemption could never fire at all. The key must be the thing that actually crosses the seam, and the attach's code field is already the end-to-end pipe for exactly this class of secret, so the ticket rides that field behind a reserved `admit:` prefix and no new wire field appears. THE PREFIX IS RESERVED OUT OF THE TOTP PATH STRUCTURALLY: a prefixed string is never evaluated as a code guess, because an expired ticket is not a wrong guess and must not spend a unit of the human's attempt budget — which also stops anyone on the box from ratcheting the human toward a backoff by replaying a dead ticket. The ticket is consumed BY PRESENTATION rather than by success, so a second presentation is refused even inside its window and a ticket presented for another session is spent as it is refused; expired, already-spent, wrong-session and never-minted all answer ONE uniform sentence, so a caller learns only that this string does not seat it and never whether an admit is outstanding. The TTL starts at the REPLY — after the spawn, after the bounded wait — so it covers only the client's attach turnaround and never a harness start. Entropy, TTL and single use are the ticket's whole defense, because the field it rides spends no ledger. EXEMPTION PRECEDENCE, ADDED FOR releases#203 (doyle ruling 2026-08-20): the seated-connection re-serve exemption is evaluated BEFORE the presented ticket, and that ORDER is part of the requirement rather than an implementation detail — because the ticket this requirement mints is SINGLE-USE and the connection it seats re-presents it on every re-subscribe. With the ticket matched first, a gap resume or dispatcher reconstruction of a ticket-seated controller answered `Unredeemed` and the refusal UNSEATED the human mid-session; the seat this requirement exists to establish was then lost to the very credential that established it, and the exemption was structurally unreachable for any re-serve carrying its spent ticket. Measured on golden 32341702157 (Linux leg): seat on a redeemed ticket, the SAME conn re-serving ~700ms later with `req_gen` unchanged, `engine-room-admit-unredeemed`, `session-detach was_controller=true`. Latent since the ticket shipped and first witnessed by a new e2e, not by a report — the availability half of this requirement had no same-connection witness at all. THE ORDER IS NOT A WIDENING, and the reason belongs in the requirement because it is what makes the precedence safe to state: the exemption's discriminant is the seated CONNECTION id, which belongs to another process's socket and cannot be claimed by asking, so the only attach it admits on a spent ticket is one arriving on the connection ALREADY SEATED — granted nothing it does not already hold, and dying with that connection. A ticket presented by any other connection still meets the match and is refused on its own merits, ledger untouched. Gate: doc — the engine-room setup guide's bring-up section, stating that the first bring-up spawns the session and what a bounded wait failing looks like; impl — the daemon-side spawn on admit through the ceremony-bound adapter, the bounded wait-for-ready, and the session-less entry path that carries the code to the gate; unit — an admitted bring-up spawns exactly once through the BOUND adapter, a refused one spawns nothing, a bring-up over an already-live session spawns no second session, the wait's bound is proven to be a bound (an adapter that never reports ready ends in a typed failure rather than a hang), one bring-up spends exactly one ledger attempt, the admit ticket is proven to seat the controller ACROSS THE REAL TWO-CONNECTION TOPOLOGY (the row that would have caught a conn-keyed exemption before it shipped), a SECOND presentation of the same ticket is refused, an EXPIRED ticket is refused WITH THE ATTEMPT LEDGER UNTOUCHED, a ticket presented for a DIFFERENT session is refused, and every non-redeeming presentation answers the SAME sentence so the refusal discloses nothing, a SPENT ticket re-presented by the connection that is ALREADY SEATED keeps that seat (the same-connection gap-resume row, pinned by an explicit conn-id assertion and a FIXED attach generation so a fresh-connection re-serve cannot masquerade as it), and that same spent ticket presented by a DIFFERENT connection is still refused with the ledger untouched (the non-widening control, without which deleting the refusal arm outright would satisfy the row above); int — a provisioned engine room with a registered adapter comes up end to end from the invocation the operator runs and the controller is seated on the session that was spawned.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5139994Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5140155Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5140261Z ### REQ-ER-RESERVED-ID-SPAWN-REFUSAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5148378Z - Title: THE ENGINE ROOM'S ID IS RESERVED AT EVERY VERB THAT MINTS AN IDENTITY, and this is a BYPASS rather than a naming nit (ruled): `spt endpoint run engine-room` mints the engine-room identity and hosts a session under it WITHOUT EVER PASSING THE TOTP GATE, because the gate guards the ATTACH and not the NAME. An agent on the box that can spawn the reserved id owns the surface that sets the node's access posture, which is precisely the authority the bring-up ceremony exists to price. Every spawn-family verb therefore refuses the reserved id outright and NAMES `spt rc engine-room` AS THE ONLY ENTRY, so the refusal teaches the correct path instead of inviting a workaround — a reasoning agent told only 'no' invents a route, which is the prescribe-then-mislead lesson turned around. THE REFUSAL GETS A CANARY UNIT PER SITE, and that is required evidence rather than diligence: a capability limit that lives only in prose or only in a prompt is not a limit, and the canary is what makes the prohibition tool-layer-enforced (the standing lesson from the strike-and-amend class). THE FAMILY IS WIDER THAN THE VERB THE REPORT NAMED, and enumerating it is part of the requirement because a refusal at one door with the rest left open reads as closed while remaining open: the direct `endpoint run` path; the interactive picker's create-new entry, which never passes through that path's arguments; the `--save` startup default, which PERSISTS a bypass that then replays with no gate at every daemon start, so it is refused at save AND skipped loudly at replay; and the identity-minting listener verb, which binds the reserved id to a perch with no harness and no gate at all — IN because the stated harm is minting the identity without the gate, and the engine room has exactly ONE entry, its bring-up. THE FAMILY CLOSES BY ENUMERATION RATHER THAN BY THE SITES ANYONE HAPPENED TO NAME: the whole id-minting and spawn-dispatch surface is swept before the refusals are written and the site COUNT is reported with the refusal list, so a site that exists but was not thought of fails the sweep rather than shipping open. A site that cannot refuse is named in the evidence rather than left silent. THE PERSISTED-DEFAULT ARM CARRIES ITS OWN ROW, because a record written BEFORE this fix already exists on real nodes: refusing at save alone leaves those replaying ungated at every daemon start, so the replay arm must skip a pre-existing reserved-id default loudly and be tested against one. Gate: doc — the reference help for the refusing verbs and the engine-room guide's entry sentence; impl — the reserved-id refusal at every enumerated site, each naming `spt rc engine-room`; unit — a canary per site asserting the reserved id is refused and NOTHING is minted, spawned, persisted or replayed, that the refusal names the bring-up entry, that a PRE-EXISTING persisted reserved-id default is skipped loudly at replay, and that an ordinary id is unaffected at the same site.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5155513Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5155652Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5155761Z ### REQ-ER-BRINGUP-PROMPT-NAMES-SEAT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5161100Z - Title: THE BRING-UP PROMPT NAMES WHAT IT IS ASKING FOR: which node's engine room is being brought up, which subnet's code will be accepted, and that a MEMBER OR ADMIN code answers it. The shipped prompt asks for a 'bring-up code for engine-room (member or admin)' and names neither the node nor the subnet (releases#71, operator-reported), which leaves the human holding an authenticator app with no way to tell WHICH of the subnets they belong to this prompt means — and on a multi-subnet node that is not a cosmetic gap, it is a guess that spends a unit of a deliberately small attempt budget. The facts are always available where the prompt runs: bare `spt rc engine-room` is LOCAL-ONLY by ratification, so the node is this node and the home subnet is on the local engine-room record. The prompt reads them THERE rather than asking the daemon, because the record is the ceremony's own output and a prompt that cannot render without a round trip is a prompt that hangs when the daemon is down. THE WORDING KEEPS BOTH KEYS: an admin seed IS a membership key (ADR-0051), so 'member or admin' is the truth and narrowing it to 'member' would make the prompt lie about a code that works. This REFINES the interaction contract in REQ-ER-BRINGUP-PROMPT rather than replacing it — Esc/ctrl-c cancel, digits-only accumulation, the bound, the inert empty Enter and the non-terminal refusal all stand unchanged and are not re-litigated here. Gate: doc — the engine-room setup guide's bring-up walkthrough showing the prompt as it renders; impl — the prompt composing node and home subnet from the local engine-room record with the member-or-admin wording; unit — the composed prompt names the node and the home subnet read from the record, an unprovisioned node's prompt still refuses honestly rather than rendering an empty subnet, and the member-or-admin wording is asserted so a later narrowing fails here.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5165762Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5165911Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5166015Z ### REQ-ER-BRINGUP-INFLIGHT-LEDGER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5173332Z - Title: THE BROKER RECORDS A BRING-UP WHEN IT STARTS ONE, and the reserved-id bind gate reads that record as well as the sessions table. The gate's premise is that the reserved id passes only as THE COMPLETION OF A BRING-UP THE BROKER STARTED (REQ-ER-RESERVED-ID-SPAWN-REFUSAL), but the only fact it can consult is the sessions table, which records COMPLETED-ness — so between the broker creating the harness child and the session row being inserted there is a window in which the broker's OWN spawned harness asks the gate whether a bring-up it is itself completing exists, and is told no. Measured end to end on releases#199: the child's first act is `spt api bind engine-room`, the arm that answers is `ER_HOSTED_PROBE:no-row sessions=0` (dial OK, query OK, table EMPTY — named 3/3 in a channel proven to speak), the bind is refused RESERVED_ID, the harness exits bind-failed, no session ever registers, the ready-wait burns its full bound and the operator is told the engine room is not up. THE DEFECT IS A MISSING FACT, NOT A TOLERANT READER: the fix writes started-ness where it happens instead of teaching every reader of the sessions table to tolerate a counterfeit of its consequence, so the ledger lives OUTSIDE that table and the wake gate, the zombie verdict, every process-id reader and the rollback path are untouched by construction rather than by discipline. The record is endpoint-keyed with a deadline, written before the launch thread fires, swept on insert like the admit tickets, removed the moment the session row appears, and expiring harmlessly when a spawn fails so no phantom entry can outlive the bring-up that wrote it. Its TTL is the bring-up's own ready-wait, because the window it covers is exactly the window the bring-up is willing to wait through. It reaches the gate as one additive field on the brain's sessions reply — internal IPC, no P2P wire change. THE RESIDUAL IS STATED RATHER THAN ABSORBED: the added arm admits a hand-run bind of the reserved id during a live in-flight window, which satisfies the same not-as-a-first-mover premise (the broker did start a bring-up), is bounded by the TTL, and collides into the existing CONFLICT arm. Gate: impl — the endpoint-keyed in-flight ledger written pre-spawn on the bring-up path and cleared at registration, carried on the sessions reply, and the hosted predicate answering row-OR-in-flight; unit — a bring-up recorded before its session exists answers the predicate true, a registration clears the entry, an expired entry answers false, a sweep on insert drops what is no longer live, and an ordinary spawn writes no entry at all.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5179605Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5179804Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5179915Z ### REQ-ER-BRINGUP-ANCHORS-PERCH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5190165Z - Title: A BRING-UP THAT KNOWS THE ROOM'S ANCHOR CREATES THE ROOM'S PERCH WITH IT, so the harness bind it is about to launch inherits that anchor instead of re-resolving one it is not allowed to guess. An endpoint's anchor subnet is its DEFAULT-SCOPE subnet, so `stamp_creation_fields` refuses to invent one at creation on a node holding more than one subnet (ANCHOR_REFUSED / MULTI_SUBNET_HOME) — a deliberate explicit-choice seam that this requirement PRESERVES rather than relaxes: a caller with no anchor still cannot create a record, and the bind path still refuses exactly as before. The defect was that the engine-room bring-up HELD the answer and dropped it — `room.home_subnet` is the very value the same handler prints as ENGINE_ROOM_ADMIN_BRINGUP_EMPOWERED — so on every multi-subnet node the room's own perch was uncreatable. Measured end to end on HFENDULEAM at v0.58.0 (releases#204): no `info.json` was ever written for engine-room (the perch dir held only `spool.db` and `.has-messages`), the harness's first act `spt api bind engine-room` met the creation arm with prior=None and was refused naming all three subnets (BIGNET, SPT_MANTLE, SPT_DEV) — loudly, but only into the adapter's `hook-trace.log` — the endpoint therefore never entered any roster, `spt send engine-room` answered NO_PERCH three times across fifteen minutes, and the retained briefing row could never be delivered to a target that does not exist. The skeleton is written beside the in-flight ledger, before the launch thread fires, for the reason that entry is there: both are facts about a bring-up this broker started and both must be true before the harness exists to observe them. It is IDEMPOTENT BY REFUSAL — an existing record is left untouched, so a second bring-up cannot reset a live perch — and LOUD BUT NEVER A REFUSAL, the same denial-of-governance rule `empower_home_for_bringup` follows: a record that could not be written costs the operator the briefing, not the room, and degrades to exactly the known pre-fix path rather than inventing a new failure. SECOND SURFACE, SAME REQUIREMENT: the UNPRESENTED alarm splits, because one text was covering two events and promising what only one of them can keep. Perch-ABSENT (no record — in no roster, no inject can ever target it, the retained row waits forever) must NOT tell the operator the briefing arrives at the session's first idle; perch-SLOW (record exists, not yet a deliverable inject target) keeps today's promise, which it can honor. The absent arm fires only on a POSITIVE measurement of absence — the record file is not there — so an unreadable or unparseable record takes the promising arm (an absent answer is not a zero), and the predicate is record-EXISTENCE rather than liveness so a re-attach to a merely idle room can never false-fire it. Gate: doc — the published harness-contract sentence that the identity brief's perch claim is valid only after successful registration, and that on a refused bind the adapter emits the no-perch shape carrying the refusal (the sentence the adapter and omp-spt build against); impl — the anchored-skeleton writer in spt-store called from the bring-up path with the room's own home_subnet, plus the two-arm alarm; unit — the skeleton writer anchors a fresh record and seeds its scope, refuses to overwrite an existing one, and the alarm predicate distinguishes absent from slow with the unreadable case failing OPEN to slow; int — a REAL bring-up on a multi-subnet node leaves a rostered perch record (the pre-fix red: the record is absent and the bind is refused), which is the witness the pre-existing multi-subnet cell could never be, because its rig pre-creates the anchored skeleton that is exactly the condition the real path failed to establish.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5199065Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5199233Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5199337Z ### REQ-UNLISTED-ANSWERED-CROSS-NODE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5206902Z - Title: A CROSS-NODE KNOCK WHOSE ANSWER THIS NODE CAN PROVE RENDERS THAT ANSWER, AND EVERY SILENCE THAT CANNOT BE PROVEN STAYS A SILENCE. The `invited-outbound` evidence line said `we knocked them; answer unknown here (releases#87)` for EVERY cross-node knock, on the reasoning -- true when written -- that the approval receipt is produced where the notification is produced, that the notification never crosses, and that no wire carried one. THE WIRE SHIPPED (DOORBELL W5: spt-net answermsg, spt-daemon answerop, the knocker's half), so the line became a stale claim about the SYSTEM rather than a fact about this node -- and it said so in prose the same lane must correct, since three sites asserted the receipt family was `unbuilt` while the built wire sat beside them. THE FILING'S OWN MECHANISM IS WRONG IN ITS SPECIFICS AND THE MEASUREMENT IS THE RULING'S GROUND (doyle 2026-08-21): there is no `Answered` knock state (they are Pending/Approved/Denied/Expired), and the receipt does NOT land on the knock row -- `receipt_ms` has exactly one production writer, at the notification-produce site, whose own doc binds it to a knocker reachable through this node's notification store, which is to say ON THIS MACHINE. What a cross-node answer touches is the knocker's own MUTUAL PRE-AUTHORIZATION: `apply_answer_receipt` marks it consumed only after matching the keyspace, the correlation id, the answerer against the endpoint that was knocked, and the answering node against the HANDSHAKE-PROVEN origin the knocker bound at arm time. A consumed record is therefore a proven answer sitting on this node, and the render REPORTS that proof rather than re-deriving it -- it must not weaken any check the consume already made. THREE SILENCES REMAIN AND NONE MAY BE READ AS AN ANSWER, which is why the unknown line survives with corrected words (`no answer has reached this node` -- a fact about US, never `no wire exists` and never `unanswered`): an ARMED-BUT-UNCONSUMED record means the answer has not arrived; a NEVER-ARMED knock, the non-mutual majority, has nothing for a receipt to land on, so an approval leaves no trace here at all; and a DENIAL REMOVES the record (deliberately -- a consumed record means the reverse rule was written, and a merely-flagged one would read back as the approval it was not), which makes declined and never-armed THE SAME BYTES. Rendering `declined` out of that absence would manufacture a peer's decision, and an operator who read it would stop asking someone who had in fact let them in. Gate: impl -- the consumed-pre-authorization join over the store already in hand (no new read), keyed on BOTH keyspace and correlation id so a redeemed code cannot report an answer for a knock, the split cross-node arms, and the three stale `unbuilt` prose sites corrected in the same change; unit -- the proven row renders approved AND names what proves it; each of the three silences renders the unknown line with the banned vocabulary asserted absent on every one of them; a code-keyspace pre-authorization sharing the correlation id renders a silence (the keyspace half of the key, which an id-only match would lose); and the same-node arms are untouched.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5214582Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5214728Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5214818Z ### REQ-UNLISTED-EVIDENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5220348Z - Title: An endpoint that this node holds LOCAL EVIDENCE of is knowable to its own operator without a DISCOVER grant and without any change to discovery: `spt endpoint list` auto-qualifies the invoking entity and renders off-node peers drawn from three local sources, each row carrying its provenance -- invited-outbound (a knock this node sent, and the approval receipt where one exists), admits-inbound (this node's OWN access rules naming that endpoint as a subject), and recent-traffic (the contact ledger, REQ-UNLISTED-CONTACT-LEDGER). A row STATES ITS EVIDENCE AND NEVER ASSERTS LIVENESS: a stale rule can name a deleted endpoint, so the evidence is a fact about this node's own records, never a claim about the peer. TWO SILENCES APPLIED TO RECEIPTS, BINDING ON THE RENDERER: the approval receipt is persisted at the notification-PRODUCE site, which exists only for a SAME-NODE approval -- with the receipt wire family unbuilt (releases#87) a cross-node approval produces no receipt on this node at all, so an approved cross-node knock and an ignored one are the same bytes here. A cross-node invited-outbound row therefore states ANSWER UNKNOWN and names releases#87; it must never read as 'unanswered' and never as anything a reader could take for declined. A same-node row may state approved, because there the receipt exists. The outbound knock itself is persisted locally -- the pre-fix `KnockSendOutcome::Queued` arm returned before the upsert, so a cross-node knock left this node holding nothing -- which is what makes 'I knocked them, they exist at node N' real cross-node evidence. SCOPE GUARD: the retained outbound knock is evidence substrate only; whether `knock list` grows an outbound view is NOT this requirement. A bare-terminal invocation mirrors the fork knocking already named (`Knocker::User`): its asker is subject invoking-node / origin user, and the list renders the NODE's evidence. Gate: doc -- the CONTEXT.md UNLISTED-evidence entry; impl -- the three evidence sources, the produce-site receipt, and the Queued-arm persistence; unit -- a cross-node invited-outbound row says answer-unknown while a same-node one says approved (the discriminator pair), a knock sent cross-node is retained locally, and an evidence row never renders a liveness word.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5225941Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5226090Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5226279Z ### REQ-UNLISTED-CONTACT-LEDGER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5229911Z - Title: Recent-traffic evidence rides NEW node-scoped state, and the REQ-SEC-1 recent-outbound correlation log is UNTOUCHED. A firewall's memory and a UI's memory must not be the same row: `RecentOutbound` is keyed (local endpoint, remote node) with no peer endpoint id, its window is REPLY_WINDOW_MS = 15 minutes, and it is the stateful-firewall 'established/related' input -- widening its key or its retention for a listing feature would silently widen an admit verdict, a security regression wearing a feature's clothes. THE CONSTRAINTS RIDE THIS MINT, NOT A LATER REVIEW: rows are (direction inbound/outbound, endpoint id, origin node key, last-seen); the retention window is 14 DAYS; the hard size cap is 512 ROWS, pruned oldest-first, so the ledger is bounded regardless of traffic shape; and it is NODE-LOCAL AND NEVER SYNCED -- it enters no replication feed, in the shape ADR-0046's node-scoped notif rows already established. Write sites: inbound is recorded POST-GATE in the WAN receive funnel (the sender endpoint is daemon-stamped and the origin node is handshake-proven; a message the gate refused is not contact), outbound at the send legs. Gate: doc -- the storage entry naming the window, the cap and the never-synced rule; impl -- the store with record/prune/cap and both write sites; unit -- a row older than the window is dropped, the cap prunes oldest-first at its stated VALUE, a refused inbound writes nothing, and the ledger is absent from every emitted feed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5233551Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5233708Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5233799Z ### REQ-UNLISTED-RENDER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5236810Z - Title: Evidence-known off-node peers render in a NEW status family, UNLISTED, which is deliberately NOT the ratified HIDDEN vocabulary: HIDDEN names an operator-chosen exclusion (REQ-INST-12) and those rows must never read as reachable, so reusing the word would collapse two opposite meanings onto one surface. Rows are provenance-labelled with the source that produced them. COLOUR NEVER CARRIES THE MEANING ALONE -- the status WORD rides the row and `--json` carries the state name, so a colour-blind reader, a piped log and a machine consumer all read the same fact. BOTH SOURCE LEGS OF `endpoint list` CARRY THE FAMILY: the human path and the `--json` path are separate constructions over the same facts, and the reader-parity discipline REQ-LIST-JSON-LIVENESS-PARITY already enforces there applies unchanged -- a family that appears on one leg only is the parity defect that requirement exists to prevent. Gate: doc -- the CONTEXT.md status-vocabulary entry distinguishing UNLISTED from HIDDEN; impl -- the family, its provenance labels and both render legs; unit -- an UNLISTED row renders its status word with colour disabled, a HIDDEN endpoint never renders as UNLISTED, and the human and `--json` legs agree on the same fixture.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5240165Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5240312Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5240413Z ### REQ-UNLISTED-EVIDENCE-ROUTE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5244044Z - Title: A row the operator can see but cannot act on is a worse surface than no row, so an evidence-known peer is REACHABLE BY SEND: when the registry holds no row for an endpoint -- `resolve_among` returns NotFound on an empty live set even for an explicit @node pin -- but the evidence holds (id, origin node key), the send dials THAT NODE directly, on the node-tier address that replicates to every subnet member regardless of endpoint DISCOVER. THE TARGET'S ACCESS GATE STAYS THE SOLE AUTHORITY ON ADMISSION, exactly as it is for every inbound today: routing on evidence is not circumventing hiddenness, because the invitation IS the consent -- the sealed-code route-rides-evidence logic applied to ordinary send. THE ASKER'S OWN VISIBILITY EXCLUSIONS STILL REFUSE, AND THE REQ-INST-12 BOUNDARY IS RE-IMPOSED WITH THE SAME PREDICATE THE RESOLVE PATH RECEIVES -- one shared closure, never a copied condition: the exclusion check lives INSIDE `resolve_visible`, which this route bypasses by construction, so a second hand-written condition would be a boundary that drifts silently from the one it claims to mirror. Gate: doc -- the networking entry stating what evidence routes on and what it does not widen; impl -- the evidence-route leg and the shared exclusion predicate; unit -- the discriminator pair, an excluded id REFUSED through the evidence route and a non-excluded one ADMITTED, plus a refusal that names the boundary rather than reading as a missing endpoint.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5247719Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5247872Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5247967Z ### REQ-KNOCK-EVIDENCE-ROUTE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5254215Z - Title: A KNOCK REACHES AN EVIDENCE-KNOWN PEER THAT RESOLUTION CANNOT FIND, exactly as an ordinary send already does. `knock_send_remote` returned `NotFound` the moment `resolve_across_visible` did, while the message leg at the SAME resolution point fell through to the node-tier evidence route (REQ-UNLISTED-EVIDENCE-ROUTE, DOORBELL W3): an undiscoverable target was therefore UNKNOCKABLE WHILE STILL SENDABLE -- the one door whose whole purpose is to be knocked on was the one that was closed, and a knock is precisely how a stranger asks to be admitted. IT IS ALSO THE N-1 INTEROP LEG OF releases#180 AND LOAD-BEARING, NOT COSMETIC: a peer on a pre-#180 build still applies its blanket-closed posture to DISCOVER and will not advertise, so flipping OUR default cannot make THEM knockable, and without this arm #180 buys nothing against the installed fleet. THE ARM IS THE MESSAGE LEG'S, NOT A SECOND MECHANISM: the same `unlisted::route_node_for` over the same `raw_evidence`, consuming the same field (the node key) the message leg consumes, and the ASKER'S OWN EXCLUSION IS RE-IMPOSED AT THE ARM with `excl.anywhere()` -- the same source the resolve path's predicate came from -- because resolution's own check lives INSIDE the call this arm has already fallen out of. NOTHING ABOUT ADMISSION MOVES: the TARGET's access gate rules this hop at the owner's own seam exactly as it rules every inbound today; routing on evidence is not circumventing hiddenness, because the invitation IS the consent. `KnockSendOutcome::Excluded` is minted as the message leg's `WanSendOutcome::Excluded` sibling so an exclusion refusal NAMES THE BOUNDARY AND WHOSE IT IS instead of collapsing into `NotFound` and sending the operator hunting at the far end for a decision they made at this one -- and it is deliberately NOT a landing: it must not take `NotFound`'s local-inbox fallback, since recording the ask locally would write a row against a boundary the operator themselves drew (releases#145's defect in a new costume). Gate: doc -- the CONTEXT.md evidence-route entry extended to name the knock leg and what it does not widen; impl -- the NotFound arm on the knock leg, the `Excluded` outcome, its CLI line, and its placement in the landing/refusal partition; unit -- the discriminator triple at the real function over an EMPTY registry (no evidence still refuses NotFound, an excluded id refuses through the route, and a non-excluded evidence-known id is REACHED), with the excluded arm run FIRST so the admitted arm cannot be a leftover, plus `Excluded` proven to be neither a landing at EITHER value of target-locality nor a wire refusal.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5260618Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5260779Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5260879Z ### REQ-UNLISTED-PRESENCE-PROBE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5265875Z - Title: `endpoint list` answers 'is this peer there right now' for UNLISTED rows with a presence probe, and the probe is NOT A MESSAGE: it is its own kind-tagged wire family, in the shape KNOCK_KIND already established, so an N-1 daemon classifies it Unknown and DROPS IT CLEAN. Probes fan out simultaneously and the verb BLOCKS on them under a HARD 10-SECOND PER-PROBE CEILING passed as a PARAMETER -- the shared PROBE_TIMEOUT const stays 2500ms and is untouched -- over the `probe_all` + `run_bounded` fan-out shape, so the wall-time is one ceiling and one wedged dial never drags the batch. TWO SILENCES: a probe that goes unanswered renders UNKNOWN AND NEVER OFFLINE, because an N-1 daemon's clean drop and a dead node produce the same silence. The answer distinguishes LISTENING / BUSY / OFFLINE, and each word has exactly one authority: they are answered from the serving daemon's HONEST SESSION AUTHORITY (the broker's hosted-session map and its activity window), NEVER from perch records -- the derived-view class where `is_online` reads a ready-file and a liveness stamp. BUSY IS A BROKER-AUTHORITY WORD ONLY. A relay-hosted peer holds no broker session, so it answers from a real connect attempt: accepted is LISTENING, and anything else is UNKNOWN -- busy and offline are indistinguishable there, and rendering offline would be a coin flip presented as a fact; the renderer may say why. CONSENT GROUNDING: the target node answers only if its own rules admit the asker for MSG to that endpoint -- enforcement stays owner-side at the owner's seam -- and presence already leaks to exactly this population one message at a time (SENT vs QUEUED), so the probe adds no new information class. Gate: doc -- the networking entry naming the family, the ceiling and the three-plus-unknown vocabulary; impl -- the record, the dispatcher arm, the serve side and the bounded fan-out; unit -- an unanswered probe reads unknown and not offline, a relay-hosted peer never reads busy, an unadmitted asker is refused at the owner's seam, and the ceiling is honoured per probe rather than per batch.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5271053Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5271202Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5271306Z ### REQ-HAZARD-PROBE-CONTEXT-ISOLATION
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5273647Z - Title: A PRESENCE PROBE MUST NEVER REACH THE RECIPIENT AS CONTENT. It is never spooled, never lands in an inbox, and never enters the recipient's agent context -- the whole point of a machine-plane question is that the machine answers it and the human or agent behind it is not interrupted to do so. The hazard is the one KNOWN-HAZARDS already records for untagged wire records, in a new dress: a probe that presented the untagged message signature would be classified a message feed by an older receiver and DELIVERED INTO THE TARGET'S SPOOL, turning a liveness question into a chat line nobody sent. The kind tag is what keeps it out of that arm, and an N-1 daemon drops it clean. Gate: impl -- the tag and the serve arm that answers without any delivery side effect; unit -- the probe record can never be read as a message feed (the classifier's own inputs, asserted), and a served probe leaves the target's spool and inbox byte-identical to before it arrived.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5276016Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5276162Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5276263Z ### REQ-HAZARD-MUTUAL-PREAUTH-SIBLING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5281179Z - Title: A DEDUPE KEY NARROWER THAN THE RECORD'S IDENTITY SILENTLY DESTROYS A SIBLING. Re-arming a mutual pre-authorization REPLACES rather than stacks, so a re-knock cannot accumulate duplicate reverse grants -- but the identity that replacement tests is `(kind, key_id, OWNER)`, never `(kind, key_id)`. A single code id is legitimately shared by TWO pre-authorizations with different owners: the MINTER's, armed at mint, whose subject is empty because no redeemer exists yet, and the REDEEMER's own, armed at redemption, whose subject is known. Keyed without the owner, arming the second would find the first and overwrite it in place, and one side of an agreed two-way would simply VANISH -- no error, no refusal, no second grant to notice missing; the surviving side would look entirely correct on its own. The dedupe is not wrong to exist, it is wrong when its key is narrower than the thing it is deduplicating, and the narrower key is the one a reader reaches for first because `(kind, key_id)` is how every OTHER seam here addresses a pre-authorization. The asymmetry with the consuming seam is deliberate and must not be 'fixed' into agreement: `consume_redeemed` filters on `(kind, key_id)` WITHOUT the owner precisely because a redemption must make BOTH siblings due at once, while `armed_mutual`/`consume_mutual` serve the knock keyspace, where only the knocker's single record exists. INVARIANT: any replace-in-place keyed lookup states the FULL identity of the record it replaces; where a key is deliberately narrower than a record's identity, the seam says why and a test pins that two records sharing the narrow key both survive. Gate: doc -- the KNOWN-HAZARDS entry stating the sibling mechanism and the deliberate arm/consume asymmetry; impl -- the owner-inclusive match in the arming seam; unit -- two pre-authorizations sharing one code id under different owners both survive arming and are BOTH made due by one redemption, with a bystander code untouched and a replay finding nothing left.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5286112Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5286266Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5286365Z ### REQ-KNOCK-ANSWER-RECEIPT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5292688Z - Title: A CROSS-NODE APPROVAL SENDS AN ANSWER RECEIPT BACK TO THE KNOCKER'S NODE, and that receipt is the only thing that consumes a knocker-local `--mutual` pre-authorization. Pre-auths are node-local BY DESIGN and stay so: nobody writes another endpoint's rules, so the knocker states its own conditional intention on its own side and its own daemon writes the reverse rule when the answer is proven. As shipped the only consumer runs inside the APPROVER's node against the APPROVER's store, so for every cross-node knock `armed_mutual` is None at the approver and the knocker's record dangles forever -- the seam CONTEXT.md's mutual-whitelisting entry already names ('written by their daemon at answer-receipt, keyed to the knock's correlation id and the node-proven answer') simply does not exist. THE RECEIPT IS ITS OWN KIND-TAGGED WIRE FAMILY MEMBER, on the `knockmsg`/`redeemmsg` precedent and for the identical reason: UNKNOWN FIELDS DECODE FINE, so a receipt smuggled as a field on an existing record would be ACCEPTED and MISREAD by an N-1 daemon, and misread is worse than dropped. A new kind resolves to the unknown family and drops clean. NODE-PROVEN OR IT CONSUMES NOTHING: the receipt's origin node is transport truth from the handshake identity, never a claimed field, and the consumed pre-auth is keyed to the knock's correlation id so a replayed receipt writes the reverse rule exactly once. AN UNPROVEN OR UNKNOWN RECEIPT IS NOT A REFUSAL AND NOT AN ANSWER -- it leaves the pre-authorization armed, because a conditional intention that silently expired reads identically to one that was never made. Gate: doc -- the entry naming the receipt family, its tag, and what a receipt is allowed to consume; impl -- the record, the send leg on the approve path, the classifier arm and the receiving consume seam; unit -- a receipt classifies into its own family and can NEVER be read as the message feed or as a knock (both asserted, since either alone leaves the other misclassification reachable), an N-1 receiver drops it clean, a proven receipt consumes the knocker-local pre-auth and writes the reverse rule ONCE while a REPLAY of the same receipt writes nothing further, a receipt whose correlation id matches no armed record writes nothing, and -- the discriminator, since 'consumed' and 'never armed' both end with no pending record -- an arrival that is NOT node-proven leaves the record ARMED rather than consumed, asserted beside the proven arrival on the same fixture so the two cannot both be satisfied by an implementation that ignores proof.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5299067Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5299294Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5299395Z ### REQ-KNOCK-COUNTER-KNOCK-TRAVELS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5306416Z - Title: RETIRED 2026-08-04 (ADR-0055, releases#144 bag grill) — ITS SUBJECT NO LONGER EXISTS. `knock approve --mutual` and the reciprocal knock it minted are REMOVED, not renamed: an approval carries no directionality, and a receiver who wants reverse reach knocks back through the knock verb itself. The routing bug this requirement fixed was real and its fix was correct for the shape that then existed; the shape is gone, so its impl, unit and int evidence deleted with the code. Retained in the registry rather than deleted so the reversal reads back. The superseded text follows verbatim. THE RECIPROCAL KNOCK AN APPROVAL MINTS RIDES THE SAME WIRE LEG A FIRST-ORDER KNOCK RIDES. `knock approve --mutual` mints a counter-knock addressed to the original knocker and, as shipped, upserts it into the APPROVER'S OWN local store -- so when the knocker is remote the approver's node holds a knock addressed to an endpoint that queries a different node and will never see it. It is not a delivery that failed; it is a delivery that was never attempted, silently, while the approver's stdout reads as though reciprocity was offered. The first-order path already calls `wansend::knock_send_remote` for exactly this reason and the counter-knock path does not; the paired notify is `NotifScope::Node` and by its own comment never enters a replication feed, so it carries nothing across either and STAYS as the design says for the remote case. THE ROUTE IS CHOSEN BY WHERE THE ORIGINAL KNOCKER LIVES, not by a flag: a local knocker keeps the local upsert (the shipped behaviour, which is correct for it), a remote knocker gets the send. AND THE APPROVAL ITSELF IS NEVER HELD HOSTAGE TO THE RECIPROCAL: the approval has already been decided and written when the counter-knock is minted, so a counter-knock that cannot be delivered reports its own failure and does not unwind or downgrade the approval it rode in on. Gate: impl -- the route split on the original knocker's node and the wansend leg for the remote arm; unit -- a REMOTE knocker's counter-knock leaves the approver's local store untouched and reaches the send leg, a LOCAL knocker's counter-knock still lands in the local store and does NOT reach the send leg (the pair asserted together, since either alone passes an implementation that routes everything one way), and a send-leg failure on the remote arm leaves the ALREADY-WRITTEN approval intact and still reported as approved.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5312325Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5312454Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5312551Z ### REQ-KNOCK-REDEEM-MUTUAL-RECEIPT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5318852Z - Title: VOCABULARY CORRECTED 2026-08-04 (ADR-0055, releases#144): the flag is --send-receive, its retired spelling was --mutual; the requirement itself is UNCHANGED and survives the ratification intact, since redeem is a REQUESTING verb and keeps its directionality declaration. `redeem --send-receive` ARMS THE REDEEMER'S OWN SIDE AND THE NODE-PROVEN `REDEEMED` REPLY CONSUMES IT. Unlike the knock case the receipt ALREADY EXISTS on this route -- the proven reply arrives back at the redeemer -- and is simply not wired to the flag, which is why this is materially cheaper than the answer-receipt build and not covered by it. ADR-0054's governing clause is the spec, verbatim: `--send-receive` stays redeemer-local, consumed once by the node-proven `REDEEMED` reply. As shipped the cross-node route arms NOTHING and refuses with a general rule -- that `--send-receive` arms the minter's side and is set at mint -- WHICH THE LOCAL ROUTE FALSIFIES by arming the redeemer's own side and consuming it in the same invocation: the refusal is keyed on the ROUTE but explains itself on the axis of flag ownership, so it is wrong wherever it is read. THE SUBJECT COMES FROM THE REPLY, NEVER FROM A LOCAL GUESS -- the redeemer holds no code record, so the counterpart identity and the surfaces are exactly what the proven reply carried, which is what the store's already-shipped empty-subject-means-whoever-answered resolution exists for. THE INTENTION IS RECORDED BEFORE THE OUTCOME IS KNOWN, so the three outcomes can be told apart on the record and not merely in a rendering: REDEEMED consumes, REFUSED disarms, and UNCONFIRMED NEITHER -- no proof, no open, and no false close either; the armed record survives the silence and expires with itself rather than being read as an answer. Gate: impl -- the arm on the redeemer's own store ahead of the send, keyed in the CODE keyspace, and the three-way consume/disarm/leave on the outcome; unit -- REDEEMED consumes exactly once and writes the reverse rule naming the subject THE REPLY carried (asserted against a reply whose target differs from anything the redeemer could have guessed locally, so a local-guess implementation fails the row), REFUSED leaves NO armed record, UNCONFIRMED leaves the record ARMED and unconsumed -- the three asserted on one fixture, since any two alone pass an implementation that collapses the third into a neighbour -- and a replayed REDEEMED reply writes the reverse rule no second time. Retirement row: the shipped cross-node refusal message is GONE from every surface that carried it, asserted by rendering the surfaces rather than by reading the source.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5325304Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5325468Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5325573Z ### REQ-KNOCK-MINT-MUTUAL-IS-A-REQUEST
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5337313Z - Title: RETIRED 2026-08-04 (ADR-0055, releases#144 bag grill) — ITS SUBJECT NO LONGER EXISTS. `knock new-code --mutual` is removed: a mint declares no directionality at all, so there is no mint-side pre-authorization left to be a request or a grant. The finding this requirement recorded stands as history and its second property survives it — no surface may claim a reverse the claiming side did not open — which is now carried by the sender-declared model itself, where only the declarer's own act opens the declarer's own side. Its impl, unit and int evidence deleted with the code (including arms 2 and 3 of crates/spt/tests/knock_mutual_cross_node_e2e.rs; the surviving arms stay and remain REQ-KNOCK-REDEEM-MUTUAL-RECEIPT's). Retained in the registry rather than deleted so the reversal reads back. The superseded text follows verbatim. A MINT-SIDE `--mutual` IS A REQUEST FOR THE REVERSE, NEVER A GRANT OF IT, AND NOTHING MAY RENDER IT AS ONE. The reverse of a code grant is the TARGET reaching the REDEEMER, which can only be opened by a rule scoped on the REDEEMER'S OWN endpoint -- so no record held on the MINTING node can ever constitute that consent. As shipped, `new-code --mutual` armed a minter-local record whose consumption wrote scope=target subject=redeemer, which is the SAME DIRECTION the redemption grant already wrote: a DUPLICATE, not a reverse. The `REDEEMED` reply then carried a flag rendered to the presenter as `reach is TWO-way -- they may reach you as well`, asserting a direction that nothing had opened and that only the presenter's own act could open. TWO INDEPENDENT PROPERTIES, and the second is not implied by the first: the mint-side mutual must not DUPLICATE the forward grant, and no surface may CLAIM a reverse that the claiming side did not open. A repair that stopped the duplicate write while leaving the sentence standing would satisfy one and keep shipping the other. THE RATIFIED PRINCIPLES DECIDE THE INSTRUMENT and this requirement records which: `knock approve --mutual` was always the precedent -- when the side OFFERING reach wants it back, the instrument is a reciprocal KNOCK, not a grant -- so consuming the mint-armed record puts the target's knock in the redeemer's inbox, the redeemer answers it, and the reverse opens with the only consent that can open it. `full mutuality needs both` is FALSE under the grant spelling (`redeem --mutual` alone already writes the true reverse) and TRUE under this one, which is the tell that distinguishes them. WHICH SIDE A PRE-AUTHORIZATION IS MUST BE RECORDED AT ARM TIME, not re-derived at consumption by comparing an owner against the code's target: the two sides owe DIFFERENT things and a discriminant inferred at the check is a second source for what was known at the mint. THE REPLY IS THE CARRIER and the provenance is its own: the request rides the redemption reply already crossing the seam with node-proof in hand, and the knock the redeemer's node writes from it is stamped with a provenance distinct from a handshake-stamped first-order knock -- it is sound because the redeemer opened a sealed code with a subnet seed and received a node-proven reply in the SAME exchange, which is better evidence than an inbound receiver holds, and that argument does not generalize beyond this exchange. Gate: doc -- the CONTEXT.md mutual entry carrying the struck-and-amended mint-side clause; impl -- the arm-time side discriminant on the record, the consumption producing a reciprocal knock instead of a rule, the reply-carried request, and the distinct provenance at the write site; unit -- a mint-armed record's consumption yields a KNOCK and writes NO access rule (asserted against a fixture where the duplicate rule would be visible, since a repair that merely stopped rendering would pass a rendering-only row), a redeemer-armed record's consumption still yields its reverse RULE (the pair asserted together, since either alone passes an implementation that treats every record one way), the reply-written knock carries the distinct provenance and NOT the first-order one, and no surface renders a two-way claim on the strength of the minting side's record alone. Retirement row: the `they may reach you as well` sentence is gone from every surface, asserted by rendering.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5347511Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5347626Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5347731Z ### REQ-VIS-REMOTE-NOT-HIDE-NEW
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5352933Z - Title: A REMOTE ENDPOINT'S VISIBILITY IS ITS OWN NODE'S BUSINESS, AND THE ASKING NODE'S `hide_new_endpoints` POSTURE GOVERNS ITS OWN ENDPOINTS ONLY. `VisibilityStore::hidden` resolves an explicit per-(endpoint, subnet) override first and otherwise falls through to `subnet_hide_new || default_hide`; a REMOTE id never has an override or a default-hide row in the ASKING node's local store, so on any node whose subnet has `hide_new_endpoints` ON that fall-through evaluates true for EVERY remote id and the resolve-side exclusion vetoes them all -- `resolve_across_visible` returns NotFound and every remote wan target is refused on that node. IT IS NOT CONSERVATIVE, IT IS BACKWARDS: `hide_new_endpoints` is the OWNING node's advertisement policy, captured at join and enforced at the advertisement/sync gate on the owning side, so a hidden remote endpoint has no registry row on the asking node at all. The asker-side re-application therefore gates nothing the owner has not already gated, and vetoes exactly the rows the owner deliberately advertised. THE OWNING-SIDE GATE IS UNTOUCHED -- this is a resolve-side scoping fix, not a relaxation of who advertises what -- AND EXPLICIT PER-ENDPOINT OVERRIDES KEEP WORKING IN BOTH DIRECTIONS, including on remote ids, because an operator who named a specific endpoint said something the default never said. Gate: impl -- the resolve-side default applying only to ids the local node owns, at one shared seam rather than re-decided per call site (the call-site count is grep-swept, not estimated); unit -- with `hide_new` ON, a remote id with no local rows RESOLVES while a LOCAL id with no local rows is still HIDDEN (the pair asserted together, since either alone passes an implementation that scopes everything one way), an explicit override still HIDES a remote id and still REVEALS a locally-owned one, and -- the vacuity guard, since a fixture whose rows are uniform in the asserted property proves nothing -- the same fixture with `hide_new` OFF is shown resolving both, so the ON-case difference is the posture answering and not the fixture.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5358038Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5358196Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5358315Z ### REQ-KNOCK-HUMAN-PRESENTER-NOT-DEAD-ENDED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5364004Z - Title: A HUMAN PRESENTING A VALID CODE REACHES A DECISION, RATHER THAN SILENCE THAT NEVER ENDS. A bare-terminal presenter binds the deliberately-narrower `node + origin user` subject -- the knock design's own human form, 'the humans on my node', ratified as narrower than a bare node entry. `RuleMutation::widens()` classifies widening by subject KIND ALONE, so the origin-USER qualifier does not narrow it, and redeeming ANY code whose mint did not carry `--admit-node` -- INCLUDING AN MSG-ONLY CODE, whose surface is perfectly attributable -- refuses the rule write, reaches no decision, and returns the two-silences serve arm. The silence is individually correct and collectively a dead end: nobody at MINT time knows whether a human will redeem, so the commonest invite there is -- here is a code, message me -- is a latent trap for exactly the least-technical presenter, and it starts at the mint, where the person who could have avoided it was never told. THE FIX SIDE IS A RULING, NOT A BUILDER'S CHOICE, and this requirement deliberately states the PROPERTY rather than the mechanism: whether `widens()` learns the qualifier axis (a subject admitting only the humans on a machine is multi-party but materially narrower, and the acknowledgment's own stated ground -- that it admits every endpoint on the knocker's node -- is false of it) or the redemption path carries a special case, the delivered property is the same. Weighed against it and to be answered by the ruling, not assumed away: humans on a machine can widen over time as users are added, and the grant-nodes policy may deliberately treat any node-scoped subject as node-tier whatever its qualifier. Gate: impl -- the ruled mechanism, single-sourced so the local verb and the wire serve side cannot answer differently; unit -- an MSG-only code minted WITHOUT the acknowledgment, presented by a bare terminal, reaches a DECISION and writes a rule that MATCHES the traffic it names (asserted against the real chain, not a second reading of it), presented by an ENDPOINT it still binds the sender-endpoint subject unchanged, and -- the non-vacuity row, since a mechanism that stops refusing everything would also satisfy the first -- a genuinely node-widening bake WITHOUT the acknowledgment is still REFUSED on the same fixture.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5369589Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5369744Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5369847Z ### REQ-PSYCHE-INGEST-FAILURE-LOUD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5378590Z - Title: A COMMUNE THAT CAN NEVER INGEST IS LOUD WHERE IT IS NOTICED, AND NEVER LETS A RESUME SERVE THE STALE TIER AS IF IT WERE FRESH. MECHANISM (field-settled, and NOT the one this requirement was minted describing -- see the amendment note): a commune written from a cwd other than the endpoint's REGISTERED one silently never enters the tier. The ingest resolves the manifest's drop dir against the endpoint's recorded cwd; a drop written from a worktree, or any non-registered dir, lands somewhere nothing watches. NOTHING FAILS -- so no error is stamped, no strike accrues, and the surfacing that does exist is structurally incapable of firing. The durable tier keeps the PREVIOUS commune and the next resume is rebuilt from it, confidently and wrong. THE SEAM IS AN ANCHOR DISAGREEMENT INSIDE ONE BRIEF: the ingest anchors the drop dir to the endpoint's registered cwd, while the CLI brief composer joined the raw manifest dir against nothing, binding it to whatever cwd the CALLER ran in -- so the durable tiers came from the endpoint and the pending-drop lookup came from the caller, and the two could name different directories without either being wrong on its own terms. TWO INVARIANTS, AND THE SECOND IS THE ONE THAT BITES: (1) a drop that can never ingest is surfaced at the instant a resume is composed over it -- the one moment the degraded party is listening -- and NAMES ITS ABSOLUTE PATH, because the recovery is reading the file and that is only actionable if the party is told where it is; (2) a resume composed over such a drop does not present its durable tiers as current -- the staleness is carried WITH the context rather than inferred by an agent lucky enough to have a nonce discipline. A LOST INGEST IS NOT A LOST FILE: the drop survives on disk and the wake leg fires correctly, so the recovery exists and is cheap. That is the field mitigation already proven to work, and naming the unspooled file is the actionable half of being loud. PAIR, NOT SEQUENCE (acceptance condition): before the anchor was corrected a worktree session found its own misplaced drop BY ACCIDENT, because the composer's lookup was wrong in the same direction the drop was; correcting the anchor without a deliberate misplacement arm in the SAME change would delete that accidental recovery and silently re-open the hole. SCOPE IS SPT-CORE-SIDE -- the daemon AND the CLI brief composer; the harness ADAPTER is untouched. That distinction is the whole of the scope line and is not to be re-litigated: `resolve_filedrops` is spt-core's own code at the seam the adapter calls, and leaving the CLI brief wrong fails invariant 2 at the exact surface an operator reads. Gate: impl -- one shared drop-dir resolver both composers route through, the misplacement arm paired with it, the compose-instant surfacing carrying the unspooled drop's absolute path, the resume refusing to present a never-ingested drop's tiers as fresh, and the registered drop dir surfaced on the endpoint's own info (the only fact that makes a surviving drop classifiable as misplaced-versus-failed by anyone but its owner); unit -- a misplaced drop emits its surfacing ONCE and names the file while a CONSUMED drop emits none (the pair asserted together, since the misplaced row alone passes an implementation that shouts on every compose), a resume over a misplaced drop is marked stale while the SAME resume over a registered drop is not (the discriminator, since both otherwise return the same shaped context and an implementation that marks nothing, or everything, satisfies either row alone), and -- the acceptance row -- a misplaced drop is still FOUND after the anchor is correct, since the anchor fix alone would make it invisible and read as a clean pass.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5387490Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5387634Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5387743Z ### REQ-PSYCHE-OUTCOME-CLASSIFIED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5391842Z - Title: A PSYCHE OPERATION'S OUTCOME IS CLASSIFIED AT ITS SOURCE AND CARRIED AS A TYPE, NEVER RECOVERED BY READING ITS PROSE. The soft-timeout budget and the hard-failure budget can only differ if the two are told apart, and today they cannot be: `RuntimeError::Timeout { command, after }` exists at the source (spt-runtime runtime.rs) and `EchoError::Runtime` wraps it, but `fire_echo` ends `.map_err(|e| e.to_string())?` and `note_turn_outcome` takes `&Result<(), String>` -- so by the time the budget sees an outcome the fact is prose. RECOVERING IT BY MATCHING THE MESSAGE IS FORBIDDEN, and not as a matter of taste: this codebase already ruled that class out for the sibling discriminator, where the reserved exit code 95 is the SOLE session-not-found signal and the comment at its site states that the human-readable stderr line is never parsed. A harness whose summarizer prints the words `timed out` inside an ordinary non-zero failure must not thereby buy the softer budget. THE CLASSIFICATION IS THREE-VALUED (Ok / Timeout / Hard) and both legs -- the per-event turn and the commune-sync echo -- produce it, so the budget owner never re-derives what the spawn already knew. Gate: impl -- a classified outcome type produced at the runtime boundary from `RuntimeError::Timeout` and threaded unflattened through `fire_echo` and the turn leg into `note_turn_outcome`, which consumes the type and never the string; unit -- a HARD failure whose stderr text CONTAINS `timed out` still classifies Hard (the anti-parse row: a message-matching implementation passes every other row and fails this one), a real bound kill classifies Timeout, and a clean run classifies Ok.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5395952Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5396151Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5396261Z ### REQ-PSYCHE-INVOCATION-BUDGET-PER-ROLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5401541Z - Title: EVERY BOUNDED ADAPTER INVOCATION TAKES ITS KILL BOUND FROM THE ROLE THAT DECLARES IT, WITH A SANE DEFAULT AND A HARD CEILING. FIELD ROOT (releases#27, two independent confirmations the night of 2026-07-29): the echo-commune summarizer ran against a flat 30s bound while the legitimate turn measured 23s and 35s wall on the same node with the same input -- the honest duration STRADDLES the bound, so kills were a load-of-the-moment lottery, and three agents were struck in one night. A LOTTERY IS NOT A FAULT SIGNAL. THE KNOB IS GENERAL, NOT ECHO-SPECIFIC: any role that is an LLM turn declares its own budget on the manifest role, because the adapter is the only party that knows what its own model costs. Numbers ruled: 90s when undeclared, and core CLAMPS a declared value to a 300s ceiling -- an adapter may not buy an unbounded spawn by declaring one. NO ROLE-NAME SPECIAL-CASING: the resolution keys on the declared FIELD, never on which role it is, matching the manifest contract's existing discipline for the recursion-guard field. THREE BOUNDS COLLAPSE INTO THIS ONE, verified by sweep rather than assumed: `LIVE_BOUNDED_TIMEOUT` governs BOTH the summarizer spawn and the history fetch, and `event_turn_timeout_for` separately governs the psyche_resume per-event turn on a pulse-derived value with a 30s floor. Ruled consequences, deliberate and not side effects: the history fetch moves 30s -> 90s undeclared, and the pulse-derived turn bound is REPLACED by the role budget (measured before replacing: default pulse 5s yields 30s today, under the new default, so nothing fielded is shortened). Gate: impl -- the budget field on the manifest session role, one resolution seam applied at EVERY bounded spawn site, the 300s clamp, and the pulse-derived turn bound retired in favour of it; unit -- undeclared resolves 90s, a declared value under the ceiling resolves verbatim, a declared value over it resolves 300s, and -- the no-special-casing row, since every other row passes an implementation that hardcodes the echo role -- a role the resolver was never taught by name resolves its declared budget identically.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5406735Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5406879Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5406982Z ### REQ-PSYCHE-SOFT-TIMEOUT-BUDGET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5410776Z - Title: A TIMEOUT KILL IS A LOAD SIGNAL, NOT A DEFECT, AND SPENDS A SEPARATE AND FAR MORE FORGIVING BUDGET. A slow-but-healthy host must never latch FAILED: three consecutive bound kills during a CI load window are exactly what the field produced, and under the shipped single 3-strike budget they stamped healthy psyches. THE COUNTER IS ONE, SHARED ACROSS KINDS, and latches only after TEN consecutive timeout kills. ANY SUCCESS OF ANY KIND CLEARS IT, including a success of a different kind than the one timing out -- a timeout is evidence about the machine's load at an instant, and any completed spawn is evidence that the window passed, so cross-kind clearing is the semantics rather than a convenience. THAT CROSS-KIND CLEAR IS WHAT DISSOLVES THE ORIGINAL LATCHED-STAMP FIELD CASE, whose latches were timeout-driven. A timeout NEVER touches a hard-failure counter, in either direction: it does not strike one and it does not reset one. Gate: impl -- the shared consecutive-timeout counter, its ten-deep latch, its clear on any success of any kind, and its isolation from the hard counters; unit -- nine consecutive timeouts leave the stamp clean and the tenth stamps (the boundary asserted from both sides, since a row at one depth alone passes an off-by-one), a success of a DIFFERENT kind clears the timeout counter (the ruled cross-kind semantics, which a per-kind implementation fails while passing every same-kind row), and a run of timeouts leaves an existing hard counter at its prior value rather than resetting it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5414592Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5414750Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5414903Z ### REQ-PSYCHE-HARD-BUDGET-PER-KIND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5421488Z - Title: INGEST JOINS BOTH SIDES OF THE PSYCHE HEALTH STAMP, AND HARD FAILURES ARE COUNTED PER KIND SO ONE WORKING SUBSYSTEM CANNOT VOUCH FOR A BROKEN ONE. FILED ROOT (releases#97): clearing is keyed to psyche TURNS while the health question in the field was drop INGEST, so an endpoint printed FAILED with a stale stamp while ingest demonstrably worked. THE FAILING SIDE IS WORSE THAN FILED, found at recon: the ingest leg is `ingest_drops(...)?` inside `pulse_tick` and the loop swallows the error (`Err(_) => { /* a transient tick error must not kill the loop */ }`), so a hard ingest failure today produces NO strike, NO stamp and NO stderr line, and additionally SKIPS that tick's psyche turn and commune-sync entirely. FIX, RULED: capture-and-continue -- the ingest outcome is classified and fed to the budget BEFORE the turn runs, and the tick then proceeds to the turn and echo. The behaviour change is deliberate: a turn over possibly-stale context, plus a struck budget, plus the expectation surfacing, beats a silently dead psyche forever. AN INGEST SUCCESS IS AT LEAST ONE DROP ACTUALLY INGESTED -- an empty sweep is neither success nor failure, because nothing ran and nothing was proven healthy, the same reasoning the role-absent skip already carries. THAT DEFINITION IS LOAD-BEARING, NOT PEDANTRY: were an empty sweep a success, the stamp would clear on nearly every tick, no budget could ever reach its latch, and the change would read as a fix while disabling the stamp it repairs. COUNTERS ARE PER KIND (turn, ingest), three consecutive each, and a success resets ONLY its own kind -- ingest working does not disprove a turn defect, nor the reverse. The stamp remains the single existing `psyche_host_error` field, current-state, and its reason names the kind and the class. Gate: impl -- the ingest error captured rather than propagated, classified, recorded before the turn, the tick continuing to turn and echo, per-kind consecutive hard counters with own-kind-only reset, and the reason text naming kind and class; unit -- three consecutive ingest hard failures stamp with an ingest-hard reason WHILE turns are succeeding on the same fixture (the row the shipped code cannot pass and a shared-counter implementation also fails, since the turn successes would reset it), an ingest success clears the ingest counter and leaves a standing turn counter untouched, an EMPTY sweep neither clears nor strikes either counter (asserted against a fixture with a non-zero counter standing, since over a zeroed counter a clearing implementation and a correct one agree), and a hard ingest failure still lets the SAME tick run its turn (the capture-and-continue row, which the pre-fix `?` fails by construction).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5427917Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5428060Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5428178Z ### REQ-PSYCHE-FAULT-SLOTS-SURVIVE-RESTART
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5436746Z - Title: A PSYCHE FAULT STAMP REMEMBERS WHICH LATCH SLOT PRODUCED IT, SO A DAEMON RESTART CANNOT CLEAR A FAULT IT NEVER SAW. ROOT (releases#115): the three fault latches -- latch_turn, latch_ingest, latch_timeout -- live in memory behind a Mutex and are never seeded from disk, while the `psyche_host_error` stamp they compose to OUTLIVES the process on disk. After a bounce the stamp stands with nothing standing behind it, so the first `note_success` of ANY kind recomposes an empty latch set to None and clears a fault whose kind this process never learned. THE PER-KIND SEPARATION BAROMETER W1 BUILT IS THEREFORE UNDONE BY A RESTART: one working ingest erases a standing turn defect it says nothing about, which is precisely the vouching REQ-PSYCHE-HARD-BUDGET-PER-KIND exists to forbid -- the defect does not lose information at the margin, it re-opens a closed hazard. FIX: the stamp carries a SLOT-KEYED sibling map written by the SAME seam that writes the reason, so the sentence and the latches that produced it can never disagree on disk, and the pulse loop seeds its latches from that map at startup BEFORE any tick can report a success. THE KEY IS A LATCH SLOT, NOT A KIND, and the distinction is load-bearing rather than nominal: there are THREE slots against TWO kinds, because the timeout latch is shared cross-kind by the ruled BAROMETER W1 semantics and belongs to no kind at all -- a kind-keyed reading would be re-read later as a per-kind register and gain a fourth key the day a fourth kind appears. THE VOCABULARY IS CLOSED to those three slots, and an unrecognized key is IGNORED AND ANNOUNCED rather than seeded: an unknown slot can only come from a newer binary owning a latch this one has no code to clear, so seeding it would strand a fault that no success could ever recompose away, while dropping it silently would make a rollback that loses a standing fault look identical to a recovery. A PRE-#115 STAMP CARRIES NO SLOTS AND SEEDS NOTHING, deliberately: its kind is genuinely unrecoverable, and the honest behaviour for an unknown-kind fault is the one that shipped, where any success clears it (REQ-PSYCHE-STAMP-CLEAR-ANY-SUCCESS) -- inventing a kind for it would be worse than forgetting one. `reason` stays BYTE-IDENTICAL, and the map is serde-default plus skip-when-empty so a stamp with no standing latches serializes byte-identically to the pre-#115 shape; N-1 holds in BOTH directions, the old-binary/new-record leg proven by a MEASURED absence of any live deny_unknown_fields attribute repo-wide (zero, on this struct and on InfoJson alike) rather than by assuming serde's default. Gate: impl -- the slot-keyed map on the stamp, written by the single existing writer alongside the reason it composed to, the closed three-slot vocabulary with ignore-and-log on an unknown key, and the pulse-loop seed running before the first tick; unit -- a stamp whose slots record a standing INGEST fault SURVIVES a fresh process reporting a TURN success (the row the shipped code cannot pass, since an unseeded set recomposes to None and clears it), a seeded latch IS still cleared by a success of ITS OWN slot (asserted alongside, since the survival row alone passes an implementation that has simply stopped clearing anything), a pre-#115 SLOTLESS stamp is still cleared by any success (the N-1 behaviour-preservation row), and an UNKNOWN slot key seeds NO latch while a known key beside it in the same map DOES seed (the pair asserted together, since over an unknown key alone a seed-nothing implementation and a correct one agree).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5445209Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5445352Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5445456Z ### REQ-PSYCHE-INGEST-INTENT-MARKER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5451245Z - Title: A COMMUNE THAT WAS EXPECTED AND NEVER ARRIVED IS DETECTABLE POSITIVELY, PER ATTEMPT, RATHER THAN INFERRED FROM AN ABSENCE. ROOT (releases#96, split out of the #90 recon): the summarizer spawn killed at its bound dies BEFORE writing the drop file, so it produces no file and no ingest -- and every presence-based check is structurally blind to it, because there is nothing on disk to find and nothing failed loudly enough to stamp. AN ABSENCE CANNOT BE OBSERVED; AN EXPECTATION CAN. THE DISCRIMINATOR IS A WRITE-AHEAD INGEST-INTENT MARKER: the lifecycle persists an expected-ingest record (timestamp + trigger) BEFORE launching the summarizer spawn, a completed ingest CONSUMES it, and a marker still standing past the spawn budget with no corresponding drop positively identifies the killed-at-bound case for that attempt -- no staleness threshold to tune and no guessing. THE ORDERING IS THE PROPERTY, not an implementation detail: a marker written after the spawn returns cannot survive the case it exists to detect, exactly as an intention recorded only after an answer arrives cannot survive an answer that never comes. SURFACING rides where the degraded party is already listening -- at resume/compose, beside the un-ingested-drop warning, saying that a commune was expected and never ingested and that the reader may be resuming stale. The marker is therefore written by the daemon lifecycle and read by the CLI compose path, so its storage must serve both. A killed-at-bound attempt counts on the SOFT timeout budget, never the hard one. Gate: impl -- the marker persisted before the spawn with its timestamp and trigger, consumed on ingest completion, the orphan classified past the budget, the resume/compose surfacing, and the storage readable from the CLI compose seam; unit -- a spawn killed at its bound leaves a standing marker with no drop and classifies as the expected-never-ingested case, a completed ingest leaves NO marker (the pair asserted together, since the orphan row alone passes an implementation that never consumes and would then report every healthy commune as orphaned), a marker whose drop IS present is not classified orphaned, and the write-ahead ORDERING is asserted directly by observing the marker from a spawn that never returns -- a post-spawn write passes every other row and fails this one.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5457009Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5457162Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5457266Z ### REQ-SHELL-PERSISTENT-BOOT-RESTORE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5467164Z - Title: A `persistent` SHELL COMES BACK AFTER A NODE RESTART, WHICH IS THE ONE CASE THE CONTRACT'S OWN SENTENCE PROMISES AND THE IMPLEMENTATION NEVER HANDLED. CONTEXT.md states it plainly -- a persistent shell is automatically brought online whenever its owner endpoint is online -- and the shipped code honors that across a graceful suspend->wake rest edge ONLY. A machine restart produces no such edge and there is no boot-time restoration at all, so after a reboot every persistent shell on the node stays down until a human runs `relink` by hand, with no surface saying so. Field, HFENDULEAM 2026-08-01: the fleet came up at 01:11 and NOT ONE persistent shell came back; the two instances that did were relaunched by a human at 01:27, sixteen minutes later. TWO INDEPENDENT GATES, both of which must fall or the promise stays broken. GATE 1, no restoration path: the five launch sites all require either an explicit command, a rest edge, or a `wake_command` the adapter may deliberately not declare, and daemon boot starts only the servicehost sweep and the wake reconciler. GATE 2, the stale record blocks the cascade even when an edge DOES arrive: the to_active arm gates on the RECORDED status being offline, and a machine death breaks no link, so the close that would write offline never runs and the record says online over a corpse forever. LEG (a) HEALS THE RECORD TO THE TRUTH, with a BIRTH-STAMPED probe rather than bare pid liveness -- a pid namespace resets at boot, so a corpse pid can be REUSED by an unrelated process, and a reused pid reads alive, makes the derived status read online, and makes `relink` refuse SHELL_ALREADY_ONLINE: the one command that recovers the instance refusing on the very state that is wrong. TWO STAMPS ARE PARKED, NOT ONE, AND THE REASON IS A PLATFORM ASYMMETRY THAT WOULD OTHERWISE SHIP SILENTLY BROKEN ON LINUX: `process_started_at` returns a Windows FILETIME (absolute, comparable across boots) but on Linux returns field 22 of /proc/<pid>/stat, which is JIFFIES SINCE BOOT and resets every boot, so a value recorded before a restart is indistinguishable from a fresh one after it. The NATIVE stamp is therefore used for one question only -- the same-pid-different-process PAIR test within a single boot, mirroring `liveness::relay_liveness` -- and an ABSOLUTE epoch-ms launch stamp is parked beside it for the cross-boot question. LEG (b) IS A ONCE-PER-DAEMON-GENERATION BOOT SWEEP relaunching persistent instances whose owners are online, and its discriminant is THE LAUNCH STAMP PREDATES THE BOOT INSTANT, which preserves the class-c force-kill ruling BY CONSTRUCTION rather than by a second rule: a force-kill during steady-state operation leaves a corpse launched AFTER boot, so it is never spontaneously relaunched and the mid-deploy exe-overwrite hazard that ruling protects is untouched. A NAMED SLACK CONSTANT absorbs boot-instant jitter so a process launched moments after boot is never misclassified as a corpse. Gate: impl -- the two stamps parked at the two production pid-write sites (the census is authoritative: five LAUNCH sites funnel through exactly TWO pid writes), the birth-stamped death probe, the record heal in the daemon-side reconciler guarded on an actual change of the recorded value, the boot-instant helper on both platforms, and the boot sweep with its predates-boot discriminant plus slack; unit -- a reused pid (same pid, different birth stamp) reads GONE where bare-pid liveness reads alive (the row the shipped probe cannot pass), a same-pid-same-birth process reads HELD, the heal writes offline over a stale online record and writes NOTHING when the record already matches the truth (the guard asserted by counting writes, since a heal that rewrites every cycle passes any state-only assertion), a corpse launched BEFORE the boot instant is eligible for restore while one launched AFTER it is NOT (the class-c pair, asserted together since either alone passes an implementation that restores everything or nothing), and an instance whose OWNER is offline is not restored even though its corpse predates boot.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5476980Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5477122Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5477228Z ### REQ-SHELL-OWNER-ONLINE-RESTORE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5484921Z - Title: A `persistent` SHELL WHOSE OWNER ENDPOINT WAS NOT YET ONLINE WHEN THE BOOT SWEEP RAN IS RESTORED WHEN THAT OWNER COMES ONLINE, RATHER THAN STAYING DOWN UNTIL A HUMAN RELINKS IT. ROOT (releases#228): daemons boot before endpoints do, so the boot sweep of REQ-SHELL-PERSISTENT-BOOT-RESTORE correctly SKIPS an owner that is not up yet -- an offline owner is owed nothing -- and then nothing ever revisits it: the sweep is once per daemon generation, and bringup from offline produces no rest edge, so the ADR-0048 cascade never fires either. The shell stays down until a `shell cmd` wakes it or an operator relinks by hand, and whether a given node restart strands its shells is an ordering accident. THE ONCE-NESS IS SCHEDULING, NOT SAFETY (doyle, releases#228, re-measured at head): the `launch_predates_boot` corpse-boot discriminant is what preserves the force-kill ruling, and it is MONOTONE WITHIN A MACHINE BOOT -- every launch path restamps `launched_ms`, a kill never restamps, `boot_ms` is the machine boot instant -- so re-evaluating the conjuncts later in a generation can only refuse MORE, never less. FIX: the reconcile loop carries the SAME per-owner restore body the boot sweep runs, triggered on owner offline->online transitions since the last pass. THE TRIGGER IS AN EDGE, NOT A LEVEL, and the distinction is the whole bound: success self-limits because the launch restamps the instance out of eligibility, but a FAILING launch under a level trigger -- owner is online -- retries every five seconds for as long as the owner stays up, while an edge bounds it to one attempt per owner-online event. THE REFUSAL ARMS ARE CARRIED BY CONSTRUCTION, not by restatement: both triggers call one shared per-owner body, so persistent-only, owner online, down in fact via the derived read with the pair test, stamp present, launch predates boot, and no boot oracle means restore nothing can never drift apart between the two paths. THE EDGE STATE IS SEEDED BEFORE THE SWEEP, deliberately: seeded after, an owner that comes online in the window between the sweep and the first tick reads as already-online and never fires -- the exact miss this requirement exists to close -- while seeding before can at worst re-attempt an instance the sweep already restored, which the RESTAMPED BIRTH STAMP refuses -- and NOT the down-in-fact arm, which is the arm that reads like the answer and is not: a launch is not the online switch, so a just-restored instance keeps an `offline` record until its bind-shell handshake and still reads as down in fact; what refuses the second attempt is that the launch moved `launched_ms` past the boot instant. Each trigger names ITSELF in its event line, because the field evidence that diagnosed this ticket was a count of those events and a shared name would leave the next investigation unable to say which trigger fired. Kin REQ-SHELL-PERSISTENT-BOOT-RESTORE (the boot trigger and the shared arms), REQ-HAZARD-RESTART-STRANDS-PERSISTENT-SHELLS (the invariant this closes the remaining seam of), REQ-SHELL-2 (the online/offline mutual exclusivity the edge path holds by stopping an armed watcher before it launches -- mid-generation a watcher CAN be armed for the casualty, unlike at boot).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5492775Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5492925Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5493114Z ### REQ-SHELL-KILL-AUTHENTICATED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5506293Z - Title: A RECORDED PID IS NOT KILL AUTHORITY ON THE PRODUCT PATH EITHER: no shell-lifecycle kill fires until the pid+birth PAIR proves the process at that pid is still the one we launched. BAROMETER W2 authenticated the DERIVATION path (`shellinfo::shell_pid_provably_dead` runs the pair test) and left the KILL path believing a bare pid, so the same recycled-pid state that the derived read correctly calls a corpse still routes to `taskkill /PID <pid> /T /F` (unix `kill -9`) against whatever unrelated process now wears that number -- and `/T` takes its whole subtree with it, on the user's machine. Proven reachable by probe, not inferred: a live stranger's pid parked beside a foreign birth stamp is killed by `kill_shell_at` while `shell_pid_provably_dead` calls the same pair a corpse. SITE SHAPE IS TWO CHOKEPOINTS, NOT THREE CALL SITES: `shellhost::kill_shell_at` (reached by `close_shell` and the `spt shell teardown` force path) and `shellwake::kill_waker_at` (reached by `launch_shell`, `close_shell`, `stop_watcher`, and the reconciler), both funnelling into the single `kill_shell_pid` taskkill; the gate therefore lands in the two chokepoints and NO caller changes. THE WAKER HALF NEEDED A WRITE-SIDE MINT BEFORE ANY GATE COULD MEAN ANYTHING: `waker.pid` was written bare, and `relay_liveness(live_pid, None)` is HELD by design (pre-stamp records fail toward alive), so a read-side gate there would have returned Held for every record that exists today and every one written tomorrow -- a VACUOUS gate that proves green. The pair is therefore minted in the waker's single existing write as a two-line `waker.pid` (`<pid>\n<birth>`): ONE file, ONE write, so the pair is atomic -- a second file has a torn window in which the pid is on disk and the stamp is not, and that window reads Held, which is the vacuous arm reintroduced as a race. Write and every reader move through ONE shared record/read function pair, mirroring `record_shell_launch`/`read_shell_launch`. FAIL-TOWARD-ALIVE IS THE PARSE ARM TOO: an unparseable record reads None and REFUSES the kill while LEAVING the record, because kill-nothing-and-retire-the-pid-file-anyway orphans a live waker while presenting success -- worse than the defect being fixed. UNPROVEN REFUSES: the destructive arm treats unknown as do-not-fire (consequence asymmetry -- a mis-fire force-kills a stranger's tree, a missed kill leaves our own binary running and observable), which FALSIFIES the shipped unconditional promise that a link-break's force-close always kills and "the binary never survives", so `close_shell`'s step 3, the REQ-SHELL-2 language, the CONTEXT lifecycle line and KNOWN-HAZARDS 7.58 are amended together with the code rather than one comment patched. THE REFUSAL IS LOUD: every declined kill names the reason and the pid on the channel the close path already speaks, and the bounded confirm loop reports a binary that outlived it -- a quiet wrong state is the un-RCA-able one, and the harm-asymmetry argument has to hold in the log and not only in principle. THIS NARROWS THE MIS-FIRE, IT DOES NOT ELIMINATE IT, AND THE TEXT SAYS SO: on Linux `process_started_at` reads /proc/<pid>/stat field 22, which counts CLK_TCK=100 jiffies, so two processes whose starts fall in the SAME 10ms tick carry an identical stamp and the pair cannot separate them. The window closes from ANY recycled pid to A PID RECYCLED INTO THE SAME 10ms TICK AS THE RECORDED START -- which requires our process to die AND the OS to hand its number to a new process inside one tick, a precondition that is its own mitigation. Windows is unaffected (FILETIME, far finer resolution). Measured by hertz on kitsubito; recorded verbatim so nobody re-derives it. THE ASYMMETRY IS WHY THIS IS THE KILL PATH'S SENTENCE TO WRITE: the same predicate with the same imprecision is SAFE on the derivation side and UNSAFE here -- Held means 'stays stale' for a derived read and 'fire the kill' for a destructive one, so only the kill side carries the residual harm and only the kill side has to declare it. Image-path corroboration (which would unify this rule with the rig-side technique in KNOWN-HAZARDS 7.58) is filed past as releases#120, deliberately not taken in a closing milestone. MIGRATION WINDOW, NAMED NOT SILENT: pre-W2 shell records and pre-fix waker records carry no stamp, read Held on existence alone, and keep today's bare-pid kill until their next launch writes a pair. DOWNGRADE DIRECTION, NAMED: an OLD binary reading the NEW two-line `waker.pid` parse-fails to None, which reads as no-pid and refuses the kill -- missed-kill, not mis-fire, the safe polarity. Gate: impl -- the pair gate in both chokepoints, the shared waker record/read pair with the two-line format, every waker.pid reader moved onto it, the loud refusal arms, and the confirm-loop survivor report; unit -- a recycled pid (live, birth mismatch) is NOT killed where the shipped code kills it, a genuine own-process pair (Held) IS still killed so the gate is not vacuous, an absent stamp keeps the pre-stamp kill, Unproven refuses, an unparseable waker record refuses AND leaves the record in place (asserted together, since retire-anyway passes a kill-count assertion alone), and the refusal is observable rather than silent; int -- hertz's probe inverted: a live stranger parked beside a foreign stamp SURVIVES `kill_shell_at` while `shell_pid_provably_dead` still calls the pair a corpse (the control), with the victim checked through `try_wait` on the held handle rather than a pid-existence probe, which reads alive for an already-killed process while the handle is open.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5519531Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5519696Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5519831Z ### REQ-HAZARD-RESTART-STRANDS-PERSISTENT-SHELLS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5525606Z - Title: A NODE RESTART MUST NOT PERMANENTLY STRAND EVERY `persistent` SHELL, AND THE EXISTING CASCADE TEST CANNOT SEE THAT IT DOES. Distinct from REQ-HAZARD-SHELL-STALE-ONLINE, which governs a force-kill DURING operation: this is a different trigger with a different safe remedy, and conflating them is how the restart class stays invisible. THE COVERAGE GAP IS THE HAZARD'S OWN SUBJECT, and it must be named here so no future reader mistakes the cascade test for coverage of this class: `rest_edges_cascade_shells_with_divergence` (spt-daemon resting.rs) is the cascade's only coverage and it walks the graceful path ONLY -- it SUSPENDS FIRST, and the suspend edge WRITES the offline record, so by the time the wake edge fires the instance is already in exactly the state the to_active arm requires. The restart shape -- record left online over a corpse, no rest edge ever -- is UNREACHABLE FROM THAT TEST BY CONSTRUCTION. The test is not weak; its SETUP SUPPRESSES THE FAILING ARM, so a reader asking whether the cascade is covered gets a true answer to the wrong question. This is the third suppressed-arm instance found in one week, and the pattern is the same each time: a fixture that establishes the precondition the code under test is supposed to establish. THE OWNER-FACING SURFACES HIDE THE FAULT, which is why it survived unreported for days: every display path (`shell list`, its --json twin, the shell-context render) routes through the ONE discovery seam, which DERIVES status and so correctly reports the binary as offline, while the only consumer whose decision matters -- the wake cascade -- reads the RECORDED field that no owner-facing surface shows. Absence of a visible symptom is therefore not evidence of absence of this fault, and a clean-looking context render must never be taken as proof the class did not occur; the correct falsifier is the on-disk record. Gate: impl -- the restart shape reaches a restoration path at all (leg b) and the record stops lying (leg a); unit -- the RESTART shape specifically, constructed WITHOUT a suspend edge: an instance whose record says online over a corpse that predates boot, with an online owner, is restored -- the row `rest_edges_cascade_shells_with_divergence` cannot express, asserted on a fixture that never calls the suspend path, since a fixture that suspends first re-creates the suppressed arm and proves nothing about this class.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5531576Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5531720Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5531824Z ### REQ-FIXTURE-BIN-BUILD-EDGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5545561Z - Title: IR-21 remedy (c), ENFORCED FORM: every test consumer of a fixture `[[bin]]` is CLASSIFIED by whether that bin's build is guaranteed, by a check anyone gating can run, rather than by whoever remembers the rule. THE MECHANISM, measured 2026-08-03 and NOT the one the class was originally filed on: cargo builds EVERY bin target of a package whenever it builds ANY integration test of that package, so a SAME-PACKAGE INTEGRATION consumer is already guaranteed and `env!("CARGO_BIN_EXE_*")` adds NO edge there -- the first remedy claim to the contrary was measured FALSE and the register entry was corrected. The real exposure is CROSS-PACKAGE consumers and SAME-PACKAGE UNIT tests, which get no `CARGO_BIN_EXE_*` at all; that unit member (`crates/spt/src/cli.rs`, resolving `format!("translate_proof_fixture{EXE_SUFFIX}")` relative to `current_exe()`) is exactly why `.github/workflows/ci.yml:105-106` hand-prebuilds that fixture. THE CHECK READS THE DEPENDENCY SITUATION, NOT THE EXPRESSION -- owning package, consuming package, target kind -- so it classifies an UNCONVERTED tree correctly and stays true after any consumer is rewritten; that property is what makes it adoptable independently of the sibling_bin->CARGO_BIN_EXE_ conversion lane. FOUR SYNTAXES NAME A FIXTURE BIN and all four are detected: `sibling_bin("n")`, `CARGO_BIN_EXE_n`, the shared resolver `fixture_bin("n", "cargo build ...")` (crates/spt-term/tests/support/fixture_bin.rs), and the `current_exe()`-relative `format!("n{...}")`. A TWO-SYNTAX DETECTOR IS THE FAILURE MODE THIS REQUIREMENT EXISTS OVER: the first prototype knew two, missed seven sites including that unit member, and therefore returned a GREEN over the single gap the class was filed for -- a zero from a tool that could not see the known-real case. Population at 6d291e0: 185 consumer sites, 146 guaranteed, 39 needing an explicit build, 11 with no prebuild anywhere. THE 11 ARE NOT CI DEFECTS: a per-job mapping showed every narrow cargo invocation in CI is covered by its own job (prebuild or an earlier workspace-shaped build), so the exposure is narrow invocations OUTSIDE CI -- gate rigs and local `-p`/`--test`/`--bins` against a cold pool -- which is why the check ships as a runnable command and is deliberately NOT wired into `xtask check`: it exits 1 on today's tree and wiring it would red the docs gate over a hazard that is not a CI defect -- a gate that reds on a population of known non-defects gets ignored or gets its teeth pulled, and either way the next REAL member arrives into a check nobody reads (doyle ruling, 2026-08-03). THE WIRING CONDITION IS THEREFORE A COMMITTED BURN-DOWN BASELINE, NOT FIXING ALL 39 FIRST, and it ships here so the choice to wire is a one-line decision later rather than a second design problem: `--baseline` reds ONLY on a site absent from `crates/xtask/binedge-baseline.tsv`, exits 0 against today's recorded 11, and REPORTS recorded entries that are gone so the list shrinks instead of ossifying into a permitted-forever set nobody prunes. Baseline keys are `(file, bin)` and deliberately NOT line numbers, which churn on every edit above them and would make the file merge noise; the trade is named -- a SECOND red site for the same bin in an already-listed file is absorbed. TWO CONTROLS SHIP WITH IT RATHER THAN LIVING IN A RUNBOOK. `--no-prebuilds` empties the CI allowlist and must take the reds 11 -> 39 while the 146 cargo-guaranteed sites stay green; a green without that arm carries no information. The false-positive arm asserts the same-package fixture sites are classified guaranteed -- and REFUSES (exit 2) when it recognizes NONE of them, because an arm whose fixtures were renamed away reports `0 wrongly flagged`, which reads exactly like a pass. That arm also filters on target kind, not name alone: it was briefly wrong when a same-package UNIT consumer entered the population and CORRECTLY landed in the flagged set, so a control is a claim about a population and ages with one. Gate: impl -- `crates/xtask/src/binedge.rs` and its `binedge-check` subcommand: the four-syntax scanner over comment-blanked whole text (line comments only; block comments are a NAMED unfixed limit), the guarantee predicate, the nearest-manifest owner resolution, the prebuild-allowlist reader over every tracked file under `.github/` (a prebuild inside a PowerShell CI script guarantees a bin exactly as well as one in a `run:` block), the repo root taken from git IN THE INVOKED TREE rather than from the compile-time `CARGO_MANIFEST_DIR` (a prebuilt xtask would otherwise measure the tree it was BUILT in, and a verdict about the wrong tree is worse than none), the burn-down baseline with its write/compare/prune arms, and the two control arms; unit -- the guarantee predicate on all three of its wrong directions, the baseline delta reddening only on an unrecorded site while reporting a burned-down one (both asserted together, since a delta of nothing passes either alone), the path-kind reader, nearest-manifest ownership including the not-a-whole-component near miss, all four syntaxes with the line numbers the register already cites as evidence, comment blanking that does not shift the lines below it, the near misses that would each be a phantom site, prebuild detection refusing `--bins` (reading it as `--bin s` would fabricate a guarantee for a bin named `s`), and the false-positive arm's blind case with its refusal condition. PORT FIDELITY IS PART OF THE EVIDENCE: this replaces a python prototype whose numbers the register cites, and it was verified against that prototype site-by-site -- 185 tuples identical, not four summary integers, which can agree by coincidence -- with both run on ONE tree after proving the two candidate trees carried an identical `.rs` population. Kin REQ-XTASK-SPT-BIN-TARGET-DIR (the other xtask tooling defect about looking in the wrong place).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5559442Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5559580Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5559690Z ### REQ-FIXTURE-BIN-PERJOB-DRIFT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5572035Z - Title: The per-job companion to REQ-FIXTURE-BIN-BUILD-EDGE, and it is a DRIFT GUARD, NOT A FINDER. `xtask perjob-map` walks every CI job step by step and asks, for each narrow cargo invocation, whether the cross-package fixture bins its tests consume were built EARLIER IN THAT JOB -- by an explicit `cargo build -p X --bin B` or by an earlier workspace-shaped build. On this tree the answer is 7 narrow invocations, 0 unguaranteed, which is what establishes that the 11 repo-wide reds are NOT CI defects. THAT ZERO IS A FACT ABOUT TODAY'S WORKFLOWS AND NOTHING MORE, and the requirement says so because the tool's value is entirely in the FUTURE case: the day somebody adds a narrow invocation to a job that does not build what it consumes. A requirement that framed this as proof the class is closed would license deleting it the moment the register entry is written. THE ONE MODELLING TRAP, already paid for once: a workspace-shaped run emits the plain binaries only if it actually builds integration-test targets -- `--workspace` filtered to `-E 'kind(lib) + kind(bin)'` compiles lib/bin harnesses and emits NO plain fixture exe on a clean pool, which is exactly what `ci.yml:102-106` documents and hand-prebuilds around. The first prototype credited it as a builder and returned a GREEN over the one known-real gap; the kind-filter test is therefore a required unit row, not an optional one. THE SCRIPT-BLIND HOLE IS PRINTED IN THE COMMAND'S OWN OUTPUT RATHER THAN FOOTNOTED IN A DOC. The model reads `run:` blocks in workflow YAML; narrow cargo invocations ALSO live inside `.github/ci/*.ps1` and `*.sh`, which those blocks merely invoke, and no `run:` parser can see inside them. Rather than leave that as a limitation somebody has to remember, the scripts are scanned with the SAME detector and every narrow invocation they contain is listed as UNMODELLED with the cross-package bins it consumes: today 2 instances (`g6-curve.ps1`, `g6-postbounce.ps1`, both `-p spt-daemon --test inject_control_wedge`), both consuming NONE, so the hole is real and its instance count is measured at zero instead of asserted. An UNMODELLED invocation that DOES consume a cross-package bin counts as a gap and reds the command, because a verdict nobody can compute must not read green. THAT SCAN NEEDED ITS OWN CORRECTION, AND THE DIRECTION MATTERS: scanning the scripts raw read `reap-census.ps1`'s comment-based-help block -- which DESCRIBES a `cargo test -p spt --test ...` failure in prose -- as a real invocation consuming three cross-package bins, i.e. a fabricated gap inside the section whose entire job is honesty about what cannot be seen. PowerShell `<# #>` blocks and whole-line `#` comments are stripped; a TRAILING `#` deliberately is not, because in sh that would eat `${var#foo}` and losing a real invocation is the worse direction here. THE YAML IS PARSED BY A DELIBERATELY SMALL SUBSET READER, AND ITS FAILURE MODE IS ACCOUNTED RATHER THAN TRUSTED: xtask carries no parser dependency, and a silent mis-parse would DROP steps, after which every job those steps belonged to would read guaranteed -- a green manufactured by not looking. So the reader counts the `run:` command keys present in the file and refuses (exit 2) unless it attributed every one of them to a job. A `run:` that opens a mapping rather than a command (`defaults.run.shell`) is not a command key on either side of that count. LIMITS THAT REMAIN OPEN AND ARE NAMED IN THE COMMAND'S OWN DOC: `uses:` steps are not followed, and guarantee is tracked per job in step order without modelling artifact reuse across jobs on a persistent self-hosted workdir -- and our golden boxes ARE persistent, so a WORKSPACE verdict is sound only within its job and a clean runner could still expose what reuse masks. Gate: impl -- `crates/xtask/src/perjob.rs` and its `perjob-map` subcommand: the consumed-bin index over integration-test targets and over the unit population (unit tests get no `CARGO_BIN_EXE_*` at all, which is why `-E 'kind(lib)+kind(bin)'` is a CONSUMER step), the step walker with its prebuild and workspace-build guarantees, the accounted YAML subset reader, the script scan with its comment stripping, and the reuse of REQ-FIXTURE-BIN-BUILD-EDGE's detector rather than a second one (mapping through a different detector would produce a per-job verdict over a different population); unit -- the parser refusing an unattributable `run:`, block and inline bodies both surviving while `uses:` and `#` lines do not, cargo invocations stopping at a shell separator and `nextest run` not being read as the shorter `test` verb, the kind-filtered workspace run classified as consumer rather than builder, flag values requiring the whole flag (`--bins` is not `--bin s`), script prose not being read as an invocation, and a job guaranteeing by prebuild, by workspace build, and failing when neither ran. THE GUARD WAS OBSERVED FIRING ON A REAL FALSE STATE, not only in tests: while this lane was in progress the checker's own test fixture named `CARGO_BIN_EXE_git_fixture` unescaped in a tracked `src/` file, which entered the unit-consumer population and made this map report a gap in `ci.yml`'s unit lane and exit 1. Kin REQ-FIXTURE-BIN-BUILD-EDGE (the repo-wide half, whose detector and helpers this reuses).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5584453Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5584601Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5584705Z ### REQ-ER-OFFLINE-BRINGUP-REACHABLE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5593379Z - Title: A CLEANLY-OFFLINE ENGINE ROOM IS STILL BRINGABLE THROUGH ITS OWN CEREMONY: for the engine-room endpoint class with a bring-up code in hand, the rc offline fast-fail must not preempt the bring-up dispatch, because cleanly-offline is precisely the state whose ratified entry path IS a bring-up. Field-reported (releases#142, operator): after a harness exit the operator's third `spt rc engine-room` answered 'offline — nothing to attach to' for the same verb that had brought the room up on the first attempt, leaving the seat unrevivable through the only door it has. THE EXIT PATH IS CORRECT AND IS NOT WHAT CHANGES — a harness exit leaves the endpoint cleanly offline exactly as the ratified lifecycle entry requires (`mark_offline` → `terminal_normalize`); what is wrong is the reader's precedence, and the fix is a NARROWING of one gate rather than a change to any writer. REQ-HAZARD-RC-ATTACH-FAILFAST SURVIVES VERBATIM FOR THE GENERAL POPULATION and that survival is part of this requirement rather than a side note: the guard stops a real historical infinite-blank hang for every endpoint whose broker dance would end on a dead resolve, and the engine room is the one class whose dance does NOT end there — it would bring the seat up — so the guard's population was simply never narrowed to exclude the endpoint that has a revival path. Deleting the guard, or widening the exemption past (engine-room class AND a code presented), rebuilds that hang. THE ROW VALUE IS THE DISCRIMINATOR EVERY TEST MUST CARRY EXPLICITLY (hertz's one-field falsifier, ruled binding): a fixture whose `status` row happens to be ABSENT passes against this defect and proves nothing, so both arms — row PRESENT and offline, and the same fixture with the row cleared and nothing else changed — must be asserted, and they must reach the same outcome. RIDER, SAME LANE: every refusal arm reachable by the engine-room class names the ceremony surface (`spt rc <id>`, which prompts for a member-or-admin code) as its remediation, never `spt endpoint run` — that verb is not the engine room's entry surface and the reserved-id refusal already turns it away, so the printed line sends the operator (or a reasoning agent, which will invent a route from a bare no) at the wrong door. The zombie arm carries the same class-correctness bug and is swept with it. Gate: doc — the CONTEXT.md engine-room lifecycle sentence (a harness exit leaves the endpoint cleanly offline and re-bringable through the same TOTP gate), ratified 2026-08-04 and tagged rather than re-authored; impl — the narrowed gate and the two class-correct refusal remediations; unit — the gate table carrying the row value EXPLICITLY in both arms (engine room + code reaches the bring-up dispatch with the offline row present, and again with it cleared), the general population still fast-failing on an offline row (a non-engine-room endpoint, and the engine room WITHOUT a code — the code-less reconnect re-drive must not ratchet the attempt ledger), and each swept refusal naming the ceremony surface rather than `endpoint run`.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5600824Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5600971Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5601087Z ### REQ-ER-GRANT-ANNOUNCE-AFTER-ATTACH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5607389Z - Title: A GRANT LINE DESCRIBING A CONTROLLER THAT NEVER ATTACHED MUST BE IMPOSSIBLE (ratified 2026-08-04 bag grill, releases#142): the engine room's bring-up announces empowerment — and spools the briefing that states it — only AFTER the controller's attach is established, never at the moment the session merely exists. Field-reported: the operator read 'the engine room is up; taking its controls. <grant line>' and then, seconds later, 'no live session for engine-room' — nothing lied about the session, the sentence claimed a CONTROLLER. The seam is precise and is what this requirement is about: the bring-up waits for the broker's own session table (the fact the attach needs), which is necessary and NOT SUFFICIENT — the controller is seated later, by a subscribe carrying the single-use admit ticket, arriving on the dispatcher's connection. releases#102's below-the-grant move was the right direction with the wrong stop: it moved the briefing below the GRANT, not below the SEAT. THE BRIEFING IS NAMED EXPLICITLY AND NOT ONLY THE PRINTED LINE, because they fail together and a fix that defers only the visible sentence leaves the seat holding a briefing that describes an empowerment for a controller that never arrived — the worse half, since the session reads it as fact about itself. The post-seat settlement already exists for the OTHER entry (an attach or take against an already-hosted engine room settles after the seat ladder resolves, grants only for a taken seat, and returns its sentence as the seat note the human reads before any session output); this requirement makes the bring-up complete through THAT path rather than through a second one. Gate: doc — the CONTEXT.md engine-room lifecycle sentence, ratified 2026-08-04; impl — the bring-up's announce and briefing composed on the post-seat side of the attach seam; unit — bring-up admitted but the admit ticket never redeemed (subscribe never arrives, or its TTL expires) leaves NO empowerment written, NO briefing spooled and NO grant sentence anywhere, while a confirmed seat produces all three exactly once, and a MEMBER-credential bring-up seats its controller while granting nothing (the discrimination that must survive wherever the settlement moves).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5612930Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5613071Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5613170Z ### REQ-ER-SEQUESTERED-CWD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5625793Z - Title: THE ENGINE ROOM LAUNCHES FROM A SEQUESTERED DIRECTORY OF ITS OWN, NEVER FROM WHEREVER A CALLER HAPPENED TO STAND (releases#178, operator-requested; doyle's four rulings 2026-08-19). The engine room governs the NODE and is not a participant in any user project, so inheriting a caller's cwd gave it an identity it should never have had: the recorded `info.cwd` is not an inert stamp but the anchor the context store routes its project tier from, the registry gossips project ids from, and the picker offers resume rows from — so an ordinary bring-up from a developer's checkout silently enrolled the node's governance surface as a member of that project. Its cwd is `$SPT_HOME/engineroom/cwd`, provisioned empty. IT IS DELIBERATELY NOT INSIDE THE OWLERY: a foreign directory sitting in the perch store risks reading as a ghost perch to any enumerator, which is a worse defect than the one being fixed. THE CWD IS FORCED, AND FORCED AT THE RESOLUTION SEAM RATHER THAN ONLY AT THE CALL: passing the directory at the spawn site is a declare-site fix, and a declare-site fix is not an enforce-site fix (the manifest `role.cwd` arm wins over a caller default by design), so for the reserved engine-room id the sequestered directory beats BOTH the caller's `spawn_cwd` and a manifest-declared `role.cwd`. A manifest that declares one is IGNORED LOUDLY — one log line naming the rule — and NEVER refused a bring-up: the operator must not be locked out of the room over a cwd, and an unstated deliberate override is indistinguishable from a bug to the next reader. THE ROUTING PREDICATE IS WIDENED FROM ITS SPELLING TO ITS MEANING: `is_owlery_internal` says owlery but asks 'is this a real user project?', and a cwd under `$SPT_HOME` but outside the owlery minting a synced `p-<dir>` project was junk-in-waiting independent of this change. Every consumer was walked before the widening (the condition on it): the context-store project routing, the psyche-notification routing, the registry's GOSSIPED project list, the shared `projderive` history kernel behind both the picker and the daemon's materialized index, and the picker's resume-row drop — ALL FIVE ask the same question and every one of them would be wrong to route, advertise or offer a sequestered engine-room cwd, so the predicate is widened in place rather than split in two, and the two duplicate copies of the normalize-and-prefix test are collapsed onto the one kernel in the same touch so they cannot drift apart afterwards. THE WIDENING IS MONOTONE — the owlery is a subdirectory of `$SPT_HOME`, so the new base is a strict superset and nothing previously excluded becomes included — which is what keeps ADR-0037 section 4's rendered-parity promise true for every real user project. DECLARED CHANGE, NOT A SIDE EFFECT: a project kept UNDER `$SPT_HOME` stops being routed into the synced backup/migrate set, stops being gossiped, and stops being offered as a resume row. READ-ONLY IS POLICY, HONESTLY LABELLED AS SUCH: the directory is provisioned empty and never written, and that is asserted by test — a same-user Windows ACL cannot enforce write-denial against a child running as the same user, and pretending otherwise would ship a guarantee the platform does not make; hard enforcement by integrity level or a separate token is its own future item and is deliberately NOT folded in. DECLARED RESIDUAL: the engine room is drop-less, so no relative drop-dir or commune-dir resolution work rides here; if a future feature gives the engine room file drops, THAT feature owns pinning them absolute, because a relative drop resolving against a never-written directory is the same failure class REQ-ECHO-DROP-DIR-RESOLVE already closed once. Gate: impl — the single-source path for the sequestered directory, its provisioning, the spawn site passing it, the reserved-id guard at the resolution seam with its loud ignore line, and the widened predicate repointed at every one of the five call sites; unit — the routing decision table written out in BOTH directions (an owlery-internal cwd routes no project, a `$SPT_HOME`-internal cwd OUTSIDE the owlery routes no project — the new row — and a genuine external directory still mints its `p-<dir>`), plus the resolution table proving the guard is engine-room-shaped rather than global (a declared `role.cwd` LOSES for the reserved id and still WINS for every other endpoint); int — a real bring-up launching in the sequestered directory, with NOTHING written into it across a full bring-up and briefing cycle, which is one assertion serving as both the drop-less witness and the read-only-policy witness.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5636782Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5636941Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5637030Z ### REQ-SHELL-RELINK-FORCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5650298Z - Title: `spt shell relink --force` STOPS A RUNNING SHELL BINARY, PROVES IT STOPPED, AND ONLY THEN RELINKS -- and the already-online refusal stays the DEFAULT, because an unflagged relink that silently killed a running binary would make the recovery verb destructive. Today `relink` is the online switch for an OFFLINE instance and refuses `AlreadyOnline` when the DERIVED liveness probe (REQ-HAZARD-SHELL-STALE-ONLINE: local, record-independent) says the binary is really up; the field ask (releases#6) is the instance that IS up and needs a stop-then-restart without churning its canonical id through teardown+spawn. The stop half is the EXISTING link-break close (`shellhost::close_shell`, REQ-SHELL-2): pre_close instruction, close_timeout_ms termination window, the AUTHENTICATED force-kill (REQ-SHELL-KILL-AUTHENTICATED), link token retired to RETIRED_TOKEN_FILE so pending spool rows survive the rotation, drive slot + tunnel cleared. No second stop path is minted -- a force relink that closed the link any other way would be a second, divergent definition of a link-break. TWO REFUSALS ARE PART OF THE DELIVERABLE, NOT HARDENING AROUND IT. (1) EPHEMERAL REFUSES: `close_shell`'s divergence is `ephemeral => TornDown` -- perch and spool history ERASED, mint slot freed -- so a stop-then-restart built on it converts an ephemeral instance into a teardown and then relinks a record that no longer exists. Force therefore refuses on `ephemeral` with its own diagnostic BEFORE the close runs; an erase is irreversible and a refusal is recoverable, the same polarity KNOWN-HAZARDS applies to every perch-directory decision. THE REFUSAL NAMES THE ESCAPE (doyle, 2026-08-04): it states that an ephemeral instance has no stop-and-restart shape and points at the teardown + spawn pair that does what was meant, so the refusal TEACHES rather than dead-ends -- a consumer who is told only 'no' discovers the reason by losing a spool somewhere else. (2) A SURVIVOR REFUSES THE RELAUNCH: `close_shell` returns `Ok(Offline)` even when it printed `SHELL_CLOSE_SURVIVOR` -- the kill can be REFUSED by the pid+birth authentication (a recycled pid), or the binary can outlive the window -- and launching there yields TWO binaries for one instance, one of them unreachable through the retired token and invisible to the record. Force re-probes the recorded pid after the close and refuses the launch while it is still alive, naming the pid, rather than doubling the instance. THE RE-PROBE IS THE KILL PATH'S OWN AUTHENTICATION, NEVER A BARE PID-ALIVE CHECK (doyle, 2026-08-04): pid reuse is MEASURED on this fleet (a same-boot recycle inside 30s, both processes user-owned), so a bare probe manufactures a false survivor and the refusal then names an innocent process -- it runs `relay_liveness` over the pid+birth PAIR, the identical predicate `kill_shell_at` authenticates with, and the diagnostic states WHICH verdict it got (pair matched = our binary outlived the close; a live pid with no stamp = survivor and recycled pid indistinguishable; unprovable identity) so a reader can tell a true survivor from a stale record. The pair is captured BEFORE the close, because the close retires the record it lives in -- `close_shell` removes the pid file and an authentication-refused kill retires it too, so a probe reading the perch afterwards finds nothing and calls every survivor a success. A pid whose stamp DISAGREES reads Gone and RELAUNCHES: our binary is genuinely dead and the number was recycled, which is the case a bare probe would have called a survivor. Neither refusal is inferable from `CloseOutcome`, which is why the force arm carries them rather than the close. CROSS-NODE WITHOUT A WIRE BUMP: `shell_link_remote` already carries `args: &[String]` and the serve's SHELL_LINK_RELINK arm ignores args today, so an OLD peer handed a force flag runs a PLAIN relink and replies `ok: already online` -- the caller would read its force as honored. The discriminator needs no new op and no version gate: when force was requested, `already online` is a FAILURE, not the goal state. The serve's idempotent-ok reading of AlreadyOnline is correct for an unflagged relink and false under the flag, so the flag changes how the reply is read on both sides. Gate: doc -- the shells overview states the flag, both refusals, and the cross-node skew reading, since the ephemeral refusal is the one a consumer will otherwise discover by losing a spool; impl -- the flag on the CLI verb, the force parameter threaded through relink_shell_from/relink_shell, the pre-close ephemeral refusal, the post-close survivor probe, the remote arm passing the flag and re-reading `already online` as failure; unit -- an ephemeral instance is REFUSED and its perch SURVIVES the call (asserted together: a refusal that still erased would pass a return-value assertion alone), a surviving pid refuses the launch and NO second binary is spawned, an unflagged relink on a genuinely-online instance still refuses AlreadyOnline (the default is not vacuously widened), and a forced relink on an already-OFFLINE instance is the plain relink (the flag is not a second code path for the ordinary case); int -- the e2e stops a real running mock shell binary and relinks it under the SAME canonical id, with the pre-close/kill/relaunch ordering observable rather than assumed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5662999Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5663163Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5663267Z ### REQ-SEC-REPLY-EXEMPTION-SEND-LEG
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5672868Z - Title: THE REPLY EXEMPTION HAS A SENDING LEG, AND IT IS WIRED AT THE TRANSMISSION CHOKEPOINT RATHER THAN AT ANY CALLER. REQ-SEC-1's stateful firewall is a JOIN of two halves: the receiving leg classifies an inbound against the recent-outbound log (`classify_inbound`), and something must WRITE that log. It shipped with only the reading half live -- `note_outbound` existed, was `pub`, was re-exported, and had a passing unit test, while the whole `crates/` tree held ZERO production call sites (releases#166, confirmed at main@8248bc3: two callers, both tests). `RecentOutbound` was therefore never written in the field, every inbound classified `Unsolicited`, and a genuine reply to a closed-posture endpoint bounced -- the requirement was STRUCTURALLY INERT while reading fully covered. THE WRITE SITE IS `wan::request_wan`, THE ONE SEAM EVERY WAN MESSAGE CROSSES, NOT `wan_send_with` OR ANY OTHER CALLER: a per-caller write is a rule satisfied by remembering to, and the same forgetting is what made the first implementation inert; the chokepoint also puts both halves of the join in one file, where a future reader cannot change one without seeing the other. THREE THINGS THE ROW MUST GET RIGHT, EACH THE PROVABLE FIELD RATHER THAN THE CONVENIENT ONE. (1) THE ENDPOINT IS THE DAEMON-STAMPED `sender_proven`, NEVER `msg.from`: `from` is reply-routing metadata an explicit `--from` owns (KNOWN-HAZARDS 7.5), so a row keyed on it would let any local caller open a 15-minute inbound hole for an endpoint it merely NAMED -- the same reasoning that already keeps `from` out of the access chain's tier 1 and out of the contact ledger. An UNSTAMPED send records NOTHING: `session_proven_sender` stamps only after resolving the id to a real local perch, so the stamp is exactly the proof that the sending id can RECEIVE, and an id that cannot receive cannot be replied to. (2) THE NODE IS THE CONNECTION'S HANDSHAKE-PROVEN `remote_id_hex`, NEVER THE NODE RESOLUTION CLAIMED: the receiving leg keys the gate on the proven origin (REQ-HAZARD-WAN-ORIGIN-AUTH), and a correlation whose two halves keyed on different notions of `node` would silently fail to meet under exactly the stale-gossip conditions the registry is stale-tolerant by contract about. (3) ONLY A CUSTODY-CONFIRMED ROUND-TRIP RECORDS -- delivered, spooled, or duplicate, the same set that earns `SENT(WAN)`. A refusal must not write (their gate closed; a row would open OURS to a node that just refused us), a no-perch must not write (nobody is there to answer), and an UNCONFIRMED hop must not write even though an N-1 receiver may genuinely reply: an exemption is a WIDENED ADMIT VERDICT, so an unconfirmed hop failing closed costs one reply its exemption while the opposite direction grants a hole on a guess. Gate: impl -- the wire-in at `request_wan`, taking the dialed `NetDialed` rather than a bare conn id so the proven node is in hand, plus the split-out decision the units drive; unit -- the decision table: each custody outcome records and each non-custody outcome records nothing (all six named, so a widened set cannot pass), an unstamped send records nothing beside a stamped one that does (with `from` populated in the unstamped arm, so a fallback to it fails the assertion rather than passing it), and THE ROW IS THE KEY THE RECEIVING LEG READS -- the real write followed by the real `classify_inbound`, correlating on the recorded (endpoint, node) pair while a DIFFERENT local endpoint and a DIFFERENT origin node each stay `Unsolicited`; that meeting is the property whose absence made the requirement inert, and asserting the write alone would not have caught it. The proven-node half is COMPILE-ENFORCED rather than asserted: the seam takes the dialed `NetDialed`, so the resolved-node string the caller also holds is not in reach at the write site. int -- THE JOIN, not the parts: a REAL cross-node send from A to B, then B's reply reaching A's CLOSED-posture endpoint and passing with `PassReason::ReplyExemption`, with the same reply REFUSED in the un-sent control arm.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5682508Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5682651Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5682757Z ### REQ-ACL-MUTATION-HUSK-REFUSAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5690649Z - Title: ADR-0053'S FAIL-CLOSED HAS A WRITE SIDE, AND IT IS ENFORCED AT THE SAVE SEAM RATHER THAN AT THE MUTATION CALL SITES. `load_checked` split NotFound from corrupt and the gate refused a husk correctly -- but the store is READ-MODIFY-WRITE at every path that edits it, and `AccessStore::load` is `load_checked_from(..).unwrap_or_default()`, so a degrade was swallowed into an EMPTY document. The consequence inverted the guarantee (releases#57): the gate refused unsolicited traffic, and then the first `spt endpoint access` command an operator ran to investigate the refusal saved that empty document over the damaged file -- permanent rule loss, and a posture that flipped from degraded-closed to open-with-one-rule. The boundary held exactly until someone touched the CLI, and the command most likely to be run is the one an operator reaches for BECAUSE the gate is refusing. THE SWALLOWED DEGRADE IS THEREFORE CARRIED ON THE DOCUMENT (`StoreOrigin::Degraded`, `#[serde(skip)]`, never part of the record) AND `save_to` REFUSES IT. This placement is the requirement, not an implementation detail: converting the nine production mutation call sites to `load_checked` closes the population that exists today and leaves the next read-modify-write path free to re-open the class -- the same shape of defect as REQ-SEC-REPLY-EXEMPTION-SEND-LEG's per-caller write, which shipped inert because a rule satisfied by remembering to is satisfied until someone forgets. Every write of this document funnels through `save_to`, so a refusal there binds call sites that do not exist yet, and an audit is not what holds it. The call sites ARE converted as well, for the diagnostic: a refusal at the load names the store before anything is attempted, which reads better than one raised by a save the operator already believes succeeded. FRESH IS NOT DEGRADED: a document constructed in memory -- the minted baseline, a test fixture -- stands in for nothing on disk and stays writable, so mint-on-first-absence (the split that keeps an unconfigured fleet reachable) is untouched. The refusal names the store path per ADR-0053, names the cause, and names the way out, which is real rather than rhetorical: a store the operator MOVES ASIDE is re-minted empty by the next command, so starting from empty stays available as a deliberate, loud choice -- which is precisely what silently rewriting it from empty was not. Gate: impl -- `StoreOrigin` on `AccessStore` set by the loaders (`load_from` marks the swallowed degrade, `load_checked_from` marks a parsed store `Loaded`), the `save_to` refusal in the single voice of `husk_write_refusal`, and the nine production mutation sites loading checked (cli.rs `endpoint access` allow/revoke/open + subnet-mint capture + endpoint purge, api/engineroom.rs `enforce`/node-mode/node-surface-mode, daemon pairhost.rs join-time capture); unit -- a decision table over the three origins whose expectations are WRITTEN OUT rather than derived from the code under test, asserting on-disk bytes and not merely the returned Result: a husk-derived document refuses the write and the damaged file survives BYTE-FOR-BYTE, a loaded document's read-modify-write preserves the rules it did not touch, a fresh document writes, and the refusal names the store path.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5698530Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5698674Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5698788Z ### REQ-ACL-POSITIONAL-ALLOW-HONORS-FLAGS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5708633Z - Title: `access allow`'s POSITIONAL SPELLING REACHES THE SAME MUTATION SEAM ITS FLAG SPELLING DOES -- it is a shorthand for the rule, never a second, ungated way to write one. The v1 arm matched `node: Some(..)` and swallowed every other flag in a `..`, then called `AccessStore::allow` directly, and that cost three things at once, all three RUNTIME-MEASURED before the fix (releases#185; the filing was read-derived and named only the first). (1) `--surfaces MSG` WAS DROPPED, and an empty surface list means EVERY surface -- so the store took a rule strictly WIDER than the operator typed, exit 0, no diagnostic on either stream. The direction matters and was checked rather than assumed: the `is_empty => set_all(Mode::Closed)` at the tail of `allow_surfaces` reads `acl.modes`, the POSTURE table, and has nothing to do with the surfaces argument, so this falls as an over-grant and not as a silent close. (2) `--origin user` WAS DROPPED THE SAME WAY: a rule the operator restricted to one caller class matched both. (3) CALLING `allow` DIRECTLY WALKED AROUND `apply_mutation`, AND WITH IT BOTH THE `--admit-node` ACKNOWLEDGMENT AND THE GRANT-NODES POLICY -- the gravest of the three and the one no reading of the issue predicted. Measured as a three-arm differential under ONE authority (an owner agent, which requires a real perch record and not merely the env var): the flag spelling REFUSED the unacknowledged grant, the same flag spelling with `--admit-node` was accepted, and the positional spelling then wrote the WIDER rule for that same agent at exit 0. A gate a respelling steps around is not a gate, and the respelling was two words shorter than the gated one. THE FIX IS THE SEAM, NOT THE FLAGS: the arm builds its rule through the shared `build_access_rule` -- so the two spellings cannot drift into two parsers -- and applies it through `apply_mutation` with the invocation's real authority, which is what makes the acknowledgment and the policy bind here by construction rather than by a second copy of them. WHAT STAYS v1 IS THE POSTURE: this spelling RESTRICTS the endpoint (closes its blanket mode when it sets none yet), the seam is deliberately posture-blind, so the close is re-applied explicitly through one shared body (`restrict_if_unset`) that `allow_surfaces` also calls. `iff unset` is load-bearing -- an endpoint that already names a posture has been configured, and admitting one more node must never overwrite that. Whether the FLAG spelling should close a posture too is releases#196 and is deliberately NOT decided here; preserving this arm's close is a non-regression, not a new opinion. THE CONSEQUENCE IS ACCEPTED AND DECLARED (doyle, 2026-08-18): an owner agent running the bare positional spelling is now REFUSED without `--admit-node`, which is the gate working as designed and what the flag spelling already demanded; a same-node user is untouched, since the acknowledgment binds the owner-agent authority alone. Gate: impl -- the arm destructuring its flags instead of discarding them, the shared builder, the `apply_mutation` route carrying `admit_node` and the real authority, and `restrict_if_unset` as the single body of the posture-close; unit -- a decision table whose expectations are WRITTEN OUT AS LITERALS rather than derived from the code under test: the typed surface list lands on the persisted rule and an untyped one still means every surface, an origin qualifier survives, the unacknowledged owner-agent grant is REFUSED THROUGH THIS ARM while the same-node user's is not (the bypass, pinned as a refusal rather than as an audit), the refusal leaves the store BYTE-UNCHANGED, and the posture-close still happens for the positional arm while an endpoint that already names a posture keeps it; int -- THE JOIN, which is where this defect actually lived: the real binary, a real store on disk, the operator's typed list read back off the persisted RULE, with an untyped arm beside it (the empty list is a legitimate spelling and must survive the fix) and the unacknowledged owner-agent refusal paired with the same grant acknowledged, so the flag is the only difference between the two.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5718544Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5718685Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5718799Z ### REQ-ACL-PRECISE-ALLOW-WRITE-CONTRACT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5731193Z - Title: THE PRECISE `access allow` IS A RULE VERB; THE POSITIONAL ONE IS A RULE+POSTURE VERB -- and the precise arm therefore says so at write time rather than leaving the operator to discover it. releases#196 asked whether the flag spelling should also close an endpoint's posture on its first rule (the v1 semantic `restrict_if_unset` carries, which the positional arm re-applies explicitly). RULED HORN B (doyle 2026-08-21, on a census read at b88fab2a): default-open-until-explicit-close IS the shipped T6 semantic, the mutation seam stays POSTURE-BLIND, and what was missing was never the close -- it was any signal that a rule written onto an unrestricted endpoint changes no verdict. TWO STRUCTURAL FACTS DECIDE THIS RATHER THAN A PREFERENCE. (1) A CLOSE CANNOT LIVE AT THE SEAM: `tuple_mutation` is shared by the endpoint precise arms AND the engine room's node-wide seat including its per-endpoint `--for` form, and below it `apply_mutation` is also the seam for knock-answer, redeem and the knock store -- so a close in `apply_mutation` would fire on every approved knock and every redeem, and a close in `tuple_mutation` would have the engine room closing another endpoint's posture as a side effect of writing one rule for it, while being meaningless for `MutationScope::Node` (`restrict_if_unset` is per-endpoint by construction). A posture close is a CLI-ARM opinion either way; it is not, and cannot be, a property of the seam. (2) THE CODEBASE ALREADY RULES THE INERTNESS IN BINDING GATE CODE: `may_grant_node_subject` derives the unset grant-nodes policy from `effective_posture` with the premise stated in its own comment -- open implies permitted, because an allow entry on an open surface punches no hole. Closing the posture inside the very command that policy gates would falsify that premise one statement later, so horn A would have owed a re-ruling of the grant-nodes policy and was never the one-line change it reads as. WHAT THE NOTICE IS. On an operator-driven precise allow, and BEFORE the write, the chain is ASKED -- `decide()` per covered surface, per admitted origin class, at every concrete origin there is to ask about -- and if it already allowed that subject everywhere, the acceptance is followed by a sentence saying the rule stands and changes no verdict today, naming the lever that would make it bite. NEVER A REFUSAL: pre-positioning a rule before a later close is legitimate and common, and a verb that refused it would be wrong more often than the silence it replaced. ASKED, NEVER RE-DERIVED: the condition is the chain's own verdict and not a scan of rule rows, the doctrine `node_still_sees_endpoint` and `fork_without_discover` already carry -- a row scan would miss a per-surface close, count a row naming a different subject, and become a second definition of a verdict the store owns. AN ABSENCE IS NEVER A VERDICT: a subnet subject with no roster members, and a sender-endpoint subject that resolves to no machine this node knows, have NO origin to put the question to, so they get a NAMED ABSENCE saying the question was not answered -- never the word inert, which would render a missing measurement as a finding. A subnet subject with members is inert only if EVERY member reads inert. THE FIRING POPULATION IS DECLARED AND PINNED, not left to placement: operator-driven precise ALLOW upserts on an endpoint scope, and nothing else -- the engine room's `--for` seat is excluded by the seat flag the caller already passes, removals and denies are excluded by op and decision, and knock-answer and redeem never reach this body at all. NO NOTICE ON DENY THIS LANE (doyle, ruled): deny is the fail-closed direction, an inert deny pre-positions defense at zero cost, and the narrowed-deny shape is un-censused. POSTURE-NEUTRALITY IS PART OF THE CONTRACT AND IS PINNED AS SUCH: the precise arm leaves `modes` exactly as it found them, which was true at b88fab2a and untested in either direction -- a ruling no test can falsify is a ruling that survives its own reversal. Gate: impl -- the population predicate, the chain-asked probe over resolved origins and its named-absence arm, the notice line naming the lever, and the call site before the write inside the precise arm; unit -- a decision table whose expectations are WRITTEN OUT AS LITERALS rather than derived from the predicate under test: an allow onto an unrestricted endpoint reads inert, the SAME allow shadowing a node-scope deny reads NOT inert (the hole-punch negative control -- the case the notice must stay silent on), a rule whose surfaces are only partly refused reads not inert, an empty subnet reads NAMED ABSENCE and never inert, a subnet whose members split reads not inert, and the population predicate admits the operator's precise allow while refusing the daemon seat, the removal and the deny; int -- the real binary against a real store: a precise allow leaves the endpoint's posture EMPTY (the literal partition, not a value read back from the code under test) and prints the notice, the positional spelling beside it still closes the posture and prints NO notice, and the NEGATIVE POPULATION PIN -- a rule written through the knock-approval path prints no notice at all.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5743397Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5743536Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5743659Z ### REQ-HAZARD-EMPOWER-SESSION-RESURRECT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5753890Z - Title: AUTHORITY MUST NOT SURVIVE AT REST ACROSS A SESSION-ID ROTATION. An engine-room empowerment is session-state (ADR-0052: empowerment is session-state, not stored grants; nothing to revoke at rest), keyed on the session id the engine room's perch is bound to and filed under that session's scratch directory. 'spt api boundary' rotates exactly that bound session id, and it is NEITHER of the two revocation edges ADR-0052 names (controller detach, local take), so before this requirement a rotation left the empowerment record filed under the OLD session id, unreachable by the seat and unswept by anything. MEASURED, not inferred (todlando red probe, 2026-08-03): rotate to a session, empower, rotate away, DROP the authority at the new session, then rotate BACK onto the old id — the seat holds the subnet again with no admin code proved since the drop. THE SCOPE IS AUTHORITY OUTLIVING ITS SESSION, NOT A STRANGER GAINING AUTHORITY: 'api boundary' is auth-gated to the perch's own harness, so the actor re-acquiring is the actor that held the grant, and this must not be re-told as privilege escalation. The empower module's own comment asserted the opposite — that a stale file is 'unreachable by construction' and that 'if this sweep never ran, no caller would gain a single grant' — which is a claim about the resolver's INPUTS and is false while an arbitrary '--to-session-id' is accepted past a guard that only refuses psyche-custody squats. THE FIX IS A MOVE, NEVER A COPY (doyle ruling): a boundary CARRIES the empowerment to the new session id, and when the boundary returns the old session's record is GONE — two records for one grant is the same leak wearing a different hat. IT FAILS CLOSED: if the move cannot be completed the boundary DROPS the empowerment with a loud diagnostic and never leaves the old record standing as a fallback. THIS REQUIREMENT CLOSES THE BOUNDARY EDGE ONLY AND MUST NOT BE READ AS CLOSING THE RESURRECTION CLASS: two further mechanisms rotate a bound session id and leave the prior session's record standing -- the dead-owner re-pin (api/auth.rs) and an establish_perch re-bind -- and their polarity is the OPPOSITE, because a boundary is ONE session lineage continuing while those are a NEW session taking over a perch whose prior owner is gone, so the authority does not follow, it DROPS. They are filed as releases#138 and are not evidence for or against this requirement. Gate additions ruled with the fix: the carry is GATED on the endpoint that can hold an empowerment, because the record is keyed by SESSION ID ALONE and an ungated carry would let an unrelated endpoint's boundary move the seat's live grant out from under it -- so one row proves the gate is not too tight and a SECOND proves it is not too loose; and the fail-closed arm is proved by INJECTING a removal failure and asserting the old record still grants nothing, since an arm no mutation can fail is untested. THE HYGIENE SWEEP IS NOT THE MECHANISM AND MUST NOT BE WIDENED INTO ONE — it is documented hygiene-only, it runs at grant time, and a re-acquire happening long afterwards is past it either way; the boundary's own move is the only thing that closes this. Gate: impl — the carry-as-move at the boundary rotation with its fail-closed drop and diagnostic; unit — the probe above, whose DISCRIMINATING construction is dropping the authority at the new session BEFORE rotating back (without that, a plain rotate-away/rotate-back cannot separate resurrection from the ruled carry, under which the grant legitimately follows the rotation), plus the assertion that the old session's record is absent the moment the rotation returns, so the two versions are distinguishable at the mechanism and not merely at the outcome.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5762940Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5763088Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5763308Z ### REQ-CLI-STACK-HEADROOM
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5769565Z - Title: THE CLI MUST HAVE ROOM TO BUILD ITS OWN ARGUMENT TREE, WITH MEASURED HEADROOM. clap's derive-built `Command` tree is constructed recursively at the top of every invocation and its cost scales with the argument population; `main` ran `cli::run()` on the MAIN thread, whose stack on Windows is the PE-header default (1 MiB, not settable at runtime), while a Rust-spawned thread's is explicit. IR-33 measured the tree within roughly SIX net new arguments of exhausting it: U1's eight hidden bool args made EVERY invocation die with 'thread main has overflowed its stack', exit -1073741571 (0xC00000FD), INCLUDING `--version` — before any of our own code ran. The failure face is why this is a requirement and not a tuning note: it presents as a totally broken binary that names no stack, and through REQ-DOCS-5's generator (which enumerates the tree by PARSING the binary's own root help) it presents instead as a silently gutted docs page that the drift check then compares to itself and blesses. FIX: run the CLI on an explicitly-sized thread, so the argument population stops being a budget the next verb-surface lane has to fit under. THE WRAPPER MUST BE FAITHFUL, WHICH IS THE WHOLE RISK OF THE CHANGE: a panic inside the CLI must still leave the process with the SAME face it had when the panic unwound out of main — the same message through the same hook, and the same nonzero exit code (101) — and an ordinary return must exit with the INNER run's code, not the join's. A spawn failure falls back to running inline and SAYS SO, because a resource blip must not turn into a dead CLI, and a silent fallback would restore the old ceiling invisibly. Gate: impl — the sized-thread wrapper in main.rs with its fidelity mapping and its loud fallback; unit — the wrapper driven with a returning closure and a PANICKING one, asserting the code passes through and the panic maps to 101 (the prod call site passes `cli::run` to the same function, so this is the real wrapper and not a parallel spelling); int — a smoke that the DEBUG-built binary answers `--help` with non-empty stdout at exit 0, which is the only assertion that would have caught IR-33 in its own build profile and also backstops the empty-emit generator above.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5774968Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5775115Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5775216Z ### REQ-USHER-LIFECYCLE-VERBS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5786881Z - Title: THE ENDPOINT LIFECYCLE READS AS VERBS, AND `endpoint run` RETIRES WITHOUT A SHIM. One overloaded verb carried the whole lifecycle: `spt endpoint run` minted an endpoint, started a new session on an existing one, resumed a prior session, opened the interactive picker, and (with `--save`) set a startup default — the invocation's MEANING sat in which of nine flags were present, so the CLI could not be read and the picker's doors could not be named. The ratified surface (releases#5 bag grill, 2026-08-04) is: `endpoint create <new-id> [--subnet S] [--adapter A] [--cwd DIR]` = the ONLY mint, subnet immutable after it; `endpoint start <id> [--adapter A] [--cwd DIR]` = a NEW session on the endpoint's most-recent adapter in its most-recent project folder, NEVER the env cwd, and an UNKNOWN id REFUSES pointing at `create` so a typo cannot mint a phantom endpoint; `endpoint resume <id>` = its LATEST session; `endpoint auto-start <id> [--off]` = the standalone lever that was `run --save`; and top-level `go <id>` = the operator's take-me-to-this-endpoint ladder (online+uncontrolled -> rc; online+controlled -> interactive kick confirm over `rc --take`; suspended -> wake then rc; offline WITH sessions -> resume then rc; offline WITHOUT sessions -> mint the first session then rc; engine-room -> defers to the gated `rc engine-room` path). `go`'s offline discriminant reads the SESSION LEDGER (a non-provisional row) and NOT the record's `session_id`, which persists by design after a clean stop as the CAS identity anchor and is never a liveness claim. RETIREMENT IS A CLEAN BREAK: `endpoint run` is removed through a RAW-ARGV PRE-SCAN ahead of `Cli::command()` so its nine args never enter the derive tree, and it answers with a parse error naming the replacement verb — no hidden variant, no silent alias. TWO CAPABILITY NARROWINGS ARE DELIBERATE AND MUST NOT BE RE-ADDED QUIETLY: specific-session resume (`run --resume <session>`) retires with the verb and has no replacement, `resume` being latest-only; and the picker's two argv prefill quadrants (`--adapter`-only pre-select, `--id`-only create-new prefill) retire with their verb, the id-only case's replacement being `start <unknown-id>`'s refusal. `create` MINTS ONLY — skeleton perch, permanent home, recorded adapter/cwd defaults — and does NOT start a session; the first session is `start` (or `go`, which also attaches), so a fresh bringup is TWO commands where `run --start` was one. That is a shape change to every bringup script rather than a lost capability, and it rides the release notes beside the resume narrowing. It was decided rather than read off the table (todlando, ratified by doyle 2026-08-04) on the ladder's own evidence: a first-class offline-WITHOUT-sessions rung is near-unreachable unless zero-session endpoints are routine, so create cannot be starting one. The picker's own door is BARE `spt` on an interactive terminal and this requirement does not touch it, nor does it add a `pick` verb. Generated launcher shortcuts bake the retired argv, so the generated body becomes `spt go <id>` (the launcher's intent IS `go`'s ladder, and it opens a console so the kick confirm has its TTY), the shortcut SENTINEL is bumped so a stale launcher is detectable rather than merely broken, and the refusal text names BOTH the new verb and shortcut regeneration. REGISTRY SUPERSESSION: this requirement is the authority on the bringup SPELLING, and it supersedes every earlier title in this file that names `endpoint run`. Those were swept where they state a CURRENT contract or a CURRENT gate's invocation; where they narrate a PAST failure or a past field observation they are left verbatim, because a failure record rewritten into a spelling that did not exist when it happened stops being a record. Arg budget: the ratified surface is the MIN spelling at 11 leaf args against the retired 9, a net +2 that is only affordable because the pre-scan keeps the retired args out of the tree — and it rides on REQ-CLI-STACK-HEADROOM having deleted the ceiling rather than budgeted under it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5796731Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5796957Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5797055Z ### REQ-CLI-NODE-VERB-PRIMARY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5807014Z - Title: THE PER-MACHINE SUPERVISOR SURFACE IS SPELLED `spt node`, AND `spt daemon` REMAINS A FULL ALIAS OF IT — ONE PARSE TREE, NOT TWO. The noun operators type for their own machine was `daemon`, which names the PROCESS rather than the thing the process supervises; the surface is a node's state (daemon state, member subnets, local endpoints), so `node` is the primary spelling and `daemon` is a clap `visible_alias` on the same command. THE ALIAS IS FULL AND PER-SUBCOMMAND, NOT ROOT-ONLY: bare (the status view), run (incl. the hidden --detached auto-start-ladder flag), start, stop (incl. --force), status, access + its allow/deny/remove editing arms, refresh, and the hidden brain entry (bare and stamped) all parse identically under either spelling. A root-only equivalence proves the alias resolves and proves NOTHING about a subcommand added later under one spelling, which is why the unit asserts the parsed action as a VALUE per subcommand rather than matching variants. THE CHANGE IS CLI-SURFACE-ONLY: the spt-daemon crate, the wire, and the docs model term `spt-daemon` are untouched, and `daemon access` is mirrored as a NOUN, not duplicated as policy — one parse tree, one roster store. THE DEPRECATION NOTE IS SHARED AND ALIAS-NEUTRAL (doyle fork-D ruling): clap renders help per COMMAND, not per alias, so the note lives in the one `///` block and is worded to be TRUE under both spellings — deprecation when read on `daemon --help`, information when read on `node --help`. No argv sniffing, no stderr-only notice, no second variant. THE BRAIN SPAWN ARGV KEEPS THE `daemon` SPELLING (doyle fork-A ruling, KH-2.3): brain_child_args builds `daemon brain --generation N --start-reason R`, and the compatibility it exists for runs toward binaries that PREDATE the alias — an N-1 parser knows only the old spelling and an alias cannot rescue a parser that never had it, so migrating the spawn site is a later milestone gated on a fleet version floor, never this lane. REMOVAL OF THE ALIAS IS BLOCKED ON AN INSTALL-ARTIFACT MIGRATION (doyle fork-C ruling) AND THAT CONSTRAINT RIDES THE DOC SURFACE, not this file alone: installed OS service units and scheduled-task rungs on every deployed machine already carry `spt daemon run`, and renaming the verb does not rewrite them, so a future milestone must migrate those artifacts before scheduling removal. THE DEPRECATED SPELLING IS DOCUMENTED, NOT HIDDEN (doyle fork-E ruling): `visible_alias` rather than the hidden `--deferred`-style precedent, so the alias reaches the generated reference as a findable deprecated row — a deprecation an operator cannot find is not a deprecation. Gate: impl — the primary/alias rename with the shared note, the dispatch arm, the surface-help path table moved to the primary spelling, and the KH-2.3 spawn-argv sentence; unit — per-subcommand alias equivalence over the enumerated surface, the bare form defaulting to the status view under both spellings, and the note rendering in BOTH spellings' long help (the shape-(i) choice made visible, so moving the note to a runtime print reds here); doc — CONTEXT.md's disambiguation line separating this VERB from the retired `spt-node` separate-process deliverable, plus the reference regen carrying the deprecated row and the removal constraint. Kin REQ-CLI-2 (the noun this re-spells), REQ-HAZARD-HANDOFF-ARGV-COMPAT (the spawn argv it must not modernize), REQ-DOCS-5 (the generator whose drift gate must be green on the regen).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5815673Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5815822Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5815935Z ### REQ-WAN-DENY-PRECEDES-EXISTENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5823056Z - Title: At the WAN ingress, an ACCESS DENIAL and an ABSENT PERCH are DISTINCT OUTCOMES, and the denial arm runs FIRST. `receive_wan` consults the gate before it asks whether the target's perch exists, so a refused arrival returns `WanOutcome::Refused` whether or not the target is there, and `WanOutcome::NoPerch` is reserved for an ADMITTED arrival with nothing to deliver to. The ordering is the load-bearing half and it is not an accident of layout: reversed, a denied message to an absent perch would report absence, which both mislabels the refusal AND is the precise shape that would make a later `DENIED`-style reword of the NO_PERCH line leak the existence of an endpoint deliberately hidden from the asker (the DISCOVER-denial seam, where `Existence is not advertised` is ratified three times over in `wansend.rs`). The distinctness half is what the two outcomes MEAN downstream: `Refused` rides the wire as `refused` and renders `WAN_REFUSED` at the sender, `NoPerch` rides as `no_perch` and renders the absence line, and an operator diagnosing a silent peer acts differently on each. TWO LANDED UNITS ALREADY LEAN ON THIS UNNAMED � `the_stamp_not_the_from_is_the_sender_subject` and `an_admitted_arrival_records_contact_and_a_refused_one_does_not` both seed NO perch and both assert `Refused` (and its absence) at the ingress, so their green depends entirely on the deny arm preceding the existence test while nothing states that it must. This requirement names the dependency and pins it. MEASURED 2026-08-19 (releases#171 measurement, todlando): with the perch ABSENT in both arms and the deny rule as the only variable, denied-msg => `Refused` and allowed-msg => `NoPerch`. Gate: impl � the deny arm at the head of `receive_wan`, ahead of the perch-existence test; unit � the one-variable both-arms measurement, which fails if either the ordering or the distinctness is broken. Kin REQ-MSG-SENDER-STAMP (whose tier-1 subject decides the deny), REQ-ACL-DISCOVER-DEFAULT-ON (the seam whose camouflage this ordering protects).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5828182Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5828331Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5828436Z ### REQ-VOCAB-ANCHOR-SUBNET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5839153Z - Title: THE UBIQUITOUS LANGUAGE FOR AN ENDPOINT'S DEFAULT-SCOPE SUBNET IS `anchor subnet`, NOT `home subnet`. Operator-requested (discord:reavo) and GREENLIT as releases#176: `home` reads as a place the endpoint lives, which is precisely the reading the concept must not carry — identity is node-global and advertised into EVERY subnet the node belongs to, and the subnet in question anchors DEFAULTS (sync scope, bare-name qualification) rather than bounding where the endpoint exists. The glossary body already used the word `anchor` to explain what `home` meant, which is the tell: the definition needed a second word to undo the first. THIS INVERTS A RATIFIED GLOSSARY AVOID AND MUST SAY SO INLINE. CONTEXT.md carried an `_Avoid_` line forbidding the term `anchor subnet`, ratified at the 2026-07-28 access-control grill; that line becomes current-truth `anchor subnet` CARRYING A DATED SUPERSEDE NOTE naming both dates and the greenlight, because a bare inversion is what a future grill re-derives as drift (doyle, 2026-08-19). It is an ALIGNMENT rather than a reversal in spirit: operator vocabulary had already drifted this way — SPT_MANTLE was called the engine-room ANCHOR on 2026-08-05 — and the note is what stops the next reader re-litigating it. THE RENAME STOPS AT THE SERIALIZATION BOUNDARY, and that boundary is the whole risk of this requirement. `PerchInfo.home_subnet` is an ON-DISK serde key in every perch `info.json` and rides the pairing/wire path; renaming it would make every existing perch read as anchor-less and every N-1 daemon lose the key. The field KEEPS ITS NAME so the key keeps its spelling by identity — no `#[serde(rename)]` to maintain and no chance of a later rename silently changing the wire (an `alias` would have been WORSE THAN NOTHING: it is READ-compat only and would still WRITE the new spelling — doyle's correction, 2026-08-19). The freeze is stated AT the field, so the next reader meets the reason where the exception lives. DATED RECORDS ARE NOT REWRITTEN: ADR filenames and titles stay (ADR-0010 `immutable-home-subnet`, ADR-0026 `multi-subnet-home`), and their BODIES keep their words too, each gaining a short dated vocabulary note instead — a decision record states what was decided when, and re-spelling its prose would leave the project unable to tell an amended record from an original one. REQ ids carrying HOME (REQ-RUN-PICKER-HOME) are identifiers on the same footing as ADR filenames and do not move. RECORDS ARE NOT SWEPT, and the ROADMAP's delivered-milestone log and the dated `docs/F-0xx` design notes are records on the same footing as the ADRs — they state what was delivered or designed when, under the word in use at the time. WHAT DOES MOVE: every LIVE surface a person reads — CONTEXT.md, PRD, docs/MANIFEST.md, the docs-site operator prose, CLI help and doc comments, picker titles and legends, and ALL THREE user-visible diagnostic tokens, which become `ANCHOR_NOT_MEMBER`, `NO_ANCHOR_SUBNET` and `ANCHOR_REFUSED` — a diagnostic is the loudest vocabulary the CLI has and would otherwise teach the retired word at exactly the moment an operator is looking the concept up, and renaming two of three would read as a typo rather than as a decision. `ANCHOR_REFUSED` is asserted by two e2e files, whose assertions move in the same change. Gate: doc — the CONTEXT.md glossary term renamed with its inline dated supersede, the docs-site/PRD/MANIFEST prose, and the dated vocabulary notes on ADR-0010 and ADR-0026; impl — the CLI/help/picker text, the three diagnostic tokens, and the stated freeze at the serde field; unit — the renamed tokens and picker text are asserted at their own seats AND the retired spellings are asserted ABSENT, because a partial sweep that leaves one surface behind reads as a typo rather than as the boundary this requirement draws.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5848440Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5848588Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5848706Z ### REQ-ER-BRINGUP-LAUNCH-PHASE-TRACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5855637Z - Title: A BRING-UP THAT FAILS NAMES THE PHASE IT REACHED, in a record that outlives the operator's terminal. The bring-up handler waits on ONE fact — a row in the broker's own sessions table — and the launch that produces that row runs on a DETACHED THREAD which, pre-fix, said nothing at all unless it returned Err. So the only account of a failure was the refusal sentence `the code was accepted, but the engine room's harness did not come up within 30s`, which reaches the operator's terminal and dies with it, and which is IDENTICALLY produced by four different mechanisms: a launch that returned Err (loud, but only in a channel nobody read against the timeout), a launch still waiting UNBOUNDED on the broker's reply (`Brain::cold_start` carries `io_timeout: None`), a ConPTY create that overran the bound, and a harness that SPAWNED AND DIED so that its row existed and then did not. THE POLL CANNOT TELL THESE APART BY CONSTRUCTION — it reads a row, and every one of them is a missing row. The requirement is that each side stamps its own phases into the persisted daemon stderr sink (REQ-DAEMON-STDERR-PERSIST): the launch thread stamps enter/prepared/connecting/connected/requested/spawned and its three failure arms, the shared spawn choke stamps received/gate_claimed/pty_creating/pty_created and each step between the PTY existing and the row being inserted, the exit waiter stamps the row's REMOVAL, and the poll stamps the instant it starts waiting and the instant it gives up. Every span is read MONOTONICALLY off one `Instant` per side (`elapsed`), never as a difference between two clocks, so a near-boot reading cannot underflow. AN ABSENCE IS NEVER A VERDICT: a missing outcome stamp whose PRECEDING stamps stand is a wait still in flight, while a missing outcome whose predecessors are ALSO missing is an unreadable instrument and must be reported as that — which is why the integration stage asserts every rung renders end to end through the diagnostics panel on a GREEN bring-up, before any silence on a cold run is read as a fact about the launch. Gate: impl — the phase stamps on the brokered launch path, in the shared spawn choke, at the exit waiter's row removal, and either side of the bring-up ready-wait; int — a successful bring-up whose panel carries every rung of both ladders, so the instrument's silence is falsifiable rather than assumed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5861638Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5861785Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5861910Z ### REQ-IPC-DEADLINE-UNHONORABLE-REFUSED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5871158Z - Title: A BRAIN-IPC READ HANDED A DEADLINE ITS CARRIER CANNOT HONOR REFUSES BY NAME AT THE READ PRIMITIVE, never silently unbounded. `Brain::read_frame_until` takes `deadline: Option<Instant>` and dispatches on the carrier: the `Split` (pump) arm honors it as a total-wait `recv_timeout` on the remaining budget, and the blocking `Whole` arm CANNOT honor it at all — a timeout there would have to abandon a half-read frame, which is a desynced carrier, and that is precisely why REQ-HAZARD-PUMP-IPC-DEADLINE built the reader-thread carrier rather than reaching for a socket timeout (interprocess on Windows named pipes has no portable read timeout and its `set_nonblocking` corrupts mid-stream — measured at that requirement). So the fix is NOT to make the Whole arm bounded; the fix is to stop the Whole arm from ACCEPTING a bound it will not keep. Pre-fix it dropped the parameter on the floor and returned a blocking read, so a caller that asked for a bounded read got an unbounded one WITH NO DIAGNOSTIC — the caller's own deadline was the thing that vanished. THE INVARIANT IS TWO-SIDED AND BOTH SIDES ARE LOAD-BEARING: an ABSENT deadline STAYS ABSENT (the ordinary blocking read on a `Whole` carrier is untouched, and no default bound is fabricated for it — the absent-is-not-zero shape ruled on releases#201), while a PRESENT deadline on a carrier that cannot honor it becomes a NAMED, DISTINCT error naming the carrier arm and the remedy. THIS MOVES AN EXISTING RULE TO THE SEAM EVERY VERB CROSSES rather than inventing one: `digestlink::refuse_unbounded_carrier` already refuses a `Whole` brain for the digest-pull verb, and its own doc comment records why a comment was not enough — 'it already fooled one implementation of this very function'. One verb was guarded; every other deadline-taking verb (`read_event_until`, `broker_image_version_until`, `read_controller_event_resuming_until`, `read_peer_reply_until`) reached the same primitive unguarded, which is the declare-vs-enforce shape: the rule was declared in three doc comments and enforced at one call site. AT c62904e7 NO PRODUCTION CALLER PASSES A DEADLINE ON A WHOLE CARRIER — the rc pump, the peer pump and the digest pull all build `cold_start_pump`, and the two deadline-aware wrappers document that production passes `None` — so this is a latent unbounded read one construction away, filed as such rather than as a field incident. Gate: impl — the `Whole` arm of `read_frame_until` returns the named refusal for `Some(deadline)` and the unchanged blocking read for `None`, plus the one-line amendment at `refuse_unbounded_carrier` recording that the primitive now enforces what its comment used to only warn; int — three carrier arms measured together, because any one of them alone is satisfiable by a wrong fix: `Whole`+deadline must RETURN (the witnessed red, which pre-fix blocks to its kill bound), `Split`+deadline must STILL time out at its deadline (the positive control a blanket refusal would break), and `Whole`+`None` must still round-trip a real request (the negative control against a fabricated default). Kin REQ-HAZARD-PUMP-IPC-DEADLINE (the carrier split this protects) and REQ-DIGEST-CROSS-NODE-PULL (the one verb that guarded itself).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5878867Z - Required stages: impl, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5879095Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5879211Z ### REQ-ER-INBOUND-LOCK-ALL-PATHS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5896453Z - Title: THE ENGINE ROOM'S INBOUND LOCK REACHES EVERY SPT-AUTHORED DELIVERY PATH, NOT ONLY THE WIRE. The lock itself (REQ-ER-INBOUND-LOCK) was never wrong: it sits at step 0 of the access chain, ahead of the same-node allow, and its own comment names an agent on this very node as the adversary it exists for. The defect was that no locally-authored delivery ever ASKED it. A census of every path terminating in a local delivery (releases#209, measured at c62904e7) found 17 paths and exactly 2 consulting the chain — `wan::receive_wan` and `dispatch::answer_presence_probe`, both wire-inbound — while `crates/spt/src` and `crates/spt-msg/src` between them contained ZERO occurrences of `access_check`, `InboundClass` or `classify_inbound`. The bypass was therefore WIDER than the filing's 'a same-node agent send': `spt ring`, the subnet notify, the API-side drain and the relay listener are each an independent arm to the same three termini (the shared PTY-inject leg, `deliver_tcp`, and the spool). THE FIX IS ONE GATE SITE, and it is a site rather than a restated rule because a rule with N call sites is a rule that will disagree with itself at the seam nobody re-read — this codebase already says so at `engineroom.rs`'s reserved-id predicate, for the same reason. `spt_store::gate::admit_local_delivery` is that site, and it LIVES IN `spt-store` FOR A STRUCTURAL REASON THAT IS PART OF THE REQUIREMENT: `spt-msg` authors local delivery and cannot see `spt-daemon`, so a function beside `wan::deliver_admitted` would have been unreachable from half the paths it exists to gate. THE GATE IS AT ADMISSION, NEVER AT DRAIN, and the engine room's own session briefing is what decides it: that briefing is daemon-authored and self-addressed, spooled straight onto the ER perch under a reserved author, so a drain-time gate would refuse the engine room its own briefing. Admission-time exempts it for free because that writer never crosses the function — AND THAT EXEMPTION IS THE CALL PATH, NEVER A ROW FIELD, so a send merely CLAIMING briefing authorship is gated on its merits like any other. Two further facts settle admission-vs-drain: a spooled row carries no admission stamp and a locally-spooled one has nothing to re-derive an origin from, and a WAN row is already claimed exactly-once by `op_id`, so re-checking at drain would re-open a settled decision and evaporate a row admitted while the posture was Online if the controller detached before the tick. THE GATE ASKS WHETHER THE TARGET RESOLVES TO THE ENGINE-ROOM PERCH, NOT WHETHER IT IS SPELLED LIKE IT. `is_engine_room` is an exact compare, correct for every caller asking about the NAME; it is the wrong question for a gate, because delivery routes by resolving an id to a perch. MEASURED on NTFS 2026-08-22: create `engine-room`, and `Engine-Room` names the same directory — that spelling misses the broker's session table (which does compare exactly), falls to the spool keyed by resolved perch path, and the drain delivers it, so the bypass would have survived its own fix. The predicate compares canonicalized paths and mints NO canonicalizer of its own: imitating the filesystem's case rule would be a second reading of one truth and would be WRONG on Linux, where the other spelling is a genuinely different perch with no engine room at it. The unresolvable arms are declared rather than left to fall out: the exact spelling is checked first and needs no filesystem, so the reserved id is caught with no perch on disk at all; a target that does not canonicalize is not the ER, because nothing is there for a delivery to land on; and an ER perch that does not canonicalize means no engine room is provisioned, for which the posture read behind the predicate is independently fail-closed. THE REPLY EXEMPTION MUST SURVIVE ON THE LOCAL PATH, and pre-fix it could not have: `classify_inbound` correlates against `RecentOutbound`, whose only production writer was `note_outbound` at ONE call site on the WAN outbound leg, so a locally-authored send recorded nothing and every local reply to the engine room would have classified Unsolicited and been refused — the engine room able to ask a local agent a question and structurally unable to hear the answer. The admission site records the local outbound half, on an ADMITTED send only: a refusal is not contact and must not earn a reply window. A LOCAL REFUSAL NAMES ITS ORIGIN IN WORDS rather than printing this node's own key hex, which on the local path reads as a wire arrival and sends the reader hunting a peer that does not exist. SCOPE, STATED RATHER THAN IMPLIED, and the published claim is amended to match: admission runs in the AUTHORING process, so an old or modified binary, a direct write into the spool database, or a raw TCP connect to a relay listener never meets it. Same-user local code is outside what any spt gate holds; the claim is scoped to spt-authored delivery paths, and the TOCTOU between the gate's path resolution and the delivery's own falls under the same boundary. UPGRADE BOUNDARY: rows spooled before the flip carry no admission stamp and drain ungated exactly once. Gate: impl — the admission function, the resolve-based ER predicate, the local `note_outbound` half, the local-origin refusal text, and the scope amendment on the published claim; unit — the resolution fact (both spellings reach one perch, asserted as RESOLUTION rather than as platform behaviour so the cell stays portable), the briefing-authorship forgery negative (a local send wearing the reserved author is still refused), and the unresolvable arms; int — an unsolicited local send to the engine room refused with the lock's own diagnostic where pre-fix it delivered, the engine room's question to a local agent answered (reply exemption alive on the local path, loud arm silent on it), and the hole-punch negatives: ordinary endpoint-to-endpoint local sends still deliver, and still deliver with a subnet-scoped DENY rule and a closed node mode in the store. Kin REQ-ER-INBOUND-LOCK (the lock this reaches), REQ-SEC-1 (the reply exemption it must not break), REQ-ACL-LOCAL-ORIGIN-TIERS (the axis it runs on).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5911243Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5911395Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5911497Z ### REQ-ACL-LOCAL-ORIGIN-TIERS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5927154Z - Title: WHERE AN INVOCATION CAME FROM IS DATA THE CHAIN REASONS ABOUT, NOT A SHORT-CIRCUIT BEFORE IT. Until releases#209 the chain's step 1 was `if local, return Allow(SameNode)`, so locally-authored traffic never reached `AccessStore::decide` at all. That was invisible while local traffic was ungated, and it is exactly what would have foreclosed the operator's intra-node governance surface (releases#211) — which under the ruled shape is NOT a new tier between the per-endpoint entries and the node tier, but SELF-REFERENTIAL Node subjects at the EXISTING tiers (v1's slot-3.5 reading withdrawn in full, operator-rephrased 2026-08-22). A tier the local path short-circuits past is not a tier. So `AccessRequest` carries an `Origin` SET AT EXACTLY ONE CONSTRUCTION SITE — the chain's own — and never re-derived per call site, because a discriminant with two derivations is one that will eventually disagree with itself. THE LOCAL VARIANT CARRIES THE ORIGIN ENDPOINT ID, not merely the fact of locality: same-node governance discriminates by SENDER at the EXISTING tier-1 `SenderEndpoint` subject, so the id has to reach `decide` as part of the origin rather than be re-derived at each call site. Dropping it at construction would cost a second plumbing pass through this very seam — and releases#215 measures precisely what re-derivation costs when it is left to call sites: three feeders hand this one parameter three different value shapes, and a tier-1 rule silently cannot match on one of them. It is carried from the first commit even though nothing consumes it yet, and it is carried in the VARIANT rather than beside it so that constructing a local origin without deciding what to put there is not expressible. Its provenance differs from the wire's and the type says so: a remote sender endpoint is DAEMON-STAMPED and session-proven, while a local one is SESSION-DETECTED in the authoring process — never the caller-supplied `from`, which an explicit `--from` owns and which would admit a forged subject (KNOWN-HAZARDS 7.5, the same reasoning that keeps `from` out of tier 1). The same-node allow is DEMOTED to the chain BOTTOM, where it always semantically belonged: nothing named this traffic, so it is the same-node operation it always was. THE FIX MUST WIDEN NOTHING, and two tiers would have widened it silently if left alone. (1) THE MODE TIERS ABSTAIN FOR A LOCAL ORIGIN. A mode is a blanket posture about who may reach this node FROM OUTSIDE it; `closed` has never in this codebase's history been asked about traffic authored on this machine, because such traffic never reached the function. Letting the modes answer now would convert every `closed` posture in the field into 'and also stop the agents on this box talking to each other' — the hole-punch failure arriving through a door nobody opened deliberately. (2) A LOCAL ORIGIN CARRIES NO SUBNETS. This node is a member of its own subnets, so handing them in would let a subnet-wildcard DENY — written to keep some peer group out — begin refusing locally-authored traffic the moment that traffic reached the chain. Only rules that NAME the local origin explicitly speak about it; everything else falls to the same-node bottom, so today's local behaviour is preserved BY CONSTRUCTION rather than by inspection. A STORE DEGRADE MUST NOT CLOSE THE NODE IN ON ITSELF: ADR-0053's fail-closed refusal protects the node from the network, and applied to local traffic it would stop the agents here talking to each other every time `access.json` was mid-write, so a local origin takes the chain bottom on a degrade. The engine room is unaffected by that arm — its lock is step 0, above all of this, and its own posture read is independently fail-closed. A NODE WITH NO IDENTITY reads as local: nothing can be proven remote either, since a wire arrival carries a handshake-proven hex by construction (REQ-HAZARD-WAN-ORIGIN-AUTH), so an empty origin can only have come from a local authoring path — and that is also the fail-open direction for the same-node hole-punch. THESE SEMANTICS ARE NOT DECIDED HERE. This requirement owes #211 a reachable slot and a carried subject, nothing more: the ORIGIN AXIS and the local sender it carries. NO NEW TIER AND NO MODE TWIN ARE OWED — the v1 shape (a slot 3.5 with a mode twin 6.5, whose twin would refuse local traffic rather than abstain) is WITHDRAWN IN FULL, operator-rephrased 2026-08-22: #211's intra-node governance is SELF-REFERENTIAL Node subjects at the EXISTING tiers, rules-only, with modes-only-abstain staying exactly as this requirement built it. The ER lock stays at step 0 regardless, because same-node governance is a rules surface and never a replacement for the ratified engine-room semantics. Gate: impl — the `Origin` axis on `AccessRequest` set at one site and carrying the local sender id, the mode-tier abstention, the empty local subnets, the demoted same-node bottom, and the local degrade arm (the v1 slot markers are NOT part of this requirement's evidence and are removed with the withdrawal above — a marker describing an unbuilt tier certifies a design, not an implementation); unit — the hole-punch negatives with a CONCRETE adversary rule in the store (a subnet-scoped DENY present, and a closed node mode present, and a local send still admitted under each), plus a remote send under the same store still refused, which is what proves the abstention did not simply disable the tiers rather than scope them. Kin REQ-ACL-SUBJECT-CHAIN (the tier order this inserts into), REQ-ER-INBOUND-LOCK-ALL-PATHS (the lane that needed the axis), REQ-SEC-1.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5940782Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5940930Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5941036Z ### REQ-ACL-INTRA-NODE-SELF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5951524Z - Title: INTRA-NODE GOVERNANCE IS A SELF-REFERENTIAL NODE SUBJECT AT THE EXISTING TIERS, NOT A NEW TIER. Operator-rephrased 2026-08-22, superseding in full the v1 reading (a slot-3.5 rules tier with a mode twin at 6.5): #211 adds NO tier, NO Subject kind and NO schema change. A rule whose subject is THIS NODE'S OWN id governs traffic authored on this node, and it does so through machinery that already shipped. Two effects, both operator-confirmed: a NODE-SCOPE own-node rule governs intra-node actions for every endpoint hosted here, and a PER-ENDPOINT own-node rule governs incoming actions from other same-node endpoints. The third -- endpoint-targeted rules evaluate before node-targeted -- is the chain's existing order and nothing moves. THE MECHANISM AND THE CLAIM ARE DIFFERENT THINGS, AND ONLY THE MECHANISM WAS ALREADY PINNED. REQ-ACL-LOCAL-ORIGIN-TIERS stopped local traffic short-circuiting above `AccessStore::decide` and its unit cell `a_rule_naming_the_local_origin_still_governs_it` already proves a node-scope DENY naming the local origin refuses a local MSG, and that the RULE tier answered rather than a mode. THAT CELL CANNOT PROVE THIS REQUIREMENT, AND ITS OWN HELPER IS WHY: `req_local` constructs `Origin::LocalNode` DIRECTLY and carries an ARBITRARY origin string ("beef"), never `local_node_hex()`. So it proves the chain governs a request ALREADY classified local whose origin string a rule HAPPENS to name. This requirement's claim is a JOIN of two facts that sit on opposite sides of that helper: the local authoring path SUPPLIES THIS NODE'S OWN HEX as `origin_node` (`gate::admit_local_delivery` passes `local_node_hex()`), and therefore the string an operator actually WRITES -- their own node's key hex -- is the one that matches. MEASURED AT 2b855595: no test in the tree, unit or integration, constructs `Subject::Node { node: <own hex> }`; `er_inbound_local.rs` writes a `SubnetWildcard` DENY, which is the hole-punch negative and a different claim. The join has no unit form for the same reason REQ-ER-INBOUND-LOCK-ALL-PATHS's did: the authoring verb decides what reaches the chain, and only the real binary runs the authoring verb. RULES-ONLY, AND THE MODES KEEP ABSTAINING FOR LOCAL ORIGIN exactly as REQ-ACL-LOCAL-ORIGIN-TIERS built them -- the hole-punch property (a closed node/endpoint/subnet mode never severs the box's own agents) holds by construction, and #211's original default-deny example is expressed as a node-scope own-node DENY on MSG rather than as a posture. PRECEDENCE ABOVE THE CHAIN IS UNCHANGED AND RESTATED RATHER THAN IMPLIED: the engine room's inbound lock is step 0 and a self-referential rule never touches it (ADR-0052); a correlated local reply is admitted with no rule of its own (REQ-SEC-1), own-node deny included; and KNOCK is its own surface, so an own-node MSG deny leaves knocking to KNOCK's own evaluation. AN OWN-NODE SUBJECT CAN NEVER MATCH A REMOTE ORIGIN -- hex inequality, and the classification puts any request whose origin equals the own hex on the LocalNode arm before the chain runs. LOCAL GOVERNANCE IS IMPOSSIBLE BY CONSTRUCTION ON A NODE WITH NO IDENTITY, and that is a design property rather than a hole: `admit_local_delivery` passes `local_node_hex().unwrap_or_default()`, so an unprovisioned node hands in an EMPTY origin_node -- it still classifies LocalNode and still flows, but no rule can name a hex that does not exist. An unprovisioned node is exactly the state a first-run operator is in, so the property is asserted rather than left to be reported as a bug later. Gate: int -- the JOIN, driven through the real binary with no daemon: an ungoverned local send ADMITTED as the control on the same store, then refused under a NODE-SCOPE rule whose subject is the hex the binary itself minted, then refused again under a PER-ENDPOINT rule with the node-scope rule CLEARED so it cannot be the thing answering; each rule read back OUT OF THE STORE by match count rather than echoed from the argument, and each refusal asserted to have spooled NO row, so a slow delivery cannot pass as a refusal. Kin REQ-ACL-LOCAL-ORIGIN-TIERS (the axis this runs on, and whose synthetic-origin helper is why this evidence is owed), REQ-ACL-SUBJECT-CHAIN (the tier order it uses unchanged), REQ-ER-INBOUND-LOCK-ALL-PATHS (the admission site the local path crosses), REQ-SEC-1 (the reply exemption that outranks an own-node deny).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5963542Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5963705Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5963800Z ### REQ-SEAL-RECORD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5969457Z - Title: A WAX SEAL IS A DURABLE RECORD BINDING CONTENT TO A MINTER: `{token, content_hash, minter, minted_at, ceremony_kind}` — the token (REQ-SEAL-TOKEN-FORMAT), the lowercase-hex SHA-256 over the EXACT BYTES presented at the ceremony (the artifact-digest convention, `sha256_hex` house style: no prefix, no truncation), the FULLY-QUALIFIED minter address `subnet:endpoint@node` (the subnet component IS the binding subnet — the record carries no separate subnet field, and the store derives scoping by parsing the minter through the spt-proto address grammar, one truth not two), the mint timestamp in epoch ms, and the ceremony kind as an open string (`totp` arrives W2; FIDO2 is fast-follow; test-seam mints name themselves honestly and never wear a ceremony they did not run). NO EXPIRY AND NO REVOCATION IN V1 (operator ruling 6, 2026-08-23): the timestamp is in the record and a reversed decision is a NEWER seal, so records are IMMUTABLE ONCE MINTED — which is what makes the replicated store a join-semilattice for free (REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED). A seal is EVIDENCE, never an authorization subject by itself (the KNOWN-HAZARDS 7.5 discipline transported): nothing grants on token possession; only a BOUND verify verdict (REQ-SEAL-VERIFY-CONTENT-BOUND) is citable. W1 lands the mint machinery behind an INTERNAL SEAM ONLY — no public mint verb, no ceremony; W2 wires the TOTP ceremony to that seam. The seam refuses EMPTY content: a seal over zero bytes proves nothing and the verify surface treats empty stdin as absent content, so admitting the mint would create a record whose verification is indistinguishable from the no-content refusal. Gate: doc — the ratified CONTEXT.md wax-seal entry carries the record shape; impl — the record struct + mint seam in spt-store; unit — roundtrip persistence, minter-parse-derived binding subnet, empty-content mint refusal.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5974336Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5974490Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5974585Z ### REQ-SEAL-TOKEN-FORMAT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5979195Z - Title: A SEAL TOKEN IS 8-10 CHARS FROM A NARROW UNAMBIGUOUS LOWERCASE CHARSET, minted by rejection-sampling the OsRng-backed identity source (the knock-code precedent — one randomness source, one audit point; no `rand` crate edge). The charset is the 30-glyph set `23456789abcdefghjkmnpqrstvwxyz`: digits drop `0`/`1` (collide with `o`/`l`/`i`), letters drop `i`/`l`/`o` (same collisions) and `u` (the Crockford accidental-obscenity drop) — REQ-HAZARD-ID-CHARSET's discipline applied to a NEW, NARROWER alphabet rather than reusing the endpoint-id set, because a seal token is read aloud and retyped by humans citing a decision, and `:`/`@` stay permanently reserved address delimiters so a token can never smuggle address structure. MINTS EMIT 10 CHARS (~49 bits over the 30-set — ample for a citation handle whose forgery is harmless by construction, since verify recomputes the content hash and possession grants nothing); VALIDATION ADMITS 8-10 so the format has headroom without a flag day (the sptkc_ versioning lesson: widen by admitting, never by breaking). Well-formedness lives in the STORE beside the record (the knock `is_well_formed` precedent) and every verb validates the token at its seam before touching the store — a malformed token is a refusal, never a lookup miss, so the two cannot be conflated by a caller. Gate: doc — the CONTEXT.md entry's 8-10-char clause; impl — charset const + validator + mint sampler in spt-store; unit — charset membership (every minted char in-set, ambiguous glyphs refused), length bounds both edges, malformed-vs-unknown distinction at the verb seam.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5983189Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5983346Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5983470Z ### REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5991726Z - Title: SEAL RECORDS LIVE IN SUBNET SECURITY MATERIAL AND REPLICATE SUBNET-SCOPED, so `spt api seal verify|describe` answers on ANY member node of the binding subnet. The store is `identity/trust/seals.json` beside the grant store and whitelist (one JSON document, atomic write, the grants.rs template; a new path fn in perch.rs per REQ-HAZARD-SINGLE-PATH-SOURCE). PREMISE CORRECTION, MEASURED AT INTAKE (0fcbc086): the grant store and whitelist are NODE-LOCAL AND DO NOT REPLICATE — their 'propagation seam' is aspirational prose with no wire family behind it — so 'same plumbing' is honored by riding the ONE shipped subnet-scoped replication pattern, the notif store's four-part shape: (1) MONOTONE JOIN — the apply point is insert-if-absent by token, so records commute, a replayed feed no-ops, and immutability (REQ-SEAL-RECORD) makes the store a join-semilattice with no delta bookkeeping; a same-token-different-content arrival is DROPPED WITH THE EXISTING RECORD KEPT and counted as an anomaly, never merged, because tokens are minted once and a collision is either astronomical or adversarial, and the adversarial copy is already harmless (verify recomputes the hash). (2) KIND-TAGGED WIRE RECORD — NDJSON with kind = 'seal' (the knockmsg N-1 lesson: an untagged record lands in an old daemon's WanMessage arm as a chat message; a tagged one drops cleanly). (3) STREAMFAMILY REGISTRATION — a `Seal` family arm in classify_first_line + serve dispatch, widening the census array the bijection test asserts. (4) APPLY GATE + FULL-RE-PRESENTATION EMIT + PUMP WORKER — the gate admits a row only when THIS node is a member of the record's binding subnet AND the handshake-proven origin node is on that subnet's roster (fail-closed: non-member subnet drops, untrusted origin drops — the REQ-NOTIF-1/REQ-MESH-5 posture verbatim); the emitter re-presents every record of the subnet (duplicates are free under the join); the pump worker fans per member subnet x roster peer through the existing fan_targets discipline. DEGRADE POLARITY IS OPEN-TO-EMPTY (the grants polarity, chosen deliberately): a husk or corrupt store loads empty, so verify answers unknown-token — the store failing can only LOSE the ability to prove, never mint false evidence, which is the safe direction for an evidence primitive. Binding-subnet scoping is derived from the minter address at the ONE parse helper on the record — the emitter and the gate share it, so the scope a record replicates under and the scope it is admitted under cannot diverge. Gate: doc — the CONTEXT.md entry's subnet-scoped replication clause; impl — store + wire record + family arm + gate/emit/worker; unit — join idempotence + collision-drop, gate's verdict arms (admitted, non-member-subnet dropped, untrusted-origin dropped, replay no-op), emit/decode roundtrip, husk-loads-empty. int at gate: a record minted on one member node answering describe on another.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5998842Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5999305Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.5999418Z ### REQ-SEAL-VERIFY-CONTENT-BOUND
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6009450Z - Title: `spt api seal verify <token>` IS CONTENT-BOUND: the content arrives on stdin, the verb recomputes the lowercase-hex SHA-256 over the exact bytes received and compares it to the record's `content_hash`, and the verdict is BOUND or NOT-BOUND with the record's fields printed alongside — a verify that does not read content is not a verify, so BARE VERIFY WITH NO CONTENT (empty or absent stdin) REFUSES BY NAME, pointing the caller at `describe` (operator ruling 7: `SEAL_VERIFY_NO_CONTENT`, the refusal names the verb that answers the question actually asked). EXIT CONTRACT, PINNED SO A SCRIPTED CALLER CAN NEVER MISREAD A NON-VERDICT AS EVIDENCE: exit 0 IF AND ONLY IF BOUND. NOT-BOUND prints its verdict line (with the expected-vs-presented hashes) on stdout and exits nonzero; an unknown token refuses `SEAL_UNKNOWN_TOKEN` on stderr; a malformed token refuses at the format seam (REQ-SEAL-TOKEN-FORMAT) — three distinct texts, none of them exit 0, because ONLY A BOUND VERDICT IS EVIDENCE (KH 7.5: the token, and any envelope attribute carrying it, is never an authorization subject by itself; forged or wrong tokens are harmless by construction precisely because this verb recomputes the hash). The verbs are READ-ONLY and take no auth gate (the EndpointInfo precedent): the store they read replicates subnet-scoped, so membership already bounds who can answer, and a verify mutates nothing. Gate: doc — the CONTEXT.md entry's verify clause; impl — the api verb, hash recomputation at the store's one helper, the no-content and unknown-token refusals; unit — BOUND on exact bytes, NOT-BOUND on a one-byte delta, empty-stdin refusal pointing at describe, unknown-token refusal distinct from malformed-token refusal, exit-0-iff-BOUND across all five arms. #220 (operator, FIELD-SEAL W2): TWO CHANGES, NEITHER OF WHICH WEAKENS THE BINDING. (1) THE MINT'S TRIM IS MIRRORED AS A SECOND CANDIDATE: `seal mint` seals `raw.trim()` (both ends, the CRLF rationale of REQ-HAZARD-ENVELOPE-CR-LINESAFE), so presented bytes carrying a shell's trailing newline — every `echo |` on the fleet — could never bind the seal minted from that same text. Verify hashes the EXACT bytes FIRST and, ONLY ON A MISS, hashes the mint-trimmed candidate: additive by construction, so nothing that binds today stops binding, including content deliberately sealed WITH its whitespace. The trim MIRRORS THE MINT rather than the ticket's narrower 'trailing' — `str::trim` for UTF-8 content (the identical function the mint calls), ASCII whitespace for bytes the mint verb could never have produced but the store can hold. (2) THE VERDICT'S RECORD BLOCK IS THE NARROW ONE: `token`, `content_hash` and `ceremony_kind` DO NOT surface from verify — the verdict line already carries the token (`SEAL_BOUND:<token>`) and, on a mismatch, both hashes in prose, and a field repeated beside its own verdict reads as a second, weaker answer; `describe` keeps all three. Verify's minter rides VERBATIM (the human render is describe's alone). Gate adds: unit — exact bytes bind, trailing-newline/CRLF/both-ends-padded bind through the fallback, a real one-byte delta and interior-whitespace differences still NOT-BOUND, a seal minted over trailing whitespace still binds its exact bytes, the non-UTF-8 arm, and the three dropped fields pinned as an ABSENCE.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6017586Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6017739Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6017849Z ### REQ-SEAL-CEREMONY-TOTP
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6026836Z - Title: EVERY PRODUCTION SEAL MINT IS GATED BY A TOTP HUMAN-PRESENCE CEREMONY, AND THE WHOLE DECISION RUNS DAEMON-SIDE (write-through-daemon, doyle W1 design-review finding + approval 2026-08-23): the attached controller collects the code and ships the PRESENTED CODE — never a verdict — up the attach channel; the daemon verifies a member-or-admin code of the BINDING subnet locally against SubnetStore seed_bytes/admin_seed_bytes through code_matches_window's plus-minus-one-step window, BOTH seeds tried unconditionally and combined bitwise so the gate's timing cannot name which key admitted (the bring-up pattern; which key admitted is deliberately not distinguished — a seal grants nothing key-specific). The attempt is bounded by ITS OWN persisted ledger `trust/seal-ceremony-gate.json` — the GateLedger shape reused verbatim (one counter, one-second-doubling-to-one-hour backoff, throttle evaluated BEFORE verification so a shut gate is not an oracle, reset on success, survives daemon restarts, loud notification past the third failure) — SEPARATE from the bring-up and empower ledgers per the denial-of-governance rationale: failed seal guesses must not shut the gate a human needs to take the controls back, and vice versa. Only PRESENTED guesses count: Esc-cancel and absent input spend nothing (REQ-SEAL-CEREMONY-ESC-CANCEL owns the cancel arm). Ceremony success is the ONLY production caller of spt_store::seal::mint_seal (ceremony_kind `totp`), and the mint's load-modify-save runs IN THE DAEMON PROCESS under the same SEAL_APPLY serialization as the replication apply arm — a CLI-process minter would race the apply arm last-writer-wins, and a lost LOCAL mint is the one record re-presentation cannot heal (only the minting node ever held it). The record's fully-qualified minter is `subnet:endpoint@node` where the NODE HALF is the daemon's own NODE-KEY SHORT HEX (registry::key_prefix's roster short form — the durable node spelling ADR-0054 payloads carry, already resolvable by the @node grammar) — NEVER the OS hostname (doyle W2 gate ruling 2026-08-23: a hostname is mutable — the advertised label re-derives at daemon startup — and non-unique, so a durable evidence record citing it goes ambiguous between hostname-sharing nodes and orphans on rename; the pubkey remains the identity). A node always has its key by mint time (daemon boot mints node.key), so there is no ordinary no-identity refusal; an unreadable key is an IO anomaly refused fail-closed. Gate: doc — the CONTEXT.md wax-seal entry's ceremony clause; impl — the ceremony IPC verb, the daemon verify + ledger + mint-under-SEAL_APPLY arm, the seal ledger path helper; unit — member code admits, admin code admits, wrong code refuses and counts, throttle-before-verify ordering, in-backoff attempt uncounted, cancel uncounted, ledger file distinct from the bring-up and empower files, mint persisted by the daemon writer with the minter's node half pinned to the node-key short form (8 hex chars, never a hostname), loud threshold.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6034358Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6034510Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6034610Z ### REQ-SEAL-CEREMONY-CONTENT-SHOWN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6043802Z - Title: THE CEREMONY OVERLAY SHOWS THE HUMAN EXACTLY WHAT THEY ARE SEALING: the sealed content VERBATIM plus the BINDING SUBNET NAMED — always the subnet whose member-or-admin code the overlay expects, so the human reaches for the right key (operator ruling 5's overlay clause) — and once W3 wires sealed dispatch, the destination id as well. A blind mint is a consent hole (doyle design-of-record 2026-08-23; releases#7's own sketch shows the content). The content bytes the overlay renders are THE bytes the daemon hashes at mint — same byte buffer end to end (the one-buffer discipline doyle's W1 review carried into this milestone). SIZE IS THE OPERATOR'S THREE-PART SHAPE (ruling 8, 2026-08-23, superseding the provisional refuse-arm): (1) content is CAPPED AT 500 UNICODE SCALAR VALUES at the CEREMONY SEAM ONLY (not a record property) — longer REFUSES with a named reason to the requester (`SEAL_CEREMONY_CONTENT_TOO_LONG`), never truncated; (2) the overlay SUPPORTS SCROLLING — a within-cap content can still overflow a small PTY grid, so the surface adapts and the content never shrinks; (3) SUBMIT IS NEVER GATED on scrolled-to-end. Ceremony content must be VALID UTF-8 (doyle pin under ruling 8): bytes that cannot be displayed verbatim are bytes nobody can consent to, so non-UTF-8 refuses with its own named reason (`SEAL_CEREMONY_CONTENT_NOT_UTF8`). Gate: doc — the CONTEXT.md ceremony clause's content-shown sentence; impl — the overlay rendering (content verbatim + subnet line + scroll window) and the seam's cap + UTF-8 refusals; unit — the overlay's emitted bytes contain the content verbatim and name the binding subnet, the rendered content is byte-identical to the buffer presented for mint, over-cap content refuses by name at the seam (a 500-scalar content passes, 501 refuses — counted in scalars not bytes), non-UTF-8 content refuses by its own name, the overlay windows over-surface content by scroll offset without shrinking it, and submit folds regardless of scroll position.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6049624Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6049782Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6049886Z ### REQ-SEAL-CEREMONY-ESC-CANCEL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6053822Z - Title: ESC (OR CTRL-C) AT THE CEREMONY OVERLAY ABORTS CLEANLY — the releases#19 Esc-cancel ruling, which this requirement satisfies: NO partial seal record exists anywhere (mint_seal is simply never called for a cancelled ceremony — there is no staged record to roll back, by construction), the cancel SPENDS NOTHING on the attempt ledger (a cancel is not a presented guess: Presented::Absent, uncounted), a pending sealed-send is DROPPED, and the INITIATING AGENT receives a clear refusal naming the cancellation — never a silent hang or an ambiguous failure. The same clean-abort arm covers the involuntary endings: controller detach mid-ceremony and requester connection drop abort identically (no partial record, nothing spent, both sides answered). The key grammar is the SHARED fold_code_key kernel — one grammar for every ceremony surface (ADR-0052's overlay-pattern-shared sentence), so no ceremony can drift its own cancel rule. Gate: doc — the CONTEXT.md ceremony clause's Esc sentence; impl — the client cancel arm and the daemon abort arm; unit — Esc and ctrl-c fold to Cancel through the shared kernel, a cancelled ceremony produces no record and no ledger delta, the requester receives the named cancellation refusal, detach-mid-ceremony aborts identically.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6057187Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6057342Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6057463Z ### REQ-SEAL-NO-CEREMONY-SURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6066819Z - Title: A MINT REQUESTED WITH NO CEREMONY SURFACE REFUSES FAST AND BY NAME: no live session for the minter endpoint, no attached CONTROLLER on that session, or a controller that did not declare the seal-ceremony capability (an N-1 rc client) each refuse `SEAL_NO_CEREMONY_SURFACE` with a notice telling the agent to have the operator attach and retry (operator ruling 4, 2026-08-23). NO pending-mint state and NO timeout queue: the refusal is immediate and nothing is parked awaiting a controller. The controller-attached predicate reads the BROKER'S LIVE SEAT TABLE under the log lock (has_controller), NEVER the perch info stamp — the stamp lags the seat decision by documented hazard (KH 7.15 / info.rs terminal_normalize: a dead session's controller stamp survives until a daemon-side clear catches up, and SessionInfo's controller_by None is ambiguous between empty and local), so a stamp reader would run ceremonies against a corpse or refuse against a live seat. Gate: doc — the CONTEXT.md ceremony clause's no-surface sentence; impl — the seat-table check and the named refusal; unit — no-session refuses, session-without-controller refuses, non-capable controller refuses, each by name; an attached capable controller proceeds; and the predicate is the broker seat table, pinned so a perch-stamp rewrite cannot pass.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6070534Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6070696Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6070796Z ### REQ-SEAL-CEREMONY-RC-CLIENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6074761Z - Title: A REMOTE ATTACHED CONTROLLER RUNS THE CEREMONY CLIENT-SIDE AND SHIPS THE PROOF UP THE RC CHANNEL (CONTEXT.md ratified; the rc-paste client-originated precedent — the daemon has no reach into the operator's terminal or clipboard, so the overlay renders and the code is collected in the rc client process) — AND THE PROOF IS THE PRESENTED CODE, NEVER A CLIENT-SIDE VERDICT: verification, the attempt ledger, and the mint stay daemon-side (REQ-SEAL-CEREMONY-TOTP), because an agent on the box can speak the broker's IPC directly and a client-side decision would be decorative (the bring-up precedent, broker seat-resolver placement rationale). The ceremony records ride the EXISTING attach stream as additive serde variants, so the LOCAL and REMOTE arms are ONE code path — nothing about a remote controller is special except transport latency; N-1 clients are protected by the default-false capability declaration (REQ-SEAL-NO-CEREMONY-SURFACE refuses rather than pushing records an old client cannot decode). Gate: doc — the CONTEXT.md rc-arm sentence; impl — the ceremony AttachRecord variants and the client ceremony mode; unit — the upstream ceremony record carries the presented code and has no verdict field for a client to assert, keys fold through the shared kernel, and a ceremony round-trips over the attach machinery (push, code up, result down).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6080770Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6080932Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6081022Z ### REQ-SEAL-DESCRIBE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6090902Z - Title: `spt api seal describe <token>` RENDERS THE SEAL RECORD'S FIELDS — token, content hash, fully-qualified minter, mint timestamp, ceremony kind — as the read surface for citing a seal WITHOUT re-presenting its content (the verify verb's complement: describe answers 'what does this token attest', verify answers 'is it THIS content'). Unknown token refuses `SEAL_UNKNOWN_TOKEN`; malformed token refuses at the format seam, distinct (REQ-SEAL-TOKEN-FORMAT). Read-only, no auth gate, answers on any member node of the binding subnet via the replicated store (REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED). Field rendering is LINE-ORIENTED KEY:VALUE on stdout so an agent citing a seal can quote it verbatim; the describe surface NEVER renders anything that is not in the record — in particular it cannot leak subnet secret material, because the record carries none (the minter address names a subnet; naming is not revealing). Gate: doc — the CONTEXT.md entry's describe clause; impl — the api verb + rendering; unit — field rendering exact over a known record, unknown-vs-malformed refusal distinction, exit codes. #219 (operator, FIELD-SEAL W2): DESCRIBE IS THE HUMAN SURFACE AND ITS BLOCK IS NOT A PARSE TARGET. The MINTER renders with its node half NAMED where this node can name it, in the house `LABEL (prefix…)` convention (REQ-PICKER-4's never-bare-hex rule) — `SPT_DEV:lia@HFENDULEAM (14efb80c…)`; MINTED_AT renders `YYYY-MM-DD HH:MM TZ` in the HOST NODE'S OWN timezone. Both renders are DERIVED — from this node's roster and gossiped registry, and from this node's clock — so TWO NODES MAY LEGITIMATELY RENDER ONE RECORD DIFFERENTLY and that difference is NOT a defect: the machine-readable answer is the record itself, never this text, and nothing derived here reaches verification (the fido2 tuple recomposes from the STORED spellings verbatim, REQ-SEAL-FIDO2-SIG-VERIFY's exactness rider, untouched). THE NAME RESOLVE IS A PREFIX MATCH AND ANSWERS ONLY WHEN UNAMBIGUOUS: a record stores its minter's node as an 8-CHAR KEY PREFIX (`registry::key_prefix` at the mint) while both label directories key on the FULL key, so the candidates are a SET, never a first match (roster_node_hex_resolver's doctrine) — EXACTLY ONE candidate key renders its name; zero (nothing known) and two-or-more (the prefix does not identify a node) BOTH degrade to the stored hex, because a name guessed from an ambiguous prefix attributes a decision seal to a machine the operator never named. An instant the local calendar cannot place degrades to the raw milliseconds rather than inventing a time. THE LABEL DIRECTORY IS AN INJECTED SEAM (the probe/decide split): the verb loads the union of the two existing tables at its edge and hands it to a pure renderer, so every arm of the naming rule unit-tests against a fixture table instead of against whatever the build box gossiped. Gate adds: unit — the naming rule's three arms (unique names, ambiguous degrades, unknown degrades), a minter that does not parse rendered untouched, the stamp's shape and its degrade-to-raw arm.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6098443Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6098594Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6098687Z ### REQ-SEAL-MINT-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6103583Z - Title: `spt seal mint` IS THE DECISION-SEAL ENTRY POINT: the text to seal arrives on STDIN, the verb requests the daemon's TOTP ceremony over exactly those bytes through the ONE production mint seam (Brain::seal_ceremony -> KIND_SEAL_CEREMONY; the CLI process never verifies, never ledgers, never mints - REQ-SEAL-CEREMONY-TOTP's write-through-daemon posture), and on admit prints the MINTED TOKEN to stdout as the whole result. STDIN IS TRIMMED EXACTLY AS `spt send` TRIMS ITS BODY (the REQ-HAZARD-ENVELOPE-CR-LINESAFE parity: a Windows `echo |` pipes a trailing CRLF, and a seal minted over an invisible trailing newline is a citation whose verify mysteriously reads NOT-BOUND) - so the buffer `spt seal mint` seals for a given text is byte-identical to the buffer a sealed send delivers for that same text; EMPTY content after the trim refuses fast CLI-side by name, before any ceremony opens (a ceremony over nothing asks the human to consent to nothing). REFUSALS RIDE THROUGH VERBATIM: no-surface, content cap, non-UTF-8, throttle, wrong-code and cancellation each surface the daemon's own outcome token and detail sentence - the CLI never re-words a refusal it did not decide (the W2 reply contract: every field is the broker's answer and none of it is the client's to summarize). The binding subnet resolves through REQ-SEAL-SUBNET-BINDING-DEFAULT (minter endpoint's anchor; `--subnet` overrides). EXIT CONTRACT, mirroring verify's 0-iff-BOUND: exit 0 IF AND ONLY IF the ceremony ADMITTED and the token printed; refused / throttled / cancelled / transport-error are each nonzero with the named reason on stderr. Gate: doc - the CONTEXT.md wax-seal entry's mint-verb sentence; impl - the CLI verb and its outcome mapping; unit - admit prints the bare token and exits 0, each non-admit outcome exits nonzero carrying the daemon's own detail verbatim, stdin trim parity with send, empty-content fast refusal by name.
traceability	UNKNOWN STEP	﻿2026-09-09T04:19:36.6111508Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6119352Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6119473Z ### REQ-SEAL-SEND-SEALED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6128287Z - Title: `spt send <id> --seal [--subnet <name>]` IS SEALED DISPATCH: one verb that runs the TOTP ceremony over the EXACT BYTES THAT WILL BE DELIVERED and, on admit, delivers the message carrying the minted token as its sender-authored envelope attribute (REQ-SEAL-ENVELOPE-ATTR). ONE BUFFER END TO END: the body read once at the verb's head (trimmed exactly as an unsealed send trims) is THE buffer the overlay shows, THE buffer the mint hashes, and THE buffer delivered - never re-read and never re-encoded between ceremony and delivery, so the receiver's `spt api seal verify` over the delivered body reads BOUND by construction; the unit pins ceremony-buffer == delivered-buffer identity. THE OVERLAY NAMES THE DESTINATION ID as well as the binding subnet (design of record, doyle W3 dispatch point 2 - the W2 overlay named only the subnet, so this is an overlay change too: the destination line renders when present, and the human consents to sealing THIS text TO THIS endpoint UNDER THIS subnet). A NON-ADMITTED CEREMONY SENDS NOTHING: refused, throttled and cancelled each surface the daemon's outcome verbatim and the message is neither delivered nor spooled (REQ-SEAL-CEREMONY-ESC-CANCEL's pending-sealed-send-DROPPED arm, which this verb finally gives a consumer). The binding subnet resolves through REQ-SEAL-SUBNET-BINDING-DEFAULT against the destination. Gate: doc - the CONTEXT.md sealed-message clause; impl - the --seal arm in cmd_send (ceremony before delivery, attr authoring at the compose seam); unit - ceremony-buffer == delivered-buffer identity, the overlay brief carries the destination id, a non-admit outcome delivers and spools nothing, an admit delivers carrying the minted token. #223 (FIELD-SEAL W2): THE SENDER'S ANSWER CARRIES THE MINTED TOKEN — `SENT:<target> seal=<token>` — because before this the ONLY sender-visible copy of the token was a ceremony-overlay line stranded in the sender's PTY, which no script or agent can consume (field-measured, v0.62.0 first sealed exchange). THE TOKEN RIDES EVERY OUTCOME LINE A SEALED SEND CAN ANSWER WITH — SENT, QUEUED, QUEUED(idle-only), DEFERRED (doyle ruling, 2026-08-25) — because the token is evidence of the MINT, not of delivery: the ceremony runs BEFORE any delivery arm by construction, so a send that only spooled still minted a record its sender may need to cite. The suffix appears IFF A MINT PRECEDED THE ANSWER: an unsealed send's answer is byte-identical to before, and refusal/non-admit paths return before any answer line exists, so no path can print an empty `seal=`. AND THE ADMITTED CEREMONY PRINTS NOTHING TO THE PTY: the rc takes the overlay down and emits NO notice on admit, since the token now reaches the sender on the answer line and that notice was the residue; every NON-admit outcome still renders the daemon's sentence verbatim, because nothing else surfaces a failure or a cancel. The remaining cosmetic half — the blanked overlay rows the session repaints only over time — is REQ-BROKER-SCREEN-GRID's scope, not this one's. Gate adds: unit — the answer composer over all four outcome labels, and the unsealed answer unchanged.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6136195Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6136351Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6136461Z ### REQ-SEAL-SUBNET-BINDING-DEFAULT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6140883Z - Title: THE BINDING SUBNET OF A SEAL RESOLVES BY ONE DETERMINISTIC RULE (operator ruling 5 + Q8, doyle W3 dispatch point 3): (1) an explicit `--subnet <name>` OVERRIDES everything below - the caller named the key the human will present - but a name the MINTER endpoint is not a member of refuses fast by name (the ceremony could never verify a member-or-admin code of a subnet the minter has no seeds for); (2) otherwise the seal binds to the MINTER ENDPOINT'S ANCHOR SUBNET; (3) on sealed dispatch where the DESTINATION does not share the minter's anchor, the LEXICOGRAPHICALLY-FIRST subnet shared by both endpoints - deterministic, so one pair of endpoints always binds one subnet and the overlay's named subnet is reproducible run to run; (4) NO SHARED SUBNET refuses by name (`SEAL_NO_SHARED_SUBNET`) - NEVER fall back to a subnet the receiver cannot verify in, because the replication scope IS the verification audience: a seal whose binding subnet excludes the destination's nodes is a citation the recipient structurally cannot check (REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED). The resolver is a PURE FUNCTION over (override, minter anchor, minter's subnet set, destination's subnet set) so the whole rule is one unit table; the overlay always names the chosen subnet (W2 already renders it). Gate: doc - the CONTEXT.md binding-subnet clause; impl - the pure resolver and its callers (mint verb, sealed dispatch); unit - the rule table: anchor default, shared-lex-first when the destination lacks the anchor, override beats both, override-outside-minter-membership refuses by name, no-shared refuses SEAL_NO_SHARED_SUBNET, and input-order independence of the shared-set pick.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6145207Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6145365Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6145466Z ### REQ-SEAL-ENVELOPE-ATTR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6150508Z - Title: A SEALED MESSAGE CARRIES ITS SEAL TOKEN AS A SENDER-AUTHORED ENVELOPE ATTRIBUTE seal="<token>" riding like `json=` (collision-proof by construction: the token lives inside ONE attribute value and can never forge `from`/`type`; its alphabet, REQ-SEAL-TOKEN-FORMAT's 30-glyph set, is a strict subset of the reemittable attr charset so the attr can never smuggle envelope structure). SENDER-AUTHORED IS A DIFFERENT CLASS FROM RECEIVER-COMPOSED, AND THE BOUNDARY IS LOAD-BEARING: the ingress strip (REQ-TRUST-WARNING-ENVELOPE's RECEIVER_COMPOSED_ATTRS class - `trust-warning`, `mnemonics-json`, CONTEXT.md:960) inertizes attributes the RECEIVER composes about a delivery; the seal attr is the envelope author's OWN field (like `type`, `from`, a notify's id) and MUST ride end-to-end intact through that strip - and MUST NEVER be added to the strip class, which would delete the sender's own evidence citation at every ingress. THE ATTR SURFACES IN THE RECEIVER'S EVENT ENVELOPE: the receiving agent sees seal="..." on the delivered <EVENT> and cites or verifies from there. KH 7.5 TRANSPORTED, STATED AS A PROHIBITION ON EVERY FUTURE CONSUMER: the attribute is a CITATION, never an authorization subject - no consumer may branch authority on its presence or value; only a BOUND `spt api seal verify` verdict over the delivered body is evidence, and a forged attr is harmless by construction because verify recomputes the hash. Gate: doc - the CONTEXT.md sealed-message clause's attribute sentence; impl - the attr const and its sender-side authoring at the compose seam; unit - a sealed envelope survives strip_receiver_composed_attrs with the attr intact while the receiver-composed class is still stripped beside it, the attr renders in the delivered EVENT envelope and round-trips the envelope codec, the attr value is the bare token; int - a sealed send delivered CROSS-NODE arrives with the attr intact and its body verifying BOUND against the replicated record on the receiving node (doyle W3 dispatch point 5b).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6155744Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6155920Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6156026Z ### REQ-SEAL-AUTH-BACKEND-SEAM
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6166233Z - Title: PLATFORM-AUTHENTICATOR ACCESS IS ONE PER-OS SEAM — ensure-keypair / sign-payload / availability — AND THE SEAM IS THE CONTRACT (#217 anchor 3): the enrollment verb (REQ-SEAL-ENROLL-VERB) and W2's FIDO2 ceremony consume the SEAM, never a backend. AVAILABILITY answers whether a platform authenticator is present and usable for the invoking session — a probe that cannot answer reports unavailable WITH ITS NAMED REASON, never a verdict-shaped guess (the firewall doctrine: bounded probes feed a PURE DECIDER so every decision arm unit-tests hermetically without the OS — the probe/decide split at firewall.rs and the injectable-probe seam of resolve_transport are the two house exemplars). ENSURE-KEYPAIR is the idempotent get-or-create of this node's seal-authenticator keypair, user-verification-gated at creation by the backend (Windows Hello's own prompt); it returns the PUBLIC KEY plus the seam's BACKEND KIND token, and the private key NEVER crosses the seam — no export surface exists, signing is the only use. SIGN-PAYLOAD is the user-verification-gated detached signature over caller-presented bytes — W2's ceremony consumer; W1 lands it behind the seam with the stub/decider arms unit-held and NO production caller. BACKENDS: Windows Hello via the WinRT KEYCREDENTIALMANAGER surface (the `windows` crate, features Foundation + Security_Credentials + Storage_Streams, cfg(windows)-gated). The earlier windows-sys/raw-ncrypt spelling rested on a premise MEASURED FALSE (#222, doyle's 4-arm probe + todlando's independent repro, 2026-08-25: the Microsoft Passport/NGC KSP refuses EVERY plain key name with NTE_INVALID_PARAMETER on open AND create, so the NTE_BAD_KEYSET create cue is unreachable and that route can never enroll on any box). The house rule is therefore the MEASURED one, not the blanket one: windows-sys for Win32 surfaces, the `windows` crate ONLY where the surface is WinRT-only — KCM is the precedent (doyle ruling, 2026-08-25; the crate is already in the graph via netwatch and wmi, so the compile-weight objection is sunk cost). Linux is unchanged; Linux is a NAMED-REFUSAL STUB this milestone — every seam question answers that libfido2 is the named later backend, verbatim, because the honest stub refuses by name while a stub faking availability is a trap (fleet = Windows + one Linux box); any other OS refuses likewise. ENCODINGS: pubkey and signature cross every boundary as LOWERCASE HEX of the backend's raw bytes (the identity.rs / release-keys.json convention — no PEM, no base64, and NO RE-ENCODING BY US: the backend's NATIVE blob rides verbatim as hex, so for `hello-kcm-rs256` the raw bytes ARE the 294-byte DER SubjectPublicKeyInfo the KCM surface returns; `no DER` always meant we never CONVERT INTO DER, never that a backend may not hand us one), and BACKEND KIND is an open string token beside them (the ceremony_kind precedent) so a record names its algorithm family without any consumer parsing key innards; the Hello backend's key algorithm is whatever the platform mints (ES256/RS256 class, NOT ed25519) — the kind token is what keeps that honest, and the cross-node verifier dependency this implies is W2's flagged ruling, not W1's. Gate: doc — the published enrollment page's per-OS backend story; impl — the seam module, the Hello backend, the named-refusal stub; unit — stub arms refuse with the libfido2 name verbatim, pure-decider arms hermetic under injected probes, hex encoding roundtrip, backend-kind token stability (the Hello arm's real OS prompt is field-exercised, stated honestly, not CI-unit-held).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6175096Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6175263Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6175359Z ### REQ-SEAL-ENROLL-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6186185Z - Title: `spt seal enroll-authenticator [--subnet <name>]` ENROLLS THIS NODE'S PLATFORM AUTHENTICATOR INTO A SUBNET'S SECURITY MATERIAL, GATED BY THE SHIPPED TOTP CEREMONY (#217 anchor 1). ORDERED SEAM CHECKS, EACH REFUSING BY NAME BEFORE ANY CEREMONY OPENS (no human should present a code for an enrollment that cannot complete): (1) the binding subnet resolves by the house rule's applicable arms — explicit `--subnet` wins but a subnet this endpoint is not a member of refuses fast by name, otherwise the endpoint's anchor subnet, and no anchor refuses by name (REQ-SEAL-SUBNET-BINDING-DEFAULT arms 1-2; enrollment is node x subnet — no destination, so the shared-subnet arm does not exist here); (2) seam availability (REQ-SEAL-AUTH-BACKEND-SEAM) — including the Linux named stub — refuses verbatim; (3) ALREADY-ENROLLED (the node x subnet key holds a record) refuses by name, NAMING THE EXISTING RECORD'S PUBKEY AND ITS IMMUTABILITY: records are immutable v1 (intake ruling 6 transported), re-enrollment/revocation is STOP-AND-REFER, never a lane decision, so the verb neither overwrites nor duplicates. THEN ensure-keypair runs (the backend's own user-verification prompt), and the verb requests the daemon's TOTP ceremony carrying FACTS — the pubkey hex and backend kind — plus, at the code arm, the PRESENTED CODE, never a verdict (write-through-daemon verbatim: verification, throttle and the record write all daemon-side). The ceremony rides the SHIPPED machinery as an additive purpose (the attach-stream additive-variant discipline of REQ-SEAL-CEREMONY-RC-CLIENT), and the overlay shows an ENROLLMENT BRIEF composed DAEMON-SIDE from the request's facts — naming the enrolling node's key short hex, the binding subnet, the backend kind and the enrolled pubkey's SHA-256 FINGERPRINT (64 hex via the one hash helper; the FULL pubkey hex lives in the record — an RSA public blob is ~588 hex chars (294-byte DER SPKI), measured, which no human can compare, and a fingerprint is what consent can actually read) — shown verbatim as ceremony content (the content-shown discipline: the human consents to THIS key for THIS node on THIS subnet), with the brief's own text carrying the ENROLL framing so even a chrome that says seal cannot misrepresent what is consented. THE THROTTLE IS THE EXISTING trust/seal-ceremony-gate.json LEDGER — enrollment mints NO new ledger (the denial-of-governance separation holds; a ruling is the only path to one) — throttle-before-verify, member-or-admin of the binding subnet, both seeds combined bitwise, cancel spends nothing: all inherited by riding the one ceremony-code path. ON ADMIT the daemon writes exactly one enrollment record (REQ-SEAL-ENROLL-RECORD-SUBNET-MATERIAL) under the same apply serialization as seal records and replies the record's fields; the verb prints them line-oriented. EXIT 0 IFF ENROLLED; every non-admit outcome (no-surface, throttled, refused, cancelled, ledger-unwritable) is nonzero carrying the daemon's own token and detail VERBATIM — the CLI never re-words a refusal it did not decide. Gate: doc — the published verb page; impl — the SealVerb variant + verb fn, the daemon enrollment-ceremony purpose arm + record write; unit — subnet-resolution arms (override wins, non-member override refuses by name, anchor default, no-anchor refuses), seam-unavailable refuses before ceremony, already-enrolled refuses before ceremony naming the record, admit writes exactly one record and exits 0, each non-admit outcome nonzero with the daemon detail verbatim, the daemon-composed brief carries node short hex + subnet + backend kind + pubkey hex and the ENROLL framing.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6195316Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6195496Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6195611Z ### REQ-SEAL-ENROLL-RECORD-SUBNET-MATERIAL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6204043Z - Title: AN ENROLLMENT RECORD IS DURABLE SUBNET SECURITY MATERIAL, MEMBER-VERIFIABLE BY CONSTRUCTION (#217 anchor 2): `{pubkey_hex, node, subnet, enrolled_at, backend_kind}` — pubkey as lowercase hex of the backend's raw public key bytes, node as THE DAEMON'S OWN NODE-KEY SHORT HEX (the nodeid::load_or_create + registry::key_prefix helper pair, 8 hex chars, the ADR-0054 roster short form — NEVER the hostname, the W2 gate ruling transported verbatim), the subnet name EXPLICIT (unlike a seal record, an enrollment has no minter address to derive scope from — the field is the scope), the mint timestamp in epoch ms, and the backend kind token (REQ-SEAL-AUTH-BACKEND-SEAM's encoding clause). THE STORE IS `trust/enrollments.json` BESIDE THE SEAL STORE — one JSON document, atomic write, a NEW path fn in perch.rs per REQ-HAZARD-SINGLE-PATH-SOURCE, absent/corrupt LOADS EMPTY (the evidence-store degrade polarity: a husk can only LOSE the ability to prove enrollment, never mint false evidence). RECORDS RIDE THE SAME SUBNET-SCOPED REPLICATION FAMILY AS SEAL RECORDS (the dispatch's same-family clause): an ADDITIVE KIND-TAGGED wire record in the Seal stream family's feed (the sealmsg NDJSON discipline — a tagged record an N-1 daemon does not know DROPS CLEANLY per line, never lands as chat, never fails the feed), the emitter re-presenting every enrollment record of the subnet beside its seal records (duplicates free under the join), the pump worker unchanged in cadence. THE APPLY POINT IS INSERT-IF-ABSENT KEYED BY (node, subnet) — records commute, replay no-ops, and the store is a join-semilattice like the seal store; a same-key-different-pubkey arrival is DROPPED WITH THE EXISTING RECORD KEPT and counted as an anomaly, never merged: FIRST-ENROLLED WINS EVERYWHERE, because records are immutable v1 (intake ruling 6) and a conflicting claim for an enrolled slot is either a partition echo or adversarial, and the adversarial copy is harmless only if it can never displace the enrolled key. THE APPLY GATE admits a row only when THIS node is a member of the record's subnet AND the handshake-proven origin node is on that subnet's roster (fail-closed, the REQ-SEAL-STORE-REPLICATES-SUBNET-SCOPED posture verbatim, same NotifPolicy plumbing). Immutable once minted, no expiry and no revocation v1 — a compromised or replaced authenticator is the stop-and-refer case by design. Gate: doc — the published records surface; impl — record struct + store + path fn + wire kind + gate/emit arms; unit — roundtrip persistence, insert-if-absent join (replay no-op, collision-drop-keeps-existing counted as anomaly), gate verdict arms (admitted / non-member-subnet dropped / untrusted-origin dropped), husk-loads-empty, node half is the 8-hex short form never a hostname. int at gate: a record enrolled on one member node readable on another.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6211369Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6211535Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6211641Z ### REQ-SEAL-CEREMONY-FIDO2
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6219809Z - Title: AN ENROLLED (node x subnet) OFFERS THE FIDO2 CEREMONY ON THE MINT PATH (#217 anchor 4): when the daemon's OWN node-key short hex x the binding subnet holds an enrollment record, the ceremony open carries the FIDO2 offer plus the PAYLOAD TO SIGN, composed DAEMON-SIDE with minted_at FIXED BEFORE the request ships — the canonical binding tuple, registry-pinned to the exact spelling `spt-seal-fido2-v1\n{content_hash}\n{minter}\n{minted_at}\n` (versioned domain-separation prefix; UTF-8; trailing newline; field order pinned) — so every FIDO2 record is SELF-AUTHENTICATING from its own fields on any member node (signing content alone would leave minter/time unbound and a rostered rogue node could fabricate a record around a replayed signature). NO signer_node FIELD EXISTS; THE SIGNER IS THE RECORD'S MINTER NODE, and a future signer_node is ADDITIVE-OPTIONAL DEFAULTING TO IT (doyle ruling 2026-08-24: the v1 records are forward-valid by this title — a cross-node signer is a field addition behind a ruling, never a migration). THE REMOTE DEGRADE IS AN OFFER WITHDRAWAL, NOT A FAILURE: the open ships the enrolled node's short hex beside the offer, the client compares it against ITS OWN node and on mismatch renders the ORDINARY TOTP overlay with ZERO error chrome — no doomed sign attempt, nothing in logs or telemetry wearing a defect's costume (doyle rider 1). The client's Hello prompt IS the human-presence ceremony — the seam's sign-payload gains its first production caller — and the client ships the SIGNATURE PROOF, never a verdict: the daemon VERIFIES the proof against the enrolled pubkey (backend-kind dispatch) BEFORE minting, and mints ceremony_kind `fido2` with the additive optional signature_hex (serde default + skip_serializing_if: old records byte-identical, N-1 daemons ignore the unknown field on the seal feed). FAILED-PROOF REFUSALS SPEND NOTHING on the ceremony-gate ledger — a bad signature is not a guess at the shared secret, and charging it would let a broken client shut the gate a human needs (the denial-of-governance direction) — and the overlay FALLS BACK to TOTP code entry on the SAME overlay; a HELLO CANCEL is a fallback-to-TOTP, DISTINGUISHABLE from Esc, which still aborts everything with the TOTP cancel clauses verbatim (nothing spent, nothing minted, requester answered). Gate: doc — the published ceremony page's FIDO2 clause; impl — the offer decision + payload composer + proof-verify + fido2 mint arm; unit — tuple spelling pinned (prefix, field order, trailing newline), offer iff enrolled, proof-verify admits a valid signature and refuses a wrong one without charging the ledger, Hello-cancel falls back while Esc aborts, minted record carries kind fido2 + the signature.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6226618Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6226766Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6226871Z ### REQ-SEAL-FIDO2-RC-CLIENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6232284Z - Title: THE FIDO2 CEREMONY RIDES THE EXISTING ATTACH RECORDS AS ADDITIVE FIELDS, NOT NEW VARIANTS (doyle wire ruling 3, 2026-08-24 — the measured N-1 posture supersedes the variants wording): the ceremony OPEN gains optional offer/payload fields and the upstream CODE record gains optional proof fields, so an N-1 CONTROLLER IGNORES THE UNKNOWN FIELDS AND DEGRADES TO THE PLAIN TOTP OVERLAY — the universal fallback keeps working, nothing hangs, no undecodable record, no refusal even needed; the existing default-false seal_ceremony capability bit keeps gating the ceremony surface itself, and no new bit is minted for the offers. SIGNING IS CLIENT-SIDE WHERE THE HUMAN IS (the rc-paste precedent): the rc client calls the authenticator seam's sign-payload over the daemon-composed tuple bytes and ships the SIGNATURE up the attach wire — a proof, never a verdict; verification, the ledger, and the mint stay daemon-side (an agent on the box can speak the broker's IPC directly, so a client-side decision would be decorative). LOCAL AND REMOTE CONTROLLERS ARE ONE CODE PATH — nothing about remote is special except transport latency, and a remote controller whose node lacks the enrolled key degrades to TOTP through the same seam-refusal fallback every client uses. An old DAEMON never emits the offers, so a new client never sends an unexpected proof to it. Gate: doc — the published page's remote-controller sentence; impl — the additive open/code fields + the client sign arm + the overlay fallback; unit — the open and code records round-trip with and without the new fields (absent fields decode as the plain TOTP shapes — the N-1 arm), the upstream proof record carries signature bytes and has no verdict field, and the client's seam-refusal path folds to TOTP entry.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6236811Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6236969Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6237069Z ### REQ-SEAL-ENROLL-SHORTCUT-E
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6241477Z - Title: `E` ON THE TOTP OVERLAY IS ENROLL-AND-SUBMIT, OFFERED IFF (node x subnet) IS NOT ENROLLED (#217 anchor 5): the daemon stamps the offer on the ceremony open (an additive field — an enrolled pair's overlay NEVER shows E, and an N-1 client ignores the field and simply shows the plain overlay); pressing E runs the client-side seam's ensure-keypair (Hello's own prompt) and ships ONE presented code together with the enrollment FACTS (pubkey hex + backend kind) on the upstream code record's additive fields. ON ADMIT THE DAEMON PERFORMS BOTH-OR-NEITHER UNDER THE ONE APPLY LOCK (doyle wire ruling 3): the enrollment record writes AND the pending seal mints, or NEITHER — a failed enrollment mints nothing and a failed mint enrolls nothing, both halves unit-pinned — so one human code entry yields a consistent pair and never a half-state. Every TOTP clause carries unchanged: throttle-before-verify on the same ledger, wrong code counts and re-prompts, Esc cancels everything spending nothing. An old daemon never offers E, so its clients never send enrollment facts it cannot read. Gate: doc — the published page's E clause; impl — the offer stamp + the E client arm + the both-or-neither admit arm; unit — offer iff not enrolled, enrolled overlays never offered, admitted E writes exactly one enrollment and one seal under the lock, the failed-enrollment arm mints nothing, the failed-mint arm enrolls nothing, cancel spends nothing.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6245147Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6245292Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6245462Z ### REQ-SEAL-FIDO2-SIG-VERIFY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6253299Z - Title: `spt api seal verify` EXTENDS TO THE SIGNATURE FOR fido2 RECORDS, ON ANY MEMBER NODE (#217 anchor 6): when the record's ceremony_kind is `fido2`, BOUND requires the content hash to match AND the signature to verify — the verifier RECOMPOSES the canonical tuple FROM THE RECORD'S OWN STORED FIELD SPELLINGS VERBATIM (the content_hash hex as stored, the fully-qualified minter as stored, minted_at as stored — no re-derivation, no respelling; ANY divergence is NOT-BOUND, never a second canonical form: doyle's exactness rider) and checks signature_hex against the pubkey looked up STRICTLY BY (node, subnet) — the record minter's node half x its binding subnet — in the replicated enrollment store, REFUSING BY NAME when no enrollment record exists there (no fallback to some record with this pubkey elsewhere: the replication scope IS the verification audience, the SEAL_NO_SHARED_SUBNET rationale — doyle ruling 3, 2026-08-24, unit-pinned). ALGORITHM DISPATCH RIDES THE ENROLLMENT RECORD'S backend_kind TOKEN: `hello-kcm-rs256` = RSASSA-PKCS1-v1_5 over SHA-256 of the tuple bytes, the pubkey parsed from the stored DER SubjectPublicKeyInfo, verified by the pure-Rust rsa crate — VERIFY-ONLY IN CORE (signature creation stays behind the authenticator seam; RUSTSEC-2023-0071 is private-key-op timing and cannot reach a verify-only consumer — the dep comment states exactly that with the advisory id, per doyle ruling 1) — and a FUTURE BACKEND ADDS A TOKEN AND A VERIFIER ARM, NEVER A RECORD MIGRATION; an unknown token refuses by name. `hello-rs256` IS RETIRED UNMINTED (#222 ruling, 2026-08-25) and gets NO verifier arm: its mint path was structurally unreachable on every box, so no record can carry it by construction (census: trust/seals.json holds totp records only, no enrollment record exists anywhere) — a record claiming that token is fabricated, and the unknown-token refusal is the honest answer to it. A fido2 record with a MISSING signature is NOT-BOUND (a self-declared fido2 mint that cannot be checked is not evidence); non-fido2 records verify exactly as before — the signature path is additive. `describe` renders the ceremony kind and the SIGNATURE PRESENCE (the fingerprint discipline anywhere a human reads key material). Exit contract unchanged: 0 IFF BOUND. Gate: doc — the published verify clause; impl — the signature arm + tuple recomposition + strict lookup + rsa verify + describe rendering; unit — valid signature BOUND, wrong signature NOT-BOUND, tuple recomposition pinned to stored spellings (a respelled minted_at diverges to NOT-BOUND), missing-enrollment refusal by name distinct from NOT-BOUND, unknown backend token refusal, fido2-with-missing-signature NOT-BOUND, non-fido2 records unaffected.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6260358Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6260514Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6260625Z ### REQ-PSYCHE-INGEST-SERIALIZED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6269580Z - Title: EVERY WRITE INTO A SHARED CONTEXT-STORE WORKTREE IS SERIALIZED BY AN EXCLUSIVE ADVISORY LOCK ON THAT WORKTREE, AND A LOSER WAITS RATHER THAN FAILING (releases#221): concurrent per-agent project-tier ingests commit into ONE shared `p-<project_id>` worktree and race git's `index.lock` and the branch's HEAD ref -- 6 PSYCHE_INGEST_FAIL across 3 agents measured on HFENDULEAM 2026-08-25, `fatal: Unable to create '.../worktrees/<name>/index.lock': File exists` and `cannot lock ref 'HEAD': is at X but expected Y`. THE LOCK LIVES AT THE LEAF GIT OPS OF `BranchStore` -- `commit_in_worktree`, `fast_forward_worktree`, `merge_commit_in_worktree` -- NOT at the ingest call site (doyle ruling 2): the ingest path is one of SIX writers of the same worktree (spt-live reconcile, syncmerge fast-forward + merge, contextstore conflict/rename/monic arms), several of them in OTHER PROCESSES, so a narrow guard leaves the identical collision reachable through a rarer door. It is an EXCLUSIVE FILE LOCK ON A STABLE NEVER-RENAMED SENTINEL keyed by the WORKTREE PATH (the `worker_seq` precedent: fs2, RAII-released on handle drop or process death, so a crashed holder strands no file and there is no stale-lock class to sweep) -- NEVER git's own `index.lock`, which stays exactly what `sweep_stale_index_locks` treats it as. THE LOCK IS NON-REENTRANT AND ACQUIRED ONLY AT THE LEAF, so a caller walking many worktrees (the rename loop) acquires them ONE AT A TIME and never nests -- the no-lock-ordering claim is an ASSERTION IN A UNIT, not a comment (doyle ruling 2 rider). ACQUISITION BLOCKS WITH A BOUND (doyle ruling 3): default 10s (two pulse periods; the guarded op is sub-second, so contention is milliseconds), overridable ONLY by a test-scoped `SPT_TEST_*` env var that never enters the operator vocabulary. A pulse tick MAY block -- it blocks only that endpoint's own driver thread, and failing fast is the very defect. ON TIMEOUT the acquire returns an ERROR carrying THE SENTINEL PATH AND THE ELAPSED WAIT BESIDE THE BOUND (at-budget vs under-budget is the only discriminator between a deadlock and a slow box), and that error rides the EXISTING capture-and-continue seam: PSYCHE_INGEST_FAIL is printed, a hard-ingest strike accrues, and THE DROP FILE IS PRESERVED -- nothing is consumed, so nothing is lost, and the F-032 preserve-pending arm (REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE) is untouched beneath it. THE LOCK IS THE ONLY MECHANISM: no retry belt over git's own lock errors (doyle ruling 4) -- a second handler would make a broken lock invisible, and an index.lock failure observed WHILE the sentinel is held is a FINDING to file, never a transient to swallow. Sibling surface: REQ-PSYCHE-INGEST-FAILURE-LOUD (the misplaced-drop half of the same observability seam). Gate: impl -- the sentinel path fn + bounded exclusive acquire + its wiring at the three leaf ops; unit -- an acquire held by one handle makes a second measure elapsed >= the hold and THEN succeed (the lock is load-bearing, proven by elapsed not by a rate), the timeout error names the sentinel path AND the elapsed AND the bound, the bound is env-overridable in test scope only, a multi-worktree caller's acquisitions are sequential and never nested (the lock-ordering assertion), and a timed-out ingest DELETES NO DROP. int -- TWO PROCESSES committing concurrently into one shared worktree: zero failures, every slice PRESENT by existence read, per-arm durations reported, plus a DETERMINISTIC arm where process A holds the sentinel for a known T and process B's acquire measures elapsed >= T then succeeds.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6278471Z - Required stages: impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6278619Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6278732Z ### REQ-PSYCHE-INGEST-FAULT-BRIEF-WARN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6283223Z - Title: A RESUME BRIEF COMPOSED WHILE AN INGEST FAULT STANDS SAYS SO, IN THE BRIEF (releases#221 leg 2): a terminal ingest failure already LATCHES per-kind (`PsycheBudgets.latch_ingest`, hard budget 3) and already stamps `psyche_host_error`, so the fact is PULLABLE from `endpoint list` -- but it is PUSHED NOWHERE, and the agent whose durable tier just failed to take its commune is precisely the agent about to be rebuilt from the PREVIOUS one, confidently and wrong. The brief gains ONE WARNING LINE beside the existing staleness sentence and in the same voice (the REQ-PSYCHE-INGEST-FAILURE-LOUD invariant-2 family in `resume.rs`) -- reading it IS the recovery, so it names what is degraded and what the reader should distrust. THE TRIGGER IS ANY STANDING INGEST LATCH AT BRIEF-COMPOSE TIME, not only the terminal strike (doyle ruling 5): the latch IS the standing-fault vocabulary, and a brief composed under a standing fault is exactly the degraded read the ticket is about. NO DURABLE MESSAGE IN V1 -- the brief reaches the agent at the ONE moment the fact is actionable, while a message would also reach it mid-work where it can do nothing. A clean latch set adds NOTHING to the brief: the healthy brief's bytes are unchanged, so the warning's presence is the signal and its absence is not a claim of health by omission. Gate: impl -- the latch read at compose + the warning line; unit -- a brief composed with a standing ingest latch carries the line and names the fault, the SAME brief with no standing latch is byte-identical to the pre-change shape (the vacuity guard: a line that always renders proves nothing), and a standing TURN latch alone does NOT emit the ingest warning (the per-kind separation BAROMETER W1 built must not be undone by the reader).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6287664Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6287813Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6287917Z ### REQ-ENDPOINT-DROP-DIR-SURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6293889Z - Title: THE REGISTERED COMMUNE DROP DIR IS READABLE FOR THIS NODE'S OTHER ENDPOINTS, NOT ONLY FOR SELF (releases#224, scope amended at measure-first): `endpoint list --json` HAS carried `drop_dir` on the SELF pin since 2026-08-01 (REQ-PSYCHE-INGEST-FAILURE-LOUD, `registered_drop_dir` resolving through the SAME `spt_live::resolve_endpoint_drop_dir` the daemon ingest anchors on -- one anchor, so the read surface cannot drift from the watcher), and the ticket's premise that no read verb exposes it is FALSE at head and at the shipped 0.62.0 binary; the residual is that the field appears EXACTLY ONCE in the whole roster JSON. The field census's real question is about ANOTHER agent's endpoint -- an orphaned drop is diagnosed by whoever finds it, not by its owner -- so `LocalPerchJson` rows gain `drop_dir` on the SAME terms as their `activity` and `host_error` siblings: read from that perch's own `info.json`, LOCAL ROWS ONLY, additive and `skip_serializing_if` so an endpoint with no recorded cwd/adapter or a manifest declaring no commune dir OMITS the key rather than guessing (an absent field is honest; a guessed dir is worse than silence). SUBNET-REMOTE ROWS (`EndpointRowJson`) STAY BARE (doyle ruling 1): a remote endpoint's drop dir is another NODE'S filesystem fact, and surfacing it here invites acting on a path this machine cannot read. The HUMAN view gains the same fact for SELF -- one annotation line under the self pin, the `psyche-host:` / `input-translation:` family -- so the answer does not require `--json`. Gate: doc -- the published drop-file-protocol clause telling an agent to READ the resolved dir rather than re-derive it, naming both JSON fields and the human line (the DISCOVERABILITY half of the residual: nothing pointed at the shipped field, which is how a multi-round probe happened over a fact that was already there, and how the ticket came to be filed on a false premise); impl -- the local-row field + the human self-pin line, both sourced through the one resolver, never a second derivation; unit -- a local row with a resolvable dir CARRIES it while a row with no cwd/adapter OMITS the key (the pair asserted together, since either alone passes an implementation that is uniform the wrong way), the remote row shape is UNCHANGED (the ruled boundary, pinned so a later widening is a decision and not a drift), and the human self pin renders the dir when known and renders NOTHING extra when not.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6299986Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6300138Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6300238Z ### REQ-EVENT-ATTR-PASSTHROUGH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6306028Z - Title: THE EVENT ENVELOPE'S SENDER-AUTHORED ATTRIBUTE SET IS OPEN, AND THE PUBLISHED CONTRACT STATES THE CLASS RULE, NOT ONLY PER-ATTR OBLIGATIONS: any consumer that re-renders deliveries (adapter pipeline, digest, relay surface) MUST pass through every envelope attribute it does not itself consume — re-emitting from a fixed allowlist of known names silently deletes every attribute added after the list was written (measured 3x in the field; 3rd recurrence was an adapter render keeping only from+body, deleting the seal citation), and the deletion is invisible at the dropping site because nothing there names what it dropped. The ONLY closed list is the receiver-composed STRIP class (trust-warning, mnemonics-json) — a strip list, never a render list. MIRROR SAFETY CLAUSE: a passed-through value stays IN ATTRIBUTE POSITION with its wire escaping intact — unescaping an attribute value into body/frame context hands a hostile sender a forgery seam (a crafted value closes the re-rendered tag and lands text at the consumer's frame level); decode only where the final consumer parses attributes. CONSUME IS DEFINED, NOT LEFT TO THE READER (perri's discriminating question, 2026-08-25): a pipeline consumes an attribute when its handling RE-EXPRESSES the value's distinction to the agent (content re-rendered into its own surface, or a dispatch whose agent-visible outcome differs per value); reading-then-emitting-shared-output is peeking, and the DROP TEST decides — if omitting the attr makes two sender-distinct deliveries indistinguishable at the agent surface, it rides. NAMES ARE TOKENS: grammar [a-z0-9_-]+, hostile-reachable (envelopes arrive from peer NODES), pass through only a grammar-matching name, refuse/drop loudly anything else in tag position. Gate: doc — the overview.md wire-contract clause stating the pass-through obligation, the consume definition + drop test, the name-token grammar rule, and the escaping-position rule.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6311195Z - Required stages: doc
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6311327Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6311442Z ### REQ-UPDATE-COMPOSITE-EXIT-PRECEDENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6319912Z - Title: THE COMPOSITE UPDATE'S EXIT IS FOLDED BY PRECEDENCE, NEVER BY WRITE ORDER (releases#216): `cmd_update_composite` aggregated leg exits with `worst = code` — the LAST nonzero, not the worst — so under `--restart` (the only plan where a leg runs AFTER the isolated adapters leg) an Adapters FAILURE of 1 followed by a Finish REFUSAL of 3 reported 3, and a refusal MASKED a failure. That inverts REQ-UPDATE-REFUSAL-EXIT-DISTINCT's contract, whose 3 means refusal present AND no failure — the same class of misread as the releases#153 field report where a refused fleet roll recorded itself as rolled. THE TOTAL ORDER IS 0 < 3 < EVERY OTHER NONZERO, classed BY VALUE and never by which constant minted it (the tree holds TWO distinct 3s — `EXIT_NOT_ELEVATED` and `EXIT_REFUSED_NO_WORK` — and a fold that cared which one it saw would grow a second vocabulary to drift from). An UNKNOWN nonzero is FAILURE, not refusal (doyle ruling 1): mapping an unminted code to the polite class would re-create this very defect for a code nobody has designed yet, and clap's usage `2` therefore sits in the failure class too, which is what makes the fold TOTAL. WITHIN A CLASS THE FIRST-SEEN CODE SURVIVES (doyle ruling 2) — the earliest failure is the one whose diagnostics the operator has already read, and later-overwrites-earlier is the defect mechanism itself. THE AGGREGATION CONTRACT IS STATED WHERE BOTH AUDIENCES READ IT: in the function's own doc (it stated the abort-vs-isolate failure policy and said NOTHING about aggregation, which is how the face stayed invisible to a source reader) AND on the published self-update page, because callers SCRIPT on these codes and a consumer misreading this surface is the documented history. SCOPE DECLARED, NOT ASSUMED (doyle ruling 3): this requirement covers the FOLD and the LEG ORDER that makes the defect reachable. That the composite PLUMBING routes each real leg's exit into the fold against the real binary stays UNPROVEN by this lane — an end-to-end arm would have to manufacture an adapters failure and a finish refusal, and what it would add beyond the units is that two legs still return codes their own suites already pin; the gate reads the single fold call-site as the review-arm for it instead. Gate: doc — the published self-update clause naming the precedence and both classes; impl — the pure fold + its ONE call site in the composite loop; unit — BOTH DIRECTIONS asserted together (failure-then-refusal folds to the FAILURE and refusal-then-failure folds to the same failure, since a fold that merely reversed the write order passes either arm alone), an unknown nonzero outranking a refusal, first-seen surviving within the failure class, success never outranking anything, and the leg plan pinning that Adapters PRECEDES Finish under `--restart` (the ordering the defect needs — a later plan change would silently un-reach it and the fold's arms would keep passing).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6327210Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6327362Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6327472Z ### REQ-ACL-LOCAL-SUBJECT-ONE-SHAPE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6338633Z - Title: EVERY LOCAL FEEDER OF THE ADMISSION GATE HANDS IT A PROVEN ENDPOINT ID OR NOTHING — ONE MEANING, ONE SPELLING (releases#215): `gate::admit_local_delivery`'s `sender` is a SUBJECT (`Subject::SenderEndpoint` matches it by equality), and its three local feeders disagreed on what they put there — `spt send` passed the session-proven bare id, `spt ring` passed `resolve_from(--from)` (where an EXPLICIT `--from` BEATS session detection), and `notify` passed `NotifRow.from_id`, the COMPOSITE `{issuer}@{node_hex}`. A tier-1 rule an operator wrote for endpoint `ling`, that the CLI accepted and the view renders, therefore covered two of three local delivery verbs and COULD NEVER MATCH ON NOTIFY: it failed in the SILENT direction. `access_check_with_sender`'s own doc already forbade exactly this (NEVER pass `WanMessage.from` here -- an explicit `--from` beats session detection in `resolve_from`, so it would admit a forged subject), as does REQ-ACL-SUBJECT-CHAIN's ratified title — the code contradicted three landed documents. NOT FILED AS A SECURITY CLAIM, deliberately: REQ-ER-INBOUND-LOCK-ALL-PATHS already publishes same-user local code as outside what any spt gate holds, so a forged-subject framing would overclaim against a boundary we published ourselves. THE REMEDY IS ONE DERIVATION SITE, NOT THREE CORRECTIONS: `session_proven_sender` is threaded IN from the CLI (`ring::ring` gains a `sender_proven` parameter in `cmd_send`'s shape) rather than re-derived inside each verb, and `cmd_notify`'s INLINE RE-SPELLING of `resolve_from`'s body — the drift mechanism that let two sites diverge with neither looking wrong on its face — is replaced by a call to it. NOTIFY PASSES `None` AND TIER 1 ABSTAINS (doyle ruling 6): the chain falls to the node tier, byte-for-byte the documented behaviour for a sender who proved nothing. Splitting the composite at `@` is REFUSED as a fix — deriving a subject from a DISPLAY string is the same defect one layer down, and `from_id` legitimately carries the composite FOR RENDERING, which a fix blaming it would break. THE SMALLER PROMISE IS RECORDED, NOT SWALLOWED: a tier-1 rule about `ling` still does not MATCH on notify — it abstains BY DESIGN — and carrying a proven-sender field on the row so it could match is tracked as a separate EVAL item, never as delivered here. THE AUTHORING-TIME REFUSAL GAINS THE OTHER HALF OF THE SAME CONFUSION (doyle ruling 5): `build_access_rule` already refuses a sender-endpoint rule on a surface carrying no proven sender (`ACCESS_DEAD_SUBJECT`, REQ-ACL-SURFACE-ATTRIBUTABILITY) — it now also refuses a COMPOSITE typed into the bare-id slot (`--endpoint ling@<node>`), which can never equal a proven bare id, in that arm's existing vocabulary. A rule that can never match must refuse at authoring time whichever half of the confusion produced it. SIDE EFFECT PINNED, NOT LEFT INCIDENTAL (doyle ruling 9): `admit_local_delivery` records the stateful-firewall reply window with `note_outbound(sender, …)` — the SAME string — so a caller-chosen id could open a reply window it never earned; one argument feeds both, so normalizing the feeders closes it BY CONSTRUCTION and a unit asserts that rather than leaving it to be re-derived. That closure is reported on the ticket carrying its own limit verbatim: its consumers were read, never measured. Gate: impl — the threaded `sender_proven` parameter + the notify `None` + the `cmd_notify` call to `resolve_from` + the composite-subject refusal; unit — the three feeders asserted TOGETHER (send and ring hand a proven bare id or None; ring's gate subject is UNCHANGED by an explicit `--from`, the arm that fails on the pre-fix spelling; notify hands None so tier 1 abstains rather than judging a display string), the composite-into-bare-slot refusal named and distinct from `ACCESS_DEAD_SUBJECT`'s surface arm, and the `note_outbound` window opening only for a proven subject.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6348368Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6348515Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6348617Z ### REQ-IO-EVENT-BUS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6351611Z - Title: THE IO EVENT FUNNEL IS CONSUMER-AGNOSTIC INTERNALLY: emitters publish to ONE bus and the bus fans out to registered sinks (emitters -> bus -> {shell-link, core consumers}), so the adapter-consumption work tracked as releases#234 lands as a NEW READER registering a sink and never as a funnel rework. No emitter names a consumer and no consumer is reachable except through the bus; a sink list with exactly one entry today is the point, because the second entry must cost a registration rather than a refactor. ONE SINK FAILURE NEVER SUPPRESSES ANOTHER: publish returns a per-sink outcome and a failing sink is reported and stepped over, never propagated as a publish failure — an IO event is an OBSERVATION, and an observation that aborts the operation it observes has become a control path, which is the defect class this funnel exists to avoid. Emission is best-effort against the emitting operation: no `api state` call, no send, and no delivery may fail, block, or change its exit because a sink failed.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6354135Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6354283Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6354379Z ### REQ-IO-EVENT-TAXONOMY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6357585Z - Title: THE IO EVENT VOCABULARY IS CLOSED AND NAMED IN ONE PLACE: USER_INPUT, AGENT_OUTPUT, MSG_IN, MSG_OUT, COMMUNE, COMMUNE_FAIL, plus TOOL_USE which is NAMED IN THE TAXONOMY AND HAS NO EMITTER (operator ruling 3 — its unlock is a per-harness digest capability, and naming it now is what keeps a later emitter from minting a second spelling). IO FRAMES ARE COMMAND-CLASS under the shell channel taxonomy (operator ruling 7): discrete, durable, spooled — they ride the shellchan spool path and MUST NOT route through drivehub or activity_write, which are the ephemeral latest-wins machinery ADR-0048 decision 2 defines for ACTIVITY frames. Two frame classes share one stream and share NO machinery; a future reader must not be able to reach an IO frame through the drive hub. PAYLOAD IS BOUNDED AT 16KB-CLASS with an explicit `truncated` flag and a digest `seq` pointer, because the digest stays the content surface and the frame is the push signal: a consumer that needs the untruncated body follows the seq. Truncation is UTF-8 SAFE (cut on a character boundary, never mid-codepoint) and a truncated frame is still a valid frame.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6360612Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6360765Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6360860Z ### REQ-IO-INGEST-STATE-PAYLOAD
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6367021Z - Title: THE BUSY/IDLE INGEST EDGE CARRIES AN OPTIONAL PAYLOAD, AND EMITTING IT NEVER TOUCHES THE IDLE-EDGE STAMP (doyle W1 rulings 1 and 2). `api state busy` carries the USER_INPUT payload and `api state idle` carries the AGENT_OUTPUT end-of-turn payload; the payload arrives on STDIN or via `--payload-file`, never as an inline argument (payloads are 16KB-class and an inline arg is the Windows command-length trap; `spt send` already reads bodies from stdin, so stdin is house precedent). SUPPLYING BOTH STDIN AND --payload-file IS AN IMMEDIATE NAMED REFUSAL — house style refuses ambiguity rather than guessing which the caller meant. THE PAYLOAD IS OPTIONAL AND ITS ABSENCE IS THE BACK-COMPAT ARM: a call with no payload behaves byte-for-byte as it does today and emits NO event, which is what lets every already-shipped adapter keep firing this verb on every hook across the release that lands this. THE DECOUPLING, which is the load-bearing decision: one IO event is emitted per PAYLOAD-CARRYING `api state` call, while `stamp_transition`'s edge-only rule is left byte-for-byte untouched. Binding it to the transition edge instead would mean an adapter that reports idle without ever reporting busy emits exactly ONE event for the life of the endpoint. The alternative of stamping every report is REFUSED BY NAME: ADR-0048 decision 3 anchors an idle countdown to the flip instant, and walking that instant forward on every hook fire is precisely the defect that decision exists to prevent, so a consumer countdown could never fire. Core does NOT dedupe calls — EXACTLY-ONCE SPAN REPORTING belongs to the adapter under the manifest IO-compliance declaration (respec'd releases#238, gated 2026-08-29): every reported payload span is reported exactly once across the turn, mid-turn spans and the closing remainder disjoint. The once-per-turn spelling this replaced was true only while end-of-turn was the sole AGENT_OUTPUT shape. A MID-TURN SPAN IS AN AGENT_OUTPUT REPORT ON THE BUSY ARM marked by the mid attribute — see REQ-IO-MIDTURN-SPAN, which owns that arm; this requirement keeps the payload plumbing and the decoupling.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6372550Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6372708Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6372808Z ### REQ-IO-MSG-EDGES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6375374Z - Title: MSG_IN AND MSG_OUT ARE ACCOUNTED AT THE DELIVERY EDGES CORE ALREADY OWNS, not at a new interception point: MSG_OUT publishes where the send path commits an outbound message and MSG_IN publishes where core delivers or injects an inbound one, so the funnel observes the edges rather than growing a parallel notion of what a message is. THE INGEST-SCOPE BOUNDARY IS ESTABLISHED HERE EVEN THOUGH THE PARSERS LAND LATER (operator ruling 11): a received message body is INGEST DATA and never a parse surface — no MSG_IN body may fire a dispatch or a ceremony at the receiver, and W1 is where MSG_IN gets published in a shape that keeps the later parsers structurally unable to read it as agent output. Emission is best-effort and never alters delivery: a message is delivered, spooled, or refused exactly as it is today regardless of what the funnel does with the observation.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6377614Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6377763Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6377867Z ### REQ-IO-COMMUNE-EVENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6382272Z - Title: A COMMUNE IS ACCOUNTED AT THE DELETION CORE ALREADY PERFORMS, CARRYING THE DROP FILE CONTENT VERBATIM (operator ruling 5). The event fires where `ingest_drops` consumes a commune drop and unlinks it — the seam core already owns — and its payload is the bytes of that file, never Psyche output, never echo-commune output, never the composed brief a resume renders from it. Wake markers (`!!wake!!`) are the harness adapter's construct and get ZERO special treatment here: core carries the text through untouched and does not parse, strip, or act on them. TWO DELETIONS EXIST AT THIS SEAM AND ONLY ONE IS A CONSUMPTION: the F-032 commit-before-delete branch (REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE) deliberately PRESERVES a commune drop whose project slice could not be committed, rewriting it in place for a later resolvable ingest, and deletes only a SIGNOFF source there — a drop on that branch has not been consumed, it is coming back, and emitting for it would double-fire when the real consumption later deletes the same content. Emission is therefore keyed on the CONSUMPTION OUTCOME the ingest already reports (`preserved` false) rather than on reaching a call to remove_file, so the preserved path is excluded structurally instead of by a condition a later edit can drift past. A DELETED SIGNOFF DROP EMITS NOTHING: the vocabulary has no SIGNOFF token and one is not borrowed. Emission never alters ingest: a drop is consumed, preserved, or left to retry exactly as it is today regardless of the funnel.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6386167Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6386350Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6386450Z ### REQ-IO-COMMUNE-FAIL-EVENT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6389505Z - Title: A FAILED COMMUNE INGEST EMITS A NAMED REASON AND LEAVES ITS FILE ON DISK (operator ruling 6). Today a failing ingest is a bare `PSYCHE_INGEST_FAIL` line on the daemon's stderr — the failure is real, the drop survives as the on-disk diagnostic, and NOBODY IS TOLD: the measured instance is six such lines across three agents in one day, produced by a shared-checkout git index.lock collision, none of which reached the agents whose context was not rebuilt. The event is the push signal that silence is missing; the surviving FILE remains the diagnostic and is never deleted by the failure path. The reason is CARRIED, not re-derived: the sweep already composes a named reason and already keeps the FIRST failure across drop dirs, and the event publishes that same string, so the event and the log line can never disagree about why. Emission is best-effort and never alters ingest — a failed ingest retries on the next pass exactly as it does today.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6391928Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6392094Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6392208Z ### REQ-IO-SUPPRESSION-GRAMMAR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6394944Z - Title: ONE SUPPRESSION GRAMMAR, CORE-OWNED, SHARED BY EVERY SHORTFORM (operator ruling 8). A shortform marker inside an inline backtick span or a fenced code block is a QUOTATION and fires nothing — that is how an agent writes about a tag without dispatching one, and how a code sample containing a marker stays a code sample. The grammar lives in ONE place and is applied by every shortform reader: the `@<…@>` parser of this wave and the `;;` seal-mint of the next, so the two can never disagree about what is quoted. A second spelling of suppression is the defect this requirement exists to prevent — an author who learns the rule from one surface must not be surprised by the other. The masking is computed over the raw text before any marker scan, so a marker is either inside a suppressed region or it is live, never both, and nesting is resolved by the outer region: a backtick span inside a fenced block is simply more fenced content.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6397302Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6397457Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6397552Z ### REQ-IO-SHORTFORM-GATE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6400671Z - Title: SHORTFORM IS ENABLED PER-ADAPTER, ONLY ON A MANIFEST IO-COMPLIANCE DECLARATION (operator ruling 9), AND A DECLARING ADAPTER MAY STILL OPT OUT (ruling 8). Absent the declaration core parses NOTHING for that adapter, which is what makes the migration safe: every adapter shipping its own parser today keeps parsing, alone, until its own release declares compliance and deletes the local parser in the same change — so no release exists in which both parse the same text and dispatch it twice. THE DEFAULT IS OFF AND THAT IS LOAD-BEARING: a default-on core would double-fire against every already-shipped adapter the moment core upgraded, which is precisely the window ruling 9 forbids. The manifest fields are additive and N-1-safe (absent in older manifests, omitted from serialization when unset), so an older core reading a newer manifest and a newer core reading an older one both behave as they did before. Core owns the field and the gating; the handshake with each adapter's own release is the gater's boundary, not this requirement's.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6403515Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6403673Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6403763Z ### REQ-IO-SHORTFORM-DISPATCH
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6406554Z - Title: CORE PARSES `@<targets body @>` OVER INGESTED AGENT OUTPUT AND USER INPUT ONLY, AND DISPATCHES THROUGH THE NORMAL SEND PATH (operator rulings 10 and 11). The grammar: `@<` opens, comma-separated target ids run to the first space, the body runs to the first `@>`. THE INGEST-SCOPE BOUNDARY IS ABSOLUTE AND STRUCTURAL: parsers run over USER_INPUT and AGENT_OUTPUT ingest only and NEVER over a MSG_IN body — a message that ARRIVES carrying a live tag can never fire a dispatch or a ceremony at its receiver, because a peer's text is data about a tag, not an instruction to send one. That boundary is held by which funnel path the body traverses rather than by a kind check a later edit could widen. Dispatch reuses the delivery path core already owns — no parallel send machinery, no second notion of what delivery means — so admission, sealing, spooling and refusal behave exactly as they do for an operator-typed send.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6408870Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6409157Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6409256Z ### REQ-IO-DISPATCH-RESULTS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6411866Z - Title: A SHORTFORM DISPATCH ACCUMULATES A PER-TARGET RESULT, AND THAT IS ITS ONLY CONFIRMATION CHANNEL (operator ruling 10). Each target of a parsed tag records what actually happened to it — delivered, or no perch — accumulated as the v1 DISPATCH_RESULTS category; the seal-mint outcomes and refusals of the next wave accumulate into the same category. RENDERING IS NOT THIS WAVE: the now-signal verb that surfaces these lands with #233, so this requirement delivers accumulation with no reader yet, deliberately — the same shape as the event bus shipping with one sink, and for the same reason, that the reader must cost a registration rather than a rework. No other confirmation channel may be added: an author learns what their dispatch did through the now-signal and nowhere else, so a dispatch must never grow its own bespoke echo, log line, or reply message as a substitute.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6414094Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6414247Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6414352Z ### REQ-IO-SEAL-SHORTFORM-GRAMMAR
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6420619Z - Title: THE `;;` SEAL-MINT SHORTFORM PARSES UNDER THE SAME SUPPRESSION GRAMMAR AS `@<…@>` (operator rulings 8 and 12-14). Pairs parse GREEDY LEFT-TO-RIGHT and each pair mints its OWN ceremony, run sequentially — two pairs in one turn are two seals over two texts, never one seal over the span between them. AN EMPTY PAIR `;;;;` IS FULLY IGNORED: no ceremony, and NO REFUSAL either, because an author who typed nothing between the markers asked for nothing and a refusal would be noise about a non-event. AN ODD TRAILING `;;` IS THE BARE CASE and seals ALL TEXT AFTER IT THROUGH END OF OUTPUT, with the text between the last completed pair and the bare marker left UNTOUCHED — the bare marker is a decision to seal the remainder, not a retroactive claim on what preceded it. Pair parsing runs FIRST and the bare case is what an odd marker becomes after pairing, which is the only order under which `;;a;; tail ;;rest` has one pair and one bare seal rather than an ambiguous three-marker soup. Detection covers AGENT OUTPUT and USER INPUT alike (CONTEXT.md): either author path mints, because the user typing the directive verbatim and the agent drafting it are the same intent. THE BARE CASE IS REACHABLE ONLY AT THE TURN-CLOSE INGEST (releases#238, design gated 2026-08-29): mid-turn, END OF OUTPUT names text the parser HAS NOT SEEN, so a per-chunk bare seal would silently seal a SHORTER region than the author asked for — a correctness failure indistinguishable from success in the output. In a mid span an odd trailing marker therefore mints NOTHING and is refused by name as SEAL_BARE_MIDTURN, routed into the shipped DISPATCH_RESULTS surface rather than a rival refusal beside it, with the refusal text naming the fix (close the pair, or place the bare marker in the turn's closing output). PAIRS are self-delimiting — both ends present in the chunk — and keep minting mid-turn exactly as ruled, which is what honours the operator's parse-all-agent-output ruling. At the idle turn-close ingest ruling 14 stands verbatim, because there end-of-output is text the parser holds in full. This narrowing costs core ZERO cross-call state, which is what keeps the no-turn-assembly boundary free of an exception.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6426128Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6426293Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6426393Z ### REQ-IO-SEAL-SHORTFORM-CEREMONY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6430085Z - Title: A `;;` MINT RUNS THE EXISTING SEAL CEREMONY, OFF THE HOOK PATH, AND ITS REFUSAL IS THE ONE ALREADY SHIPPED (operator ruling 15 + the async rider ruled 2026-08-27). The ceremony is `Brain::seal_ceremony` — the same TOTP human-presence path `spt seal mint` runs; no second ceremony, no second refusal. WITH NO CAPABLE CONTROLLER ATTACHED the ceremony already answers an immediate named `SEAL_NO_CEREMONY_SURFACE` with no pending state and no timeout queue, and W4 ROUTES that outcome into DISPATCH_RESULTS rather than minting a rival refusal beside it. INGEST-FIRED MINTS ARE ASYNC-DISPATCHED: the `api state` call returns immediately and the ceremony runs off the hook path, because that ceremony blocks for a human-scale duration and an adapter hook that blocks on a human overlay is the wedge class this project has refused twice already (the `--payload-stdin` sniff and the pump deadlines). THE TWO IMMEDIACIES ARE DIFFERENT AND BOTH HOLD: `immediate, never queued` pins CEREMONY SEMANTICS — nothing waits for a controller to show up — while the hook's return is PLUMBING, so an async hook does not weaken ruling 15. A reader must be able to see that distinction in the code rather than rediscover it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6433220Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6433382Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6433473Z ### REQ-IO-MIDTURN-SPAN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6440126Z - Title: MID-TURN AGENT OUTPUT IS AN AGENT_OUTPUT EVENT CARRYING A mid ATTRIBUTE, NOT A NEW KIND (operator ruling, releases#238 comment 5461768445; design gated 2026-08-29). An adapter reports a span while the agent is BUSY, so the span arrives on the busy arm of api state and must be typed AGENT_OUTPUT there: state_io_kind gains a THIRD ARGUMENT and stays pure — busy+payload without the flag is USER_INPUT unchanged, busy+payload WITH it is AGENT_OUTPUT with mid set, idle+payload is AGENT_OUTPUT unchanged, and a payload-free call still emits nothing. THE FLAG AT IDLE IS A CONTRADICTION AND IS REFUSED BY NAME (STATE_MID_ON_IDLE), as is the flag with no payload; both are argument validation refused where STATE_PAYLOAD_AMBIGUOUS is refused, so the funnel's rule that an observation can never fail the operation it observes is untouched. THE ATTRIBUTE IS PRESENT-ONLY, spelled mid=1 on the frame in the house form truncated already uses, a skip-when-false row field, and a poll field emitted only when set; an enum spelling was refused because an enum invites an ORDINAL, and core cannot know a span's ordinal without modelling turn assembly, which the funnel refuses. THE ATTRIBUTE MUST BE MINTED AT EVERY SITE BECAUSE THE #234 READER DOES NOT PASS UNKNOWN ATTRIBUTES THROUGH — measured at sha 786d2381: IoLogRow carries no flatten and no deny_unknown_fields so serde ACCEPTS AND DISCARDS an unknown key, and render_json is an explicit per-field allowlist projection, so an unretained field could never reach an adapter. The attr-passthrough precedent is a fact about the EVENT wire, not about this reader. AN OLDER READER IS NOT VERSION-GATED: it reads a mid row as an ordinary end-of-turn report and therefore OVER-COUNTS TURNS, which is acceptable because nothing emits a span unless an adapter asks, a new kind is exactly what the operator ruled against, and the body an old reader gets is real agent output verbatim and in order. THAT NO-GATE ARGUMENT RESTS ENTIRELY ON UNKNOWN-FIELD TOLERANCE, so the forward-compat unit is REQUIRED rather than optional (gater rider, 2026-08-29): a stored row carrying a field this binary does not know must be READ, not skipped — unpinned, a later deny_unknown_fields would make parse_line answer None and the reader SKIP the row in silence, turning a forward-compatible record into a quiet poll.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6445918Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6446079Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6446184Z ### REQ-IO-BOUNDARY-EVENTS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6454551Z - Title: ENDPOINT BOUNDARIES ARE THEIR OWN FRAME CLASS ON THE WIRE, CARRIED BY THE SHIPPED IO FUNNEL UNDERNEATH (operator ruling releases#239 comment 5461768503; carrier design gated 2026-08-29). THE WIRE CATEGORY IS RULED AND NOT REOPENABLE: boot/clear/compact ship as a NEW boundary frame category with EVENT-CLASS SEMANTICS -- edges, ordered, each occurrence matters -- and explicitly NOT as an activity subset, because activity is drive-class latest-wins and would drop edges by construction. That premise is true at the IMPLEMENTATION and not merely in the doc that asserts it: write_activity is a single latest-wins slot and take_activity takes AND clears, so a clear followed by a compact before a poll loses the clear outright. THE THREE VARIANTS ARE MINTED WHOLE in one closed list and are NOT new spellings -- SessionTrigger::token() already answers exactly boot/clear/compact and already serves as the boundary marker kind in the spanned digest, so the emitter MAPS FROM THE TRIGGER rather than typing a literal, which is what keeps the wire and the ledger from drifting into two vocabularies for one concept. THE CARRIER WAS A SEPARATE DECISION AND IT WENT TO THE SHIPPED FUNNEL: same bus, same durable per-endpoint io log, same api io events cursor, NO TRIM CHANGE. A boundary-first trim ordering was proposed and REFUSED at the gate because it breaks the trim's own deciding arithmetic -- seqs are contiguous BECAUSE eviction is front-only, so skip-boundary eviction makes the row count overcount by every hole and fires a whole-file rewrite on every append past that point, which is the cost the trim slack exists to amortize. THE FRAME CLASS IS A FUNCTION OF THE KIND AND OF NOTHING ELSE: the two vocabularies are disjoint (SCREAMING_CASE io kinds, lowercase boundary variants, pinned by a test rather than left to habit), so the sink reads the wire class off the closed list with no second field to keep in sync. THE BODY IS EMPTY AND THAT IS LOAD-BEARING (the activity precedent, not the io one): a boundary's entire content is which edge and when, and there is no untruncated version of it living anywhere else. ONE EVENT PER REAL BOUNDARY: sessions::append answers Ok(false) for a same-session re-bind and calls that not a new boundary in its own words, so both emitters gate on it -- publishing off the ATTEMPT would emit an edge on a call that crossed none and make the funnel disagree with the ledger written by the same call. THE EMITTER PUBLISHES THE COERCED TOKEN, NEVER THE CALLER WORD: cmd_boundary reads an unknown mode as clear rather than refusing it, so the raw argument would put an unbounded string on a closed wire vocabulary. EMISSION IS BEST-EFFORT AND CAN NEVER FAIL THE BOUNDARY IT OBSERVES, the rule the boundary's own ledger append already holds. THE OBSERVATION CONTRACT IS A DOC DELIVERABLE, NOT A NICETY (gate rider): a live-attached shell receives the pushed frame, a session-cursor poller sees every boundary from its seed forward, and history before first contact is reachable only by an explicit --after and only within the retention window -- boot in particular is observable live and by an early --after and is NOT replayed to a silently-seeded consumer. Unstated, the carrier's one real limit is discoverable only by someone who already knows it, which is how an undiscoverable shipped surface re-files itself as a bug.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6462849Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6463009Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6463128Z ### REQ-IO-DISPATCH-RESULT-VOCABULARY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6466137Z - Title: THE DISPATCH_RESULTS ROW VOCABULARY IS MINTED WHOLE, INCLUDING THE ARM NOTHING EMITS YET (ruled 2026-08-27, on the TOOL_USE pattern). One closed outcome vocabulary covers every confirmation the funnel carries: DELIVERED, NO_PERCH, NOT_DELIVERED with the refusing exit code, and the seal-mint outcome and refusal arms. NO_PERCH IS NAMED BUT NOT EMITTED until the W5 lane's typed send-path return can distinguish it — today `cmd_send` answers 1 for a missing perch, an ambiguous target and a refused ring alike, so NOT_DELIVERED carries that coarse code as a TRANSITIONAL arm. Naming the unemitted arm now is the point, exactly as the event taxonomy named TOOL_USE without an emitter: a constant nothing produces costs nothing, while a second vocabulary minted later costs every consumer and turns W5 into a migration instead of a one-arm change. A ROW ALSO NEED NOT NAME A TARGET: a seal outcome is about text, not a recipient, so the target is optional and a consumer must not assume one.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6468629Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6468789Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6468874Z ### REQ-IO-SEND-VERDICT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6473546Z - Title: THE SEND PATH RETURNS A NAMED OUTCOME, NOT AN EXIT CODE, AND THAT IS WHAT POPULATES NO_PERCH (booked as the W5 prerequisite, IO-PARSER #22). Before this, cmd_send_with_body answered 1 for a missing perch, a refused admission gate, an ambiguous target, an unconfirmed WAN hop and an empty body alike, so the DISPATCH_RESULTS accumulator could only record the coarse transitional NOT_DELIVERED arm and the ruled delivered/no-perch split was NOT DERIVABLE AT ALL — a report this lane handed the gater by name rather than approximating. The send path therefore names its own outcomes: DELIVERED covers SENT and QUEUED alike (both mean the message is the target's problem now), NO_PERCH covers every absence arm across all three delivery cascades — the local perch that is not listening, the WAN leg answering no-perch-remote, and the WAN registry answering not-found — and REFUSED carries the exit code for every outcome that is a refusal rather than an absence. THE EXIT CODE IS DERIVED FROM THE VERDICT AND NEVER THE OTHER WAY AROUND: the CLI wrapper maps the verdict to its process code so that the operator-facing contract is unchanged to the byte, while the in-process caller reads the name. AN ABSENCE IS NOT A REFUSAL, AND THE OPPOSITE READING IS THE ONE THIS EXISTS TO KILL: an author whose peer simply is not listening must not be told their message was refused, because those two facts call for different next actions. NO ROW ALREADY WRITTEN IS MIGRATED — the store is append-only, so previously-written NOT_DELIVERED rows stay exactly as written and the arm merely narrows for rows written from here on.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6477684Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6477821Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6477927Z ### REQ-NOW-SIGNAL-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6481090Z - Title: spt api now-signal IS THE ONE SITUATIONAL-AWARENESS FUNNEL (ratified 2026-07-29, access-control grill; releases#233). One verb answers the question an agent asks at the top of every turn — what changed that I should know about — and it renders per-category XML tags nested under a single SPT-NOW-SIGNAL root. The hint verb SURVIVES AS A THIN ALIAS over the HINTS category and gains no independent behaviour, because two verbs answering the same question is how an adapter ends up injecting both and an agent ends up trusting whichever it happened to read. NO SECOND INJECTION FUNNEL MAY BE ADDED BESIDE IT (the design of record names this as the thing to avoid): a surface that wants to reach an agent at turn boundaries registers a CATEGORY here rather than growing its own injection point. The render is composed by ONE composer over a category list, so a category cannot invent its own envelope grammar, and an EMPTY render emits NOTHING AT ALL — not an empty root, because an empty root is a payload that costs context on every poll and says nothing.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6483916Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6484073Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6484167Z ### REQ-NOW-SIGNAL-DELTA
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6487723Z - Title: EVERY NOW-SIGNAL CATEGORY IS DELTA-ONLY, ON PER-SESSION SEEN-SETS, AND A POLL WITH NOTHING NEW EMITS NOTHING (ratified 2026-07-29). This is the keyword-hint mechanism GENERALIZED rather than re-invented per category: each category records what this session has already been shown and reports only what it has not. THE EMPTINESS IS THE CONTRACT, NOT AN ACCIDENT OF THERE BEING NO DATA — the adapter guidance is to inject on every UserPromptSubmit- and PreToolUse-equivalent, which is only affordable if a quiet poll costs zero context, so a category that re-emits an already-shown datum is a defect even though its output is TRUE. THE SEEN-SET IS PER SESSION, not per endpoint and not global: a new session has seen nothing and is entitled to the current picture once, which is what makes the first poll of a session useful without making every later poll noisy. A DESCRIPTION-CLASS DATUM IS SHOWN ONCE PER SESSION by the same mechanism rather than by a bespoke flag. Proving this needs a NON-VACUOUS FIRST POLL BESIDE THE EMPTY SECOND ONE: an assertion that the second poll is empty, standing alone, passes just as well against a verb that emits nothing ever, so the two polls are asserted together as one test.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6491002Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6491163Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6491253Z ### REQ-NOW-SIGNAL-SPEC
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6493684Z - Title: THE HARNESS ADAPTER CAN PRESCRIBE AND TUNE CATEGORIES AT POLL TIME VIA --spec-manifest and --spec-file (ratified 2026-07-29). An adapter knows things core cannot: which categories its harness can render, which are noise in its surface, and what its injection budget is. --spec-manifest reads the tuning the runtime manifest already carries; --spec-file takes the same shape as JSON on disk for an adapter that composes it per poll. A SPEC NARROWS AND TUNES; IT DOES NOT INVENT — a category not in the v1 vocabulary cannot be conjured by a spec, so the vocabulary stays the one closed list every consumer reads. AN ABSENT, UNREADABLE OR MALFORMED SPEC IS THE DEFAULT PICTURE, NEVER A REFUSAL: this verb runs on a hook at every turn boundary, and a poll that fails hard on a bad config file is a hook that breaks a working session over a typo.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6495832Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6495979Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6496089Z ### REQ-NOW-SIGNAL-CATEGORIES-V1
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6500203Z - Title: THE v1 CATEGORY SET IS CLOSED AND EACH CATEGORY ANSWERS ONE QUESTION (ratified 2026-07-29 + operator ruling 10). HINTS carries the keyword-hint payload the alias verb used to. ENDPOINT_MENTIONS fires when the author's words exactly match a known endpoint name and answers existence, online status, node, shared subnets, and the description ONCE PER SESSION. MONICS surfaces the standing judgements a matched trigger raised — the second ratified consumer of the trigger vocabulary, which is why that vocabulary was ratified whole rather than sender-only. SHELLS reports shell instances and adapters, and SUBSUMES AND DEPRECATES the session-start spt-shells message, because the same datum arriving through two channels is the ambiguity this funnel exists to end. LAST_MSGS reports the last outgoing and incoming message as time, relative-to-now, peer, and a short excerpt — enough to re-ground after a reset without re-reading a transcript. EDGE_TRANSITIONS reports endpoint and node on/offline edges and subnet joins. DISPATCH_RESULTS renders the accumulated shortform per-target delivered/no-perch rows and the seal-mint outcomes and refusals, and IS THE ONLY CONFIRMATION SURFACE FOR THEM (ruling 10) — the reader the W3 and W4 accumulators were built to cost a registration rather than a rework. EACH CATEGORY OBEYS THE DELTA DISCIPLINE; none may render an unconditional static payload.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6503901Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6504063Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6504159Z ### REQ-NOW-SIGNAL-UPDATES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6508429Z - Title: THE UPDATES CATEGORY SURFACES RUNNING VERSIONS FOR THREE SUBJECTS, AND THE DELTA DISCIPLINE IS ITS EVENT DETECTOR (releases#245, operator-linked at the #23 intake). The subjects are the ticket's three: spt-core itself, the endpoint's current harness adapter, and the adapter of every shell currently registered to the endpoint -- keyed PER SHELL, not per adapter, because an agent acts on the shell and a version that moved under one instance is the fact it needs. NO EVENT JOURNAL IS BUILT, and that is the design rather than an omission: each subject's seen-set key CARRIES its version, so a session is told once at the version it first observed and hears nothing again until that version CHANGES, at which point the key is new and the line fires. An update event IS a version that differs from the one this session was told about, and the seen-set already answers that question exactly; a separate journal would be a second source for one fact. THE PRODUCT VERSION LEADS FOR spt-core, never the applied-update counter: the counter is a different axis (update-set sequence) from the version an operator speaks, and an agent can only act on the version it is running. ABSENCE IS SILENCE: an endpoint with no update history emits nothing, because no-updates is not an update, and a shell whose adapter is deregistered or unreadable contributes NOTHING rather than an error line -- this rides a turn-boundary hook, where a diagnostic in the payload is noise the author cannot act on. The category is POST-v1: it does not widen the ratified v1 set on our own authority, it is appended after it by operator ruling, and render order is declaration order so the ratified order is untouched.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6512813Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6512965Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6513080Z ### REQ-NOW-SIGNAL-SEAL-BRIEF
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6516014Z - Title: THE SEAL_BRIEF CATEGORY TEACHES SEALING IN AT MOST TWO SHORT SENTENCES, ONCE PER SESSION (releases#18, ruled by the operator at the access-control grill follow-up 2026-07-29; the two-sentence bound is the operator constraint verbatim and is not ours to relax). IT ANSWERS EXACTLY TWO THINGS, in that order: what sealing IS and its significance as a PROVEN USER DIRECTIVE, and how the agent EXECUTES the proof. THE COMMAND IT NAMES MUST BE THE REAL ONE -- a payload whose entire purpose is telling an agent how to act is the worst possible place for an invented verb, and the first draft of this text cited a `spt seal verify` that does not exist; the shipped surface is `spt api seal verify <token>` with the content on stdin, mint via the `;;text;;` shortform. THE TEXT IS A CONSTANT, so the wording has ONE home and the two-sentence bound is auditable at a glance rather than reconstructed from a formatter. ONCE PER SESSION on the standing delta discipline: an agent that has been told does not need telling again, and a brief repeating every turn is precisely the noise that discipline exists to prevent. The category is POST-v1, appended by operator ruling rather than by widening the ratified set.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6519204Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6519351Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6519461Z ### REQ-SHELL-HINTS
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6526691Z - Title: A SHELL ADAPTER'S [[hints]] ARE LIVE TEXT, READ THROUGH THE NOW-SIGNAL HINTS CATEGORY UNDER A PER-SOURCE CAP (releases#133, operator-authored and operator-GREENLIT into NOW-SIGNAL #23; the cap shape ruled by the gater 2026-08-30). THE SCHEMA WAS NEVER THE GAP: hints is a top-level manifest field with no kind gate, so a kind=shell manifest has always parsed, validated, registered and profile-merged its [[hints]] -- what was missing is a READER, because the only reader resolves the ENDPOINT-BOUND manifest and therefore never looked at any other adapter. THE ONE-HINT-PER-MESSAGE CLAUSE (CONTEXT.md keyword hints, ratified 2026-06-12) IS AMENDED BY REPLACEMENT TO A PER-SOURCE CAP: the harness contributes at most one line and EACH shell adapter contributes at most one line, each still once per session. The authority chain is explicit: the clause was ratified when exactly ONE manifest could speak, its ground was flood protection from a single adapter's chatter, and #133 cannot be delivered under a global cap at all -- so the amendment implements the newer operator decision while preserving the original ground per source, where a global cap would convert every second adapter into a structurally mute one that the ground never asked for. TWO ARMS, DECIDED BY INSTANTIATION AND NEVER BY LINK STATE: an adapter this owner holds an instance of surfaces the FULL hint text regardless of whether that instance is online or offline, and an adapter with no instance surfaces only a teaser naming the trigger keyword and the command that shows the text. THE TEASER'S COMMAND MUST EXIST AT THE HEAD THAT SHIPS IT -- the same class as the SEAL_BRIEF phantom verb, and the shipped surface is spt adapter hints <adapter[:profile]>, verified against the built binary rather than remembered. THE SEEN-SET KEY GAINS ADAPTER IDENTITY, because the existing key hashes only keywords, text and the regex flag, so two adapters shipping identical hint text would otherwise share one entry and the first to fire would silence the other invisibly for the session. THE HARNESS KEY SPELLING IS UNCHANGED: qualification is additive and shell-side only, so no session's seen-set forgets what it has already been told when this lands. The shell key also carries its ARM, so a shell that is instantiated after its teaser fired still delivers the full text once -- a teaser tells the agent the hint exists and acting on it must not be punished by silence. ABSENCE IS SILENCE: no shells, no matching keyword, an unreadable or deregistered adapter, or an endpoint bound to no harness manifest at all each contribute NOTHING, and in particular the shell arm is NOT gated on the harness manifest being present, because an endpoint with no bound manifest can still own shells. THE DOC STAGE LANDS WHERE A SHELL-ADAPTER AUTHOR LOOKS (docs-site shells) rather than only in the ratification text, because a manifest section no author can find is a section that reads as absent.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6534142Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6534313Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6534428Z ### REQ-NOW-SIGNAL-EDGE-SUBJECT-NAMING
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6537129Z - Title: THE EDGE_TRANSITIONS SUBNET-JOIN LINE NAMES ITS SUBJECT AS A NODE AND LABELS ITS FALLBACK AS A PUBKEY (releases#11b render rider, ruled 2026-08-30). The join arm reads `RosterEntry`, which is a NODE record (node pubkey, subnet, and a `label` that is the member's OS hostname) -- so the arm is NODE-LEVEL ONLY: there is no endpoint-level join here to distinguish, and a node does not join a subnet FROM another node. THE TICKET'S `z joined <subnet> from <node>` WORDING NAMES AN UNBUILT DATA SOURCE, NOT A MIS-RENDER, and the from-node half went back to the board as its own request rather than being invented here or silently dropped -- that distinction is the whole reason this requirement exists, because the next reader of the ticket would otherwise re-derive it. WHAT IS FIXABLE IN THE RENDER, AND IS FIXED: the line says `node <label> joined subnet <x>` so it states what its subject is, and the unlabeled fallback renders as `pubkey <12hex>...` rather than as a bare hex prefix standing where a name goes, because a bare prefix reads as an endpoint id to every reader who has not opened the function.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6540077Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6540218Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6540329Z ### REQ-NOW-SIGNAL-DEFERRED-CATEGORIES
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6541649Z - Title: PROJECTS (spt-bs-releases#16) AND FILE_ACCESS_HELPER (#17) ARE MINTED AS DEFERRED NOW-SIGNAL CATEGORIES SO THEY ARE NOT LOST (ratified 2026-07-29). They are NAMED, NOT BUILT: v1 ships without them deliberately, and this requirement exists so that the decision is on the record as a deferral with an issue behind it rather than as an omission a later reader mistakes for an oversight. Activating this requirement is what the lane that builds them does; until then it carries no stages and fails nothing.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6542995Z - Required stages: 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6543124Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6543224Z ### REQ-IO-EVENT-ADAPTER-LOG
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6548502Z - Title: ADAPTER-CONSUMABLE IO EVENTS LAND IN A PER-ENDPOINT APPEND-ONLY LOG REGISTERED AS A THIRD BUS SINK (releases#234, operator ruling 2). The funnel's claim was that a second reader costs a REGISTRATION and never a rework, and on the sink side that holds exactly as claimed — this consumer is one `bus.register` line in `default_bus`. THE READER IS FREE, THE STORE IS NOT, and this requirement is the honest half of that claim: neither existing sink writes a per-endpoint, ordered, cursorable surface — the shell-link sink spools per linked shell and the last-msg sink keeps two overwritten slots — so a delta-cursored poll needs a NEW DURABLE STORE, and that store is what this covers. EVERY ROW CARRIES ITS OWN MONOTONIC seq AS THE LINE'S KEY RATHER THAN AS A JSON FIELD: a row is `<seq>` TAB `<json>`, so a cursor scan parses an integer prefix and never the body, and the ordering key cannot become an accident of serialization field order. THE LOG'S seq AND THE DIGEST seq ARE DIFFERENT NUMBERS AND ARE SPELLED DIFFERENTLY (`seq` versus `digest_seq`), because the digest remains the content surface that a truncated payload points at and one name for two counters is a consumer following the wrong one. THE LOG IS BOUNDED PER ENDPOINT AND TRIMMED OLDEST-FIRST so that an adapter which stops polling cannot grow it without limit; the bound is a STATED CHOICE derived from a measured event rate rather than a guessed number, and the trim is amortized against a slack so an ordinary append is not a whole-file rewrite. APPENDS ARE SERIALIZED under an exclusive advisory lock on a stable sentinel, because the daemon publishes from several edges and two racing appends must not mint a colliding seq. A SINK FAILURE IS STILL ONLY A REPORT: this store may not become the first sink whose bad day reaches the operation it observes.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6553198Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6553354Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6553460Z ### REQ-HAZARD-IOLOG-SEQ-MONOTONIC
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6554347Z - Title: IO event log appends mint strictly above the global sequence maximum; a tail window beginning inside a UTF-8 codepoint never produces a false zero. Reset-damaged history is renumbered above its prior maximum in file order under the exclusive lock, and retention keeps the newest rows by position (releases#277).
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6555243Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6555391Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6555491Z ### REQ-IO-EVENT-POLL-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6564421Z - Title: spt api io-events IS THE DELTA-CURSORED POLL A HARNESS ADAPTER READS IO EVENTS THROUGH (releases#234; the operator DELEGATED the mechanics and CHOSE POLL over push). It answers with the rows the caller has not yet been shown and with nothing else. TWO CURSOR MODES OVER ONE ORDERING: `--session-id <sid>` keeps a per-session cursor exactly as `api now-signal` keeps per-session seen-sets, and `--after <seq>` lets a caller carry its own cursor exactly as `endpoint digest --after` already does; naming both is what keeps a stateless adapter and a session-keyed hook off two different verbs. THE CURSOR KEY IS THE AUTH SESSION ID AND NOT A SECOND FLAG BESIDE IT: the harness session is ONE identity, and a `--session` for the cursor sitting one character from a `--session-id` for the gate would be two ways to be wrong about it on a verb an adapter wires once; a token-authenticated caller has no session identity and uses `--after`. A POLL WITH NEITHER CURSOR IS REFUSED BY NAME (`IO_EVENTS_NO_CURSOR`, exit 2) RATHER THAN ANSWERED WITH SILENCE, because a caller who asked an unanswerable question must not read the answer as nothing having happened. A NEW SESSION'S FIRST POLL SEES NOTHING AND SEEDS ITS CURSOR SILENTLY — history is the digest's job, and replaying an unbounded backlog into a turn-boundary hook is the exact cost the now-signal's delta discipline exists to avoid, with EDGE_TRANSITIONS the standing precedent for seeding silently for that reason. PROVING THIS NEEDS THE SEEDED-EMPTY FIRST POLL ASSERTED BESIDE A NON-EMPTY SECOND ONE, because an assertion that the first poll is empty passes just as well against a verb that emits nothing ever. ALL SIX EMITTED KINDS ARE VISIBLE — USER_INPUT, AGENT_OUTPUT, MSG_IN, MSG_OUT, COMMUNE, COMMUNE_FAIL — and AN UNKNOWN KIND IS IGNORED RATHER THAN REFUSED, the same posture the now-signal category vocabulary takes toward a name it does not know. TOOL_USE STAYS UNEMITTED AND THIS VERB DOES NOT CHANGE THAT: measurement says the harness adapter is its natural emitter, which is a question back to deployah and then the operator and must not ride in on this verb. THE PAYLOAD BOUND IS THE 16KB CLASS WITH A truncated FLAG AND THE DIGEST POINTER, MATCHING THE SHELL FRAME AS A CHOICE AND NOT AS AN INHERITANCE — `IoEvent.payload` is deliberately unbounded at the bus layer and the cap belongs to the frame — so that one event reads identically through either transport and a consumer needing the whole body follows the pointer into the digest. THE POLL IS AUTHENTICATED THE WAY `api poll` IS, AND FOR THE SAME REASON: it hands back the session's VERBATIM user input and agent output, which is the payload class addressed to the endpoint's occupant rather than to whoever asks. This is a DELIBERATE DEPARTURE from its sibling reader `api now-signal`, which is ungated because it renders DERIVED summaries — a ten-word excerpt, a category count — and never a raw payload; the gate follows the content, not the verb family. Proof is the `--session-id` an adapter already passes to `api state`, or a capability token, so the gate costs a compliant adapter nothing.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6572127Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6572300Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6572395Z ### REQ-EMIT-SINGLE-WRITE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6572857Z - Title: A machine-parsed diagnostic emission is handed to the OS as exactly ONE write of the complete rendered text including its terminating newline.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6573339Z - Required stages: impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6573482Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6573583Z ### REQ-WEB-URL-NODE-PREFIX
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6579222Z - Title: EVERY SERVED URL IS NODE-PREFIXED, LOCAL RESOURCES INCLUDED (ADR-0056, WEBSERVE grill round 1+2, releases#272/#249). ONE GRAMMAR: the 5474 server answers `/<node-name>/...` for every facet, and a resource on this node is reached by the SAME path here and on every other subnet machine -- the local daemon resolves the prefix and proxies to the owner when it is elsewhere. WHY ONE GRAMMAR AND NOT TWO: un-prefixed-local plus prefixed-remote was rejected because a URL would then mean different things depending on which machine it was pasted into, and a URL that cannot be pasted between subnet machines is a path, not a link -- which is exactly what #147 message links and #17 FILE_ACCESS_HELPER need it to be. Bare `/` REDIRECTS (302) to `/<local-node>/`. The docs server's existing bare paths stay reachable as a COMPATIBILITY ALIAS under the local node prefix and must remain BYTE-TRUE -- REQ-DOCS-LOCAL-SERVER's surface contract is untouched by this change, and the alias is not a second grammar. SUB-NAMESPACE PER FACET so a path says what it is: `f/` registry files, `docs/` the docs site, `a/<adapter>/` adapter docs, `m/<short-id>` message views, `bin/` + `install` the bootstrap surface. ALL FIVE ARE RESERVED AT THE ROUTER IN W0 EVEN WHERE THE FACET IS NOT BUILT: an unbuilt facet answers 404 NAMING THE FACET and must never fall through to a registry lookup, because a reserved prefix that resolves as a served name is how two facets collide later. `/<node>/` itself renders the INDEX PAGE -- the serving registry, path to URL, HTML with a `?json` twin for agents -- which is the what-is-this-node-exposing audit in a browser. A request for `/<other-node>/...` answers 502-with-node until W1 builds the proxy. Scheme is plain http only; an spt:// scheme was rejected as needing a handler on every OS to buy nothing. Gate: doc -- the serving overview page carrying the grammar and the reserved list; impl -- the router's node-prefix resolution, the bare-root redirect, the reserved sub-namespaces, the index page and its json twin; unit -- the redirect, each reserved prefix 404ing by NAME rather than reaching the registry, the docs alias answering byte-identically to its pre-change path, and the index rendering an entry's path and URL; int -- a real server answering the grammar end to end.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6585059Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6585302Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6585427Z ### REQ-WEB-SERVING-REGISTRY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6593119Z - Title: THE SERVING REGISTRY IS THE PRIMITIVE AND SERVED NAMES ARE STABLE AND DISAMBIGUATED (ADR-0057, releases#272/#248). The registry is the node's single enumerable list of what it exposes, and exposure is a DELIBERATE ACT of adding an entry -- so what-is-this-node-serving has exactly one answer. A served root (a dir entry an adapter declares in its manifest) is NOT a second mechanism: it is a registry entry of kind dir, which is what keeps the audit to one command. A drop-folder primitive was rejected because exposure would become a property of where a file happens to sit. STORE: `$SPT_HOME/serve/registry`, spt-store owns the format and the read path, the DAEMON IS THE SINGLE WRITER. ENTRY: id, kind (file | dir | attachment), absolute source path (file/dir) or snapshot path (attachment), served name, registered-at, ttl (attachments only), origin (endpoint id). THE SERVED-NAME RULE, exactly as ADR-0057 and binding clause by clause: the first registrant keeps the bare `<stem>.<ext>`; a later entry whose bare name is taken is served as `<stem>~<n>.<ext>` with the suffix BEFORE the extension so the file still opens as its type; `n` increments per (stem, ext) and THAT COUNTER IS PERSISTED, which is the one piece of state the stability promise costs; the assignment is persisted on the entry so an entry's URL NEVER CHANGES for its life; A FREED NAME IS RE-TAKEN ONLY BY THE ABSOLUTE PATH AND KIND IT LAST NAMED (ADR-0057 Amendment 2, doyle-ruled 2026-09-06 off the W0 smoke: the history records name to last path, so an adapter alias survives deactivate/activate and adapter update), so a stale link answers not-found or the very resource it always named and can never silently open a different one; re-registering the SAME ABSOLUTE PATH returns the EXISTING entry rather than minting a new suffix; an explicit `--as <name>` is subject to the same rule. Disambiguation is PER NODE -- across nodes the node prefix (ADR-0056) already separates names. VERBS: `spt serve add <path> [--as <name>]`, `spt serve rm <name|id>`, `spt serve list [--json]` rendering path to URL. MANIFEST: `web_short_path` is a dir entry registered at adapter activation and removed at deactivation. REFERENCE-SERVED (file/dir) RESOLVES AT REQUEST TIME: an edit is visible and a deleted source answers 404, which is the property that distinguishes a plainly registered file from an attachment snapshot (ADR-0058). Gate: doc -- the serving overview page's registry and served-name sections; impl -- the spt-store registry format and read path, the daemon writer, the three verbs, the manifest-declared served root; unit -- EVERY CLAUSE OF THE SERVED-NAME RULE AS ITS OWN CELL (bare to first, suffix after, counter per (stem,ext) and persisted, freed name re-taken only by its last path and kind while a different path or a changed kind takes the next suffix, same absolute path returns the same entry, --as under the same rule), plus the reference-served resolve-at-request-time behaviour; int -- add, list, fetch and rm through the real server.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6600711Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6600959Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6601084Z ### REQ-WEB-ACCESS-SURFACE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6605966Z - Title: WEB SERVING GETS ITS OWN ACCESS SURFACE AND IT IS MINTED BEFORE ANYTHING DIALS IT (ADR-0060, releases#272/#249/#246). Mint the `WEB` row in the OPEN surface vocabulary -- one row, no schema change, the FORK precedent -- gating every served resource reached ACROSS THE SUBNET, checked by the OWNING node under the handshake-proven origin. DEFAULT-ON WITHIN THE SUBNET, the DISCOVER shape: content in the serving registry is there by a deliberate act (ADR-0057), so the deny lever is for lockdown and not the default; deny-by-default was rejected because a second gate at every read would make the registry a list of things nobody can fetch. NON-ATTRIBUTABLE for now, and that is stated rather than implied: there is no daemon-stamped sender identity yet (the REQ-ACL-SUBJECT-CHAIN tier-1 inertness), so WEB inherits the note that it is the surface expected next to grow a sender stamp, which moves here from the retiring XFER. IN W0 THE ROW EXISTS AND IS RULE-ADDRESSABLE AND NOTHING DIALS IT -- the gate itself is W1's cross-node stream family. This ordering is deliberate: a surface minted with its first consumer would make the vocabulary change and the enforcement change one diff, and the surface table is the thing every rule and knock code is written against. The `--help` Control surfaces section grows the row BY EXISTING (the table is composed, never hand-listed), which is what keeps the published vocabulary from drifting from the table. XFER's retirement is a SEPARATE close rider on #246 (REQ-XFER-RETIRED) and is NOT part of this requirement. Gate: doc -- the access-surface docs page and CONTEXT.md's surface entry carrying WEB; impl -- the row in the surface vocabulary table and its composition into --help; unit -- the row is present, canonicalizes, is addressable by a rule, and defaults on within a subnet, with a guard that NO call site dials it in W0 so the guard reds on purpose when W1 threads the gate in.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6611224Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6611440Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6611619Z ### REQ-XFER-RETIRED
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6617864Z - Title: XFER IS RETIRED FROM THE CONTROL-SURFACE VOCABULARY AND ITS TRANSFER MACHINERY LEAVES THE TREE WITH IT (ADR-0060, releases#272/#246, close rider on the WEBSERVE milestone). MEASURED BEFORE THE RULING (main 8a21a3b0): the transfer INITIATORS `fetch_file` and `push_file` have ZERO production callers -- no verb opens the Xfer stream -- while the SERVE side was live: the daemon gated the inbound Xfer stream on `XFER`, knock codes were mintable for it, rules could name it; zero grant rows named it on the measuring node. The pull-model attachment (ADR-0058) supersedes the machinery, so the Xfer stream family, its serve gate, its tests and the surface row leave TOGETHER -- a row left behind would gate traffic that no longer exists, which is a promise the code can no longer keep. RETIRED, NOT RENAMED: repurposing the id to `HTTP` was rejected because an existing id changes meaning under every rule that already names it, and `WEB` is minted instead (REQ-WEB-ACCESS-SURFACE). A STORED RULE THAT NAMES A RETIRED SURFACE IS REPORTED AT LOAD -- `ACCESS_SURFACE_RETIRED` naming the id -- AND NEVER SILENTLY DROPPED: that report IS the fleet census telling us whether anyone ever used the surface, and dropping the row would destroy the only evidence there will ever be. The retired id stays LEGAL in a rule exactly as an unminted id is legal (the ratified-open vocabulary): it governs nothing, and saying so out loud is the difference between a vocabulary that shrank and a rule that vanished under its author. THE PROGRESS RECORD IS NOT THE STREAM FAMILY, stated because the module names collide: `spt_store::xfer`'s `XferProgress` and `transfers_dir` are read by the shell-channel file ops and by the CLI, so they survive the retirement; what leaves is the WAN transfer family, its wire record, its serve gate and its access surface. THE ATTRIBUTABILITY NOTE MOVES: the surface table's `XFER is the expected next to grow a sender stamp` note goes to `WEB`, so no requirement title and no doc line is left pointing at a surface that no longer exists. Gate: doc -- the access-surface docs stating XFER is retired and what a stored rule naming it now does; impl -- the row out of the surface TABLE, the retired list beside it, the load-time report, and the deletion of the Xfer stream family with its serve gate and wire record; unit -- the vocabulary no longer offers XFER while a rule naming it stays legal and governs nothing, a stored rule naming it REPORTS at load rather than disappearing, and the stream-family census no longer carries it.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6624510Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6624727Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6624856Z ### REQ-WEB-CROSS-NODE-PROXY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6631857Z - Title: A NODE-PREFIXED URL FOR A SUBNET PEER IS SERVED BY THE OWNER THROUGH THE LOCAL DAEMON, WITHOUT A CACHE (ADR-0056, ADR-0060, WEBSERVE W1, releases#272/#249). A request on the loopback server for `/<peer>/...` where `<peer>` is a KNOWN subnet member opens ONE Iroh stream of a NEW TAGGED stream family (kind web -- the Knock shape: an N-1 owner has no arm, classifies it Unknown and drops it, so the requester answers 502 naming the node under a DEADLINE, never a hang) and relays the owner's answer back verbatim. THE OWNER DECIDES: it runs access_check on the WEB surface with the origin taken from the HANDSHAKE-PROVEN stream identity (the serve_xfer shape, REQ-HAZARD-WAN-ORIGIN-AUTH), the subject being the served entry's registering endpoint, and a refusal comes back as 403 whose body names the SURFACE and never a sender (WEB is non-attributable in W1). The owner resolves the served name through the SAME router the local facet uses, so an edit is visible on the next fetch, a deleted source is the owner's 404 carried back as 404, and the reserved facets stay router-first on the requester (`/<peer>/f/`, `m/`, `bin/`, `install` answer locally, no stream opened). NO CACHE: nothing is written under the requesting node's SPT_HOME; the body is STREAMED in bounded chunks, never buffered whole. HEAD, Range (forwarded verbatim; the owner's 206 with Content-Range comes back; unsatisfiable is 416) and Content-Type are the owner's. STATUS NAMING, ruled 2026-09-07: unreachable owner / dropped stream / deadline = 502 naming the NODE; owner deny = 403 naming the SURFACE; an UNKNOWN first segment is the docs compatibility 404 UNCHANGED (ADR-0056 Am.1 order), never a 502; a served-name miss is the owner's NOT_FOUND body at 404. Gate: doc -- the cross-node serving page (grammar, statuses, deadline, no-cache) and the access-viewing WEB row text; impl -- the tagged wire family, the dispatcher arm, the owner-side gate + serve, the requester-side resolve-to-proxy, the streaming body; unit -- the record family round-trips and an unknown kind is skipped, the tagged first line classifies as Web and never as a message, the census bijection, the Range grammar (single range, suffix, open-ended, unsatisfiable), the router's proxy-or-local decision per facet, the 502 shape naming the node and the 403 shape naming the surface; int -- two REAL daemons on one box: byte-equal fetch through the requester, a WEB deny rule on the owner answering 403 naming WEB, Range answering 206 with Content-Range, the owner stopped answering 502 naming the node within the deadline, an unknown label answering the docs 404, a reserved facet answered locally; plus the two-host cells on the real rig (fetch, deny, range) as their own #[test] fns.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6638731Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6638936Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6639195Z ### REQ-MANIFEST-UNKNOWN-KEY-WARN
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6643734Z - Title: AN UNKNOWN MANIFEST KEY IS NAMED ON STDERR AND REGISTRATION PROCEEDS (WEBSERVE W0 rider, doyle-ruled 2026-09-06 18:15Z from hertz W3 RED, releases#272/#265). manifest.rs carries NO deny_unknown_fields anywhere BY DESIGN (forward-compat for adapters built blind against a newer core), so refusal is out -- and that makes a misspelled OPTIONAL key visible only by its ABSENCE: web_short_pth registers with no alias and no error, docs_dir follows in W3. The tolerant branch that KEEPS the invariant: at adapter add (the register choke point, which adapter update also passes) every key not in its table's known set emits ONE stderr line `manifest: unknown key [<table>].<key> (ignored)` and registration PROCEEDS. Shape: a generic walk of the parsed toml::Value against the schemars-derived schema (the same derives the parser reads, so the known set cannot drift): $refs resolve through $defs, anyOf/oneOf/allOf branches union their properties, [[arrays]] descend through items, a map table (additionalProperties = a schema, e.g. [env.<VAR>]) admits every key and sweeps each value, a free-form table (additionalProperties true -- [profiles.*], [strings]) is the adapter's own vocabulary and is not judged, an unparseable document yields nothing because the parse error already speaks. Gate: doc -- one paragraph in harness-contract/manifest.md (unknown keys are ignored; the diagnostic names them); impl -- Manifest::unknown_keys + the register-site emission; unit -- a web_short_pth typo parses AND registers AND is named table-qualified, a known key emits nothing, the full fixtures sweep clean (no false positive across refs, options, maps, arrays), depth naming ([adaptor], [session].comune_dir, [env.HOME].direktion, [hints].keyword, a root scalar), free-form tables silent, unparseable silent.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6648582Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6648797Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6648911Z ### REQ-WEB-ATTACHMENT-PULL
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6654980Z - Title: AN ATTACHMENT IS A SNAPSHOT REGISTERED FOR SERVING AND THE MESSAGE CARRIES ONLY ITS URL (ADR-0058, releases#272/#246). `spt send --attachment <path>` COPIES THE BYTES AT SEND TIME into `$SPT_HOME/serve/snapshots/` and registers an entry of kind attachment, because a message's attachment is as immutable as the message -- this is the ONE place the serving registry does NOT resolve at request time, and it is exactly what distinguishes an attachment from a `serve add` file entry: an edit after the send must NOT change what the receiver pulls, and deleting the source must NOT turn the link into a 404. NOTHING IS PUSHED TO THE RECEIVER. The envelope grows an ADDITIVE `attachments` key -- a list of {name, url, bytes} whose url is the node-prefixed `/<node>/f/<served-name>` (ADR-0056) and whose bytes is the snapshot size, so a receiver can decide BEFORE it pulls. The key is additive because a receiver on an older core must ignore it and deliver the message anyway; nothing on the delivery path may deny unknown fields, and that tolerance is itself under test. LIFETIME IS A TTL, DEFAULT 30 DAYS (operator-set), overridable per send with `--ttl <dur>`: the entry records its expiry and the daemon's EXISTING pulse reaps what has expired, deleting the snapshot file AND its registry entry TOGETHER so a reaped attachment answers not-found rather than serving a hole, and LOGGING THE REAP COUNT, because a silent reaper is indistinguishable from a reaper that never ran. The served name obeys REQ-WEB-SERVING-REGISTRY's disambiguation rule UNCHANGED, so two sends of the same basename get stable distinct URLs and neither link ever changes meaning. Several `--attachment` flags on one send are allowed and each mints its own entry. A MISSING OR UNREADABLE PATH REFUSES THE SEND BY NAME rather than delivering a message whose link is dead on arrival. Gate: doc -- the serving attachments page; impl -- the snapshot store, the attachment entry kind, the send-path registration, the envelope key, the pulse reaper; unit -- snapshot immutability against a post-send edit and against a post-send delete, the additive key round-tripping with an unknown-key receiver tolerating it, the ttl default and the `--ttl` parse, the reaper removing file and entry together and counting what it removed, the refusal on a missing path; int -- a real send whose attachment is fetched back byte-equal through the server.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6661288Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6661514Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6661664Z ### REQ-WEB-FETCH-VERB
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6666151Z - Title: `spt fetch <url> [dest]` IS THE ONE-COMMAND PULL AND ITS EXIT CODES SEPARATE REFUSED FROM FAILED (ADR-0058, releases#272/#246). It accepts a full node-prefixed URL or the bare `<node>/f/<name>` shorthand, writes the bytes to `dest` (default: the URL's basename in the current directory), REFUSES TO CLOBBER an existing dest without `--force`, and PRINTS THE WRITTEN PATH on success so a caller can pipe it. THE THREE OUTCOMES ARE DISTINCT AND THAT IS THE WHOLE POINT: exit 0 wrote the file; exit 3 the owner REFUSED (403 -- an access decision, not an error, and a caller that retries it is wrong); exit 1 is everything else (unreachable owner, not-found, a deadline, a local write error), each naming its cause on stderr. This verb's spelling is a PUBLISHED CONTRACT and not an implementation detail, because the FILE_ACCESS_HELPER now-signal emits the line verbatim for an agent to run. It rides the SAME cross-node path a browser does (REQ-WEB-CROSS-NODE-PROXY) rather than minting a second client, and a local-node URL goes through the same loopback server, so there is exactly ONE code path to be wrong about. THE BODY IS STREAMED TO A TEMPORARY FILE AND RENAMED INTO PLACE, so an interrupted or refused fetch never leaves a truncated file sitting at the destination path where a later reader would trust it. Gate: doc -- the attachments page's fetch section; impl -- the verb, the URL and shorthand parse, the dest and clobber rules, the temp-then-rename write, the exit-code mapping; unit -- URL and shorthand parse, default dest from basename, clobber refusal and `--force`, each exit code derived from its status, and an interrupted write leaving no partial at dest; int -- a fetch across two real daemons landing byte-equal, plus a denied fetch exiting 3.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6670950Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6671204Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6671346Z ### REQ-MSG-SHORT-ID
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6676816Z - Title: EVERY MESSAGE GETS AN 8-CHARACTER NODE-SCOPED SHORT-ID AT COMMIT, AND THAT SAME TOKEN IS ITS URL (ADR-0061, releases#272/#147). The id is base32 over a CONTENT DIGEST of the message (minted for this purpose -- there is no pre-W2 message hash to re-use; the preimage is length-prefixed over from_id, body, created_at and a salt): nothing mints a second identifier, and nothing is coordinated across nodes, because the node prefix (ADR-0056) already makes the URL global. IT IS MINTED AT COMMIT AND NOT AT RENDER, so the id exists before the envelope is built and the SAME token appears in the delivery envelope, in the `MSG_IN` and `MSG_OUT` io-event rows, and at `/<node>/m/<short-id>` -- an adapter never derives it, and two readers can never disagree about what a message is called. A COLLISION ON ONE NODE IS DETECTED AT MINT TIME AND RESOLVED BY LENGTHENING THAT ONE ID (nine characters, then ten), never by rejecting the message and NEVER by re-minting an id that has already been handed out; readers treat the id as OPAQUE, which is precisely what makes a variable length safe to ship. `spt msg show <id>` renders one message with its attachment URLs, `--json` is the machine twin. `spt send --reply-to <id>` carries the parent id in the envelope as an ADDITIVE key so an adapter MAY render a thread; AN UNKNOWN PARENT IS CARRIED AND NOT REFUSED, because the parent may live on a node we cannot ask, and refusing would make a thread across a partition impossible rather than merely unrendered. The `m/` facet renders HTML with a `?json` twin like every other facet (REQ-WEB-URL-NODE-PREFIX reserved it in W0). Gate: doc -- the messaging page's short-ID and reply-to sections; impl -- the mint at commit with collision lengthening, the envelope and io-event fields, the `m/` facet renderer, `spt msg show`, `--reply-to`; unit -- the id is eight base32 characters derived from the content digest and STABLE across a re-read, a forced collision lengthens exactly one id and leaves the incumbent alone, the same token appears in the envelope and in BOTH io-event rows, an unknown `--reply-to` parent is carried rather than refused, and the `m/` render answers with its json twin; int -- a real send whose short-ID is readable from the io-events poll and fetchable at its URL.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6682610Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6682835Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6682958Z ### REQ-WEB-ENTRY-AUDIENCE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6688246Z - Title: A SERVING ENTRY MAY NAME THE ONE ENDPOINT ALLOWED TO FETCH IT, AND THAT AUDIENCE IS ENFORCED WHEREVER THE ORIGIN IS PROVEN (ADR-0058 Amendment 1, operator-directed 2026-09-06, releases#272/#17). `audience` is a PER-ENTRY, KIND-INDEPENDENT field sitting beside ttl: ABSENT means the entry is reachable by anyone the WEB surface admits, which leaves REQ-WEB-ACCESS-SURFACE's default-on subnet posture UNCHANGED; PRESENT means the owner serves the entry ONLY to that endpoint id and answers everyone else 403 NAMING THE SURFACE -- deliberately the SAME refusal shape a WEB deny rule produces, so a narrower audience is not distinguishable from a denial by probing, and the registry does not become an oracle for what exists. IT IS ENFORCED WHERE THE FETCH ORIGIN IS PROVEN: the cross-node stream's handshake-proven identity (REQ-WEB-CROSS-NODE-PROXY, REQ-HAZARD-WAN-ORIGIN-AUTH), which is the only place a requester's endpoint id is evidence rather than a claim. LOOPBACK REMAINS THE TRUSTED MACHINE, and that is STATED rather than implied: a local browser presents no endpoint identity, so a request arriving on the loopback server is served, and an audience is therefore a CROSS-NODE NARROWING -- an operator who needs secrecy from other users of the same machine has file permissions, not this field. THE FIELD IS VISIBLE IN `spt serve list` beside ttl and origin, because the registry's one job is answering what this node exposes AND TO WHOM, and a hidden narrowing would make that answer a half-truth. Gate: doc -- the serving overview page's entry-fields section; impl -- the field on the entry, its persistence, the owner-side check on the cross-node path, the list rendering; unit -- an absent audience admits, a matching audience admits, a NON-matching audience refuses with the same 403 shape as a surface deny, loopback is served regardless of audience, and the field survives a registry round-trip and renders in list; int -- two real daemons where the named endpoint fetches byte-equal and a requester that is not the audience gets 403.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6693719Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6693972Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6694110Z ### REQ-NOW-SIGNAL-FILE-ACCESS-HELPER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6701486Z - Title: THE FILE_ACCESS_HELPER CATEGORY HANDS AN AGENT THE EXACT `spt fetch` LINE FOR A FILE IT WAS GIVEN, AND NEVER MORE THAN ONCE PER (MESSAGE, PATH) (releases#17, ADR-0058 Amendment 1, operator directive 2026-09-06 widening the category from carries-attachments to user-quoted-a-path). TWO TRIGGERS, ONE OUTPUT SHAPE. (a) A DELIVERED MESSAGE CARRIES ATTACHMENTS: the signal emits one `spt fetch <url>` line per attachment, taken VERBATIM from the envelope rather than rebuilt, so the line an agent runs is the link the sender minted. (b) A USER'S MESSAGE QUOTES A FILEPATH THAT EXISTS ON THE USER'S NODE: core AUTO-REGISTERS that path as a REFERENCE-SERVED entry -- a file or dir entry, NEVER a snapshot, because the user said look at this and not keep this as it was, and a live reference costs no copy -- with ttl 24h, origin = the message short-ID, and audience = THE ONE ENDPOINT THAT RECEIVED THE MESSAGE (REQ-WEB-ENTRY-AUDIENCE), then hands that endpoint the fetch line. SAME-NODE USER AND AGENT REGISTER NOTHING: the signal says the path is local and readable, because serving a file to a process that can already open it buys an audit entry and no access. A REMOTE USER -- the case #17 was minted for -- has the file on THEIR node, so registration happens THERE on the agent's behalf: a cross-node serve-this-path-for-endpoint-X request authorized by the user's attach session, riding the stream family of REQ-WEB-CROSS-NODE-PROXY, which is why this rider lands after W1. GUARDS, EACH ITS OWN CELL: the path must EXIST on the owning node at signal time (a quoted path that is not there emits NOTHING rather than a dead link); ABSOLUTE OR ~-ROOTED PATHS ONLY, because a relative path has no anchor and would silently name a different file on the other node; AT MOST 5 PER MESSAGE; a directory registers a dir entry under the same ttl and audience. EVERY ENTRY IT MINTS IS ENUMERABLE IN `spt serve list` WITH ITS ORIGIN, so an automatic exposure is exactly as visible as a deliberate one and what-am-I-exposing keeps its single answer. DELTA DISCIPLINE on the standing now-signal rule: once per (message, path), so a re-poll in the same session emits nothing. Gate: doc -- the shells/frames.md now-signal category table and the attachments page's helper section; impl -- the category, the attachment trigger, the quoted-path detector, the auto-registration carrying ttl and audience and origin, the cross-node register-on-my-behalf request; unit -- the attachment trigger's exact emitted line, the quoted-path trigger registering with a 24h ttl and the receiving endpoint as audience, each guard as its own cell (missing path silent, relative path skipped, the cap of 5, a directory registering a dir entry), the same-node case saying local and registering nothing, and the once-per-(message,path) delta holding across a re-poll; int -- a remote user's quoted path served to the named endpoint end to end.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6709131Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6709356Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6709576Z ### REQ-DOCS-CHANGELOG-PAGE
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6714276Z - Title: THE CHANGELOG IS A PAGE OF THE LOCAL DOCS SITE, GENERATED FROM THE REPOSITORY CHANGELOG AND NEVER HAND-EDITED (releases#268, WEBSERVE W3). A user reading the node-local docs must be able to answer what changed in this release without leaving the site for a repository file they may not have. GENERATED, NOT COPIED: a pure changelog_page renderer writes docs-site/src/changelog.md from CHANGELOG.md, xtask gen writes it and xtask check diffs it, exactly as the CLI reference page already works -- so a changelog edit that is not regenerated is a CI red rather than a silently stale page. THE GENERATOR STRIPS EVERY INTERNAL-CODE CLASS THE PUBLISHED-DOCS SCAN FORBIDS, KEYED ON THE CLASSES AND NOT ON TODAY'S POPULATION: the traceability doc-tag comments CHANGELOG.md carries for its own coverage, and the parenthetical private-tracker citations in its prose. MEASURED 2026-09-07 at the W3 lane base: five doc-tag comments AND two prose citations of the tracker, the second class absent from the brief and sufficient on its own to red the scan on run one; no decision-record or milestone-wave token is present today, and the stripper covers those classes anyway because the next entry an author writes is free to add one. THE PAGE JOINS THE PUBLISHED-DOCS SCAN'S PATH LIST rather than growing a second mechanism, and it is LISTED IN THE SUMMARY AND THE CURATED llms index, which is also what puts it in the full export -- the export reads pages off disk in summary order, so the page is a checked-in generated file and never a render-on-request route. Gate: doc -- the changelog page present in the docs site with its summary and llms rows; impl -- the pure renderer, its gen write, its check diff, and its row in the internal-codes scan list; unit -- the renderer strips each forbidden class, leaves ordinary prose byte-identical, and the rendered page carries no token the scan forbids.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6719247Z - Required stages: doc, impl, unit
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6719474Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6719601Z ### REQ-WEB-LAN-BOOTSTRAP-LISTENER
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6724262Z - Title: A SECOND, OPT-IN, OPERATOR-STARTED LISTENER SERVES THE INSTALLED BINARY TO STRANGERS ON THE LAN, AND IT IS NOT THE DOCS SERVER (ADR-0059, releases#266, WEBSERVE W3). The serve lan --bootstrap verb starts a SEPARATE listener on all interfaces at port 5470 (config and env override) whose router knows ONLY the per-triple binary path, the provenance sidecar beside it, and a one-liner install page -- nothing else exists in that process. ITS AUDIENCE IS BY DEFINITION A STRANGER WHO IS NOT YET A NODE: a fresh box has no network identity, so no access chain can run and the listener must never grow a membership concept; the ONLY gate is the operator's explicit start. OFF BY DEFAULT, serve lan --stop takes it down, the LAN URL is printed at start, and the now-signal carries a LAN-EXPOSED line for the whole window it is up (a now-signal category riding the ratified render order, appended at the END). THE DOCS SERVER IS UNCHANGED AND STAYS LOOPBACK: the never-all-interfaces promise of REQ-DOCS-LOCAL-SERVER is asserted WHILE the bootstrap listener is up, because the reason to state it is precisely that a second listener now binds every interface. The bootstrap surface is never reachable through the docs port and the docs facets are never reachable through the bootstrap port. Gate: doc -- the bootstrap page in the serving docs and the decision-record amendment carrying the ruling; impl -- the listener, its three-route router, the start and stop verbs, the printed URL, the now-signal category; unit -- the router answers only its three routes and 404s everything else, the listener is off unless started, the docs bind is loopback while the bootstrap bind is all-interfaces, and the now-signal line appears while up and is gone after stop; int -- a real fetch from the other host over the LAN, with the docs port refusing that same peer.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6729177Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6729506Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6729654Z ### REQ-WEB-LAN-BOOTSTRAP-INTEGRITY
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6737546Z - Title: THE BOOTSTRAP LISTENER SERVES THE ARTIFACTS OF THE APPLIED SIGNED SET, PER-TRIPLE SHA-ANCHORED, OR IT SERVES NOTHING (ADR-0059 Amendment 1, ADR-0015 trust roots, releases#266). The puller EXECUTES what it downloads over plain HTTP, so access rules are not the story -- the bytes need provenance, and three conjuncts are ALL required. SET GATE, WHOLE LISTENER: the served set is the release-cache set whose HOST-TRIPLE artifact hash equals the running daemon's own executable (canonical path captured at start, never a per-request current-exe lookup) AND whose applied state reads applied at that set version; failure refuses the start BY NAME -- LAN_BOOTSTRAP_REFUSED with unsigned-exe, sha-mismatch, or set-not-applied -- and serves nothing. There is deliberately NO serve-it-marked-unsigned branch, because that is the supply-chain shape this requirement exists to refuse. A STAGED-BUT-UNAPPLIED NEWER SET IS NEVER SERVED: a stranger gets what this node RUNS, never what it is about to run. PER-TRIPLE GATE, PER PATH: the per-triple binary path serves staged bytes only if they hash to that triple's artifact hash in the SAME signed metadata; a missing or mismatched non-host artifact answers 404 as LAN_BOOTSTRAP_TRIPLE_UNAVAILABLE naming the triple and the reason, and the host triple KEEPS SERVING -- a missing musl artifact must not block a Windows-to-Windows bootstrap. The host triple failing IS the set gate. PROVENANCE BESIDE THE BYTES: a release sidecar sits at the binary path plus a release suffix, carrying the exact signed record (metadata and signature), byte-identical on every triple path, and install on the puller re-runs metadata and artifact verification against its BUILT-IN keys before touching disk. That conjunct is circular alone -- a tampered executable carries tampered roots -- which is why the third exists, but it catches every truncation, corruption and wrong-platform pull for free on the substrate that already ships. OUT-OF-BAND ANCHOR, THE OPERATOR'S EYES: start prints one hash line per served triple, the LAN-EXPOSED now-signal carries the host triple's, the install one-liner bakes the PULLER'S triple hash (chosen by the page's triple segment, never sniffed) into an expect-sha256 flag, and install prints the hash of what it downloaded before verifying. Two machines on one LAN and a human comparing two lines is the only non-circular anchor a bootstrap without transport security can honestly offer. Gate: doc -- the amendment and the install page text stating all three conjuncts; impl -- the set gate at start, the per-triple gate at serve, the sidecar, the printed hashes, the expect-sha256 flag on install; unit -- each refusal code fires on its own cause, a non-host triple 404s by name while the host triple still serves, the sidecar is byte-identical across triple paths, and a wrong expected hash refuses before anything is written; int -- the peer pulls the linux-gnu triple from the REAL installed daemon and the bytes match the signed hash, a wrong expected hash exits non-zero writing nothing, a byte flipped in a non-host staged artifact 404s that triple while the host keeps serving, and a dev-built rig daemon refuses to start the listener at all.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6745853Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6746038Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6746228Z ### REQ-WEB-ADAPTER-DOCS-FACET
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6752687Z - Title: AN INSTALLED ADAPTER'S OWN DOCS ARE SERVED UNDER A RESERVED docs SEGMENT OF ITS ADAPTER FACET, AND THE SEGMENT NEVER FALLS THROUGH (releases#265, WEBSERVE W3, doyle ruled 2026-09-07 12:06Z). The adapter facet already serves the core-owned web root of an adapter; this adds the adapter's OWN documentation BESIDE it at the reserved docs segment rather than replacing what that URL already means -- the alternative, letting docs take over the facet root, would change the meaning of a URL shipped one wave earlier, which is precisely the pasteable-between-machines property the URL grammar was built to buy. THE SEGMENT IS ROUTER-FIRST AND RESERVED, the same posture the reserved facets take: with the manifest key set it serves the adapter's docs directory; with the key absent it answers NOT_FOUND NAMING THE FACET AND THE SEGMENT, and it must NEVER fall through to a docs subdirectory of the core-owned root -- a reserved segment that can resolve as an ordinary served name is how two facets collide later. MEASURED BEFORE RULING, 2026-09-06: none of the seven installed adapters ships a docs directory at all (manifest, executable, strings and state only), so the facet needs a manifest key to point at one; the key is docs_dir, adapter-relative. CONTAINMENT IS ITS OWN CODE AND IS CHECKED TWICE. It is NOT the existing served-name validation, which is a name check and not a path check (measured at the lane base). An absolute path, a parent-directory escape, or a canonical path that does not sit under the adapter directory's own canonical path is REFUSED BY NAME as MANIFEST_DOCS_DIR_OUTSIDE naming the adapter -- at manifest load AND again at request time, because a directory swapped for a link pointing elsewhere after load is a real sequence and the resolve-at-request-time rule already governs every other served path. A MISSPELLED KEY IS ALREADY VISIBLE through the unknown-manifest-key diagnostic, so the failure mode of this key is a named stderr line rather than a silently absent facet. Gate: doc -- the serving docs section naming the segment, the key, and both refusals; impl -- the manifest key, the containment check at load and at serve, the reserved docs segment in the adapter facet router, and the absent-key 404 naming facet and segment; unit -- three refusal shapes (absolute, escape, canonical-outside) and one accept, the reserved segment never reaching the core root, and the absent-key 404 text; int -- a real docs fetch through the running server and the absent-key 404 naming the facet.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6759208Z - Required stages: doc, impl, unit, int
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6759393Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6759556Z ## How to report back
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6759722Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6759938Z For every (requirement, failing criterion) pair, emit one finding:
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6760233Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6760347Z     {
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6760619Z       "code": "requirement_quality",
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6760981Z       "requirementId": "REQ-...",
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6761359Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6761767Z       "message": "<short reason>",
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6762089Z       "suggestedRevision": "<optional rewrite>"
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6762423Z     }
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6762608Z 
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6762819Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6763276Z deterministic findings above don't need to be repeated.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6797155Z ##[group]Run set -euo pipefail
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6797513Z [36;1mset -euo pipefail[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6797882Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6798296Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6798776Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6799272Z [36;1mverdict=PASS[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6799596Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6800169Z [36;1mprintf 'FLOOR_END job=traceability runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6800668Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6801097Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6801676Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6802350Z [36;1m  exit 1[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6802644Z [36;1mfi[0m
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6815762Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6816120Z ##[endgroup]
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6886582Z FLOOR_END job=traceability runner=Linux free_bytes=226313785344 floor_bytes=34359738368 verdict=PASS sample=INSTANT
traceability	UNKNOWN STEP	2026-09-09T04:19:36.6974663Z Post job cleanup.
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7666953Z [command]/usr/bin/git version
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7698214Z git version 2.43.0
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7722701Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/bc5c2b00-954c-4d2e-ae29-8e67713ea91b/.gitconfig'
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7730049Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/bc5c2b00-954c-4d2e-ae29-8e67713ea91b' before making global git config changes
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7730679Z Adding repository directory to the temporary git global config as a safe directory
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7733300Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7758467Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7782248Z [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' || :"
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7971526Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7990264Z http.https://github.com/.extraheader
traceability	UNKNOWN STEP	2026-09-09T04:19:36.7997243Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
traceability	UNKNOWN STEP	2026-09-09T04:19:36.8023326Z [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' || :"
traceability	UNKNOWN STEP	2026-09-09T04:19:36.8210060Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
traceability	UNKNOWN STEP	2026-09-09T04:19:36.8235371Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
traceability	UNKNOWN STEP	2026-09-09T04:19:36.8524971Z Cleaning up orphan processes
n1-gate (self-hosted, Linux, kitsubito)	Set up job	﻿2026-09-09T04:48:02.1316429Z Current runner version: '2.337.0'
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1321812Z Runner name: 'kitsubito'
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1322336Z Runner group name: 'Default'
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1322942Z Machine name: 'KITSUBITO'
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1326282Z ##[group]GITHUB_TOKEN Permissions
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1328047Z Actions: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1328476Z ArtifactMetadata: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1328897Z Attestations: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1329376Z Checks: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1329748Z CodeQuality: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1330134Z Contents: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1330507Z CopilotRequests: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1330907Z Deployments: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1331292Z Discussions: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1331683Z Drives: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1332052Z Issues: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1332420Z Metadata: read
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1332792Z Models: read
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1333169Z Packages: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1333550Z Pages: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1333926Z PullRequests: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1334446Z RepositoryProjects: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1334862Z SecurityEvents: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1335253Z Statuses: write
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1335636Z VulnerabilityAlerts: read
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1336045Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1337558Z Secret source: Actions
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1338392Z Prepare workflow directory
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1841605Z Prepare all required actions
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.1877490Z Getting action download info
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:02.5247300Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:03.1785973Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02)
n1-gate (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:48:03.8456777Z Complete job name: n1-gate (self-hosted, Linux, kitsubito)
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	﻿2026-09-09T04:48:03.9527645Z ##[group]Run actions/checkout@v5
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9528780Z with:
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9529532Z   fetch-depth: 0
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9530264Z   repository: BigscreenVR/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9537542Z   token: ***
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9538200Z   ssh-strict: true
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9538863Z   ssh-user: git
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9539655Z   persist-credentials: true
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9540390Z   clean: true
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9541057Z   sparse-checkout-cone-mode: true
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9541860Z   fetch-tags: false
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9542532Z   show-progress: true
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9543225Z   lfs: false
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9543859Z   submodules: false
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9544531Z   set-safe-directory: true
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9545290Z   allow-unsafe-pr-checkout: false
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:03.9546295Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0355885Z Syncing repository: BigscreenVR/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0375237Z ##[group]Getting Git version info
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0376663Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core'
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0378629Z [command]/usr/bin/git version
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0379900Z git version 2.43.0
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0382477Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0387484Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/2a53e47f-b79d-48ef-9ba8-f4203e28b67e/.gitconfig'
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0390379Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/2a53e47f-b79d-48ef-9ba8-f4203e28b67e' before making global git config changes
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0393003Z Adding repository directory to the temporary git global config as a safe directory
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0394983Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0421102Z [command]/usr/bin/git config --local --get remote.origin.url
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0441112Z https://github.com/BigscreenVR/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0451090Z ##[group]Removing previously created refs, to avoid conflicts
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0453754Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0477503Z refs/heads/golden/webserve-272-r3
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0483309Z [command]/usr/bin/git checkout --detach
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.0995014Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.1039784Z [command]/usr/bin/git branch --delete --force golden/webserve-272-r3
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.1080342Z Deleted branch golden/webserve-272-r3 (was f6110c2a1).
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.2378417Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.2382185Z [command]/usr/bin/git submodule status
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.2571240Z ##[group]Cleaning the repository
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:04.2572689Z [command]/usr/bin/git clean -ffdx
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4798209Z Removing .adapter-notify/
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4798910Z Removing bench-ledger/
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4799348Z Removing target/
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4808158Z [command]/usr/bin/git reset --hard HEAD
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4987569Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4994468Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4996113Z ##[group]Disabling automatic garbage collection
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.4999989Z [command]/usr/bin/git config --local gc.auto 0
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5024746Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5025249Z ##[group]Setting up auth
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5030894Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5056392Z [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' || :"
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5253722Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5311432Z [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' || :"
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5501943Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5525965Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5714192Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5745320Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5745727Z ##[group]Fetching the repository
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:09.5757034Z [command]/usr/bin/git -c protocol.version=2 fetch --prune --no-recurse-submodules --unshallow origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/*
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2310912Z [command]/usr/bin/git branch --list --remote origin/golden/webserve-272-r3
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2390046Z   origin/golden/webserve-272-r3
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2397465Z [command]/usr/bin/git rev-parse refs/remotes/origin/golden/webserve-272-r3
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2417844Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2421755Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2422356Z ##[group]Determining the checkout info
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2423029Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2425948Z [command]/usr/bin/git sparse-checkout disable
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2466751Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2491493Z ##[group]Checking out the ref
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2494056Z [command]/usr/bin/git checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2565710Z Switched to a new branch 'golden/webserve-272-r3'
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2566516Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2571909Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2614974Z [command]/usr/bin/git log -1 --format=%H
n1-gate (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:48:12.2645276Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	﻿2026-09-09T04:48:12.2866873Z ##[group]Run set -euo pipefail
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2867210Z [36;1mset -euo pipefail[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2867443Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2867940Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2868306Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2868616Z [36;1mverdict=PASS[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2868869Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2869452Z [36;1mprintf 'FLOOR_START job=n1-gate runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2869867Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2870135Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2870572Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2871012Z [36;1m  exit 1[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2871183Z [36;1mfi[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2887241Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2887546Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:48:12.2963328Z FLOOR_START job=n1-gate runner=Linux free_bytes=226324811776 floor_bytes=34359738368 verdict=PASS sample=INSTANT
n1-gate (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	﻿2026-09-09T04:48:12.2995270Z ##[group]Run echo 'RUSTFLAGS=-C link-arg=-fuse-ld=mold' >> "$GITHUB_ENV"
n1-gate (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:48:12.2995747Z [36;1mecho 'RUSTFLAGS=-C link-arg=-fuse-ld=mold' >> "$GITHUB_ENV"[0m
n1-gate (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:48:12.3007687Z shell: /usr/bin/bash -e {0}
n1-gate (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:48:12.3007915Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	﻿2026-09-09T04:48:12.3081235Z ##[group]Run bash .github/ci/reap-census.sh start
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3081555Z [36;1mbash .github/ci/reap-census.sh start[0m
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3093011Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3093297Z env:
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3093502Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3093722Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3133087Z CI-CENSUS scope roots:
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3133444Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3133874Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3134355Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3134723Z   root: /home/reavus/actions-runner/_work/_temp
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3134975Z   root: /home/reavus/spt-n1-oldbroker
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:12.3175764Z CI-CENSUS self-check OK: walked 367 /proc entries, exe resolution live
n1-gate (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:48:13.7501845Z CI-CENSUS phase=start box_procs=367 box_fds=8672 family_total=0 scoped=0 unscoped=0 unreadable_path=0 flood_orphans=0
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	﻿2026-09-09T04:48:13.7535572Z ##[group]Run bash .github/ci/test-temp-sandbox.sh setup
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:48:13.7535915Z [36;1mbash .github/ci/test-temp-sandbox.sh setup[0m
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:48:13.7548323Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:48:13.7548589Z env:
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:48:13.7548774Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:48:13.7549137Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:48:13.7595821Z CI-TMP setup: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	﻿2026-09-09T04:48:13.7619585Z ##[group]Run set -euo pipefail
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7619866Z [36;1mset -euo pipefail[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7620071Z [36;1mPIN=0c95435[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7620273Z [36;1mCACHE="$HOME/spt-n1-oldbroker"[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7620515Z [36;1mBIN="$CACHE/target/debug/spt"[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7620834Z [36;1m# Self-healing cache: rebuild the pin only when it moves. Clone OUTSIDE[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7621226Z [36;1m# the workspace (a clone inside gets adopted by the cargo workspace).[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7621634Z [36;1mif [ ! -x "$BIN" ] || [ "$(cat "$CACHE/.builtpin" 2>/dev/null || true)" != "$PIN" ]; then[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7621968Z [36;1m  rm -rf "$CACHE"[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7622192Z [36;1m  git clone "$GITHUB_WORKSPACE" "$CACHE"[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7622452Z [36;1m  git -C "$CACHE" checkout "$PIN"[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7622776Z [36;1m  # CARGO_INCREMENTAL=0 — THE one-shot build in this workflow (releases#103:[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7623324Z [36;1m  # -29.8% wall, -5.65 GB of target, n=3, slowest-OFF beat fastest-ON). The[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7623740Z [36;1m  # finding is scoped to COLD one-shot builds and this is the only CI site that[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7624150Z [36;1m  # is one: the cache is `rm -rf`'d and rebuilt from scratch when the pin moves,[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7624554Z [36;1m  # and between pin moves it is consumed as a BINARY and never recompiled — so[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7624961Z [36;1m  # the incremental state it would write is never read by anything, ever. Every[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7625372Z [36;1m  # other cargo invocation in this workflow builds into the runner's PERSISTENT[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7625791Z [36;1m  # `_work` target, where incremental is the mechanism that makes the next run[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7626139Z [36;1m  # cheap; those are deliberately left alone.[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7626478Z [36;1m  CARGO_INCREMENTAL=0 bash .github/bench/wrap.sh n1-oldbroker-build -- \[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7626883Z [36;1m    cargo build --manifest-path "$CACHE/Cargo.toml" -p spt --bin spt[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7627203Z [36;1m  echo "$PIN" > "$CACHE/.builtpin"[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7627431Z [36;1mfi[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7627684Z [36;1mSPT_N1_OLD_BROKER="$BIN" bash .github/bench/wrap.sh n1-pairing -- \[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7628056Z [36;1m  cargo test -p spt --test n1_pairing -- --nocapture[0m
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7639508Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7639779Z env:
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7639969Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7640321Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7640763Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7641159Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7641567Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:13.7641887Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0539385Z    Compiling proc-macro2 v1.0.106
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0539894Z    Compiling quote v1.0.45
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0540228Z    Compiling unicode-ident v1.0.24
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0540508Z    Compiling libc v0.2.186
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0540809Z    Compiling cfg-if v1.0.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0541611Z    Compiling serde_core v1.0.228
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0566388Z    Compiling serde v1.0.228
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0596261Z    Compiling typenum v1.20.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0629081Z    Compiling log v0.4.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0680993Z    Compiling version_check v0.9.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0718350Z    Compiling pin-project-lite v0.2.17
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0821294Z    Compiling portable-atomic v1.13.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0841908Z    Compiling memchr v2.8.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0842581Z    Compiling critical-section v1.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.0965743Z    Compiling subtle v2.6.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.1251937Z    Compiling shlex v2.0.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.1299111Z    Compiling find-msvc-tools v0.1.9
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.1643191Z    Compiling futures-core v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.2041303Z    Compiling bytes v1.11.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.2726062Z    Compiling smallvec v1.15.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3220339Z    Compiling equivalent v1.0.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3265055Z    Compiling itoa v1.0.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3331386Z    Compiling semver v1.0.28
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3380748Z    Compiling stable_deref_trait v1.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3871557Z    Compiling futures-sink v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3941128Z    Compiling futures-io v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.3990972Z    Compiling generic-array v0.14.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.4061300Z    Compiling slab v0.4.12
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.4161130Z    Compiling rand_core v0.10.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.4610603Z    Compiling futures-channel v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.5271235Z    Compiling futures-task v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.5414210Z    Compiling bitflags v2.12.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.5465775Z    Compiling rustversion v1.0.22
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.5680977Z    Compiling hashbrown v0.17.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.5900660Z    Compiling cpufeatures v0.2.17
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.6180908Z    Compiling rustc_version v0.4.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.6250998Z    Compiling getrandom v0.4.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.6491056Z    Compiling autocfg v1.5.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.6872473Z    Compiling fnv v1.0.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.7110999Z    Compiling scopeguard v1.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.7570886Z    Compiling cfg_aliases v0.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.7651007Z    Compiling strsim v0.11.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.8013120Z    Compiling lock_api v0.4.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.8400380Z    Compiling const-oid v0.9.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.8491212Z    Compiling writeable v0.6.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.8531792Z    Compiling libm v0.2.16
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:14.9390926Z    Compiling litemap v0.8.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.0601604Z    Compiling utf8_iter v1.0.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.0831477Z    Compiling num-traits v0.2.19
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.1076049Z    Compiling ident_case v1.0.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.1320857Z    Compiling icu_properties_data v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.1471102Z    Compiling dunce v1.0.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.1820647Z    Compiling icu_normalizer_data v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.1897343Z    Compiling fs_extra v1.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.2158816Z    Compiling percent-encoding v2.3.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.2480962Z    Compiling syn v2.0.117
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.2925124Z    Compiling http v1.4.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.3084913Z    Compiling unicode-segmentation v1.13.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.3168164Z    Compiling zerocopy v0.8.50
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.3413087Z    Compiling thiserror v2.0.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.4219456Z    Compiling indexmap v2.14.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.4267805Z    Compiling hybrid-array v0.4.12
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.4491330Z    Compiling aws-lc-rs v1.17.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.5085129Z    Compiling cpufeatures v0.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.5190706Z    Compiling form_urlencoded v1.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.5681293Z    Compiling spin v0.9.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.5719755Z    Compiling untrusted v0.9.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.6792652Z    Compiling rustls v0.23.40
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.6910453Z    Compiling heck v0.5.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.6950749Z    Compiling anyhow v1.0.102
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.7191378Z    Compiling unicode-xid v0.2.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.7900850Z    Compiling convert_case v0.10.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.8000730Z    Compiling const-oid v0.10.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.8240730Z    Compiling jobserver v0.1.34
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.8700691Z    Compiling atomic-waker v1.1.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.8859441Z    Compiling paste v1.0.15
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.9391145Z    Compiling httparse v1.10.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:15.9773162Z    Compiling parking_lot_core v0.9.12
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.0060727Z    Compiling fastrand v2.4.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.0719537Z    Compiling cc v1.2.63
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.0751988Z    Compiling crypto-common v0.1.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.0980601Z    Compiling block-buffer v0.12.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.1063351Z    Compiling crypto-common v0.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.1239943Z    Compiling block-buffer v0.10.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.1920676Z    Compiling inout v0.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.2460763Z    Compiling curve25519-dalek v4.1.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.2561120Z    Compiling digest v0.10.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.2672608Z    Compiling ahash v0.8.12
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.2790940Z    Compiling powerfmt v0.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.2994269Z    Compiling http-body v1.0.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.3090809Z    Compiling either v1.16.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.3160595Z    Compiling base64ct v1.8.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.4991393Z    Compiling mio v1.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.5051352Z    Compiling socket2 v0.6.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.5141370Z    Compiling getrandom v0.2.17
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.5731679Z    Compiling sha2 v0.10.9
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.7120627Z    Compiling rand_core v0.6.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.7331116Z    Compiling uuid v1.23.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.7609887Z    Compiling pem-rfc7468 v1.0.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.7688017Z    Compiling deranged v0.5.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.9170446Z    Compiling cipher v0.5.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:16.9640513Z    Compiling signature v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.0940452Z    Compiling time-core v0.1.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.1471260Z    Compiling chacha20 v0.10.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.1540487Z    Compiling tinyvec_macros v0.1.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.1700772Z    Compiling try-lock v0.2.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2053383Z    Compiling base64 v0.22.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2254130Z    Compiling tower-service v0.3.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2328118Z    Compiling vcpkg v0.2.15
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2485241Z    Compiling num-conv v0.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2581587Z    Compiling pkg-config v0.3.33
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2792242Z    Compiling data-encoding v2.11.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.2958885Z    Compiling cmake v0.1.58
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.3084908Z    Compiling zmij v1.0.21
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.3260948Z    Compiling num-integer v0.1.47
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.4133337Z    Compiling want v0.3.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.4362700Z    Compiling rand v0.10.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.4843900Z    Compiling tinyvec v1.11.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.4982201Z    Compiling parking_lot v0.12.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.5602369Z    Compiling inout v0.1.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.5671334Z    Compiling spt-procident v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-procident)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.6035660Z    Compiling vergen-lib v9.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.6521071Z    Compiling n0-future v0.3.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.6903627Z    Compiling serde_json v1.0.150
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.7560977Z    Compiling num-bigint-dig v0.8.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.7627089Z    Compiling httpdate v1.0.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.7908731Z    Compiling parking v2.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.8460094Z    Compiling winnow v1.0.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.9003900Z    Compiling diatomic-waker v0.2.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.9147171Z    Compiling spin v0.10.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.9216460Z    Compiling cordyceps v0.3.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.9277745Z    Compiling crossbeam-utils v0.8.21
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:17.9919131Z    Compiling futures-lite v2.6.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.0331812Z    Compiling spt-poolguard v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-poolguard)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.0360931Z    Compiling cipher v0.4.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.0521540Z    Compiling num-iter v0.1.46
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.0631858Z    Compiling netlink-packet-core v0.8.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.0993124Z    Compiling ed25519 v2.2.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.1345827Z    Compiling aws-lc-sys v0.41.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.1611225Z    Compiling ring v0.17.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.1771345Z    Compiling libsqlite3-sys v0.30.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.2170784Z    Compiling futures-buffered v0.2.13
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.2704303Z    Compiling digest v0.11.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.2960497Z    Compiling universal-hash v0.5.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.3231439Z    Compiling lazy_static v1.5.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.3850676Z    Compiling vergen v9.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.4118304Z    Compiling vergen-lib v0.1.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.4283766Z    Compiling heapless v0.7.17
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.4391314Z    Compiling curve25519-dalek v5.0.0-pre.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.4761608Z    Compiling noq-udp v0.10.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.5152812Z    Compiling aho-corasick v1.1.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.5292464Z    Compiling sync_wrapper v1.0.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.5419262Z    Compiling opaque-debug v0.3.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.5946312Z    Compiling toml_datetime v1.1.1+spec-1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.6126424Z    Compiling byteorder v1.5.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.6411464Z    Compiling regex-syntax v0.8.10
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.6529782Z    Compiling allocator-api2 v0.2.21
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.6862820Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.7480665Z    Compiling polyval v0.6.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.8090030Z    Compiling hash32 v0.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.9089596Z    Compiling vergen-gitcl v1.0.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.9601499Z    Compiling fallible-streaming-iterator v0.1.9
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:18.9749807Z    Compiling tower-layer v0.3.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.0150288Z    Compiling ryu v1.0.23
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.0835119Z    Compiling signature v3.0.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.0912183Z    Compiling fallible-iterator v0.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.0966299Z    Compiling num_threads v0.1.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.1622653Z    Compiling ghash v0.5.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.2000995Z    Compiling time v0.3.47
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.2130749Z    Compiling sha2 v0.11.0-rc.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.2432227Z    Compiling ctr v0.9.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.2772733Z    Compiling aes v0.8.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.4060875Z    Compiling fs2 v0.4.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.4810697Z    Compiling toml_parser v1.1.2+spec-1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.5389814Z    Compiling http-body-util v0.1.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.6020814Z    Compiling aead v0.5.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.7032672Z    Compiling openssl-probe v0.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.7949062Z    Compiling rustix v1.1.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.8275592Z    Compiling arrayvec v0.7.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.8876797Z    Compiling utf8parse v0.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.9639402Z    Compiling aes-gcm v0.10.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:19.9716043Z    Compiling crossbeam-epoch v0.9.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.0140063Z    Compiling crossbeam-channel v0.5.15
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.0275301Z    Compiling toml_edit v0.25.12+spec-1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.1303202Z    Compiling netlink-packet-route v0.29.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.2076370Z    Compiling blake3 v1.8.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.3126636Z    Compiling synstructure v0.13.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.3736352Z    Compiling darling_core v0.20.11
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.4811113Z    Compiling memoffset v0.6.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.5524533Z    Compiling ppv-lite86 v0.2.21
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.6283123Z    Compiling acto v0.8.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.6741619Z    Compiling noq v0.18.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.6814585Z    Compiling netwatch v0.16.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.8034010Z    Compiling identity-hash v0.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.8680790Z    Compiling proc-macro-crate v3.5.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.8861239Z    Compiling rustc-hash v2.1.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.8961035Z    Compiling sorted-index-buffer v0.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.9028473Z    Compiling foldhash v0.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.9785373Z    Compiling rand_chacha v0.3.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:20.9974449Z    Compiling linux-raw-sys v0.12.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.0090178Z    Compiling lru-slab v0.1.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.0235298Z    Compiling tagptr v0.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.0646140Z    Compiling ref-cast v1.0.25
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.1187083Z    Compiling regex-automata v0.4.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.1511116Z    Compiling thiserror v1.0.69
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.3101040Z    Compiling rand v0.8.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.3561477Z    Compiling mac-addr v0.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.3948860Z    Compiling xml-rs v0.8.28
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.4657086Z    Compiling hashbrown v0.16.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.5950839Z    Compiling serde_derive_internals v0.29.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:21.6171796Z    Compiling netlink-packet-route v0.30.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.0760835Z    Compiling ioctl-rs v0.1.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.1110687Z    Compiling errno v0.3.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.1710965Z    Compiling xmltree v0.10.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.1858810Z    Compiling termios v0.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.2622142Z    Compiling serial-core v0.4.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.2749788Z    Compiling serde_derive v1.0.228
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.3307434Z    Compiling zeroize_derive v1.4.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.3653879Z    Compiling tokio-macros v2.7.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.4366284Z    Compiling futures-macro v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.5897983Z    Compiling zerofrom-derive v0.1.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.6424284Z    Compiling yoke-derive v0.8.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.8303263Z    Compiling zeroize v1.8.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.8645235Z    Compiling zerovec-derive v0.11.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.8722522Z    Compiling displaydoc v0.2.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:22.9838223Z    Compiling tracing-attributes v0.1.31
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.0137959Z    Compiling rustls-pki-types v1.14.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.0560924Z    Compiling tokio v1.52.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.2743458Z    Compiling futures-util v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.3950244Z    Compiling curve25519-dalek-derive v0.1.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.5998692Z    Compiling thiserror-impl v2.0.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.9066386Z    Compiling zerofrom v0.1.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:23.9223847Z    Compiling darling_macro v0.20.11
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.0271230Z    Compiling derive_more-impl v2.1.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.0478056Z    Compiling yoke v0.8.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.2041004Z    Compiling darling v0.20.11
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.2639162Z    Compiling zerotrie v0.2.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.2791514Z    Compiling derive_builder_core v0.20.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.3791137Z    Compiling zerovec v0.11.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.4620964Z    Compiling der v0.7.10
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.6379289Z    Compiling n0-error-macros v0.1.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:24.7640904Z    Compiling spez v0.1.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.0800982Z    Compiling tinystr v0.8.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.0802182Z    Compiling potential_utf v0.1.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.1920846Z    Compiling icu_collections v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.2248484Z    Compiling icu_locale_core v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.4601501Z    Compiling derive_builder_macro v0.20.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.6519237Z    Compiling n0-error v0.1.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.7226557Z    Compiling derive_builder v0.20.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.8097476Z    Compiling spki v0.7.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.9236806Z    Compiling der v0.8.0-rc.10
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.9822826Z    Compiling pin-project-internal v1.1.13
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:25.9982779Z    Compiling pkcs8 v0.10.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:26.2976456Z    Compiling pkcs1 v0.7.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:26.3717222Z    Compiling icu_provider v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:26.6751355Z    Compiling futures-executor v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:26.7780837Z    Compiling icu_normalizer v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:26.8140819Z    Compiling icu_properties v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:26.8457630Z    Compiling ed25519-dalek v2.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.0263378Z    Compiling futures v0.3.32
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.1350536Z    Compiling ipnet v2.12.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.2220743Z    Compiling pin-project v1.1.13
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.2304015Z    Compiling spt-proto v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-proto)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.2870762Z    Compiling spki v0.8.0-rc.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.4797165Z    Compiling pkcs8 v0.11.0-rc.10
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.6460881Z    Compiling prefix-trie v0.8.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.6550694Z    Compiling ed25519 v3.0.0-rc.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.8410664Z    Compiling once_cell v1.21.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.8680885Z    Compiling cobs v0.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.9297491Z    Compiling regex v1.12.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:27.9484004Z    Compiling postcard-derive v0.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.0447847Z    Compiling tracing-core v0.1.36
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.0888245Z    Compiling data-encoding-macro-internal v0.1.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.2851225Z    Compiling idna_adapter v1.2.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.3850565Z    Compiling hashbrown v0.14.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.3994141Z    Compiling derive_more v2.1.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.4571420Z    Compiling idna v1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.4730922Z    Compiling rsa v0.9.10
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.4949680Z    Compiling data-encoding-macro v0.1.20
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.5478863Z    Compiling tracing v0.1.44
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.5840538Z    Compiling postcard v1.1.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.6393758Z    Compiling rustls-native-certs v0.8.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.7240948Z    Compiling iroh-metrics-derive v0.4.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.8183636Z    Compiling tokio-util v0.7.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.8681233Z    Compiling netlink-sys v0.8.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:28.9571419Z    Compiling url v2.5.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.0572293Z    Compiling tower v0.5.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.1230799Z    Compiling hashlink v0.9.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.1561524Z    Compiling ed25519-dalek v3.0.0-pre.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.1929997Z    Compiling num_enum_derive v0.7.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.2080959Z    Compiling async-trait v0.1.89
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.2577484Z    Compiling enum-assoc v1.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.4640963Z    Compiling strum_macros v0.28.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.4954769Z    Compiling rusqlite v0.32.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.5063151Z    Compiling iroh-relay v0.98.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.5343650Z    Compiling iroh-metrics v0.38.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.6280665Z    Compiling netdev v0.42.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.6710947Z    Compiling netlink-proto v0.12.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.7520413Z    Compiling hickory-proto v0.26.0-beta.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.7813338Z    Compiling h2 v0.4.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:29.9474941Z    Compiling tokio-stream v0.1.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.0474033Z    Compiling n0-watcher v0.6.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.0570965Z    Compiling tower-http v0.6.11
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.1712727Z    Compiling num_enum v0.7.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.2330818Z    Compiling attohttpc v0.30.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.2566891Z    Compiling iroh-base v0.98.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.3157434Z    Compiling moka v0.12.15
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.3650744Z    Compiling serde_spanned v0.6.9
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.4900647Z    Compiling toml_datetime v0.6.11
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.5490819Z    Compiling thiserror-impl v1.0.69
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.5560563Z    Compiling ref-cast-impl v1.0.25
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.6220860Z    Compiling simple-dns v0.9.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:30.7345911Z    Compiling simdutf8 v0.1.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.0321006Z    Compiling resolv-conf v0.7.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.0420604Z    Compiling signal-hook v0.3.18
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.0667352Z    Compiling arrayref v0.3.9
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.1401195Z    Compiling sha1_smol v1.0.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.1880763Z    Compiling smol_str v0.1.24
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.2460688Z    Compiling toml_write v0.1.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.3692002Z    Compiling winnow v0.7.15
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.4231076Z    Compiling constant_time_eq v0.4.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.5478839Z    Compiling webpki-roots v1.0.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.6171176Z    Compiling schemars_derive v1.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.6469372Z    Compiling serial-unix v0.4.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.6801182Z    Compiling signal-hook-registry v1.4.8
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:31.8591379Z    Compiling lru v0.16.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.0200816Z    Compiling darling_core v0.23.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.0405721Z    Compiling serde_bytes v0.11.19
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.0517946Z    Compiling hmac v0.12.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.0654342Z    Compiling seize v0.5.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.1010820Z    Compiling strum v0.28.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.1455796Z    Compiling iroh v0.98.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.1733433Z    Compiling cmov v0.5.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.2090584Z    Compiling iroh-dns v0.98.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.2718672Z    Compiling dyn-clone v1.0.20
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.3609893Z    Compiling pin-utils v0.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.3736260Z    Compiling bitflags v1.3.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.3932283Z    Compiling rustix v0.38.44
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.4179646Z    Compiling ctutils v0.4.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.4276156Z    Compiling nix v0.25.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.4486174Z    Compiling papaya v0.2.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.4780453Z    Compiling hkdf v0.12.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.5197716Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.6271021Z    Compiling filedescriptor v0.8.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.7410488Z    Compiling serial v0.4.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.8181550Z    Compiling backon v1.6.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.8280871Z    Compiling anstyle-parse v1.0.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.8667895Z    Compiling vte_generate_state_changes v0.1.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:32.9881143Z    Compiling shell-words v1.1.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.0065799Z    Compiling downcast-rs v1.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.0670955Z    Compiling colorchoice v1.0.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.0893154Z    Compiling anstyle-query v1.1.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.1136786Z    Compiling is_terminal_polyfill v1.70.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.1231024Z    Compiling unicode-width v0.2.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.1442617Z    Compiling linux-raw-sys v0.4.15
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.1641183Z    Compiling instability v0.3.12
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.1771363Z    Compiling foldhash v0.1.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.1850522Z    Compiling anstyle v1.0.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.2212993Z    Compiling vte v0.13.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.3271048Z    Compiling hashbrown v0.15.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.3370820Z    Compiling signal-hook-mio v0.2.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.4087470Z    Compiling anstream v1.0.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.4420686Z    Compiling spake2 v0.4.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.4543929Z    Compiling terminal_size v0.4.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.4884943Z    Compiling schemars v1.2.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.6031605Z    Compiling strum_macros v0.26.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.7853348Z    Compiling toml_edit v0.22.27
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.8441497Z    Compiling itertools v0.13.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:33.9573228Z    Compiling sha1 v0.10.6
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.1068444Z    Compiling castaway v0.2.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.1930486Z    Compiling clap_lex v1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.1995133Z    Compiling indoc v2.0.7
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.2230839Z    Compiling static_assertions v1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.2830990Z    Compiling doctest-file v1.1.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.4321979Z    Compiling unicode-width v0.1.14
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.6241054Z    Compiling crossterm v0.28.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.6915425Z    Compiling interprocess v2.4.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.7106507Z    Compiling clap_builder v4.6.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:34.7242257Z    Compiling compact_str v0.8.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.0160913Z    Compiling lru v0.12.5
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.1639404Z    Compiling clap_derive v4.6.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.5617195Z    Compiling darling_macro v0.23.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.7264261Z    Compiling hyper v1.10.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.7592038Z    Compiling unicode-truncate v1.1.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.7959684Z    Compiling strum v0.26.3
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.8260577Z    Compiling cassowary v0.3.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.8745063Z    Compiling darling v0.23.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.8883030Z    Compiling iana-time-zone v0.1.65
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.9108650Z    Compiling nucleo-matcher v0.3.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:35.9304214Z    Compiling qrcode v0.14.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:36.0705153Z    Compiling chrono v0.4.45
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:36.2112597Z    Compiling tempfile v3.27.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:36.3861096Z    Compiling portable-pty v0.8.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:36.4930785Z    Compiling toml v0.8.23
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:36.6070457Z    Compiling ratatui v0.29.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:36.8687143Z    Compiling spt-test-support v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-test-support)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:37.6159849Z    Compiling clap v4.6.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:37.8185415Z    Compiling hyper-util v0.1.20
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:39.0485667Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:39.3640969Z    Compiling igd-next v0.17.1
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:39.3642213Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:39.3643378Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:40.4619367Z    Compiling portmapper v0.16.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:42.3577193Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:44.6047937Z    Compiling rustls-webpki v0.103.13
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:46.9517814Z    Compiling tokio-rustls v0.26.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:46.9518252Z    Compiling rustls-platform-verifier v0.7.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:46.9518657Z    Compiling noq-proto v0.17.0
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:47.0905101Z    Compiling hyper-rustls v0.27.9
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:47.0908525Z    Compiling hickory-net v0.26.0-beta.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:47.0908914Z    Compiling tokio-websockets v0.13.2
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:47.2184140Z    Compiling reqwest v0.13.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:48:48.0308854Z    Compiling hickory-resolver v0.26.0-beta.4
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:00.7962509Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:02.5067516Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:13.6816304Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:20.6406425Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 06s
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:20.6642400Z      Running tests/n1_pairing.rs (target/debug/deps/n1_pairing-8da7aa7a019236cf)
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:20.6656942Z 
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:20.6657104Z running 1 test
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:26.8567883Z test new_brain_serves_against_old_broker ... ok
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:26.8568282Z 
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:26.8568541Z test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.19s
n1-gate (self-hosted, Linux, kitsubito)	N-1 gate (new-brain × old-broker) — linux	2026-09-09T04:49:26.8568808Z 
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	﻿2026-09-09T04:49:26.8841628Z ##[group]Run set -euo pipefail
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8841919Z [36;1mset -euo pipefail[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8842149Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8842482Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8842868Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8843187Z [36;1mverdict=PASS[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8843450Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8843890Z [36;1mprintf 'FLOOR_END job=n1-gate runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8844320Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8844591Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8845035Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8845473Z [36;1m  exit 1[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8845651Z [36;1mfi[0m
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8858100Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8858371Z env:
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8858562Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8858905Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8859909Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8860454Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8860979Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8861379Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:49:26.8948894Z FLOOR_END job=n1-gate runner=Linux free_bytes=222092566528 floor_bytes=34359738368 verdict=PASS sample=INSTANT
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	﻿2026-09-09T04:49:26.8976286Z ##[group]Run bash .github/ci/reap-census.sh end
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8976596Z [36;1mbash .github/ci/reap-census.sh end[0m
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8988095Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8988372Z env:
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8988556Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8988892Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8989398Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8989802Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8990199Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.8990524Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9063719Z CI-CENSUS scope roots:
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9064057Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9064502Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9065055Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9065500Z   root: /home/reavus/actions-runner/_work/_temp
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9065805Z   root: /home/reavus/spt-n1-oldbroker
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:26.9104437Z CI-CENSUS self-check OK: walked 367 /proc entries, exe resolution live
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:28.3284528Z CI-CENSUS phase=pre-reap box_procs=365 box_fds=8576 family_total=0 scoped=0 unscoped=0 unreadable_path=0 flood_orphans=0
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:31.8682947Z CI-CENSUS phase=end box_procs=366 box_fds=8640 family_total=0 scoped=0 unscoped=0 unreadable_path=0 flood_orphans=0
n1-gate (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:49:31.8687886Z CI-REAP summary: killed=0 kill_failed=0 flood_orphans=none scoped_survivors=0 observed_scoped=0 unreadable_path=0
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	﻿2026-09-09T04:49:31.8762625Z ##[group]Run bash .github/ci/test-temp-sandbox.sh cleanup
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8762998Z [36;1mbash .github/ci/test-temp-sandbox.sh cleanup[0m
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8776019Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8776286Z env:
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8776469Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8776822Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8777249Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8777659Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8778074Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8778394Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:49:31.8847498Z CI-TMP cleanup: removed /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb on attempt 1/5
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	﻿2026-09-09T04:49:31.8893572Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8894936Z ##[group]Run actions/upload-artifact@v4
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8895170Z with:
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8895350Z   name: bench-ledger-n1-Linux
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8895563Z   path: bench-ledger/
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8895756Z   if-no-files-found: warn
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8895944Z   retention-days: 30
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8896128Z   compression-level: 6
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8896320Z   overwrite: false
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8896506Z   include-hidden-files: false
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8896700Z env:
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8896883Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8909118Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8909643Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8910053Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8910447Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-0gI2Lb
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:31.8910753Z ##[endgroup]
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.0281248Z (node:2197138) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.0281828Z (Use `node --trace-deprecation ...` to show where the warning was created)
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.0319090Z With the provided path, there will be 1 file uploaded
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.0323046Z Artifact name is valid!
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.0323652Z Root directory input is valid!
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.4229579Z Beginning upload of artifact content to blob storage
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.4382979Z (node:2197138) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.7215227Z Uploaded bytes 269
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.7963377Z Finished uploading artifact content to blob storage!
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.7964485Z SHA256 digest of uploaded artifact zip is c8820c03f02794dad8a93781e713b94348d6ff01aaf5163b403ce66649e7de41
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:32.7965546Z Finalizing artifact upload
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:33.0807121Z Artifact bench-ledger-n1-Linux.zip successfully finalized. Artifact ID 10088850457
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:33.0808299Z Artifact bench-ledger-n1-Linux has been successfully uploaded! Final size is 269 bytes. Artifact ID is 10088850457
n1-gate (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:49:33.0816184Z Artifact download URL: https://github.com/BigscreenVR/spt-bs-core/actions/runs/34310511612/artifacts/10088850457
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	﻿2026-09-09T04:49:33.1031818Z Post job cleanup.
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1685367Z [command]/usr/bin/git version
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1751484Z git version 2.43.0
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1780954Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/1da76422-2a80-4fb5-842f-57c2fae6aba9/.gitconfig'
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1789607Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/1da76422-2a80-4fb5-842f-57c2fae6aba9' before making global git config changes
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1790442Z Adding repository directory to the temporary git global config as a safe directory
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1793033Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1842380Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.1868151Z [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' || :"
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.2058485Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.2077166Z http.https://github.com/.extraheader
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.2084073Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.2107282Z [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' || :"
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.2296023Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
n1-gate (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:49:33.2319151Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
n1-gate (self-hosted, Linux, kitsubito)	Complete job	﻿2026-09-09T04:49:33.2612295Z Cleaning up orphan processes
n1-gate (self-hosted, Linux, kitsubito)	Complete job	2026-09-09T04:49:33.3103225Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (self-hosted, Windows, hfenduleam)	Set up job	﻿2026-09-09T04:19:35.1475834Z Current runner version: '2.337.0'
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1484121Z Runner name: 'hfenduleam'
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1484578Z Runner group name: 'Default'
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1485182Z Machine name: 'HFENDULEAM'
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1488374Z ##[group]GITHUB_TOKEN Permissions
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1490050Z Actions: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1490435Z ArtifactMetadata: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1490793Z Attestations: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1491132Z Checks: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1491750Z CodeQuality: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1492113Z Contents: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1492476Z CopilotRequests: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1492847Z Deployments: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1493181Z Discussions: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1493500Z Drives: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1493803Z Issues: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1494128Z Metadata: read
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1494439Z Models: read
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1494739Z Packages: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1495060Z Pages: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1495408Z PullRequests: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1496085Z RepositoryProjects: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1496453Z SecurityEvents: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1496796Z Statuses: write
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1497123Z VulnerabilityAlerts: read
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1497490Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1498858Z Secret source: Actions
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.1499499Z Prepare workflow directory
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.2363826Z Prepare all required actions
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.2405431Z Getting action download info
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.5558094Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:35.9859655Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02)
test (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T04:19:38.1665546Z Complete job name: test (self-hosted, Windows, hfenduleam)
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	﻿2026-09-09T04:19:38.3296728Z ##[group]Run Get-Process spt,notify-shell -ErrorAction SilentlyContinue |
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3302287Z [36;1mGet-Process spt,notify-shell -ErrorAction SilentlyContinue |[0m
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3309770Z [36;1m  Where-Object { $_.Path -like "$env:GITHUB_WORKSPACE\*" } |[0m
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3310367Z [36;1m  Stop-Process -Force -ErrorAction SilentlyContinue[0m
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3311432Z [36;1mexit 0[0m
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3329240Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3329881Z env:
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3331006Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3331929Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3332399Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3338520Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T04:19:38.3347054Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	﻿2026-09-09T04:19:39.5324404Z ##[group]Run actions/checkout@v5
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5324975Z with:
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5325491Z   repository: BigscreenVR/spt-bs-core
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5328816Z   token: ***
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5329162Z   ssh-strict: true
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5329590Z   ssh-user: git
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5331284Z   persist-credentials: true
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5332052Z   clean: true
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5333302Z   sparse-checkout-cone-mode: true
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5333808Z   fetch-depth: 1
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5334133Z   fetch-tags: false
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5334633Z   show-progress: true
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5335085Z   lfs: false
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5335595Z   submodules: false
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5335990Z   set-safe-directory: true
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5336364Z   allow-unsafe-pr-checkout: false
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5336739Z env:
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5337078Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5337542Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5337979Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5343574Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:39.5350921Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:40.5728819Z Syncing repository: BigscreenVR/spt-bs-core
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:40.5729849Z ##[group]Getting Git version info
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:40.5730224Z Working directory is 'C:\actions-runner\_work\spt-bs-core\spt-bs-core'
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:40.5975352Z [command]"C:\Program Files\Git\cmd\git.exe" version
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.4862144Z git version 2.43.0.windows.1
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.4898876Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.4911381Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\630d3120-1583-4f65-a9ad-e9a12d36fc14\.gitconfig'
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.4993383Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\630d3120-1583-4f65-a9ad-e9a12d36fc14' before making global git config changes
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.4994836Z Adding repository directory to the temporary git global config as a safe directory
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.5010210Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.5858045Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --get remote.origin.url
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.9182595Z https://github.com/BigscreenVR/spt-bs-core
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.9607033Z ##[group]Removing previously created refs, to avoid conflicts
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:41.9616393Z [command]"C:\Program Files\Git\cmd\git.exe" rev-parse --symbolic-full-name --verify --quiet HEAD
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:42.3094209Z refs/heads/golden/webserve-272-r2
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:42.3134683Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --detach
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:42.7731441Z HEAD is now at 25e600158 release: v0.68.0 — version material on the r2 assembled WEBSERVE head
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:43.8614986Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:43.8620793Z [command]"C:\Program Files\Git\cmd\git.exe" submodule status
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:57.4970595Z ##[group]Cleaning the repository
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:19:57.4976398Z [command]"C:\Program Files\Git\cmd\git.exe" clean -ffdx
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:00.6126193Z Removing .adapter-notify/
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:00.6126572Z Removing bench-ledger/
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:00.6126817Z Removing target/
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:00.6158731Z [command]"C:\Program Files\Git\cmd\git.exe" reset --hard HEAD
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:01.8211044Z HEAD is now at 25e600158 release: v0.68.0 — version material on the r2 assembled WEBSERVE head
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:01.8240709Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:01.8245758Z ##[group]Disabling automatic garbage collection
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:01.8251229Z [command]"C:\Program Files\Git\cmd\git.exe" config --local gc.auto 0
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:02.0438883Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:02.0439513Z ##[group]Setting up auth
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:02.0446551Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:02.3956559Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:14.1682897Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:15.2522944Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:24.2675429Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:24.2980131Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:26.2710874Z [command]"C:\Program Files\Git\cmd\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:26.8933630Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:26.8934184Z ##[group]Fetching the repository
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:26.8941883Z [command]"C:\Program Files\Git\cmd\git.exe" -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d:refs/remotes/origin/golden/webserve-272-r3
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:30.6119585Z From https://github.com/BigscreenVR/spt-bs-core
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:30.6120398Z  * [new ref]             f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d -> origin/golden/webserve-272-r3
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:30.8467519Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:30.8468085Z ##[group]Determining the checkout info
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:30.8469552Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:30.8477317Z [command]"C:\Program Files\Git\cmd\git.exe" sparse-checkout disable
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:31.2167783Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all extensions.worktreeConfig
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:32.8635735Z ##[group]Checking out the ref
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:32.8636402Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:32.8637445Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:32.8638221Z Previous HEAD position was 25e600158 release: v0.68.0 — version material on the r2 assembled WEBSERVE head
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:32.8638723Z Switched to a new branch 'golden/webserve-272-r3'
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:32.8671255Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:33.1620454Z [command]"C:\Program Files\Git\cmd\git.exe" log -1 --format=%H
test (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T04:20:33.5194370Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	﻿2026-09-09T04:20:33.7703840Z ##[group]Run $floorBytes = 32GB
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7704253Z [36;1m$floorBytes = 32GB[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7704560Z [36;1m$drive = (Get-Item $env:GITHUB_WORKSPACE).PSDrive[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7704830Z [36;1m$freeBytes = [int64]$drive.Free[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7705239Z [36;1m$verdict = if ($freeBytes -lt $floorBytes) { "RED" } else { "PASS" }[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7705745Z [36;1mWrite-Host "FLOOR_START job=test runner=Windows free_bytes=$freeBytes floor_bytes=$floorBytes verdict=$verdict sample=INSTANT"[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7706226Z [36;1mif ($freeBytes -lt $floorBytes) {[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7706591Z [36;1m  Write-Error "RESOURCE=disk drive=$($drive.Root) free_bytes=$freeBytes floor_bytes=$floorBytes"[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7706934Z [36;1m  exit 1[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7771774Z [36;1m}[0m
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7778497Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7778778Z env:
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7778937Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7779170Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7779361Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7784374Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:33.7789332Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T04:20:34.0964350Z FLOOR_START job=test runner=Windows free_bytes=153805152256 floor_bytes=34359738368 verdict=PASS sample=INSTANT
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	﻿2026-09-09T04:20:34.4991375Z ##[group]Run $cargo  = @(cargo --version)[0]
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.4996617Z [36;1m$cargo  = @(cargo --version)[0][0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.4996921Z [36;1m$rustc  = @(rustc --version)[0][0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.4997220Z [36;1m$clippy = @(cargo clippy --version)[0][0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.4998280Z [36;1m# rustup is how both boxes are managed today, but the three versions above are[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.4999197Z [36;1m# what judges the lane. A box without rustup must still print a complete record:[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5002520Z [36;1m# under GitHub's pwsh wrapper ($ErrorActionPreference = 'stop') a missing COMMAND[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5003234Z [36;1m# is a terminating error, so absence is tested rather than caught, and a present[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5003822Z [36;1m# rustup's non-zero exit is cleared so the trailing $LASTEXITCODE check cannot[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5004246Z [36;1m# red a step whose whole job is to print.[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5004601Z [36;1m$active = if (Get-Command rustup -ErrorAction SilentlyContinue) {[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5005032Z [36;1m  @(rustup show active-toolchain 2>$null)[0][0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5005352Z [36;1m} else { $null }[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5005819Z [36;1m$global:LASTEXITCODE = 0[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5006143Z [36;1mif (-not $active) { $active = "(no rustup on PATH)" }[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5007432Z [36;1mWrite-Host "TOOLCHAIN leg=windows runner=$env:RUNNER_NAME active=$active"[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5007888Z [36;1mWrite-Host "TOOLCHAIN leg=windows $cargo"[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5008209Z [36;1mWrite-Host "TOOLCHAIN leg=windows $rustc"[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5008562Z [36;1mWrite-Host "TOOLCHAIN leg=windows clippy: $clippy"[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5008955Z [36;1mif (-not $cargo -or -not $rustc -or -not $clippy) {[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5009506Z [36;1m  Write-Error "TOOLCHAIN leg=windows INCOMPLETE — a version this run is judged by did not print"[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5009999Z [36;1m  exit 1[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5010454Z [36;1m}[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5010628Z [36;1mexit 0[0m
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5017784Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5022680Z env:
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5022924Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5023280Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5023565Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5035567Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:34.5046489Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:40.4365545Z TOOLCHAIN leg=windows runner=hfenduleam active=1.96.0-x86_64-pc-windows-msvc (overridden by 'C:\actions-runner\_work\spt-bs-core\spt-bs-core\rust-toolchain.toml')
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:40.4382994Z TOOLCHAIN leg=windows cargo 1.96.0 (30a34c682 2026-05-25)
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:40.4383399Z TOOLCHAIN leg=windows rustc 1.96.0 (ac68faa20 2026-05-25)
test (self-hosted, Windows, hfenduleam)	Toolchain versions (Windows)	2026-09-09T04:20:40.4386843Z TOOLCHAIN leg=windows clippy: clippy 0.1.96 (ac68faa20c 2026-05-25)
test (self-hosted, Windows, hfenduleam)	Process census (job start)	﻿2026-09-09T04:20:40.8858356Z ##[group]Run .github/ci/reap-census.ps1 -Phase start
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8858865Z [36;1m.github/ci/reap-census.ps1 -Phase start[0m
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8892950Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8893721Z env:
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8894141Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8897826Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8898505Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8921406Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:40.8948344Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.5338927Z CI-CENSUS scope roots:
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.5349380Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.5350160Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\target
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.5351433Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.5351951Z   root: C:\actions-runner\_work\_temp
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.5352933Z   root: C:\Users\decid\spt-n1-oldbroker
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6125744Z CI-CENSUS phase=start box_procs=632 box_handles=269163 family_total=18 family_handles=2639 scoped=0 unscoped=18 unreadable_path=0
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6184931Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6186264Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6187351Z   FOREIGN  pid=13476   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6188663Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6189575Z   FOREIGN  pid=23632   handles=125    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6190550Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6191777Z   FOREIGN  pid=28784   handles=125    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6192739Z   FOREIGN  pid=40796   handles=122    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6193546Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6194484Z   FOREIGN  pid=48032   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6195400Z   FOREIGN  pid=48232   handles=723    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6197714Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6198270Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6198838Z   FOREIGN  pid=51952   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6199550Z   FOREIGN  pid=51992   handles=188    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6201238Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6202920Z   FOREIGN  pid=54676   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T04:20:41.6204061Z   FOREIGN  pid=55176   handles=122    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	﻿2026-09-09T04:20:41.7427250Z ##[group]Run .github/ci/test-temp-sandbox.ps1 -Phase setup
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7427883Z [36;1m.github/ci/test-temp-sandbox.ps1 -Phase setup[0m
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7439448Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7439760Z env:
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7439956Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7440198Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7440629Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7447981Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:41.7462712Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T04:20:42.0831465Z CI-TMP setup: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	﻿2026-09-09T04:20:42.3925195Z ##[group]Run # Cross-package consumers cannot express Cargo artifact dependencies.
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3925933Z [36;1m# Cross-package consumers cannot express Cargo artifact dependencies.[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3926498Z [36;1m# Keep each required helper explicit so binedge-check can prove the edge.[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3926792Z [36;1mcargo build -p mock-adapter --bin mock-session[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3927134Z [36;1mcargo build -p mock-adapter --bin mock-shell[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3927362Z [36;1mcargo build -p mock-adapter --bin capture-player[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3927848Z [36;1mcargo build -p mock-adapter --bin console-mode-probe[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3928092Z [36;1mcargo build -p spt-daemon --bin service_fixture[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3928293Z [36;1mcargo build --workspace[0m
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3933445Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3933664Z env:
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3933787Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3933984Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3934141Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3937794Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3942311Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3942971Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3943593Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:42.3944002Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:44.4805112Z    Compiling version_check v0.9.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:44.4805408Z    Compiling typenum v1.20.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:44.4805579Z    Compiling windows_x86_64_msvc v0.52.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:44.4806321Z    Compiling subtle v2.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:46.4215574Z    Compiling cpufeatures v0.2.17
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:46.6420336Z    Compiling generic-array v0.14.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:46.8422033Z    Compiling cfg-if v1.0.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:47.8280344Z    Compiling windows-targets v0.52.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:48.1680744Z    Compiling windows-sys v0.59.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:48.5388863Z    Compiling crypto-common v0.1.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:48.5389200Z    Compiling block-buffer v0.10.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:49.1638489Z    Compiling digest v0.10.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:50.0555905Z    Compiling hmac v0.12.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:50.0557424Z    Compiling sha2 v0.10.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:51.2503004Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:51.8784036Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.87s
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:52.8957134Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:53.8168422Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.31s
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:54.4150902Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:55.7406104Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.48s
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:58.7225346Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:20:59.4237950Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.95s
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:04.8311346Z    Compiling proc-macro2 v1.0.106
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:04.8311807Z    Compiling unicode-ident v1.0.24
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:04.8312076Z    Compiling quote v1.0.45
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:04.8312347Z    Compiling serde_core v1.0.228
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:05.3601475Z    Compiling serde v1.0.228
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:06.2408786Z    Compiling typenum v1.20.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:07.1167032Z    Compiling windows-link v0.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:07.7306062Z    Compiling pin-project-lite v0.2.17
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:07.7468832Z    Compiling portable-atomic v1.13.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:08.3007486Z    Compiling subtle v2.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:09.0291054Z    Compiling windows-sys v0.61.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:10.3639779Z    Compiling memchr v2.8.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:11.4797488Z    Compiling syn v2.0.117
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:11.4884786Z    Compiling critical-section v1.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:11.5282135Z    Compiling generic-array v0.14.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:12.2410374Z    Compiling futures-core v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:12.8433431Z    Compiling smallvec v1.15.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:12.8998211Z    Compiling bytes v1.11.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:13.4643483Z    Compiling getrandom v0.2.17
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:14.0671375Z    Compiling shlex v2.0.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:14.3263802Z    Compiling find-msvc-tools v0.1.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:14.6119745Z    Compiling semver v1.0.28
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:15.4608678Z    Compiling cc v1.2.63
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:16.1018611Z    Compiling rustc_version v0.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:16.2267936Z    Compiling serde_derive v1.0.228
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:17.8515092Z    Compiling zeroize_derive v1.4.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.1054615Z    Compiling synstructure v0.13.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.2385170Z    Compiling crypto-common v0.1.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.3684994Z    Compiling equivalent v1.0.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.4405872Z    Compiling zeroize v1.8.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.7144458Z    Compiling stable_deref_trait v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.7844734Z    Compiling itoa v1.0.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:18.8676580Z    Compiling socket2 v0.6.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:19.0536563Z    Compiling autocfg v1.5.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:19.1907323Z    Compiling log v0.4.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:19.5850313Z    Compiling zerofrom-derive v0.1.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:19.6015668Z    Compiling yoke-derive v0.8.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:19.7515037Z    Compiling tokio-macros v2.7.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:20.8416640Z    Compiling mio v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:20.8664597Z    Compiling futures-sink v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:20.8699216Z    Compiling zerofrom v0.1.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:21.6461475Z    Compiling slab v0.4.12
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:22.1913141Z    Compiling futures-io v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:22.6432336Z    Compiling yoke v0.8.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:23.0651093Z    Compiling tokio v1.52.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:24.1151398Z    Compiling futures-channel v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:25.5986155Z    Compiling futures-macro v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:25.7044821Z    Compiling once_cell v1.21.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:26.1376092Z    Compiling rand_core v0.10.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:26.1745419Z    Compiling hashbrown v0.17.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:26.4499758Z    Compiling futures-task v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:26.8067822Z    Compiling futures-util v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:26.8080230Z    Compiling zerovec-derive v0.11.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:26.9664884Z    Compiling indexmap v2.14.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:27.7917234Z    Compiling displaydoc v0.2.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:28.1460870Z    Compiling zerovec v0.11.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:29.0310405Z    Compiling hybrid-array v0.4.12
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:29.2658793Z    Compiling scopeguard v1.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:30.1856165Z    Compiling fnv v1.0.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:30.3354330Z    Compiling getrandom v0.4.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:30.3608619Z    Compiling libm v0.2.16
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:31.5232326Z    Compiling lock_api v0.4.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:32.0407179Z    Compiling num-traits v0.2.19
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:32.2249662Z    Compiling libc v0.2.186
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:33.6781960Z    Compiling cfg_aliases v0.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:33.7895743Z    Compiling const-oid v0.9.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:34.2382839Z    Compiling crypto-common v0.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:34.4266367Z    Compiling block-buffer v0.12.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:34.5192675Z    Compiling tinystr v0.8.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:34.8563376Z    Compiling tracing-core v0.1.36
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.0269409Z    Compiling tracing-attributes v0.1.31
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.2562983Z    Compiling litemap v0.8.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.4912474Z    Compiling rustversion v1.0.22
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.6365537Z    Compiling writeable v0.6.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.7080515Z    Compiling potential_utf v0.1.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.9103662Z    Compiling icu_locale_core v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:35.9378056Z    Compiling zerotrie v0.2.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:36.3951764Z    Compiling utf8_iter v1.0.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:36.6382913Z    Compiling tracing v0.1.44
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:36.6757519Z    Compiling icu_properties_data v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:36.7828135Z    Compiling icu_normalizer_data v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:37.0347875Z    Compiling icu_provider v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:37.5237215Z    Compiling icu_collections v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:37.6315076Z    Compiling tokio-util v0.7.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:38.9214986Z    Compiling block-buffer v0.10.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:39.1556261Z    Compiling percent-encoding v2.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:39.5411684Z    Compiling icu_normalizer v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:39.8940720Z    Compiling icu_properties v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:39.9423699Z    Compiling digest v0.10.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:40.8094483Z    Compiling spin v0.9.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:42.5356711Z    Compiling inout v0.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:42.6540535Z    Compiling http v1.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:42.8509601Z    Compiling ring v0.17.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:42.8992000Z    Compiling cpufeatures v0.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:43.2262143Z    Compiling zerocopy v0.8.50
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:43.5998785Z    Compiling thiserror v2.0.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:43.9903170Z    Compiling idna_adapter v1.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:44.6775963Z    Compiling cipher v0.5.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:44.7596398Z    Compiling curve25519-dalek-derive v0.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:45.4855560Z    Compiling thiserror-impl v2.0.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:45.5514615Z    Compiling rand_core v0.6.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:45.9656233Z    Compiling chacha20 v0.10.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:46.0348043Z    Compiling idna v1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:47.3927389Z    Compiling form_urlencoded v1.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:47.4509475Z    Compiling ipnet v2.12.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:49.5535593Z    Compiling rustls-pki-types v1.14.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:50.0903776Z    Compiling ident_case v1.0.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:50.3211468Z    Compiling untrusted v0.9.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:50.4417983Z    Compiling strsim v0.11.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:50.4660464Z    Compiling url v2.5.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:50.6518447Z    Compiling rand v0.10.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:51.1223176Z    Compiling darling_core v0.20.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:51.8489039Z    Compiling windows-strings v0.5.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:51.9753139Z    Compiling windows-result v0.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:52.5279528Z    Compiling unicode-segmentation v1.13.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:52.7073044Z    Compiling rustls v0.23.40
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:53.5727118Z    Compiling convert_case v0.10.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:53.6761872Z    Compiling unicode-xid v0.2.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:54.2635640Z    Compiling darling_macro v0.20.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:54.2812855Z    Compiling bitflags v2.12.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:54.3473544Z    Compiling const-oid v0.10.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:55.3001046Z    Compiling rustls-webpki v0.103.13
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:55.7904915Z    Compiling anyhow v1.0.102
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:56.1811998Z    Compiling atomic-waker v1.1.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:56.8653899Z    Compiling darling v0.20.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:57.9772665Z    Compiling derive_more-impl v2.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:21:58.7698456Z    Compiling winapi v0.3.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:00.9671926Z    Compiling httparse v1.10.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:01.3383364Z    Compiling derive_more v2.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:01.9085382Z    Compiling derive_builder_core v0.20.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:02.0450235Z    Compiling h2 v0.4.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:02.1481803Z    Compiling http-body v1.0.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:02.5073529Z    Compiling curve25519-dalek v4.1.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:02.9502546Z    Compiling ahash v0.8.12
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:03.2798587Z    Compiling powerfmt v0.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:03.5965252Z    Compiling base64ct v1.8.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:04.3817192Z    Compiling pem-rfc7468 v1.0.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:05.7324436Z    Compiling deranged v0.5.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:06.8084029Z    Compiling derive_builder_macro v0.20.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:09.5486208Z    Compiling ppv-lite86 v0.2.21
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:09.5550353Z    Compiling signature v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:09.7834041Z    Compiling lazy_static v1.5.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:09.7964524Z    Compiling sha2 v0.10.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:09.9140400Z    Compiling der v0.7.10
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:10.0316616Z    Compiling uuid v1.23.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:10.4162421Z    Compiling windows-interface v0.59.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:10.8920322Z    Compiling spez v0.1.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:11.3804183Z    Compiling n0-error-macros v0.1.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:11.4048257Z    Compiling windows-implement v0.60.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:11.8448339Z    Compiling num-conv v0.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:11.8758924Z    Compiling tinyvec_macros v0.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:12.1159198Z    Compiling base64 v0.22.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:12.2332264Z    Compiling tower-service v0.3.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:12.6472458Z    Compiling try-lock v0.2.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:12.7958146Z    Compiling time-core v0.1.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:12.8255098Z    Compiling pkg-config v0.3.33
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:12.9745523Z    Compiling parking_lot_core v0.9.12
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:13.0472881Z    Compiling data-encoding v2.11.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:13.1163577Z    Compiling zmij v1.0.21
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:13.4475888Z    Compiling fastrand v2.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:13.7219263Z    Compiling vcpkg v0.2.15
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:14.2659344Z    Compiling want v0.3.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:14.7272082Z    Compiling libsqlite3-sys v0.30.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:15.8188300Z    Compiling n0-error v0.1.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:16.0733802Z    Compiling windows-core v0.62.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:16.8180532Z    Compiling tinyvec v1.11.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:17.5903551Z    Compiling spki v0.7.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:17.6124659Z    Compiling rand_chacha v0.3.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:17.6968027Z    Compiling derive_builder v0.20.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:18.0880459Z    Compiling der v0.8.0-rc.10
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:18.1789067Z    Compiling vergen-lib v9.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:18.4360031Z    Compiling num-integer v0.1.47
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:18.7527474Z    Compiling n0-future v0.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:18.9175529Z    Compiling pin-project-internal v1.1.13
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:19.7007936Z    Compiling inout v0.1.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:19.7401728Z    Compiling httpdate v1.0.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:19.9996276Z    Compiling serde_json v1.0.150
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:20.2606019Z    Compiling heck v0.5.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:21.8351739Z    Compiling spt-procident v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-procident)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:21.9205203Z    Compiling spin v0.10.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:23.6514271Z    Compiling cordyceps v0.3.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:23.8403194Z    Compiling diatomic-waker v0.2.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:23.8471179Z    Compiling winnow v1.0.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:23.9059066Z    Compiling num-bigint-dig v0.8.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:24.0102636Z    Compiling parking v2.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:24.7977246Z    Compiling crossbeam-utils v0.8.21
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:24.9051881Z    Compiling futures-lite v2.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:25.3652298Z    Compiling futures-buffered v0.2.13
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:25.7031119Z    Compiling toml_parser v1.1.2+spec-1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:25.9799654Z    Compiling spt-poolguard v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-poolguard)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:26.0573725Z    Compiling pin-project v1.1.13
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:26.9339872Z    Compiling hyper v1.10.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:27.0699647Z    Compiling cipher v0.4.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:27.5222559Z    Compiling spki v0.8.0-rc.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:27.6408450Z    Compiling num-iter v0.1.46
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:27.9103956Z    Compiling hashbrown v0.14.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:28.1175938Z    Compiling rand v0.8.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:28.5726448Z    Compiling pkcs8 v0.10.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:29.5970351Z    Compiling ed25519 v2.2.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:29.7874651Z    Compiling tokio-rustls v0.26.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:29.8339317Z    Compiling digest v0.11.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:29.8793451Z    Compiling vergen v9.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:30.1572389Z    Compiling vergen-lib v0.1.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:30.4215027Z    Compiling noq-udp v0.10.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:30.6512180Z    Compiling universal-hash v0.5.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:31.4572968Z    Compiling curve25519-dalek v5.0.0-pre.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:31.9724455Z    Compiling heapless v0.7.17
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:32.7804727Z    Compiling sync_wrapper v1.0.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:33.9197670Z    Compiling aho-corasick v1.1.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:34.2363961Z    Compiling byteorder v1.5.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:34.2925984Z    Compiling opaque-debug v0.3.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:34.2944123Z    Compiling toml_datetime v1.1.1+spec-1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:34.6117660Z    Compiling regex-syntax v0.8.10
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:34.8635322Z    Compiling either v1.16.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:34.9939962Z    Compiling toml_edit v0.25.12+spec-1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:35.8365863Z    Compiling prefix-trie v0.8.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:36.7466060Z    Compiling polyval v0.6.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:36.9739110Z    Compiling regex-automata v0.4.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:37.3605171Z    Compiling hash32 v0.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:42.7933244Z    Compiling ed25519-dalek v2.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:43.1587757Z    Compiling parking_lot v0.12.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:44.5322414Z    Compiling pkcs1 v0.7.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:44.9090327Z    Compiling hashlink v0.9.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:45.2819276Z    Compiling hyper-util v0.1.20
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:47.3422340Z    Compiling pkcs8 v0.11.0-rc.10
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:47.7899352Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:48.1300538Z    Compiling vergen-gitcl v1.0.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:48.4839502Z    Compiling futures-executor v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:48.5677273Z    Compiling windows-threading v0.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:48.8355942Z    Compiling signature v3.0.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:48.8677984Z    Compiling tower-layer v0.3.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:48.9603085Z    Compiling fallible-streaming-iterator v0.1.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:49.1988264Z    Compiling fallible-iterator v0.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:49.4793788Z    Compiling ed25519 v3.0.0-rc.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:49.6414516Z    Compiling rusqlite v0.32.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:50.0519730Z    Compiling windows-future v0.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:50.1313663Z    Compiling data-encoding-macro-internal v0.1.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:50.1321360Z    Compiling futures v0.3.32
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:51.3525530Z    Compiling rsa v0.9.10
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:51.6519643Z    Compiling spt-proto v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-proto)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:56.5681821Z    Compiling regex v1.12.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:57.0668056Z    Compiling hickory-proto v0.26.0-beta.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:57.3195338Z    Compiling ghash v0.5.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:57.7758405Z    Compiling proc-macro-crate v3.5.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:57.8323328Z    Compiling sha2 v0.11.0-rc.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:57.9935698Z    Compiling ctr v0.9.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:58.6997237Z    Compiling aes v0.8.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:59.5720499Z    Compiling windows-collections v0.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:22:59.6035984Z    Compiling windows-numerics v0.3.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:00.5810342Z    Compiling time v0.3.47
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:00.8619443Z    Compiling fs2 v0.4.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:01.0668104Z    Compiling http-body-util v0.1.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:01.3998533Z    Compiling cobs v0.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:01.7282976Z    Compiling aead v0.5.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:01.7328715Z    Compiling postcard-derive v0.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:01.8777975Z    Compiling widestring v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:02.1522644Z    Compiling arrayvec v0.7.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:02.6805380Z    Compiling ipconfig v0.3.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:02.7040659Z    Compiling postcard v1.1.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:03.7651849Z    Compiling aes-gcm v0.10.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:03.9978541Z    Compiling windows v0.62.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:04.8639093Z    Compiling ed25519-dalek v3.0.0-pre.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:05.3263623Z    Compiling num_enum_derive v0.7.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:06.4546946Z    Compiling data-encoding-macro v0.1.20
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:06.6405136Z    Compiling windows-sys v0.59.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:07.1584259Z    Compiling tower v0.5.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:07.7565004Z    Compiling crossbeam-epoch v0.9.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:08.1660601Z    Compiling crossbeam-channel v0.5.15
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:08.4617846Z    Compiling strum_macros v0.28.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:08.9659186Z    Compiling iroh-metrics-derive v0.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:09.8397545Z    Compiling windows-registry v0.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:10.5548477Z    Compiling chrono v0.4.45
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:10.9569338Z    Compiling netwatch v0.16.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:12.0975447Z    Compiling noq v0.18.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:12.3527932Z    Compiling memoffset v0.6.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:12.5404955Z    Compiling blake3 v1.8.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:12.7852085Z    Compiling acto v0.8.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:12.9685291Z    Compiling async-trait v0.1.89
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:13.0305341Z    Compiling enum-assoc v1.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:14.0317941Z    Compiling tagptr v0.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:14.1357198Z    Compiling identity-hash v0.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:14.4161808Z    Compiling lru-slab v0.1.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:14.4711562Z    Compiling allocator-api2 v0.2.21
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:14.5202588Z    Compiling thiserror v1.0.69
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:14.8272789Z    Compiling xml-rs v0.8.28
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:15.0528443Z    Compiling ryu v1.0.23
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:15.2837637Z    Compiling foldhash v0.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:15.6532763Z    Compiling sorted-index-buffer v0.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:16.0563825Z    Compiling rustc-hash v2.1.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:16.3732754Z    Compiling ref-cast v1.0.25
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:16.4132103Z    Compiling mac-addr v0.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:16.7766685Z    Compiling noq-proto v0.17.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:17.0834711Z    Compiling netdev v0.42.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:18.7697683Z    Compiling hashbrown v0.16.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:18.7701339Z    Compiling xmltree v0.10.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:19.2835119Z    Compiling iroh-metrics v0.38.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:20.0516946Z    Compiling moka v0.12.15
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:20.5553657Z    Compiling hickory-net v0.26.0-beta.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:21.3652392Z    Compiling wmi v0.18.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:24.4369146Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:24.6731816Z    Compiling strum v0.28.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:25.5551286Z    Compiling tower-http v0.6.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:25.7224506Z    Compiling num_enum v0.7.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:26.2185606Z    Compiling iroh-base v0.98.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:26.2191638Z    Compiling iroh-relay v0.98.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:26.3626373Z    Compiling hyper-rustls v0.27.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:26.8090858Z    Compiling n0-watcher v0.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:26.9109527Z    Compiling attohttpc v0.30.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:27.1144460Z    Compiling rustls-platform-verifier v0.7.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:27.4145640Z    Compiling simple-dns v0.9.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:27.6225847Z    Compiling tokio-stream v0.1.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:27.8301816Z    Compiling serial-core v0.4.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:28.5329819Z    Compiling serde_spanned v0.6.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:29.0086498Z    Compiling toml_datetime v0.6.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:29.0797248Z    Compiling ref-cast-impl v1.0.25
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:29.8621051Z    Compiling thiserror-impl v1.0.69
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:30.6377195Z    Compiling serde_derive_internals v0.29.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:32.9177506Z    Compiling smol_str v0.1.24
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:33.2554535Z    Compiling resolv-conf v0.7.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:33.2554904Z    Compiling sha1_smol v1.0.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:33.6205200Z    Compiling simdutf8 v0.1.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:33.6584267Z    Compiling toml_write v0.1.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:33.8807580Z    Compiling constant_time_eq v0.4.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:33.9322350Z    Compiling winnow v0.7.15
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:34.0461474Z    Compiling arrayref v0.3.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:34.2649266Z    Compiling winreg v0.10.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:34.5470816Z    Compiling tokio-websockets v0.13.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:36.2254618Z    Compiling schemars_derive v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:36.2378275Z    Compiling hickory-resolver v0.26.0-beta.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:36.4468130Z    Compiling toml_edit v0.22.27
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:39.4449307Z    Compiling serial-windows v0.4.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:40.1392836Z    Compiling iroh-dns v0.98.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:41.1333014Z    Compiling reqwest v0.13.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:43.1638877Z    Compiling igd-next v0.17.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:46.2878946Z    Compiling lru v0.16.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:46.6806435Z    Compiling webpki-roots v1.0.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:46.9321037Z    Compiling hmac v0.12.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.0098690Z    Compiling seize v0.5.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.0485167Z    Compiling iroh v0.98.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.2044081Z    Compiling serde_bytes v0.11.19
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.5637138Z    Compiling pin-utils v0.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.7009404Z    Compiling cmov v0.5.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.7047722Z    Compiling dyn-clone v1.0.20
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.7916213Z    Compiling bitflags v1.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:47.9409082Z    Compiling ctutils v0.4.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:48.1074918Z    Compiling schemars v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:48.1479418Z    Compiling nix v0.25.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:48.8875268Z    Compiling papaya v0.2.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:49.3067752Z    Compiling hkdf v0.12.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:50.4568128Z    Compiling portmapper v0.16.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:50.9365093Z    Compiling toml v0.8.23
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:51.4933355Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:53.2213024Z    Compiling serial v0.4.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:53.4584655Z    Compiling filedescriptor v0.8.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:54.4456253Z    Compiling backon v1.6.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:55.2320599Z    Compiling shared_library v0.1.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:55.9903932Z    Compiling vte_generate_state_changes v0.1.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:56.6491779Z    Compiling shell-words v1.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:56.7611175Z    Compiling utf8parse v0.2.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:58.9756733Z    Compiling downcast-rs v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:58.9773431Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:58.9785078Z    Compiling vte v0.13.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:59.2974490Z    Compiling portable-pty v0.8.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:23:59.8767897Z    Compiling spake2 v0.4.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:00.6734247Z    Compiling sha1 v0.10.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:01.1191942Z    Compiling recvmsg v1.0.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:01.4563849Z    Compiling unicode-width v0.2.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:02.5472387Z    Compiling doctest-file v1.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:03.2517971Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:04.9876353Z    Compiling interprocess v2.4.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:06.9218717Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:16.5347930Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:19.2057055Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:41.1152898Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 41s
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:45.1273577Z    Compiling windows-sys v0.61.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:45.1281125Z    Compiling getrandom v0.3.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:45.1342394Z    Compiling strsim v0.11.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:45.1360201Z    Compiling fs_extra v1.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:45.7049124Z    Compiling dunce v1.0.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:45.8052676Z    Compiling aws-lc-rs v1.17.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:46.0656771Z    Compiling unicode-segmentation v1.13.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:46.4057939Z    Compiling jobserver v0.1.34
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:46.4272073Z    Compiling darling_core v0.20.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:46.6524558Z    Compiling rustls v0.23.40
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:46.8699720Z    Compiling cc v1.2.63
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:47.1122336Z    Compiling convert_case v0.10.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:47.5641531Z    Compiling cmake v0.1.58
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:47.9719885Z    Compiling derive_more-impl v2.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:48.2707883Z    Compiling aws-lc-sys v0.41.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:48.5949075Z    Compiling ring v0.17.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:51.8153614Z    Compiling socket2 v0.6.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:53.2106426Z    Compiling mio v1.2.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:53.5362062Z    Compiling darling_macro v0.20.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:54.1814444Z    Compiling tokio v1.52.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:54.2019432Z    Compiling darling v0.20.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:54.7991665Z    Compiling fastrand v2.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:55.1418472Z    Compiling derive_builder_core v0.20.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:55.9713718Z    Compiling derive_more v2.1.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:56.3983161Z    Compiling either v1.16.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:56.8684512Z    Compiling libsqlite3-sys v0.30.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:58.7796893Z    Compiling tokio-util v0.7.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:24:59.6935247Z    Compiling derive_builder_macro v0.20.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:01.3037977Z    Compiling h2 v0.4.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:01.6504684Z    Compiling spt-poolguard v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-poolguard)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:02.7417311Z    Compiling derive_builder v0.20.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:02.8975497Z    Compiling windows-sys v0.59.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:04.4996576Z    Compiling futures-lite v2.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:05.4033173Z    Compiling hyper v1.10.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:05.6412420Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:07.2815486Z    Compiling hyper-util v0.1.20
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:07.6539772Z    Compiling n0-future v0.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:08.3898366Z    Compiling vergen-lib v9.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:08.4581409Z    Compiling rusqlite v0.32.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:08.8756224Z    Compiling prefix-trie v0.8.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:09.5220733Z    Compiling windows-future v0.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:09.9838181Z    Compiling hickory-proto v0.26.0-beta.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:10.1019652Z    Compiling vergen v9.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:10.6064961Z    Compiling noq-udp v0.10.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:11.2162299Z    Compiling vergen-lib v0.1.6
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:11.7031680Z    Compiling vergen-gitcl v1.0.8
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:12.5149269Z    Compiling windows v0.62.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:13.7351476Z    Compiling tower v0.5.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:14.4603141Z    Compiling blake3 v1.8.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:15.3271448Z    Compiling netdev v0.42.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:16.2849468Z    Compiling ipconfig v0.3.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:22.2698548Z    Compiling wmi v0.18.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:24.0259706Z    Compiling tower-http v0.6.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:25.5050041Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:26.5041673Z    Compiling iroh-base v0.98.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:26.7328671Z    Compiling iroh-relay v0.98.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:27.1765975Z    Compiling n0-watcher v0.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:27.8896157Z    Compiling tokio-stream v0.1.18
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:29.0695913Z    Compiling acto v0.8.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:29.6935892Z    Compiling iroh-dns v0.98.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:30.1684686Z    Compiling netwatch v0.16.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:30.3934805Z    Compiling igd-next v0.17.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:30.4172910Z    Compiling seize v0.5.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:31.0859295Z    Compiling papaya v0.2.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:31.9213985Z    Compiling portmapper v0.16.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:32.2833502Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:34.7282412Z    Compiling backon v1.6.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:35.6656602Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:36.2169678Z    Compiling interprocess v2.4.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:36.4874381Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:38.6359564Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:39.9335884Z    Compiling darling_core v0.23.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:40.6146429Z    Compiling anstyle v1.0.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:41.0205111Z    Compiling once_cell_polyfill v1.70.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:41.2163572Z    Compiling anstyle-wincon v3.0.11
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:41.6646099Z    Compiling anstyle-parse v1.0.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:41.9004736Z    Compiling anstyle-query v1.1.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:42.4268415Z    Compiling colorchoice v1.0.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:42.7664201Z    Compiling darling_macro v0.23.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:42.9675413Z    Compiling paste v1.0.15
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:43.9047349Z    Compiling is_terminal_polyfill v1.70.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:44.1203287Z    Compiling instability v0.3.12
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:44.1498909Z    Compiling foldhash v0.1.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:45.2987327Z    Compiling hashbrown v0.15.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:47.1386275Z    Compiling anstream v1.0.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:47.1629360Z    Compiling darling v0.23.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:47.6558861Z    Compiling itertools v0.13.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:47.6872310Z    Compiling terminal_size v0.4.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:47.8501793Z    Compiling strum_macros v0.26.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:48.0683846Z    Compiling crossterm_winapi v0.9.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:48.4383093Z    Compiling castaway v0.2.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:48.8516730Z    Compiling unicode-width v0.1.14
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:49.1485603Z    Compiling indoc v2.0.7
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:49.3058973Z    Compiling clap_lex v1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:49.5518305Z    Compiling static_assertions v1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:49.6408348Z    Compiling strum v0.26.3
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:49.6957327Z    Compiling compact_str v0.8.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:50.1053124Z    Compiling clap_builder v4.6.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:50.6920026Z    Compiling unicode-truncate v1.1.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:50.8152281Z    Compiling crossterm v0.28.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:51.1164013Z    Compiling lru v0.12.5
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:51.9663008Z    Compiling clap_derive v4.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:52.3072903Z    Compiling error-code v3.3.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:52.5837293Z    Compiling cassowary v0.3.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:53.9844914Z    Compiling clap v4.6.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:54.1141317Z    Compiling ratatui v0.29.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:54.4355074Z    Compiling clipboard-win v5.4.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:55.0532909Z    Compiling nucleo-matcher v0.3.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:57.0723906Z    Compiling qrcode v0.14.1
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:57.9428244Z    Compiling tempfile v3.27.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:58.6316155Z    Compiling spt-test-support v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-test-support)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:25:58.9783413Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:53.1528691Z    Compiling rustls-webpki v0.103.13
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:56.0622294Z    Compiling tokio-rustls v0.26.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:56.0622744Z    Compiling noq-proto v0.17.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:56.0623089Z    Compiling rustls-platform-verifier v0.7.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:57.7365436Z    Compiling hickory-net v0.26.0-beta.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:59.5406704Z    Compiling hyper-rustls v0.27.9
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:26:59.8428717Z    Compiling reqwest v0.13.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:00.6310280Z    Compiling hickory-resolver v0.26.0-beta.4
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:01.9327351Z    Compiling tokio-websockets v0.13.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:03.6575389Z    Compiling noq v0.18.0
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:13.9117597Z    Compiling iroh v0.98.2
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:30.1357457Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:32.5981334Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:53.3605032Z    Compiling spt v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:27:53.3606006Z    Compiling xtask v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\xtask)
test (self-hosted, Windows, hfenduleam)	Build workspace fixture binaries	2026-09-09T04:28:12.0504560Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 28s
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	﻿2026-09-09T04:28:12.2247784Z ##[group]Run .github/bench/wrap.ps1 -Step "test-phase-a" -Command "cargo nextest run --workspace --no-fail-fast -E 'not ( $env:HEAVY )'"
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2248787Z [36;1m.github/bench/wrap.ps1 -Step "test-phase-a" -Command "cargo nextest run --workspace --no-fail-fast -E 'not ( $env:HEAVY )'"[0m
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2254810Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2255162Z env:
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2255358Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2255601Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2255906Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2259951Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2265012Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2265802Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2266499Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2267049Z   NEXTEST_PROFILE: ci-windows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:12.2267363Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:14.6760820Z    Compiling ppv-lite86 v0.2.21
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:14.7467770Z    Compiling bytemuck v1.25.2
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:14.7484575Z    Compiling spt-test-support v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-test-support)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:14.7485291Z    Compiling spt-poolguard v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-poolguard)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:14.9147346Z    Compiling rand_chacha v0.3.1
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:15.2371039Z    Compiling rand v0.8.7
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:15.3919717Z    Compiling rgb v0.8.53
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:15.4622090Z    Compiling spt-proto v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-proto)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:15.8148183Z    Compiling num-bigint-dig v0.8.6
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:15.9410427Z    Compiling avt v0.18.0
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:16.2182343Z    Compiling spt-procident v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-procident)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:16.7864598Z    Compiling rsa v0.9.10
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:17.1852765Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:21.2654468Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:23.4182295Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:23.6205075Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:25.9788067Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:27.1284619Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:30.9882536Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:28:33.0766725Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:29:14.3969188Z    Compiling spt v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:29:54.7861538Z    Compiling xtask v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\xtask)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:34:34.4507289Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 6m 21s
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.2180038Z ────────────
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.2180409Z  Nextest run ID a1422f16-aebc-4afa-ad6b-a3aa84112d2a with nextest profile: ci-windows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.2180891Z     Starting 3346 tests across 137 binaries (1 test and 89 binaries skipped)
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.5145069Z         PASS [   0.276s] (   1/3346) mock-adapter::bin/capture-player tests::parses_a_well_formed_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.5221426Z         PASS [   0.285s] (   2/3346) mock-adapter::bin/capture-player tests::refuses_a_length_mismatch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.5428143Z         PASS [   0.306s] (   3/3346) mock-adapter::manifest_valid mock_has_no_claude_code_conventions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.7929084Z         PASS [   0.557s] (   4/3346) mock-adapter::manifest_valid mock_declares_commune_signoff_as_filedrops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:14.8536440Z         PASS [   0.617s] (   5/3346) mock-adapter::manifest_valid mock_manifest_parses_and_validates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:15.9187815Z         PASS [   1.397s] (   6/3346) spt::bind_adapter_profile_persist_e2e bind_over_created_profile_endpoint_preserves_the_profile
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:16.3428328Z         PASS [   0.424s] (   7/3346) spt::bounded_output_e2e missing_sibling_fixture_fails_before_a_product_timeout
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:17.3978787Z         PASS [   1.055s] (   8/3346) spt::bounded_output_e2e sibling_fixture_packages_match_their_cargo_owners
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:18.3557206Z         PASS [   4.119s] (   9/3346) spt::access_positional_allow_e2e the_positional_allow_honors_its_surfaces_and_still_answers_to_the_acknowledgment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:18.3802976Z         PASS [   3.527s] (  10/3346) spt::boundary_ready_strand_e2e boundary_restamps_ready_after_soft_session_end
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:18.4181000Z         PASS [   0.037s] (  11/3346) spt::cli_stack_smoke a_nonzero_code_chosen_by_our_code_arrives_by_return
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:18.4642057Z         PASS [   0.045s] (  12/3346) spt::cli_stack_smoke the_debug_binary_answers_version_which_costs_nothing_but_the_tree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:18.8320511Z         PASS [   0.368s] (  13/3346) spt::cli_stack_smoke the_debug_binary_renders_its_own_help_and_lists_its_commands
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:19.2674149Z         PASS [   5.031s] (  14/3346) spt::access_precise_allow_e2e the_precise_allow_leaves_the_posture_alone_and_says_when_its_rule_changes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:19.4101451Z         PASS [   5.174s] (  15/3346) spt::active_only_never_relay_e2e cross_node_active_only_stays_local_only_never_wan
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:19.8894306Z         PASS [   5.346s] (  16/3346) spt::bootstrap_verb_e2e downloaded_binary_self_installs_and_speaks_gh_channel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:21.4741559Z         PASS [   1.585s] (  17/3346) spt::contract_e2e mock_adapter_drives_the_full_contract
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:22.0097006Z         PASS [   7.217s] (  18/3346) spt::boundary_events_e2e boundaries_reach_the_poll_as_ordered_edges_and_are_not_replayed_to_a_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:22.3548674Z         PASS [   4.957s] (  19/3346) spt::bounded_output_e2e timeout_reaps_the_child_and_preserves_partial_output
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:22.6016233Z         PASS [   8.087s] (  20/3346) spt::adapter_post_step adapter_update_runs_post_step_unconditionally_and_arbitrates_notice
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:22.8914499Z         PASS [   3.624s] (  21/3346) spt::contract_e2e cold_api_call_autostarts_daemon_and_handoff_is_in_memory
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:22.8921896Z         PASS [   4.060s] (  22/3346) spt::composite_e2e bare_update_applies_core_then_updates_adapter_in_one_invocation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:23.1177549Z         PASS [   1.108s] (  23/3346) spt::create_bind_rest_active_e2e a_fresh_bind_after_a_real_stop_comes_up_active_without_a_wake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:23.2244737Z         PASS [   1.750s] (  24/3346) spt::contract_e2e seed_then_listen_binds_and_relays
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:23.8992806Z         PASS [   5.543s] (  25/3346) spt::broker_stop_endpoint_deny_e2e an_endpoint_context_cannot_stop_the_broker_by_any_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:25.9788189Z         PASS [   3.377s] (  26/3346) spt::docs_bundle_e2e docs_land_on_apply_and_docs_failure_never_touches_the_binary_outcome
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:26.9686965Z         PASS [   4.076s] (  27/3346) spt::er_inbound_local a_local_send_meets_the_engine_rooms_inbound_lock_on_every_authoring_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:28.9313572Z         PASS [   1.963s] (  28/3346) spt::hide_new_remote_rows_e2e hide_new_keeps_our_own_endpoint_hidden_and_leaves_other_nodes_rows_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:32.5633032Z         PASS [   6.584s] (  29/3346) spt::gateway_e2e gateway_binds_and_is_the_user_backed_origin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:32.9091270Z         PASS [  10.018s] (  30/3346) spt::drive_e2e drive_channel_slot_through_the_real_socket
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:33.1881457Z         PASS [   0.625s] (  31/3346) spt::install_firewall_wiring_e2e placing_the_binder_reports_what_it_did_about_the_rule
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:33.6910130Z         PASS [   4.760s] (  32/3346) spt::human_redeem_msg_code_e2e a_bare_terminal_redeeming_an_acknowledgmentless_msg_code_reaches_a_decision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:34.3438707Z         PASS [   1.434s] (  33/3346) spt::intra_node_degrade a_degraded_store_suspends_local_enforcement_and_says_so_loudly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:34.8244847Z         PASS [  11.707s] (  34/3346) spt::fork_surface_e2e a_forged_requester_node_cannot_buy_a_fork
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:35.1603098Z         PASS [  11.934s] (  35/3346) spt::fork_surface_e2e a_refused_fork_creates_nothing_and_answers_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:36.2155888Z         PASS [   3.027s] (  36/3346) spt::intra_node_self a_rule_naming_this_nodes_own_id_governs_traffic_authored_on_this_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:47.0480443Z         PASS [  24.693s] (  37/3346) spt::daemon_stop_convoy_e2e stop_under_an_api_storm_stays_down_then_start_brings_up_exactly_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:47.5684399Z         PASS [  12.408s] (  38/3346) spt::io_events_undriven_kinds_e2e a_notification_filtered_by_the_relay_publishes_no_msg_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:47.5871118Z         PASS [  12.763s] (  39/3346) spt::io_events_undriven_kinds_e2e a_failed_commune_ingest_polls_back_as_its_own_kind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:48.8017478Z         PASS [  15.111s] (  40/3346) spt::io_events_poll_e2e a_fresh_session_seeds_over_real_history_and_then_sees_only_what_follows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:52.4963271Z         PASS [  16.281s] (  41/3346) spt::io_events_undriven_kinds_e2e relay_backlog_and_live_deliveries_stamp_once_even_after_hook_poll
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:54.3745350Z         PASS [  34.964s] (  42/3346) spt::contract_e2e live_agent_lifecycle_e2e
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:56.8821509Z         PASS [   9.834s] (  43/3346) spt::io_events_undriven_kinds_e2e the_delivery_edge_polls_back_as_msg_in_on_the_receiver
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:57.3361723Z         PASS [   2.962s] (  44/3346) spt::knock_notfound_refuses_e2e a_knock_at_a_target_that_exists_nowhere_refuses_and_writes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:57.3929468Z         PASS [   4.897s] (  45/3346) spt::json_emit json_flag_emits_parseable_json_for_read_status_subset
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:57.4840775Z         PASS [   9.897s] (  46/3346) spt::io_events_undriven_kinds_e2e the_send_edge_polls_back_as_msg_out_on_the_sender
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:57.7404562Z         PASS [   0.858s] (  47/3346) spt::list_json_liveness_parity_e2e json_reconciles_self_owned_gateway_to_local_liveness
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:57.9778054Z         PASS [  10.409s] (  48/3346) spt::io_events_undriven_kinds_e2e the_one_short_id_names_the_message_on_both_edges
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:58.2928933Z         PASS [   0.809s] (  49/3346) spt::live_bind_firsthost_e2e live_bind_marks_online_and_brain_reconcile_hosts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:58.2992140Z         PASS [   0.963s] (  50/3346) spt::listen_seed_retry_e2e no_seed_session_binds_via_session_id_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:58.3134992Z         PASS [  34.414s] (  51/3346) spt::fork_surface_e2e an_admitted_fork_produces_a_whole_endpoint_and_leaves_the_source_intact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:58.7801763Z         PASS [   1.387s] (  52/3346) spt::listen_seed_retry_e2e seed_survives_prebind_refusal_and_retry_binds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:59.0542014Z         PASS [   0.274s] (  53/3346) spt::notify_shell_e2e notify_shell_renders_a_commanded_toast
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:59.1788233Z         PASS [   1.438s] (  54/3346) spt::live_firsthost_e2e live_listen_marks_online_and_brain_reconcile_hosts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:36:59.3282665Z         PASS [  24.984s] (  55/3346) spt::io_events_undriven_kinds_e2e a_consumed_commune_reaches_the_log_and_polls_back
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:00.5923949Z         PASS [   2.279s] (  56/3346) spt::nested_resolution_e2e nested_id_homes_under_parent_without_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:00.7123516Z         PASS [  11.910s] (  57/3346) spt::io_state_payload_e2e a_payload_carrying_state_call_spools_a_durable_io_frame
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:01.9677771Z         PASS [   3.675s] (  58/3346) spt::midturn_span_e2e a_bare_seal_marker_is_refused_in_a_span_and_mints_at_the_close
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:01.9683379Z         PASS [   1.256s] (  59/3346) spt::ready_resume_ledger_e2e ready_bind_ledgers_and_reconcile_hosts_no_psyche
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:02.3997497Z         PASS [   3.071s] (  60/3346) spt::psyche_sid_custody_e2e psyche_sid_survives_parent_boundary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:02.4246860Z         PASS [   0.457s] (  61/3346) spt::reaper_guard a_creation_time_that_moved_reads_as_a_recycled_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:02.6643669Z         PASS [   0.696s] (  62/3346) spt::reaper_guard a_live_pid_running_a_foreign_image_is_refused_and_survives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:02.7467468Z         PASS [   0.346s] (  63/3346) spt::reaper_guard a_stale_daemon_pid_breadcrumb_is_never_killed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:03.0108979Z         PASS [   0.346s] (  64/3346) spt::reaper_guard the_test_harness_and_its_ancestors_are_never_targets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:03.0502528Z         PASS [   0.304s] (  65/3346) spt::release_verify_e2e published_release_verifies_against_embedded_anchor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:03.0894962Z         PASS [   5.112s] (  66/3346) spt::live_resolve_e2e listen_without_adapter_resolves_from_host_binaries
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:03.5061590Z         PASS [   1.081s] (  67/3346) spt::reaper_guard the_same_pid_is_killed_when_the_expected_image_matches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:04.0847151Z         PASS [   4.906s] (  68/3346) spt::poll_envelope_e2e api_poll_emits_whole_self_delimiting_events
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:04.4231649Z         PASS [   5.369s] (  69/3346) spt::now_signal_delta_e2e the_first_poll_renders_a_no_perch_dispatch_and_the_second_poll_says_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:06.1804043Z         PASS [   3.169s] (  70/3346) spt::ring_blocks_e2e ring_no_reply_reports_the_wait_in_the_callers_unit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:07.5727612Z         PASS [   6.980s] (  71/3346) spt::quickstart_e2e published_messaging_quickstart_runs_as_written
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:08.0726620Z         PASS [   5.022s] (  72/3346) spt::ring_blocks_e2e ring_waits_through_a_spooled_send_and_prints_the_late_reply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:08.3539619Z         PASS [   4.848s] (  73/3346) spt::send_stamp_agent_id_e2e shelled_send_stamps_endpoint_id_from_env
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:10.7237246Z         PASS [  12.425s] (  74/3346) spt::midturn_span_e2e a_mid_span_rides_busy_as_agent_output_and_the_close_carries_no_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:11.5392957Z         PASS [   8.450s] (  75/3346) spt::seal_shortform_e2e a_seal_marker_mints_off_the_hook_path_and_records_the_ceremonys_own_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:12.1515469Z         PASS [   5.971s] (  76/3346) spt::shell_hints_e2e shell_hints_reach_the_now_signal_in_both_arms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:12.3184574Z         PASS [   4.746s] (  77/3346) spt::shell_perch_dir_e2e spawned_binary_resolves_a_landed_file_via_perch_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:13.2160345Z         PASS [   1.677s] (  78/3346) spt::shortform_dispatch_e2e a_live_tag_dispatches_only_when_the_manifest_declares_compliance
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:14.0333881Z         PASS [   5.961s] (  79/3346) spt::shell_relink_force_e2e force_stops_a_running_binary_then_relinks_it_under_the_same_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:14.2478528Z         PASS [  10.163s] (  80/3346) spt::shell_actgate_e2e act_gate_blocks_command_until_class_scoped_grant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:14.9551469Z         PASS [   2.803s] (  81/3346) spt::translate_proof translate_proof_dir_override_proofs_unregistered_install
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:17.5664966Z         PASS [   6.843s] (  82/3346) spt::shell_stale_online_e2e force_killed_shell_lists_offline_and_relinks_under_the_same_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:18.1361818Z         PASS [   0.570s] (  83/3346) spt::bin/spt accessview::tests::a_pinned_open_renders_apart_from_a_default_open
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:18.1398456Z         PASS [   4.106s] (  84/3346) spt::whoami_identity_e2e whoami_answers_identity_on_a_multi_perch_home_with_zero_git
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:18.6799850Z         PASS [   0.544s] (  85/3346) spt::bin/spt accessview::tests::drill_matches_only_its_own_kind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:19.2470198Z         PASS [   4.292s] (  86/3346) spt::worker_visibility_e2e flat_worker_hidden_by_default_revealed_by_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:19.4873677Z         PASS [   1.347s] (  87/3346) spt::bin/spt accessview::tests::node_roster_lists_node_scope_entities_and_mode_exceptions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:19.7969680Z         PASS [   1.117s] (  88/3346) spt::bin/spt accessview::tests::target_roster_groups_types_and_counts_rules
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:20.3767751Z         PASS [   8.058s] (  89/3346) spt::translate_proof translate_proof_drives_the_real_translation_binary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:20.4205670Z         PASS [   1.173s] (  90/3346) spt::bin/spt api::auth::tests::a_recycled_owner_pid_no_longer_blocks_the_dead_owner_rescue
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:20.9071940Z         PASS [   1.420s] (  91/3346) spt::bin/spt api::auth::tests::an_unverifiable_live_owner_never_grants_a_repin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:21.5059572Z         PASS [   1.709s] (  92/3346) spt::bin/spt api::auth::tests::dead_owner_repin_refused_when_sid_is_a_psyche_custody_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:22.0483166Z         PASS [   1.671s] (  93/3346) spt::bin/spt api::auth::tests::dead_owner_repin_refused_when_sid_owns_another_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:23.3929241Z         PASS [   2.972s] (  94/3346) spt::bin/spt api::auth::tests::dead_owner_repin_still_rescues_a_non_custody_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:23.5299998Z         PASS [  15.176s] (  95/3346) spt::shell_sleepwake_e2e sleep_wake_cycle_drives_from_both_ends
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:23.9285289Z         PASS [   3.021s] (  96/3346) spt::bin/spt api::auth::tests::live_owner_mismatch_still_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:24.0333388Z         PASS [   9.785s] (  97/3346) spt::worker_lifecycle_e2e worker_start_mints_on_stdout_and_stop_authenticates_by_parent_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:24.1906836Z         PASS [   2.685s] (  98/3346) spt::bin/spt api::auth::tests::mints_distinct_nonempty_tokens
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:24.7383893Z         PASS [   2.690s] (  99/3346) spt::bin/spt api::auth::tests::missing_endpoint_is_no_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:25.2922763Z         PASS [   1.899s] ( 100/3346) spt::bin/spt api::auth::tests::no_proof_is_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:25.6194336Z         PASS [  21.196s] ( 101/3346) spt::shell_e2e mock_shell_binary_drives_the_full_link
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:25.8725143Z         PASS [   2.342s] ( 102/3346) spt::bin/spt api::auth::tests::pinned_to_dead_sid_mismatched_poll_repins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:26.1326187Z         PASS [   2.204s] ( 103/3346) spt::bin/spt api::auth::tests::session_id_proof_authenticates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:26.4216036Z         PASS [   2.388s] ( 104/3346) spt::bin/spt api::auth::tests::token_auth_path_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:26.9714977Z         PASS [   2.781s] ( 105/3346) spt::bin/spt api::auth::tests::token_proof_authenticates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:27.2404795Z         PASS [   2.502s] ( 106/3346) spt::bin/spt api::auth::tests::worker_missing_is_no_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:27.5529584Z         PASS [   2.261s] ( 107/3346) spt::bin/spt api::auth::tests::worker_parent_current_sid_authenticates_after_rotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:27.8459524Z         PASS [   2.226s] ( 108/3346) spt::bin/spt api::auth::tests::worker_stored_sid_authenticates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:28.1267942Z         PASS [   2.254s] ( 109/3346) spt::bin/spt api::auth::tests::worker_wrong_sid_and_token_only_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:28.6738809Z         PASS [   2.541s] ( 110/3346) spt::bin/spt api::auth::tests::wrong_token_and_wrong_session_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:28.9225429Z         PASS [   2.501s] ( 111/3346) spt::bin/spt api::delivery::tests::a_bare_marker_is_refused_mid_turn_and_mints_at_the_close
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:29.1736790Z         PASS [   2.202s] ( 112/3346) spt::bin/spt api::delivery::tests::a_held_row_owes_no_msg_in_and_a_delivered_one_owes_exactly_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:29.2289186Z         PASS [   1.988s] ( 113/3346) spt::bin/spt api::delivery::tests::a_mid_flag_that_cannot_mean_anything_is_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:29.4971067Z         PASS [   1.944s] ( 114/3346) spt::bin/spt api::delivery::tests::a_mid_span_is_agent_output_on_the_busy_arm
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:29.7784594Z         PASS [   1.932s] ( 115/3346) spt::bin/spt api::delivery::tests::a_no_perch_verdict_records_as_absence_not_as_refusal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:30.0600746Z         PASS [   1.933s] ( 116/3346) spt::bin/spt api::delivery::tests::a_pair_still_mints_mid_turn_and_a_trailing_marker_does_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:30.3461185Z         PASS [   1.672s] ( 117/3346) spt::bin/spt api::delivery::tests::a_payload_with_no_live_marker_launches_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:30.8794729Z         PASS [   1.957s] ( 118/3346) spt::bin/spt api::delivery::tests::a_payloadless_call_emits_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:32.6117621Z         PASS [   3.438s] ( 119/3346) spt::bin/spt api::delivery::tests::a_repeated_idle_report_still_does_not_move_the_flip_instant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.2923758Z         PASS [   3.514s] ( 120/3346) spt::bin/spt api::delivery::tests::both_io_edges_take_the_id_from_the_same_envelope_attribute
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.3036923Z         PASS [   3.243s] ( 121/3346) spt::bin/spt api::delivery::tests::both_payload_sources_refuse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.3120746Z         PASS [   3.815s] ( 122/3346) spt::bin/spt api::delivery::tests::an_undated_state_is_dated_by_a_non_edge_report
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.3121935Z         PASS [   2.966s] ( 123/3346) spt::bin/spt api::delivery::tests::each_pair_launches_its_own_mint_in_author_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.3361612Z         PASS [   2.456s] ( 124/3346) spt::bin/spt api::delivery::tests::echo_gate_explicit_toggle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.3399041Z         PASS [   0.728s] ( 125/3346) spt::bin/spt api::delivery::tests::every_verdict_answers_the_exit_code_it_always_did
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.3654433Z         PASS [   0.073s] ( 126/3346) spt::bin/spt api::delivery::tests::idle_busy_transitions_manage_sentinels
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.4672425Z         PASS [   4.238s] ( 127/3346) spt::bin/spt api::delivery::tests::an_arriving_message_carrying_a_live_tag_dispatches_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.7077634Z         PASS [   0.396s] ( 128/3346) spt::bin/spt api::delivery::tests::idle_no_gate_does_not_arm_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.7429810Z         PASS [   0.403s] ( 129/3346) spt::bin/spt api::delivery::tests::no_payload_source_resolves_to_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.7500778Z         PASS [   0.283s] ( 130/3346) spt::bin/spt api::delivery::tests::payload_carrying_calls_map_to_their_kinds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.7506813Z         PASS [   0.415s] ( 131/3346) spt::bin/spt api::delivery::tests::inject_resolution_drops_pty_defaults_hook
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.7512354Z         PASS [   0.439s] ( 132/3346) spt::bin/spt api::delivery::tests::inject_all_pty_falls_back_to_hook
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.7937937Z         PASS [   0.490s] ( 133/3346) spt::bin/spt api::delivery::tests::idle_drain_peek_returns_non_deferred_rows_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:33.8319650Z         PASS [   0.466s] ( 134/3346) spt::bin/spt api::delivery::tests::only_a_real_state_edge_stamps_the_transition_instant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.0277270Z         PASS [   0.320s] ( 135/3346) spt::bin/spt api::delivery::tests::payload_file_is_read_and_a_bad_path_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.3679916Z         PASS [   0.625s] ( 136/3346) spt::bin/spt api::delivery::tests::poll_drain_holds_deferred_while_resting_and_releases_once_on_wake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.4540419Z         PASS [   0.622s] ( 137/3346) spt::bin/spt api::delivery::tests::repeated_idle_without_a_busy_emits_every_time
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.5123056Z         PASS [   0.762s] ( 138/3346) spt::bin/spt api::delivery::tests::poll_drain_suppresses_idle_only_which_reaches_the_relay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.5531544Z         PASS [   0.802s] ( 139/3346) spt::bin/spt api::delivery::tests::poll_drain_validates_notify_copies_against_their_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.6669429Z         PASS [   0.916s] ( 140/3346) spt::bin/spt api::delivery::tests::poll_drains_non_deferred_by_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.6671261Z         PASS [   0.873s] ( 141/3346) spt::bin/spt api::delivery::tests::poll_only_drains_when_hook_method_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.7911910Z         PASS [   0.337s] ( 142/3346) spt::bin/spt api::engineroom::tests::a_bring_up_the_broker_started_answers_the_gate_before_its_row_exists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.8690651Z         PASS [   0.501s] ( 143/3346) spt::bin/spt api::delivery::tests::the_outbound_edge_publishes_msg_out_and_cannot_fail_the_send
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:34.8695322Z         PASS [   0.842s] ( 144/3346) spt::bin/spt api::delivery::tests::the_dispatch_loop_never_waits_for_the_ceremony_it_launches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.0108208Z         PASS [   0.498s] ( 145/3346) spt::bin/spt api::engineroom::tests::a_non_engine_room_attempt_never_touches_the_empower_ledger
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.0560316Z         PASS [   0.503s] ( 146/3346) spt::bin/spt api::engineroom::tests::a_pin_is_not_a_clear
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.0828652Z         PASS [   0.416s] ( 147/3346) spt::bin/spt api::engineroom::tests::a_refresh_adopts_only_a_real_divergence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.1100178Z         PASS [   0.443s] ( 148/3346) spt::bin/spt api::engineroom::tests::an_admin_code_verifies_across_the_ceremony_window_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.3817694Z         PASS [   0.590s] ( 149/3346) spt::bin/spt api::engineroom::tests::another_endpoints_traffic_never_answers_the_engine_rooms_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.3978529Z         PASS [   0.529s] ( 150/3346) spt::bin/spt api::engineroom::tests::ordinary_perch_minting_never_probes_the_engine_room
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.4178480Z         PASS [   0.548s] ( 151/3346) spt::bin/spt api::engineroom::tests::subnet_authority_is_the_empowerment_not_the_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.4231183Z         PASS [   0.412s] ( 152/3346) spt::bin/spt api::engineroom::tests::the_gate_admits_only_the_reserved_id_provisioned_and_authenticated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.6835801Z         PASS [   0.628s] ( 153/3346) spt::bin/spt api::engineroom::tests::the_perch_minting_verbs_admit_the_reserved_id_only_as_a_completion
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.7370732Z         PASS [   0.654s] ( 154/3346) spt::bin/spt api::engineroom::tests::the_surface_mode_verb_refuses_a_caller_that_is_not_the_engine_room
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:35.7703644Z         PASS [   0.660s] ( 155/3346) spt::bin/spt api::engineroom::tests::the_surface_mode_verb_refuses_an_unminted_surface_and_writes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:36.0083343Z         PASS [   0.626s] ( 156/3346) spt::bin/spt api::engineroom::tests::the_unset_echo_names_what_governs_next
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:36.0339052Z         PASS [   0.636s] ( 157/3346) spt::bin/spt api::engineroom::tests::the_written_node_mode_is_the_one_the_chain_reads
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:36.3446112Z         PASS [   0.927s] ( 158/3346) spt::bin/spt api::ioevents::tests::a_boundary_row_is_served_while_an_unknown_kind_is_still_ignored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:36.6206185Z         PASS [   1.197s] ( 159/3346) spt::bin/spt api::ioevents::tests::a_fresh_sessions_first_poll_is_empty_and_the_next_is_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:36.9202110Z         PASS [   1.237s] ( 160/3346) spt::bin/spt api::ioevents::tests::a_limited_poll_declares_the_cap_and_drops_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:37.1806619Z         PASS [   1.444s] ( 161/3346) spt::bin/spt api::ioevents::tests::a_poll_never_carries_tool_use
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:38.0697613Z         PASS [   2.299s] ( 162/3346) spt::bin/spt api::ioevents::tests::a_session_cursor_above_head_recovers_for_the_next_event
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:38.0803188Z         PASS [   2.072s] ( 163/3346) spt::bin/spt api::ioevents::tests::an_explicit_after_cursor_wins_and_seeds_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:38.4023476Z         PASS [   2.368s] ( 164/3346) spt::bin/spt api::ioevents::tests::an_oversized_cursor_reports_the_true_head
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:38.4153987Z         PASS [   2.071s] ( 165/3346) spt::bin/spt api::ioevents::tests::an_unknown_kind_is_ignored_not_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:38.6494674Z         PASS [   2.029s] ( 166/3346) spt::bin/spt api::ioevents::tests::the_cursor_clears_rows_the_vocabulary_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:38.9097119Z         PASS [   1.989s] ( 167/3346) spt::bin/spt api::ioevents::tests::the_json_envelope_survives_the_quiet_poll
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:39.2132436Z         PASS [   2.032s] ( 168/3346) spt::bin/spt api::ioevents::tests::the_poll_carries_the_span_marker_only_when_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:39.4834685Z         PASS [   1.414s] ( 169/3346) spt::bin/spt api::nowsignal::tests::a_changed_state_reports_again_under_the_same_subject
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:39.7604878Z         PASS [   1.680s] ( 170/3346) spt::bin/spt api::nowsignal::tests::a_datum_cannot_break_out_of_its_line
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:40.3097763Z         PASS [   1.907s] ( 171/3346) spt::bin/spt api::nowsignal::tests::a_locally_quoted_path_registers_nothing_and_says_so
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:40.5829413Z         PASS [   2.167s] ( 172/3346) spt::bin/spt api::nowsignal::tests::a_malformed_spec_degrades_to_the_default_picture
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:41.1241678Z         PASS [   2.475s] ( 173/3346) spt::bin/spt api::nowsignal::tests::a_new_session_has_seen_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:41.6512457Z         PASS [   2.741s] ( 174/3346) spt::bin/spt api::nowsignal::tests::a_poll_where_every_category_is_empty_renders_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:42.4379125Z         PASS [   3.225s] ( 175/3346) spt::bin/spt api::nowsignal::tests::a_quoted_path_that_does_not_exist_is_not_honored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.4835027Z         PASS [   4.000s] ( 176/3346) spt::bin/spt api::nowsignal::tests::a_quoted_path_that_exists_and_is_anchored_is_honored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.5414031Z         PASS [   3.780s] ( 177/3346) spt::bin/spt api::nowsignal::tests::a_relative_quoted_path_is_not_honored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.5811685Z         PASS [   3.271s] ( 178/3346) spt::bin/spt api::nowsignal::tests::a_second_poll_with_nothing_new_emits_nothing_and_the_first_was_not_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.5931905Z         PASS [   3.010s] ( 179/3346) spt::bin/spt api::nowsignal::tests::a_spec_selects_from_the_closed_vocabulary_and_ignores_the_rest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.8616276Z         PASS [   2.737s] ( 180/3346) spt::bin/spt api::nowsignal::tests::a_subnet_join_line_names_the_node_and_labels_a_bare_pubkey
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.9017155Z         PASS [   2.250s] ( 181/3346) spt::bin/spt api::nowsignal::tests::an_unanswered_lan_status_renders_nothing_rather_than_the_last_line_it_saw
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.9748936Z         PASS [   0.491s] ( 182/3346) spt::bin/spt api::nowsignal::tests::every_category_round_trips_through_its_own_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:43.9758339Z         PASS [   1.538s] ( 183/3346) spt::bin/spt api::nowsignal::tests::edge_transitions_seed_on_the_first_poll_and_report_on_the_second
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.2497382Z         PASS [   0.709s] ( 184/3346) spt::bin/spt api::nowsignal::tests::lan_exposed_stands_for_the_whole_window_and_is_gone_after_stop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.2997754Z         PASS [   0.718s] ( 185/3346) spt::bin/spt api::nowsignal::tests::quoted_paths_are_deduplicated_and_capped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.3316345Z         PASS [   0.738s] ( 186/3346) spt::bin/spt api::nowsignal::tests::relative_time_is_readable_and_never_negative
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.5958317Z         PASS [   0.734s] ( 187/3346) spt::bin/spt api::nowsignal::tests::suppression_wins_over_selection_when_a_spec_says_both
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.6867071Z         PASS [   0.712s] ( 188/3346) spt::bin/spt api::nowsignal::tests::the_composer_nests_live_categories_under_one_root_in_render_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.6884335Z         PASS [   0.787s] ( 189/3346) spt::bin/spt api::nowsignal::tests::the_attachment_trigger_emits_the_senders_own_link_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.9506780Z         PASS [   0.975s] ( 190/3346) spt::bin/spt api::nowsignal::tests::the_seal_brief_is_two_sentences_told_once_and_names_the_real_verify_verb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:44.9813747Z         PASS [   0.732s] ( 191/3346) spt::bin/spt api::nowsignal::tests::updates_tells_a_session_once_and_again_when_a_version_moves
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.0787650Z         PASS [  31.863s] ( 192/3346) spt::tunnel_e2e shell_tunnel_round_trips_opaque_bytes_through_the_real_surfaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.1856246Z         PASS [   0.886s] ( 193/3346) spt::bin/spt api::reporting::tests::a_boundary_lands_one_funnel_row_per_edge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.2241665Z         PASS [   0.892s] ( 194/3346) spt::bin/spt api::reporting::tests::a_boundary_owes_an_echo_keyed_to_the_departing_session
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.5003641Z         PASS [   0.904s] ( 195/3346) spt::bin/spt api::reporting::tests::a_non_engine_room_boundary_never_moves_the_seats_empowerment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.5774038Z         PASS [   0.891s] ( 196/3346) spt::bin/spt api::reporting::tests::a_repeat_of_the_current_session_publishes_no_second_edge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.6048782Z         PASS [   0.654s] ( 197/3346) spt::bin/spt api::reporting::tests::an_unknown_mode_publishes_the_coerced_token_not_the_caller_word
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.6148755Z         PASS [   0.926s] ( 198/3346) spt::bin/spt api::reporting::tests::a_rotated_away_session_id_cannot_resurrect_a_dropped_empowerment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.7519857Z         PASS [   0.566s] ( 199/3346) spt::bin/spt api::reporting::tests::boundary_missing_perch_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:45.8466315Z         PASS [   0.865s] ( 200/3346) spt::bin/spt api::reporting::tests::boundary_appends_to_the_session_ledger
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.0285185Z         PASS [   0.950s] ( 201/3346) spt::bin/spt api::reporting::tests::boundary_injects_deferred_shell_context
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.0982889Z         PASS [   0.598s] ( 202/3346) spt::bin/spt api::reporting::tests::boundary_refuses_rotating_onto_a_psyche_custody_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.1159935Z         PASS [   0.501s] ( 203/3346) spt::bin/spt api::reporting::tests::capability_lists_hostable_types
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.1679968Z         PASS [   0.944s] ( 204/3346) spt::bin/spt api::reporting::tests::boundary_rebinds_keeping_anchor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.2566808Z         PASS [   0.652s] ( 205/3346) spt::bin/spt api::reporting::tests::boundary_with_a_fresh_sid_is_unaffected_by_the_squat_guard
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.3828278Z         PASS [   0.805s] ( 206/3346) spt::bin/spt api::reporting::tests::boundary_resurfaces_undismissed_notifs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.4000933Z         PASS [   0.648s] ( 207/3346) spt::bin/spt api::reporting::tests::digest_entry_validates_and_appends_to_digest_log
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.4539962Z         PASS [   0.607s] ( 208/3346) spt::bin/spt api::reporting::tests::driven_by_reads_daemon_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.4669758Z         PASS [   0.369s] ( 209/3346) spt::bin/spt api::reporting::tests::endpoint_info_attached_node_from_honest_stamps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.4922056Z         PASS [   0.464s] ( 210/3346) spt::bin/spt api::reporting::tests::endpoint_info_activity_word_tracks_the_idle_sentinel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.7244999Z         PASS [   0.608s] ( 211/3346) spt::bin/spt api::reporting::tests::endpoint_info_attached_node_self_attributes_own_node_driver
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.7456565Z         PASS [   0.578s] ( 212/3346) spt::bin/spt api::reporting::tests::endpoint_info_json_always_carries_an_activity_word
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.7996020Z         PASS [   0.417s] ( 213/3346) spt::bin/spt api::reporting::tests::env_aliases_resolved_from_manifest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.8163336Z         PASS [   0.362s] ( 214/3346) spt::bin/spt api::reporting::tests::filedrops_are_fixed_named_files
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.8230122Z         PASS [   0.566s] ( 215/3346) spt::bin/spt api::reporting::tests::endpoint_info_reports_and_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:46.8770538Z         PASS [   0.477s] ( 216/3346) spt::bin/spt api::reporting::tests::erase_unregisters_regardless_of_liveness
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:47.0923771Z         PASS [   0.625s] ( 217/3346) spt::bin/spt api::reporting::tests::harness_hint_seen_keys_survive_the_shell_qualification
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:47.5315247Z         PASS [   1.039s] ( 218/3346) spt::bin/spt api::reporting::tests::hint_once_per_session_one_per_message
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:47.5468546Z         PASS [   0.801s] ( 219/3346) spt::bin/spt api::reporting::tests::misplaced_drop_is_still_found_once_the_anchor_is_correct
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:47.5543797Z         PASS [   0.830s] ( 220/3346) spt::bin/spt api::reporting::tests::history_log_appends
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:47.7873450Z         PASS [   0.987s] ( 221/3346) spt::bin/spt api::reporting::tests::presence_records_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:47.9285811Z         PASS [   1.112s] ( 222/3346) spt::bin/spt api::reporting::tests::session_end_erase_reaps_stale_worker_then_proceeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.1724885Z         PASS [   0.641s] ( 223/3346) spt::bin/spt api::reporting::tests::shell_hint_teaser_names_the_verb_and_the_full_arm_still_fires_after_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.1996449Z         PASS [   1.323s] ( 224/3346) spt::bin/spt api::reporting::tests::session_end_erase_wipes_childless_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.2536073Z         PASS [   1.161s] ( 225/3346) spt::bin/spt api::reporting::tests::session_end_soft_preserves_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.2574001Z         PASS [   1.434s] ( 226/3346) spt::bin/spt api::reporting::tests::session_end_erase_refused_with_live_children
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.5111819Z         PASS [   0.964s] ( 227/3346) spt::bin/spt api::reporting::tests::soft_end_preserves_a_live_listeners_address
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.5418042Z         PASS [   0.987s] ( 228/3346) spt::bin/spt api::reporting::tests::soft_end_still_cleans_a_dead_listeners_address
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.7570532Z         PASS [   0.970s] ( 229/3346) spt::bin/spt api::reporting::tests::two_shell_adapters_with_identical_hint_text_do_not_silence_each_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:48.7592715Z         PASS [   0.831s] ( 230/3346) spt::bin/spt api::seal::tests::describe_refuses_unknown_and_malformed_distinctly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:49.0373569Z         PASS [   0.865s] ( 231/3346) spt::bin/spt api::seal::tests::describe_renders_exactly_the_record_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:49.5862965Z         PASS [   1.333s] ( 232/3346) spt::bin/spt api::seal::tests::minted_at_degrades_to_raw_millis_when_it_cannot_be_placed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:49.9811399Z         PASS [   1.781s] ( 233/3346) spt::bin/spt api::seal::tests::fido2_signature_arm_bounds_refuses_and_describes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:50.1187057Z         PASS [   1.861s] ( 234/3346) spt::bin/spt api::seal::tests::minter_names_a_node_only_when_the_prefix_is_unambiguous
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:51.1623476Z         PASS [   2.651s] ( 235/3346) spt::bin/spt api::seal::tests::verify_also_tests_the_mint_trimmed_candidate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.4532266Z         PASS [   3.911s] ( 236/3346) spt::bin/spt api::seal::tests::verify_exit_zero_iff_bound_across_all_arms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5345933Z         PASS [   3.777s] ( 237/3346) spt::bin/spt api::startup::tests::a_dead_binder_pid_proves_nothing_and_never_drops_the_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5428970Z         PASS [   3.783s] ( 238/3346) spt::bin/spt api::tests::adapter_is_optional
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5547502Z         PASS [   3.517s] ( 239/3346) spt::bin/spt api::tests::ctx_manifest_override_wins_when_manifest_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5603449Z         PASS [   2.579s] ( 240/3346) spt::bin/spt api::tests::ctx_manifest_unregistered_no_manifest_is_none_not_fatal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5714710Z         PASS [   2.453s] ( 241/3346) spt::bin/spt api::tests::load_manifest_resolves_composite_adapter_option
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5732543Z         PASS [   2.987s] ( 242/3346) spt::bin/spt api::tests::ctx_manifest_resolves_from_registry_when_manifest_absent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5769104Z         PASS [   1.415s] ( 243/3346) spt::bin/spt api::tests::state_value_is_validated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5873226Z         PASS [   0.053s] ( 244/3346) spt::bin/spt api::startup::tests::a_dead_relays_capability_stamp_is_not_resurrected_by_a_listener_rebind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.5951583Z         PASS [   0.142s] ( 245/3346) spt::bin/spt api::tests::surface_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:52.6482220Z         PASS [   0.105s] ( 246/3346) spt::bin/spt api::worker::tests::cascade_guard_tracks_live_children
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.2293092Z         PASS [   1.674s] ( 247/3346) spt::bin/spt api::worker::tests::guard_clears_only_when_all_children_stopped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.2325927Z         PASS [   1.637s] ( 248/3346) spt::bin/spt api::worker::tests::worker_start_registration_sid_falls_back_to_presented
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.2345692Z         PASS [   1.657s] ( 249/3346) spt::bin/spt api::worker::tests::worker_start_nests_under_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.2346243Z         PASS [   1.663s] ( 250/3346) spt::bin/spt api::worker::tests::worker_poll_holds_deferred_while_resting
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.2355142Z         PASS [   1.662s] ( 251/3346) spt::bin/spt api::worker::tests::worker_start_mints_id_stores_parent_sid_and_metadata
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.2477113Z         PASS [   1.599s] ( 252/3346) spt::bin/spt attach::tests::a_missing_or_directory_attachment_refuses_by_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.3194632Z         PASS [   1.759s] ( 253/3346) spt::bin/spt api::worker::tests::worker_poll_drains_spool
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.4532059Z         PASS [   1.866s] ( 254/3346) spt::bin/spt api::startup::tests::a_listener_over_a_dead_pty_is_not_offlined_by_the_liveness_reconcile
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.5000153Z         PASS [   0.271s] ( 255/3346) spt::bin/spt attach::tests::the_attachments_attr_is_absent_when_nothing_is_attached
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.5224743Z         PASS [   0.290s] ( 256/3346) spt::bin/spt authseam::tests::cancelled_prompt_tells_the_operator_how_to_recover
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.5628276Z         PASS [   0.328s] ( 257/3346) spt::bin/spt authseam::tests::decider_maps_every_status_arm_hermetically
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.5732559Z         PASS [   0.338s] ( 258/3346) spt::bin/spt authseam::tests::hex_encoding_is_lowercase_and_exact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.5857161Z         PASS [   0.351s] ( 259/3346) spt::bin/spt authseam::tests::hello_availability_answers_well_formed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.8342259Z         PASS [   0.586s] ( 260/3346) spt::bin/spt authseam::tests::live_token_is_spelled_exactly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.8614305Z         PASS [   0.542s] ( 261/3346) spt::bin/spt authseam::tests::refusals_lead_with_the_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9124330Z         PASS [   0.412s] ( 262/3346) spt::bin/spt cli::lifecycle_verb_decisions::remembered_defaults_prefer_the_newest_row_field_by_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9222454Z         PASS [   0.400s] ( 263/3346) spt::bin/spt cli::lifecycle_verb_decisions::the_adapter_precedence_is_flag_then_endpoint_then_a_sole_installed_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9303332Z         PASS [   0.367s] ( 264/3346) spt::bin/spt cli::lifecycle_verb_decisions::the_go_ladder_takes_the_ratified_rung
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9386612Z         PASS [   0.365s] ( 265/3346) spt::bin/spt cli::reserved_id_tests::endpoint_run_refuses_the_reserved_id_and_saves_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9426625Z         PASS [   0.489s] ( 266/3346) spt::bin/spt api::startup::tests::a_live_owner_whose_birth_matches_still_refuses_the_bind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9627755Z         PASS [   0.101s] ( 267/3346) spt::bin/spt cli::resume_resolution_tests::resume_never_feeds_a_provisional
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:54.9681056Z         PASS [   0.134s] ( 268/3346) spt::bin/spt cli::reserved_id_tests::the_lifecycle_verbs_refuse_their_preconditions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.2289210Z         PASS [   0.316s] ( 269/3346) spt::bin/spt cli::retired_verb_pre_scan::the_pre_scan_reads_the_verb_position_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.2565942Z         PASS [   0.334s] ( 270/3346) spt::bin/spt cli::retired_verb_pre_scan::the_retired_verb_refuses_with_a_pointer_a_generic_error_cannot_fake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.2849281Z         PASS [   0.354s] ( 271/3346) spt::bin/spt cli::run_home_tests::order_by_mru_orders_guidance
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.2903982Z         PASS [   0.352s] ( 272/3346) spt::bin/spt cli::run_home_tests::run_home_resolution_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.3075504Z         PASS [   0.345s] ( 273/3346) spt::bin/spt cli::run_on_live_tests::run_on_live_never_duplicates_and_create_conflicts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.3141176Z         PASS [   0.346s] ( 274/3346) spt::bin/spt cli::tests::a_composite_judges_floors_against_the_staged_core_not_the_running_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.3222135Z         PASS [   0.093s] ( 275/3346) spt::bin/spt cli::tests::a_composite_subject_is_refused_while_a_bare_id_still_builds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.3363071Z         PASS [   0.051s] ( 276/3346) spt::bin/spt cli::tests::a_mint_captures_its_declared_mode_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.3581653Z         PASS [   0.415s] ( 277/3346) spt::bin/spt api::startup::tests::a_recycled_owner_pid_no_longer_refuses_the_bind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.3674440Z         PASS [   0.111s] ( 278/3346) spt::bin/spt cli::tests::a_local_hit_never_asks_the_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.6243385Z         PASS [   0.316s] ( 279/3346) spt::bin/spt cli::tests::a_node_subject_resolves_by_hex_by_self_or_by_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.6403192Z         PASS [   0.349s] ( 280/3346) spt::bin/spt cli::tests::a_minted_sealed_code_is_the_one_that_opens_to_its_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.7106377Z         PASS [   0.396s] ( 281/3346) spt::bin/spt cli::tests::a_non_attributable_bake_needs_the_acknowledgment_and_keeps_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.9508990Z         PASS [   0.629s] ( 282/3346) spt::bin/spt cli::tests::a_notfound_lands_locally_only_when_the_target_is_an_endpoint_here
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:55.9873132Z         PASS [   0.651s] ( 283/3346) spt::bin/spt cli::tests::a_one_way_approval_hands_over_a_reverse_command_that_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.0456362Z         PASS [   0.678s] ( 284/3346) spt::bin/spt cli::tests::a_real_endpoint_named_like_a_retired_verb_is_still_viewable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.0754448Z         PASS [   0.717s] ( 285/3346) spt::bin/spt api::startup::tests::a_recycled_relay_pid_is_fixed_too_so_the_role_gate_is_not_carrying_this
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.2812207Z         PASS [   0.657s] ( 286/3346) spt::bin/spt cli::tests::a_refusal_never_masks_a_failure_in_either_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.3076744Z         PASS [   0.665s] ( 287/3346) spt::bin/spt cli::tests::a_refused_adapter_is_not_reported_as_a_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.3463399Z         PASS [   0.636s] ( 288/3346) spt::bin/spt cli::tests::a_refused_apply_class_answers_refused_not_failed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.6180709Z         PASS [   0.631s] ( 289/3346) spt::bin/spt cli::tests::a_remote_send_receive_claims_only_what_it_can_deliver
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.6393408Z         PASS [   0.594s] ( 290/3346) spt::bin/spt cli::tests::a_reply_carried_request_is_not_stamped_as_a_first_order_knock
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.6886531Z         PASS [   0.381s] ( 291/3346) spt::bin/spt cli::tests::a_retired_flag_names_what_replaced_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.7083522Z         PASS [   0.427s] ( 292/3346) spt::bin/spt cli::tests::a_retired_access_subcommand_refuses_by_name_and_says_the_working_form
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.9569390Z         PASS [   0.611s] ( 293/3346) spt::bin/spt cli::tests::a_row_without_a_node_says_so_and_one_with_a_node_shows_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.9775238Z         PASS [   2.392s] ( 294/3346) spt::bin/spt cli::reserved_id_tests::rename_into_the_reserved_id_is_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:56.9792273Z         PASS [   0.361s] ( 295/3346) spt::bin/spt cli::tests::a_rule_describes_itself_in_plain_words
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.0269349Z         PASS [   0.951s] ( 296/3346) spt::bin/spt api::startup::tests::api_bind_admits_the_reserved_id_only_as_a_bring_ups_completion
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.0304155Z         PASS [   0.391s] ( 297/3346) spt::bin/spt cli::tests::a_sealed_dispatch_answer_carries_the_minted_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.0320048Z         PASS [   0.343s] ( 298/3346) spt::bin/spt cli::tests::a_sender_rule_on_a_non_attributable_surface_is_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.2918852Z         PASS [   0.583s] ( 299/3346) spt::bin/spt cli::tests::a_staged_release_with_no_product_version_degrades_and_says_which
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.3101175Z         PASS [   0.353s] ( 300/3346) spt::bin/spt cli::tests::a_status_row_reads_held_over_running_and_carries_its_evidence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.3496034Z         PASS [   0.372s] ( 301/3346) spt::bin/spt cli::tests::a_subcommand_name_beats_the_bare_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.3550498Z         PASS [   0.376s] ( 302/3346) spt::bin/spt cli::tests::a_subject_with_no_origin_gets_a_named_absence_and_never_an_inert_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.6374584Z         PASS [   0.607s] ( 303/3346) spt::bin/spt cli::tests::a_subnet_fork_grant_names_the_members_that_cannot_resolve
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.7133595Z         PASS [   0.421s] ( 304/3346) spt::bin/spt cli::tests::access_subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.8124030Z         PASS [   0.780s] ( 305/3346) spt::bin/spt cli::tests::a_wedged_probe_costs_one_ceiling_and_reads_unknown_not_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:57.9577328Z         PASS [   0.648s] ( 306/3346) spt::bin/spt cli::tests::adapter_add_transport_flags_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:58.3083963Z         PASS [   0.671s] ( 307/3346) spt::bin/spt cli::tests::adapter_has_live_endpoint_detects_matching_live_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:58.3202843Z         PASS [   0.507s] ( 308/3346) spt::bin/spt cli::tests::adapter_name_validation_flags_every_unknown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:58.3261648Z         PASS [   1.299s] ( 309/3346) spt::bin/spt api::startup::tests::api_listen_admits_the_reserved_id_only_as_a_bring_ups_completion
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:58.4328684Z         PASS [   0.719s] ( 310/3346) spt::bin/spt cli::tests::adapter_has_live_endpoint_false_for_other_or_dead
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:58.5946224Z         PASS [   0.637s] ( 311/3346) spt::bin/spt cli::tests::adapter_names_comma_list_parses_and_refuses_empties
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:59.1875925Z         PASS [   0.879s] ( 312/3346) spt::bin/spt cli::tests::adapter_profile_verbs_local_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:59.4727441Z         PASS [   1.153s] ( 313/3346) spt::bin/spt cli::tests::adapter_string_verbs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:37:59.7260571Z         PASS [   2.376s] ( 314/3346) spt::bin/spt cli::tests::adapter_digest_proof_fills_session_id_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:00.0591522Z         PASS [   1.733s] ( 315/3346) spt::bin/spt api::startup::tests::bind_assigns_home_and_revive_preserves_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:00.7912808Z         PASS [   3.436s] ( 316/3346) spt::bin/spt cli::tests::adapter_digest_proof_gates_on_drops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:01.0483722Z         PASS [   2.615s] ( 317/3346) spt::bin/spt cli::tests::adapter_subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.1434289Z         PASS [   2.956s] ( 318/3346) spt::bin/spt cli::tests::adapter_translate_proof_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.2353060Z         PASS [   2.762s] ( 319/3346) spt::bin/spt cli::tests::adapter_update_install_dir_is_registered_source_dir_not_repo_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.2372089Z         PASS [   2.511s] ( 320/3346) spt::bin/spt cli::tests::adapter_update_notice_absent_when_no_message
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.5280006Z         PASS [   1.737s] ( 321/3346) spt::bin/spt cli::tests::adapter_update_notice_renders_declared_message_markdown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.5889909Z         PASS [   2.529s] ( 322/3346) spt::bin/spt api::startup::tests::bind_gateway_earns_no_online_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.5903170Z         PASS [   1.542s] ( 323/3346) spt::bin/spt cli::tests::adapter_update_summary_and_exit_aggregate_isolated_failures
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.6120666Z         PASS [   0.377s] ( 324/3346) spt::bin/spt cli::tests::adapter_version_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.6247925Z         PASS [   0.482s] ( 325/3346) spt::bin/spt cli::tests::adapter_use_sets_and_clears_pointer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.6365884Z         PASS [   0.399s] ( 326/3346) spt::bin/spt cli::tests::adapter_version_surfaces_declared_adapter_version
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.8887112Z         PASS [   0.361s] ( 327/3346) spt::bin/spt cli::tests::agent_ground_describes_itself_exactly_as_the_ceremony_always_did
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:02.9944630Z         PASS [   0.404s] ( 328/3346) spt::bin/spt cli::tests::all_hidden_this_node_suppresses_no_perches_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.0109051Z         PASS [   0.399s] ( 329/3346) spt::bin/spt cli::tests::already_applied_message_reads_up_to_date_no_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.0142080Z         PASS [   0.389s] ( 330/3346) spt::bin/spt cli::tests::an_addressed_target_is_local_only_when_its_node_half_names_this_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.2689565Z         PASS [   0.632s] ( 331/3346) spt::bin/spt cli::tests::an_approval_binds_the_subject_the_knocks_origin_implies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.3015112Z         PASS [   0.413s] ( 332/3346) spt::bin/spt cli::tests::an_empty_stored_surface_list_still_means_every_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.3539453Z         PASS [   0.359s] ( 333/3346) spt::bin/spt cli::tests::an_empty_unlisted_set_renders_no_heading_at_all
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.3696508Z         PASS [   0.355s] ( 334/3346) spt::bin/spt cli::tests::an_excluded_knock_is_neither_a_landing_nor_a_wire_refusal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.4805410Z         PASS [   0.892s] ( 335/3346) spt::bin/spt api::startup::tests::bind_listen_control_detach_keeps_the_earned_hosting_authority
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.6429098Z         PASS [   0.374s] ( 336/3346) spt::bin/spt cli::tests::an_omitted_subnet_seals_to_every_membership_and_a_named_one_must_be_held
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.6749211Z         PASS [   0.373s] ( 337/3346) spt::bin/spt cli::tests::an_undelivered_receipt_reports_only_the_receipt
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:03.7424393Z         PASS [   0.389s] ( 338/3346) spt::bin/spt cli::tests::answering_verbs_declare_no_directionality
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.0044344Z         PASS [   0.635s] ( 339/3346) spt::bin/spt cli::tests::any_single_evidence_source_is_enough_and_only_nothing_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.1149972Z         PASS [   0.472s] ( 340/3346) spt::bin/spt cli::tests::api_adapter_flag_is_group_level_not_post_subcommand
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.3823164Z         PASS [   0.902s] ( 341/3346) spt::bin/spt api::startup::tests::bind_live_agent_over_prior_ready_agent_earns_online_on_controllable_with_preserved_type
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.3831869Z         PASS [   0.708s] ( 342/3346) spt::bin/spt cli::tests::api_listen_accepts_session_id_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.4019871Z         PASS [   0.659s] ( 343/3346) spt::bin/spt cli::tests::applied_message_appends_restart_required_notice
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.4312674Z         PASS [   0.427s] ( 344/3346) spt::bin/spt cli::tests::applied_message_renders_semver_or_counter_fallback_and_states_applied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.4774554Z         PASS [   8.526s] ( 345/3346) spt::bin/spt cli::tests::a_remote_fork_refuses_delete_source_whole_rather_than_trimming_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.7467942Z         PASS [   0.364s] ( 346/3346) spt::bin/spt cli::tests::apply_user_msg_gate_local_origination
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.7608214Z         PASS [   0.358s] ( 347/3346) spt::bin/spt cli::tests::attachment_flags_repeat_and_ttl_requires_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.8176996Z         PASS [   0.340s] ( 348/3346) spt::bin/spt cli::tests::bare_tty_guard
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.8182708Z         PASS [   0.387s] ( 349/3346) spt::bin/spt cli::tests::bare_spt_parses_to_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.8407304Z         PASS [   0.094s] ( 350/3346) spt::bin/spt cli::tests::bare_update_parses_composite_flags
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.8462600Z         PASS [   0.086s] ( 351/3346) spt::bin/spt cli::tests::both_knock_answer_surfaces_take_a_monic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:04.8488927Z         PASS [   0.467s] ( 352/3346) spt::bin/spt api::startup::tests::bind_records_cwd_so_picker_can_group_by_project
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.1172911Z         PASS [   0.300s] ( 353/3346) spt::bin/spt cli::tests::both_role_readers_serve_the_core_value_and_ignore_a_planted_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.1355369Z         PASS [   0.317s] ( 354/3346) spt::bin/spt cli::tests::broker_image_line_reports_without_warning_or_remedy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.1753438Z         PASS [   1.060s] ( 355/3346) spt::bin/spt cli::tests::apply_release_crc_swap_only_swaps_changed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.1786315Z         PASS [   0.338s] ( 356/3346) spt::bin/spt cli::tests::classify_fetch_reject_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.1852109Z         PASS [   0.339s] ( 357/3346) spt::bin/spt cli::tests::classify_flat_archive_never_misfires
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2012660Z         PASS [   0.084s] ( 358/3346) spt::bin/spt cli::tests::classify_multiplatform_captures_only_known_triples
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2121807Z         PASS [   0.077s] ( 359/3346) spt::bin/spt cli::tests::cli_send_stamps_cli_at_node_origin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2132220Z         PASS [   0.364s] ( 360/3346) spt::bin/spt api::startup::tests::bind_refuses_a_session_id_that_squats_a_psyche_custody_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2190341Z         PASS [   0.044s] ( 361/3346) spt::bin/spt cli::tests::composite_plans_core_first_and_core_only_skips_adapters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2261936Z         PASS [   0.048s] ( 362/3346) spt::bin/spt cli::tests::connection_lines_net_less_hides_stale_heartbeat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2337667Z         PASS [   0.048s] ( 363/3346) spt::bin/spt cli::tests::coordinator_image_line_is_the_only_stale_warning
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2410803Z         PASS [   0.040s] ( 364/3346) spt::bin/spt cli::tests::create_existing_name_is_usage_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2492231Z         PASS [   0.037s] ( 365/3346) spt::bin/spt cli::tests::create_mints_two_distinct_keys_and_records_the_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2546497Z         PASS [   2.244s] ( 366/3346) spt::bin/spt cli::tests::an_engine_room_reset_wipes_records_but_never_deletes_the_engine_room
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2633483Z         PASS [   0.044s] ( 367/3346) spt::bin/spt cli::tests::create_mode_is_never_preselected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2723472Z         PASS [   0.046s] ( 368/3346) spt::bin/spt cli::tests::create_new_existing_name_is_usage_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.2912556Z         PASS [   0.057s] ( 369/3346) spt::bin/spt cli::tests::create_new_mints_shows_and_requests_save
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.3720850Z         PASS [   0.159s] ( 370/3346) spt::bin/spt api::startup::tests::bind_with_type_establishes_a_gateway_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.5436295Z         PASS [   0.302s] ( 371/3346) spt::bin/spt cli::tests::create_not_elevated_refuses_without_saving
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.6194784Z         PASS [   0.370s] ( 372/3346) spt::bin/spt cli::tests::create_prints_joining_material_when_elevated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.6257068Z         PASS [   0.362s] ( 373/3346) spt::bin/spt cli::tests::cross_node_after_filters_a_sealed_turn_exactly_like_the_local_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.6418569Z         PASS [   0.369s] ( 374/3346) spt::bin/spt cli::tests::daemon_offline_hint_only_when_down
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.6569687Z         PASS [   0.402s] ( 375/3346) spt::bin/spt cli::tests::create_provisions_the_admin_key_and_show_code_never_does
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.9118115Z         PASS [   0.620s] ( 376/3346) spt::bin/spt cli::tests::daemon_refresh_verb_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.9905864Z         PASS [   0.618s] ( 377/3346) spt::bin/spt api::startup::tests::bind_with_unrelated_sid_is_unaffected_by_the_squat_guard
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:05.9981176Z         PASS [   0.379s] ( 378/3346) spt::bin/spt cli::tests::daemonless_apply_message_points_at_finish_or_start
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.0037794Z         PASS [   0.378s] ( 379/3346) spt::bin/spt cli::tests::deferred_elevation_gate_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.0079453Z         PASS [   0.464s] ( 380/3346) spt::bin/spt cli::tests::daemon_subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.2720312Z         PASS [   0.630s] ( 381/3346) spt::bin/spt cli::tests::digest_cursor_flags_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.3088059Z         PASS [   0.652s] ( 382/3346) spt::bin/spt cli::tests::digest_flag_defaults
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.6012373Z         PASS [   0.689s] ( 383/3346) spt::bin/spt cli::tests::digest_human_path_keeps_the_stderr_trailer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.6196607Z         PASS [   0.629s] ( 384/3346) spt::bin/spt api::startup::tests::empty_session_seed_refusal_spends_the_seed_no_restore
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.8850288Z         PASS [   0.887s] ( 385/3346) spt::bin/spt cli::tests::digest_json_carries_version_and_leaves_stderr_clean
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.9115178Z         PASS [   0.907s] ( 386/3346) spt::bin/spt cli::tests::digest_json_predates_path_still_carries_version
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.9182861Z         PASS [   0.910s] ( 387/3346) spt::bin/spt cli::tests::empty_store_no_flag_guides_to_pair_or_create
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:06.9277285Z         PASS [   0.656s] ( 388/3346) spt::bin/spt cli::tests::endpoint_caller_is_denied_and_a_human_caller_is_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.2165716Z         PASS [   0.615s] ( 389/3346) spt::bin/spt cli::tests::endpoint_role_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.2481485Z         PASS [   0.628s] ( 390/3346) spt::bin/spt api::startup::tests::empty_session_seed_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.4991339Z         PASS [   0.614s] ( 391/3346) spt::bin/spt cli::tests::endpoint_row_json_endpoint_type_is_additive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.5499417Z         PASS [   8.955s] ( 392/3346) spt::bin/spt cli::tests::adapter_translate_proof_gates_on_commit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.6258652Z         PASS [   0.714s] ( 393/3346) spt::bin/spt cli::tests::endpoint_stop_marks_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.8419094Z         PASS [   0.923s] ( 394/3346) spt::bin/spt cli::tests::endpoint_subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.8496094Z         PASS [   0.922s] ( 395/3346) spt::bin/spt cli::tests::engine_room_ceremony_decision_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:07.8534932Z         PASS [   0.637s] ( 396/3346) spt::bin/spt cli::tests::engine_room_purge_resets_under_elevation_and_refuses_without_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:08.1328058Z         PASS [   0.634s] ( 397/3346) spt::bin/spt cli::tests::escalation_choice_parses_fail_closed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:08.2654706Z         PASS [   1.017s] ( 398/3346) spt::bin/spt api::startup::tests::establish_stamps_controllable_by_hosting_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:08.4222291Z         PASS [   0.872s] ( 399/3346) spt::bin/spt cli::tests::every_mint_persist_site_asks_the_shared_probe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:08.4846881Z         PASS [   0.859s] ( 400/3346) spt::bin/spt cli::tests::every_node_flag_teaches_all_three_spellings
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:08.7644983Z         PASS [   0.923s] ( 401/3346) spt::bin/spt cli::tests::every_node_subcommand_parses_identically_under_the_daemon_alias
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:09.0328951Z         PASS [   1.183s] ( 402/3346) spt::bin/spt cli::tests::every_read_status_command_accepts_the_global_json_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:09.3017721Z         PASS [   1.448s] ( 403/3346) spt::bin/spt cli::tests::every_retired_access_token_still_reaches_the_positional
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:09.5840772Z         PASS [   1.451s] ( 404/3346) spt::bin/spt cli::tests::every_send_outcome_is_answered_by_exactly_one_renderer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:09.8647689Z         PASS [   1.599s] ( 405/3346) spt::bin/spt api::startup::tests::fresh_bind_over_dead_life_needs_both_terminal_and_a_new_session
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.5599167Z         PASS [   2.527s] ( 406/3346) spt::bin/spt cli::tests::fetch_reject_action_apply_decision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.5719702Z         PASS [   2.270s] ( 407/3346) spt::bin/spt cli::tests::filter_after_excludes_at_or_below_cursor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.5893346Z         PASS [   2.005s] ( 408/3346) spt::bin/spt cli::tests::filter_after_predates_window_returns_full
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.6040106Z         PASS [   3.182s] ( 409/3346) spt::bin/spt cli::tests::extract_legacy_flat_stays_flat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.6262586Z         PASS [   2.862s] ( 410/3346) spt::bin/spt cli::tests::extract_multiplatform_places_shared_root_and_flattens_my_triple
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.6287424Z         PASS [   3.144s] ( 411/3346) spt::bin/spt cli::tests::extract_multiplatform_missing_my_triple_is_typed_rejection
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.7369071Z         PASS [   1.872s] ( 412/3346) spt::bin/spt api::startup::tests::fresh_create_over_a_stopped_life_reads_active_with_no_wake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.8772575Z         PASS [   0.317s] ( 413/3346) spt::bin/spt cli::tests::finish_message_states_fully_live_no_manual_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.9376660Z         PASS [   0.349s] ( 414/3346) spt::bin/spt cli::tests::gh_download_command_no_tag_omits_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.9476749Z         PASS [   0.344s] ( 415/3346) spt::bin/spt cli::tests::gh_download_command_with_tag_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.9590363Z         PASS [   0.333s] ( 416/3346) spt::bin/spt cli::tests::gh_failure_classes_render_os_correct_hints
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.9673773Z         PASS [   0.339s] ( 417/3346) spt::bin/spt cli::tests::gh_release_version_compare_decision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:11.9827056Z         PASS [   0.105s] ( 418/3346) spt::bin/spt cli::tests::gh_version_command_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.0025452Z         PASS [   0.065s] ( 419/3346) spt::bin/spt cli::tests::grant_subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.0086680Z         PASS [   0.061s] ( 420/3346) spt::bin/spt cli::tests::help_groups_cover_every_command
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.0643674Z         PASS [   0.327s] ( 421/3346) spt::bin/spt api::startup::tests::fresh_create_with_no_prior_carries_no_rest_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4193325Z         PASS [   0.437s] ( 422/3346) spt::bin/spt cli::tests::inbound_json_speaks_in_the_two_states_the_human_view_is_silent_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4206836Z         PASS [   0.453s] ( 423/3346) spt::bin/spt cli::tests::how_to_topics_cover_ready_and_send
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4283015Z         PASS [   0.469s] ( 424/3346) spt::bin/spt cli::tests::hot_path_flat_and_moved_verbs_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4284250Z         PASS [   0.426s] ( 425/3346) spt::bin/spt cli::tests::inbound_verdict_rides_the_json_in_every_state_including_ok
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4449396Z         PASS [   0.380s] ( 426/3346) spt::bin/spt api::startup::tests::listen_never_asserts_hosting_topology_and_bind_still_does
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4460633Z         PASS [   0.437s] ( 427/3346) spt::bin/spt cli::tests::install_place_is_idempotent_and_path_block_detected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4523350Z         PASS [   0.033s] ( 428/3346) spt::bin/spt cli::tests::install_platform_check_gates_stamp_and_host_arch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4639570Z         PASS [   0.043s] ( 429/3346) spt::bin/spt cli::tests::instance_rows_palette_and_align
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4735105Z         PASS [   0.045s] ( 430/3346) spt::bin/spt cli::tests::instance_rows_project_column
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.4823652Z         PASS [   0.054s] ( 431/3346) spt::bin/spt cli::tests::invalid_usage_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.7404268Z         PASS [   0.295s] ( 432/3346) spt::bin/spt api::startup::tests::listen_online_gate_refuses_capability_only_online
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.7669070Z         PASS [   0.321s] ( 433/3346) spt::bin/spt cli::tests::join_gate_refuses_without_confirmed_elevation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8052659Z         PASS [   0.353s] ( 434/3346) spt::bin/spt cli::tests::json_activity_key_is_local_only_and_skips_when_unknown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8159265Z         PASS [   0.352s] ( 435/3346) spt::bin/spt cli::tests::json_activity_words_come_from_the_shared_vocabulary_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8241131Z         PASS [   0.350s] ( 436/3346) spt::bin/spt cli::tests::json_drop_dir_is_local_only_and_skips_when_unknown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8315706Z         PASS [   0.349s] ( 437/3346) spt::bin/spt cli::tests::json_payload_rides_as_attr_alongside_body
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8367328Z         PASS [   0.096s] ( 438/3346) spt::bin/spt api::startup::tests::listen_orphan_exit_line_names_self_and_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8466138Z         PASS [   0.080s] ( 439/3346) spt::bin/spt cli::tests::json_project_field_skip_if_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8535369Z         PASS [   0.049s] ( 440/3346) spt::bin/spt cli::tests::knock_surfaces_speaks_the_tables_vocabulary_and_refuses_the_rest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:12.8586476Z         PASS [   0.043s] ( 441/3346) spt::bin/spt cli::tests::local_dtos_carry_host_error_and_omit_it_when_clean
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.1263465Z         PASS [   0.302s] ( 442/3346) spt::bin/spt cli::tests::malformed_tuple_flags_refuse_with_a_usable_diagnostic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2292647Z         PASS [   0.397s] ( 443/3346) spt::bin/spt cli::tests::monic_verbs_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2370699Z         PASS [   0.390s] ( 444/3346) spt::bin/spt cli::tests::multi_subnet_refuses_without_flag_then_resolves_with_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2430588Z         PASS [   0.389s] ( 445/3346) spt::bin/spt cli::tests::new_code_carries_the_acknowledgment_and_the_subnet_through_the_router
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2434247Z         PASS [   0.407s] ( 446/3346) spt::bin/spt api::startup::tests::live_perch_under_other_session_conflicts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2460822Z         PASS [   0.387s] ( 447/3346) spt::bin/spt cli::tests::no_redeem_surface_claims_a_reverse_the_minting_side_could_not_open
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2508176Z         PASS [   0.124s] ( 448/3346) spt::bin/spt cli::tests::no_stage_degrades_to_the_running_core_and_is_its_own_diagnosis
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2582284Z         PASS [   0.029s] ( 449/3346) spt::bin/spt cli::tests::node_group_discards_self_and_skips_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2674361Z         PASS [   0.030s] ( 450/3346) spt::bin/spt cli::tests::node_group_freshest_epoch_wins_and_unions_subnets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2768426Z         PASS [   0.034s] ( 451/3346) spt::bin/spt cli::tests::node_group_same_id_two_nodes_two_groups
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2940234Z         PASS [   0.050s] ( 452/3346) spt::bin/spt api::startup::tests::missing_seed_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.2953437Z         PASS [   0.049s] ( 453/3346) spt::bin/spt cli::tests::node_grouped_render_structure_and_palette
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.3040079Z         PASS [   0.053s] ( 454/3346) spt::bin/spt cli::tests::node_level_label_names_an_endpointless_peer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.3125059Z         PASS [   0.054s] ( 455/3346) spt::bin/spt cli::tests::node_rows_disambiguate_only_on_label_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.5791053Z         PASS [   0.312s] ( 456/3346) spt::bin/spt cli::tests::node_status_rows_denominator_counts_routable_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.6024740Z         PASS [   0.325s] ( 457/3346) spt::bin/spt cli::tests::node_status_rows_settle_cheap_signals_probe_only_stale
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.6728656Z         PASS [   0.377s] ( 458/3346) spt::bin/spt cli::tests::not_elevated_refuses_without_leaking_code_or_saving
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.6877593Z         PASS [   0.394s] ( 459/3346) spt::bin/spt api::startup::tests::no_seed_is_the_fallback_trigger_then_sid_binds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.6891504Z         PASS [   0.385s] ( 460/3346) spt::bin/spt cli::tests::notify_subnet_resolution_home_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.7011999Z         PASS [   0.389s] ( 461/3346) spt::bin/spt cli::tests::notify_surface_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.9586937Z         PASS [   0.379s] ( 462/3346) spt::bin/spt cli::tests::only_a_bake_that_can_admit_the_whole_node_demands_the_acknowledgment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:13.9842079Z         PASS [   0.382s] ( 463/3346) spt::bin/spt cli::tests::only_a_multi_subnet_mint_warns_about_older_readers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.0273755Z         PASS [   0.355s] ( 464/3346) spt::bin/spt cli::tests::only_restart_runs_a_leg_after_the_isolated_adapters_leg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.0339240Z         PASS [   0.346s] ( 465/3346) spt::bin/spt api::startup::tests::only_an_unverified_refusal_names_its_escape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3001870Z         PASS [   0.611s] ( 466/3346) spt::bin/spt cli::tests::only_rows_with_a_node_are_asked_and_answers_land_on_their_own_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3220485Z         PASS [   0.621s] ( 467/3346) spt::bin/spt cli::tests::only_the_send_side_defaults_to_msg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3518541Z         PASS [   0.393s] ( 468/3346) spt::bin/spt cli::tests::origin_asset_urls_latest_and_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3606327Z         PASS [   0.376s] ( 469/3346) spt::bin/spt cli::tests::own_nested_section_renders_under_this_node_without_moving_the_total
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3729371Z         PASS [   0.339s] ( 470/3346) spt::bin/spt api::startup::tests::only_gone_changes_the_conflict_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3880920Z         PASS [   0.088s] ( 471/3346) spt::bin/spt cli::tests::pair_namespace_is_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3899524Z         PASS [   0.068s] ( 472/3346) spt::bin/spt cli::tests::peer_health_line_names_absent_peers_as_their_own_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.3968160Z         PASS [   0.045s] ( 473/3346) spt::bin/spt cli::tests::peer_health_line_names_the_stage_and_stays_silent_when_idle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.4049507Z         PASS [   0.044s] ( 474/3346) spt::bin/spt cli::tests::poll_until_ready_fastpath_timeout_and_later_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.6956442Z         PASS [   0.307s] ( 475/3346) spt::bin/spt cli::tests::post_step_notice_arbitration
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.7096705Z         PASS [   0.337s] ( 476/3346) spt::bin/spt api::startup::tests::parent_watchdog_triggers_exit_on_a_dead_parent_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.7412496Z         PASS [   0.351s] ( 477/3346) spt::bin/spt cli::tests::probe_all_cap_batches_into_windows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.7623624Z         PASS [   0.066s] ( 478/3346) spt::bin/spt cli::tests::project_index_line_states_health_not_presence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.8062710Z         PASS [   8.497s] ( 479/3346) spt::bin/spt cli::tests::endpoint_role_overwrite_is_the_sole_writer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.8492712Z         PASS [   0.140s] ( 480/3346) spt::bin/spt api::startup::tests::post_spawn_bind_establishes_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.9190421Z         PASS [   0.514s] ( 481/3346) spt::bin/spt cli::tests::probe_all_timeout_settles_false_without_stalling_batch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:14.9488958Z         PASS [   0.552s] ( 482/3346) spt::bin/spt cli::tests::probe_all_runs_concurrently_in_input_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.0310492Z         PASS [   0.290s] ( 483/3346) spt::bin/spt cli::tests::prune_candidates_resolve_never_guess
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.0515704Z         PASS [   0.289s] ( 484/3346) spt::bin/spt cli::tests::psyche_companion_is_named_without_a_status
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.1562221Z         PASS [   0.104s] ( 485/3346) spt::bin/spt cli::tests::registered_github_home_detects_active_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.1572728Z         PASS [   0.308s] ( 486/3346) spt::bin/spt api::startup::tests::prebind_refusal_restores_the_seed_for_retry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.1630543Z         PASS [   0.214s] ( 487/3346) spt::bin/spt cli::tests::purge_offline_gate_and_self_guard
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.1862281Z         PASS [   0.380s] ( 488/3346) spt::bin/spt cli::tests::public_help_carries_no_internal_codes_at_any_ruled_site
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.4569354Z         PASS [   0.299s] ( 489/3346) spt::bin/spt api::startup::tests::read_env_measured_capture_replaces_prior_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.5140109Z         PASS [   0.351s] ( 490/3346) spt::bin/spt cli::tests::remote_cell_project_ref_from_gossiped_recent_projects
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.5170493Z         PASS [   0.331s] ( 491/3346) spt::bin/spt cli::tests::requesting_verbs_force_an_explicit_directionality
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.6591037Z         PASS [   0.202s] ( 492/3346) spt::bin/spt api::startup::tests::rebind_same_session_ok
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.8008191Z         PASS [   0.287s] ( 493/3346) spt::bin/spt cli::tests::resolve_proof_target_override_reads_on_disk
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.8241477Z         PASS [   0.307s] ( 494/3346) spt::bin/spt cli::tests::resolve_transport_auto_follows_probe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:15.8622401Z         PASS [   0.706s] ( 495/3346) spt::bin/spt cli::tests::release_archive_extracts_to_a_registrable_root
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:16.2501339Z         PASS [   0.591s] ( 496/3346) spt::bin/spt api::startup::tests::revive_preserves_prior_rest_state_and_dormant_anchor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:16.4060217Z         PASS [   0.605s] ( 497/3346) spt::bin/spt cli::tests::resolve_transport_explicit_never_probes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:16.4394215Z         PASS [   0.615s] ( 498/3346) spt::bin/spt cli::tests::rest_filter_hides_suspended_shows_all_and_corrupt_always
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:16.9789334Z         PASS [   1.117s] ( 499/3346) spt::bin/spt cli::tests::rest_filter_status_first_ordering
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.1261619Z         PASS [   0.876s] ( 500/3346) spt::bin/spt api::startup::tests::revive_without_cwd_preserves_prior_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.2759482Z         PASS [   0.870s] ( 501/3346) spt::bin/spt cli::tests::rest_filter_total_disclosure_and_corrupt_annotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.3144080Z         PASS [   0.875s] ( 502/3346) spt::bin/spt cli::tests::restart_plans_lethal_leg_last
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.5883096Z         PASS [   0.609s] ( 503/3346) spt::bin/spt cli::tests::ring_no_reply_arms_report_the_wait_in_the_callers_unit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.6319775Z         PASS [   0.506s] ( 504/3346) spt::bin/spt api::startup::tests::seed_bind_records_seed_captured_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.8849521Z         PASS [   0.609s] ( 505/3346) spt::bin/spt cli::tests::ring_timeout_defaults
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:17.9049411Z         PASS [   0.590s] ( 506/3346) spt::bin/spt cli::tests::ring_timeout_parses_bare_as_minutes_and_honors_suffixes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:18.2055643Z         PASS [   0.574s] ( 507/3346) spt::bin/spt api::startup::tests::seed_fail_eof_gives_actionable_stale_broker_hint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:18.2254205Z         PASS [   3.306s] ( 508/3346) spt::bin/spt cli::tests::purge_force_asks_before_it_tears_anything_down
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:18.2349651Z         PASS [   0.647s] ( 509/3346) spt::bin/spt cli::tests::run_bounded_yields_value_or_timeout_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:18.4890569Z         PASS [   0.604s] ( 510/3346) spt::bin/spt cli::tests::sealed_send_composes_the_ceremony_buffer_with_the_seal_attr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:18.7590810Z         PASS [   0.854s] ( 511/3346) spt::bin/spt cli::tests::self_endpoint_line_reports_the_live_relay_or_says_there_is_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:19.0355771Z         PASS [   0.830s] ( 512/3346) spt::bin/spt api::startup::tests::seed_restorable_spends_dead_seeds_restores_recoverable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:19.5817772Z         PASS [   1.356s] ( 513/3346) spt::bin/spt cli::tests::self_pin_annotates_host_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:20.6510217Z         PASS [   2.416s] ( 514/3346) spt::bin/spt cli::tests::self_pin_annotates_psyche_host_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:20.7225420Z         PASS [   2.233s] ( 515/3346) spt::bin/spt cli::tests::self_pin_annotates_translation_fault
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:20.7346348Z         PASS [   1.976s] ( 516/3346) spt::bin/spt cli::tests::self_pin_includes_description_when_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:20.7608130Z         PASS [   1.179s] ( 517/3346) spt::bin/spt cli::tests::self_pin_names_the_registered_drop_dir_only_when_known
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.0501778Z         PASS [   0.399s] ( 518/3346) spt::bin/spt cli::tests::send_reply_to_flag_is_removed_and_target_required
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.1030768Z         PASS [   0.380s] ( 519/3346) spt::bin/spt cli::tests::send_user_msg_flag_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.1530143Z         PASS [   0.392s] ( 520/3346) spt::bin/spt cli::tests::shell_hint_teaser_verb_is_a_real_command
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.3874715Z         PASS [   2.352s] ( 521/3346) spt::bin/spt api::startup::tests::session_id_fallback_binds_live_perch_from_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.5254404Z         PASS [   0.475s] ( 522/3346) spt::bin/spt cli::tests::shell_owner_exclusivity_negatives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.5538862Z         PASS [   0.166s] ( 523/3346) spt::bin/spt api::startup::tests::session_id_fallback_refuses_a_psyche_custody_sid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.8706863Z         PASS [   0.767s] ( 524/3346) spt::bin/spt cli::tests::shell_relink_relaunches_offline_instances_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.8825055Z         PASS [   0.328s] ( 525/3346) spt::bin/spt api::startup::tests::session_id_fallback_refuses_empty_sid_and_dead_anchor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.8973508Z         PASS [   0.744s] ( 526/3346) spt::bin/spt cli::tests::shell_spawn_approval_floor_gates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:21.9063970Z         PASS [   1.172s] ( 527/3346) spt::bin/spt cli::tests::shell_channels_relay_sensory_and_text_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:22.2853664Z         PASS [   0.403s] ( 528/3346) spt::bin/spt api::startup::tests::stale_seed_refusal_spends_the_seed_no_restore
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:22.5605784Z         PASS [   0.654s] ( 529/3346) spt::bin/spt cli::tests::shell_subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:22.5831040Z         PASS [   0.298s] ( 530/3346) spt::bin/spt api::startup::tests::stale_seed_with_dead_anchor_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:22.8624257Z         PASS [   0.965s] ( 531/3346) spt::bin/spt cli::tests::shell_spawn_profiled_option_resolves_and_shares_cap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:22.9092860Z         PASS [   0.349s] ( 532/3346) spt::bin/spt cli::tests::show_code_prints_reprovisioning_material
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:22.9213270Z         PASS [   0.338s] ( 533/3346) spt::bin/spt api::startup::tests::successful_bind_consumes_the_seed_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:23.1971132Z         PASS [   1.672s] ( 534/3346) spt::bin/spt cli::tests::shell_spawn_cap_and_over_cap_gates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:23.3701122Z         PASS [   0.508s] ( 535/3346) spt::bin/spt cli::tests::shutdown_and_stop_share_the_postcondition_and_differ_only_in_ceremony
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:23.4035482Z         PASS [   0.494s] ( 536/3346) spt::bin/spt cli::tests::shutdown_on_a_broker_hosted_endpoint_stamps_after_the_reap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:23.6138361Z         PASS [   0.417s] ( 537/3346) spt::bin/spt cli::tests::shutdown_on_a_harness_hosted_endpoint_claims_no_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:23.8660679Z         PASS [   0.496s] ( 538/3346) spt::bin/spt cli::tests::single_subnet_auto_selects_and_code_matches_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:24.0297287Z         PASS [   0.626s] ( 539/3346) spt::bin/spt cli::tests::spt_hosted_no_relay_detection
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:24.8355837Z         PASS [   1.221s] ( 540/3346) spt::bin/spt cli::tests::stage_then_swap_failed_fetch_preserves_install
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:25.1093079Z         PASS [   0.274s] ( 541/3346) spt::bin/spt cli::tests::stall_evict_line_surfaces_only_a_real_tally
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:25.4170705Z         PASS [   0.308s] ( 542/3346) spt::bin/spt cli::tests::stop_guard_refuses_live_sessions_without_force
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:25.7431114Z         PASS [   0.326s] ( 543/3346) spt::bin/spt cli::tests::subcommands_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:25.7436489Z         PASS [   1.878s] ( 544/3346) spt::bin/spt cli::tests::staged_floor_admits_when_core_meets_floor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:26.0449867Z         PASS [   2.015s] ( 545/3346) spt::bin/spt cli::tests::staged_floor_refuses_above_floor_and_leaves_dest_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:26.0508023Z         PASS [   0.308s] ( 546/3346) spt::bin/spt cli::tests::subnet_arg_shapes_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:26.3019818Z         PASS [   0.558s] ( 547/3346) spt::bin/spt cli::tests::subnet_mode_lines_state_declared_captured_and_pending
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:26.6042965Z         PASS [   0.559s] ( 548/3346) spt::bin/spt cli::tests::subnet_status_renders_rows_and_hints_never_secrets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:26.8908484Z         PASS [   0.840s] ( 549/3346) spt::bin/spt cli::tests::subnets_joined_banner_renders_rows_and_divider
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:27.1823952Z         PASS [   0.880s] ( 550/3346) spt::bin/spt cli::tests::subprocess_detail_prefers_stderr_then_stdout
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:27.4914297Z         PASS [   0.887s] ( 551/3346) spt::bin/spt cli::tests::the_bare_form_is_the_send_form
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:28.0218190Z         PASS [   1.131s] ( 552/3346) spt::bin/spt cli::tests::the_bare_form_refuses_rather_than_guessing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:28.3229350Z         PASS [   1.141s] ( 553/3346) spt::bin/spt cli::tests::the_bare_node_verb_defaults_to_the_status_view_under_both_spellings
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:29.1850291Z         PASS [   1.693s] ( 554/3346) spt::bin/spt cli::tests::the_bare_status_view_states_the_mode_facts_for_every_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:29.4938770Z         PASS [   6.572s] ( 555/3346) spt::bin/spt api::startup::tests::the_escape_the_refusal_names_actually_clears_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:29.7470265Z         PASS [   1.725s] ( 556/3346) spt::bin/spt cli::tests::the_briefing_prescribes_only_verbs_the_grammar_has
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:30.2867329Z         PASS [   1.964s] ( 557/3346) spt::bin/spt cli::tests::the_conjunction_notice_fires_per_missing_half_and_stays_silent_when_both_hold
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:30.5728652Z         PASS [   1.388s] ( 558/3346) spt::bin/spt cli::tests::the_conjunction_notice_names_the_whitelist_its_seat_and_the_posture
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:31.3786892Z         PASS [   1.885s] ( 559/3346) spt::bin/spt api::startup::tests::the_pid_role_is_stamped_from_the_entry_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:32.1895693Z         PASS [   2.442s] ( 560/3346) spt::bin/spt cli::tests::the_create_ceremony_names_the_heal_for_an_older_minter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:32.7242039Z         PASS [   2.437s] ( 561/3346) spt::bin/spt cli::tests::the_cross_node_mutual_refusal_is_gone_from_every_surface_that_carried_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:32.8609673Z         PASS [  18.834s] ( 562/3346) spt::bin/spt cli::tests::owner_shutdown_gated_by_can_shutdown_grant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:34.0187086Z         PASS [   3.446s] ( 563/3346) spt::bin/spt cli::tests::the_denial_names_the_blast_radius_and_a_cure_that_fits_its_ground
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:35.0915509Z         PASS [   3.713s] ( 564/3346) spt::bin/spt api::startup::tests::valid_seed_binds_live_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:36.6450820Z         PASS [   4.455s] ( 565/3346) spt::bin/spt cli::tests::the_deprecation_note_renders_on_both_spellings_of_the_node_verb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.1894203Z         PASS [  15.316s] ( 566/3346) spt::bin/spt cli::tests::shell_spawn_gates_on_the_registered_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.3126999Z         PASS [   4.452s] ( 567/3346) spt::bin/spt cli::tests::the_engine_room_role_speaks_the_cli_vocabulary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.3156316Z         PASS [   0.671s] ( 568/3346) spt::bin/spt cli::tests::the_fold_is_total_and_classes_by_value
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.3183855Z         PASS [   4.594s] ( 569/3346) spt::bin/spt cli::tests::the_engine_room_role_prescribes_only_verbs_the_grammar_has
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.3337108Z         PASS [   2.242s] ( 570/3346) spt::bin/spt cli::tests::the_flagless_access_listing_is_wired_distinctly_from_its_subcommands
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.3656483Z         PASS [   3.347s] ( 571/3346) spt::bin/spt cli::tests::the_evidence_census_reads_each_local_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.5720766Z         PASS [   0.385s] ( 572/3346) spt::bin/spt cli::tests::the_fork_pair_consequence_follows_the_chain_verdict_not_the_rule_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.6085623Z         PASS [   0.296s] ( 573/3346) spt::bin/spt cli::tests::the_gc_render_says_what_it_refused_and_what_it_would_delete
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.6396339Z         PASS [   0.322s] ( 574/3346) spt::bin/spt cli::tests::the_human_and_json_legs_agree_on_every_unlisted_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.6465045Z         PASS [   0.328s] ( 575/3346) spt::bin/spt cli::tests::the_inert_grant_verdict_follows_the_chain_not_the_endpoints_posture
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.6642488Z         PASS [   0.330s] ( 576/3346) spt::bin/spt cli::tests::the_inert_notice_speaks_only_for_the_operators_own_precise_allow
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.6718818Z         PASS [   0.306s] ( 577/3346) spt::bin/spt cli::tests::the_kept_monic_suggestion_is_a_command_that_keeps_its_promise
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.6877703Z         PASS [   0.116s] ( 578/3346) spt::bin/spt cli::tests::the_knock_prescription_names_the_fork_pair_only_where_it_is_needed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:37.9489914Z         PASS [   0.340s] ( 579/3346) spt::bin/spt cli::tests::the_legacy_allow_echo_says_discover_is_untouched_and_scopes_both_levers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.0352467Z         PASS [   0.389s] ( 580/3346) spt::bin/spt cli::tests::the_locked_claim_carries_its_caveat_in_the_same_emission
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.0416388Z         PASS [   0.377s] ( 581/3346) spt::bin/spt cli::tests::the_mint_probe_answers_only_for_a_fresh_mint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.0655002Z         PASS [   0.116s] ( 582/3346) spt::bin/spt cli::tests::the_positional_allow_spelling_carries_its_flags_into_the_rule
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.1229788Z         PASS [   0.485s] ( 583/3346) spt::bin/spt cli::tests::the_local_and_wire_arms_write_one_identical_grant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.3313567Z         PASS [   0.296s] ( 584/3346) spt::bin/spt cli::tests::the_positional_spelling_cannot_step_around_the_admit_node_acknowledgment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.3647162Z         PASS [   0.323s] ( 585/3346) spt::bin/spt cli::tests::the_presenters_three_renderings_stay_three_things
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.4402318Z         PASS [   0.374s] ( 586/3346) spt::bin/spt cli::tests::the_remote_knock_refusals_render_as_prose
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.4434956Z         PASS [   0.320s] ( 587/3346) spt::bin/spt cli::tests::the_rendered_peer_fraction_counts_one_population_across_a_subnet_leave
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.7234430Z         PASS [   0.392s] ( 588/3346) spt::bin/spt cli::tests::the_rendered_section_is_the_composers_output
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:38.7523280Z         PASS [   0.388s] ( 589/3346) spt::bin/spt cli::tests::the_role_carries_the_ratified_skeletons_own_tier_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.0527141Z         PASS [   0.613s] ( 590/3346) spt::bin/spt cli::tests::the_roster_json_carries_the_derived_open_by_default_list
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.1166792Z         PASS [   1.429s] ( 591/3346) spt::bin/spt cli::tests::the_peek_and_the_record_cannot_disagree_about_which_core_they_judged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.1756532Z         PASS [   0.732s] ( 592/3346) spt::bin/spt cli::tests::the_seat_and_the_acknowledgment_are_the_mints_and_both_arms_refuse_alike
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.4553567Z         PASS [   0.732s] ( 593/3346) spt::bin/spt cli::tests::the_sited_help_names_every_kind_and_says_what_evaluates_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.4567209Z         PASS [   0.704s] ( 594/3346) spt::bin/spt cli::tests::the_skeleton_walks_the_er_surface_verb_and_the_unamended_cell_does_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.8077271Z         PASS [   0.755s] ( 595/3346) spt::bin/spt cli::tests::the_surface_section_rides_the_ruled_sites_and_no_others
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:39.9010198Z         PASS [   0.784s] ( 596/3346) spt::bin/spt cli::tests::the_sweep_distinguishes_refused_from_failed_and_from_applied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:40.0266214Z         PASS [   0.851s] ( 597/3346) spt::bin/spt cli::tests::the_three_landings_render_distinct_lines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:40.3192513Z         PASS [   0.864s] ( 598/3346) spt::bin/spt cli::tests::the_three_send_outcomes_owe_three_different_receipts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:40.6510312Z         PASS [   1.194s] ( 599/3346) spt::bin/spt cli::tests::the_trigger_section_rides_its_sited_verb_and_no_sibling
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:40.9163295Z         PASS [   1.109s] ( 600/3346) spt::bin/spt cli::tests::the_tuple_flags_build_the_rule_they_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:41.2245904Z         PASS [   1.323s] ( 601/3346) spt::bin/spt cli::tests::the_unamended_skeleton_ellipsis_panics_the_walk
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:41.7483053Z         PASS [   1.722s] ( 602/3346) spt::bin/spt cli::tests::the_unlisted_footer_explainer_lines_are_not_rendered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:42.3140826Z         PASS [   1.995s] ( 603/3346) spt::bin/spt cli::tests::the_unlisted_listing_drops_an_excluded_peer_and_keeps_the_rest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:43.1104833Z         PASS [   2.459s] ( 604/3346) spt::bin/spt cli::tests::the_unspooled_remedy_prescribes_a_verb_the_grammar_has
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:43.9993801Z         PASS [   3.083s] ( 605/3346) spt::bin/spt cli::tests::the_visible_alias_reaches_the_root_listing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:44.7676443Z         PASS [   3.543s] ( 606/3346) spt::bin/spt cli::tests::the_widening_remedy_is_sited_with_its_flag_not_in_the_shared_section
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:45.2949799Z         PASS [   3.547s] ( 607/3346) spt::bin/spt cli::tests::this_node_group_merges_roster_with_unbound_truth
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:46.0815767Z         PASS [   3.767s] ( 608/3346) spt::bin/spt cli::tests::trust_mutation_gate_refuses_without_confirmed_elevation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.1387048Z         PASS [   4.028s] ( 609/3346) spt::bin/spt cli::tests::trust_warning_verbs_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.1827765Z         PASS [   3.183s] ( 610/3346) spt::bin/spt cli::tests::unknown_elevation_falls_back
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.2204417Z         PASS [   2.453s] ( 611/3346) spt::bin/spt cli::tests::unknown_named_subnet_is_usage_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.2472027Z         PASS [   1.952s] ( 612/3346) spt::bin/spt cli::tests::unparseable_staged_metadata_degrades_as_its_own_condition
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.5286696Z         PASS [   1.447s] ( 613/3346) spt::bin/spt cli::tests::update_adapters_verb_parses_with_optional_names
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.5947013Z         PASS [   0.456s] ( 614/3346) spt::bin/spt cli::tests::update_fetch_apply_flag_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.6488962Z         PASS [   0.466s] ( 615/3346) spt::bin/spt cli::tests::what_the_listing_prescribes_is_what_the_approve_path_honors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.6653503Z         PASS [   0.445s] ( 616/3346) spt::bin/spt cli::tests::whoami_parses_as_the_identity_verb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:47.9223399Z         PASS [   0.675s] ( 617/3346) spt::bin/spt cli::tests::within_a_class_the_first_code_survives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.0076806Z         PASS [   0.478s] ( 618/3346) spt::bin/spt cli::verb_surface_route_table::every_bringup_door_routes_where_it_says
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.0321822Z         PASS [   0.384s] ( 619/3346) spt::bin/spt elevation::tests::already_elevated_short_circuits_on_every_os
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.0483673Z         PASS [   0.454s] ( 620/3346) spt::bin/spt cli::verb_surface_route_table::the_exclusions_are_real_refusals
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.3046445Z         PASS [   0.639s] ( 621/3346) spt::bin/spt elevation::tests::current_returns_a_determinate_level_on_supported_platforms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.3348264Z         PASS [   0.412s] ( 622/3346) spt::bin/spt elevation::tests::fallback_message_names_authenticator_app_and_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.4219387Z         PASS [   0.390s] ( 623/3346) spt::bin/spt elevation::tests::launcher_argv_is_absolute_exe_plus_verbatim_args
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.4226408Z         PASS [   0.415s] ( 624/3346) spt::bin/spt elevation::tests::gate_shows_only_when_confirmed_elevated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.6750440Z         PASS [   0.627s] ( 625/3346) spt::bin/spt elevation::tests::launchers_never_shell_interpolate_a_crafted_arg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.7076884Z         PASS [   0.403s] ( 626/3346) spt::bin/spt elevation::tests::print_hint_floor_uses_absolute_path_each_os
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.7747131Z         PASS [   0.440s] ( 627/3346) spt::bin/spt elevation::tests::unix_path_order_tty_then_pkexec_then_terminal_then_hint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.7852321Z         PASS [   0.363s] ( 628/3346) spt::bin/spt elevation::tests::windows_uac_only_interactive_other_always_prints
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.7934912Z         PASS [   0.371s] ( 629/3346) spt::bin/spt fetchverb::tests::a_full_url_and_the_shorthand_name_the_same_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:48.8120253Z         PASS [   0.137s] ( 630/3346) spt::bin/spt fetchverb::tests::an_interrupted_write_leaves_no_partial_at_dest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.0671941Z         PASS [   0.359s] ( 631/3346) spt::bin/spt fetchverb::tests::the_default_dest_is_the_decoded_final_segment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.1000280Z         PASS [   0.325s] ( 632/3346) spt::bin/spt fetchverb::tests::the_exit_codes_separate_refused_from_failed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.1742129Z         PASS [   0.380s] ( 633/3346) spt::bin/spt helpfmt::tests::bold_styles_with_color_and_strips_without
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.1761752Z         PASS [   0.391s] ( 634/3346) spt::bin/spt helpfmt::tests::atx_header_at_line_start_strips_and_bolds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.1839055Z         PASS [   0.372s] ( 635/3346) spt::bin/spt helpfmt::tests::code_styles_with_color_and_strips_without
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.1906920Z         PASS [   0.123s] ( 636/3346) spt::bin/spt helpfmt::tests::color_enabled_truth_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.1993808Z         PASS [   0.099s] ( 637/3346) spt::bin/spt helpfmt::tests::dual_contract_token_survives_strip_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.4690857Z         PASS [   0.295s] ( 638/3346) spt::bin/spt helpfmt::tests::dual_contract_token_unstyled_while_prose_styles_on_color
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.4982570Z         PASS [   0.322s] ( 639/3346) spt::bin/spt helpfmt::tests::empty_and_unmatched_markers_stay_literal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5402171Z         PASS [   0.356s] ( 640/3346) spt::bin/spt helpfmt::tests::link_becomes_its_text
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5452473Z         PASS [   0.354s] ( 641/3346) spt::bin/spt helpfmt::tests::marker_never_spans_a_hard_break
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5549761Z         PASS [   0.356s] ( 642/3346) spt::bin/spt helpfmt::tests::marker_spans_a_clap_soft_wrap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5626999Z         PASS [   0.094s] ( 643/3346) spt::bin/spt helpfmt::tests::multibyte_text_survives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5697837Z         PASS [   0.072s] ( 644/3346) spt::bin/spt helpfmt::tests::nested_code_inside_bold_styles_both
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5780339Z         PASS [  38.006s] ( 645/3346) spt::bin/spt cli::tests::fork_forks_homes_and_deletes_exactly_the_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5787492Z         PASS [   0.039s] ( 646/3346) spt::bin/spt helpfmt::tests::plain_text_is_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5850417Z         PASS [   0.040s] ( 647/3346) spt::bin/spt helpfmt::tests::preexisting_ansi_is_passed_through_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5924072Z         PASS [   0.037s] ( 648/3346) spt::bin/spt helpfmt::tests::resolve_console_color_strips_when_vt_unavailable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.5976740Z         PASS [   0.035s] ( 649/3346) spt::bin/spt monicverb::tests::add_refuses_to_replace_and_update_refuses_to_invent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.6057755Z         PASS [   0.036s] ( 650/3346) spt::bin/spt monicverb::tests::no_monic_verb_is_elevation_gated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.8709279Z         PASS [   0.293s] ( 651/3346) spt::bin/spt msgverb::tests::the_rendered_body_is_the_message_not_the_envelope
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.8982429Z         PASS [   0.319s] ( 652/3346) spt::bin/spt picker::data::tests::disambiguate_project_ids_cases
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.9480891Z         PASS [   0.363s] ( 653/3346) spt::bin/spt picker::data::tests::driven_by_display_renders_name_not_hex
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:49.9903299Z         PASS [   0.119s] ( 654/3346) spt::bin/spt picker::data::tests::indexed_projection_full_w2shaped_and_absent_legs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.0551312Z         PASS [   0.463s] ( 655/3346) spt::bin/spt picker::data::tests::gather_endpoints_projects_from_seeded_index_with_zero_git
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.0649843Z         PASS [   0.467s] ( 656/3346) spt::bin/spt picker::data::tests::gather_renders_live_unbound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.2562252Z         PASS [   0.358s] ( 657/3346) spt::bin/spt picker::data::tests::non_drivable_predicate_covers_worker_and_psyche
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.3170273Z         PASS [   0.368s] ( 658/3346) spt::bin/spt picker::data::tests::own_node_tab_label_falls_back_to_keyprefix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.3505682Z         PASS [   0.295s] ( 659/3346) spt::bin/spt picker::data::tests::project_refs_from_sessions_excludes_owlery_and_dedups_newest_first
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.3563137Z         PASS [   0.291s] ( 660/3346) spt::bin/spt picker::data::tests::project_refs_from_unions_fresh_origin_and_store_branches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.3837875Z         PASS [  35.353s] ( 661/3346) spt::bin/spt cli::tests::purge_removes_every_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.4097093Z         PASS [   0.419s] ( 662/3346) spt::bin/spt picker::data::tests::picker_excludes_flat_worker_and_psyche
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.6190715Z         PASS [   0.363s] ( 663/3346) spt::bin/spt picker::data::tests::reconcile_overrides_subnet_with_local_roster
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.7049384Z         PASS [   0.388s] ( 664/3346) spt::bin/spt picker::data::tests::remote_picker_renders_suspended_dead_perch_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.7273190Z         PASS [   0.377s] ( 665/3346) spt::bin/spt picker::data::tests::remote_rows_render_full_palette_parity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:50.9740681Z         PASS [   0.618s] ( 666/3346) spt::bin/spt picker::data::tests::resume_rows_derive_per_row_project_and_drop_owlery_sessions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:51.0202544Z         PASS [   0.636s] ( 667/3346) spt::bin/spt picker::data::tests::resume_rows_title_from_index_cwd_map_with_pure_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:51.3133181Z         PASS [   0.903s] ( 668/3346) spt::bin/spt picker::data::tests::row_status_drives_unbound_display
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:51.9409643Z         PASS [   1.236s] ( 669/3346) spt::bin/spt picker::model::tests::adapter_tree_nests_profiles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:51.9546141Z         PASS [   1.227s] ( 670/3346) spt::bin/spt picker::model::tests::back_unwinds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:52.7024803Z         PASS [   2.083s] ( 671/3346) spt::bin/spt picker::data::tests::shared_machine_is_one_group_with_unioned_subnets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:52.7038776Z         PASS [   3.098s] ( 672/3346) spt::bin/spt picker::data::tests::home_subnet_options_is_mru_ordered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:52.7217284Z         PASS [   1.747s] ( 673/3346) spt::bin/spt picker::model::tests::build_project_choices_head_here_rest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:52.7277356Z         PASS [   1.707s] ( 674/3346) spt::bin/spt picker::model::tests::category_labels_render_display_forms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:52.7729769Z         PASS [  15.101s] ( 675/3346) spt::bin/spt cli::tests::the_monic_command_path_treats_a_husk_as_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:52.9776661Z         PASS [   1.664s] ( 676/3346) spt::bin/spt picker::model::tests::category_ring_wraps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0047966Z         PASS [   1.063s] ( 677/3346) spt::bin/spt picker::model::tests::change_adapter_picks_and_returns_to_confirm
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0266614Z         PASS [   1.072s] ( 678/3346) spt::bin/spt picker::model::tests::choose_project_outcome_bakes_cwd_and_diverts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0341047Z         PASS [   0.332s] ( 679/3346) spt::bin/spt picker::model::tests::confirm_local_offline_unchanged_by_wake_split
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0402384Z         PASS [   0.336s] ( 680/3346) spt::bin/spt picker::model::tests::confirm_options_remote_suspended_is_wake_not_start
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0465035Z         PASS [   0.325s] ( 681/3346) spt::bin/spt picker::model::tests::confirm_options_status_dependent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0528980Z         PASS [   0.325s] ( 682/3346) spt::bin/spt picker::model::tests::confirm_terminal_routes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0597472Z         PASS [   0.287s] ( 683/3346) spt::bin/spt picker::model::tests::confirm_terminal_wake_carries_raw_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0654402Z         PASS [   0.088s] ( 684/3346) spt::bin/spt picker::model::tests::create_new_multisubnet_inserts_home_layer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0717569Z         PASS [   0.068s] ( 685/3346) spt::bin/spt picker::model::tests::create_outcome_bakes_run
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.0779955Z         PASS [   0.051s] ( 686/3346) spt::bin/spt picker::model::tests::cursor_clamps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.3403416Z         PASS [   0.306s] ( 687/3346) spt::bin/spt picker::model::tests::display_mapping_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.3608993Z         PASS [   0.321s] ( 688/3346) spt::bin/spt picker::model::tests::display_status_four_state_type_gated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.3879695Z         PASS [   0.341s] ( 689/3346) spt::bin/spt picker::model::tests::display_status_unbound_is_hollow_and_attachable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.3952075Z         PASS [   0.342s] ( 690/3346) spt::bin/spt picker::model::tests::empty_scope_opens_create
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.4010246Z         PASS [   0.341s] ( 691/3346) spt::bin/spt picker::model::tests::ep_display_glyph_and_square_palette
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.4082230Z         PASS [   0.343s] ( 692/3346) spt::bin/spt picker::model::tests::esc_backs_out_of_home_layer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.4152115Z         PASS [   0.343s] ( 693/3346) spt::bin/spt picker::model::tests::filter_narrows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.4209256Z         PASS [   0.343s] ( 694/3346) spt::bin/spt picker::model::tests::from_resource_row_maps_gossiped_adapter_projects_controlled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.4277260Z         PASS [   0.087s] ( 695/3346) spt::bin/spt picker::model::tests::home_selection_bakes_into_run_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.4337392Z         PASS [   0.073s] ( 696/3346) spt::bin/spt picker::model::tests::kind_routes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.7020941Z         PASS [   0.314s] ( 697/3346) spt::bin/spt picker::model::tests::launch_keys_live_only_on_launch_capable_highlights
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:53.7262328Z         PASS [   0.331s] ( 698/3346) spt::bin/spt picker::model::tests::prefill_jumps_to_create
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:54.0214898Z         PASS [   0.620s] ( 699/3346) spt::bin/spt picker::model::tests::project_filter_keys_on_slug_while_tab_renders_display
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:54.0397806Z         PASS [   0.631s] ( 700/3346) spt::bin/spt picker::model::tests::purge_confirm_yields_outcome_and_backs_out
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:54.3282547Z         PASS [   0.913s] ( 701/3346) spt::bin/spt picker::model::tests::purge_shortcut_gates_to_offline_local
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:54.6076157Z         PASS [   1.186s] ( 702/3346) spt::bin/spt picker::model::tests::reenter_create_keeps_or_clears_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:54.8781084Z         PASS [   1.450s] ( 703/3346) spt::bin/spt picker::model::tests::remove_endpoint_drops_row_and_clamps_cursor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:54.9040958Z         PASS [   1.470s] ( 704/3346) spt::bin/spt picker::model::tests::resume_outcome_adapter_follows_recorded_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:55.4362384Z         PASS [   1.734s] ( 705/3346) spt::bin/spt picker::model::tests::resume_outcome_bakes_session
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:55.4582374Z         PASS [   1.732s] ( 706/3346) spt::bin/spt picker::model::tests::resume_title_render
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:55.7356758Z         PASS [   1.714s] ( 707/3346) spt::bin/spt picker::model::tests::should_offer_project_choice_fire_conditions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:56.0127141Z         PASS [   1.973s] ( 708/3346) spt::bin/spt picker::model::tests::single_subnet_skips_home_layer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:56.5427526Z         PASS [   2.214s] ( 709/3346) spt::bin/spt picker::model::tests::suspended_is_distinct_from_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:57.0758003Z         PASS [   2.468s] ( 710/3346) spt::bin/spt picker::model::tests::the_picker_refuses_the_reserved_id_as_it_is_typed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:38:58.1126168Z         PASS [   3.234s] ( 711/3346) spt::bin/spt picker::model::tests::visible_partitions_and_sorts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:00.4383277Z         PASS [   5.534s] ( 712/3346) spt::bin/spt picker::shortcut::tests::basename_is_parameterized
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:01.7625108Z         PASS [   6.326s] ( 713/3346) spt::bin/spt picker::shortcut::tests::sentinel_detection_spans_both_generations
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:01.7924378Z         PASS [   6.333s] ( 714/3346) spt::bin/spt picker::shortcut::tests::the_body_is_the_ladder_verb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:01.8498379Z         PASS [   5.835s] ( 715/3346) spt::bin/spt picker::tests::backspace_backs_out_screens_like_esc
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:01.8635069Z         PASS [   6.128s] ( 716/3346) spt::bin/spt picker::shortcut::tests::write_create_update_regenerate_refuse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:01.8671908Z         PASS [   5.324s] ( 717/3346) spt::bin/spt picker::tests::backspace_stays_char_delete_in_text_contexts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.1433716Z         PASS [   5.067s] ( 718/3346) spt::bin/spt picker::tests::purge_outcomes_convert_to_flash_lines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.1951582Z         PASS [   4.082s] ( 719/3346) spt::bin/spt picker::tests::purge_transition_reconstructs_the_complete_screen_after_external_mutation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.2308384Z         PASS [   1.792s] ( 720/3346) spt::bin/spt picker::view::tests::adapter_tree_buffer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.2373582Z         PASS [   0.475s] ( 721/3346) spt::bin/spt picker::view::tests::change_adapter_screen_renders_tree_and_apply_legend
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.2436732Z         PASS [   0.452s] ( 722/3346) spt::bin/spt picker::view::tests::choose_project_buffer_keeps_confirm_panel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.2594749Z         PASS [   0.411s] ( 723/3346) spt::bin/spt picker::view::tests::confirm_buffer_options
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.5456415Z         PASS [   0.681s] ( 724/3346) spt::bin/spt picker::view::tests::confirm_fork_and_shortcut_labels_are_dir_relative
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.6306091Z         PASS [   0.763s] ( 725/3346) spt::bin/spt picker::view::tests::confirm_panel_history_renders_display_not_slug
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.6323466Z         PASS [   0.487s] ( 726/3346) spt::bin/spt picker::view::tests::create_home_lists_subnets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.6426656Z         PASS [   0.448s] ( 727/3346) spt::bin/spt picker::view::tests::every_picker_list_view_keeps_its_caret_on_screen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.6663206Z         PASS [   0.435s] ( 728/3346) spt::bin/spt picker::view::tests::footer_hints_h_s_only_when_launch_keys_live
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9019220Z         PASS [   0.664s] ( 729/3346) spt::bin/spt picker::view::tests::kind_buffer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9224433Z         PASS [   0.678s] ( 730/3346) spt::bin/spt picker::view::tests::pick_buffer_has_squares_and_description
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9436432Z         PASS [   0.684s] ( 731/3346) spt::bin/spt picker::view::tests::pick_empty_category_hint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9685612Z         PASS [   0.338s] ( 732/3346) spt::bin/spt picker::view::tests::resume_buffer_keeps_confirm_panel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9749264Z         PASS [   0.344s] ( 733/3346) spt::bin/spt picker::view::tests::resume_buffer_lists_sessions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9813229Z         PASS [   0.339s] ( 734/3346) spt::bin/spt picker::view::tests::the_caret_row_accounts_for_the_group_headers_above_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9908728Z         PASS [   0.089s] ( 735/3346) spt::bin/spt rc::tests::a_bringable_target_reaches_bring_up_with_the_offline_row_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9937508Z         PASS [   0.327s] ( 736/3346) spt::bin/spt picker::view::tests::the_caret_stays_on_screen_when_the_list_outruns_the_viewport
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9970794Z         PASS [   0.075s] ( 737/3346) spt::bin/spt rc::tests::a_refusal_names_the_targets_own_entry_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:02.9977549Z         PASS [   0.451s] ( 738/3346) spt::bin/spt picker::view::tests::pick_status_line_four_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.0033733Z         PASS [   0.060s] ( 739/3346) spt::bin/spt rc::tests::a_sealed_dispatch_overlay_names_the_destination
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.0178895Z         PASS [   0.043s] ( 740/3346) spt::bin/spt rc::tests::attach_gate_routes_on_session_truth_not_the_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.0312963Z         PASS [   0.063s] ( 741/3346) spt::bin/spt rc::tests::attach_against_stopped_daemon_never_spawns_and_exits_loud
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.0417044Z         PASS [   0.048s] ( 742/3346) spt::bin/spt rc::tests::bracketed_paste_framing_is_exact_and_content_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.0487455Z         PASS [   0.052s] ( 743/3346) spt::bin/spt rc::tests::bringable_is_the_engine_room_addressed_plainly_with_a_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.0510417Z         PASS [   0.070s] ( 744/3346) spt::bin/spt rc::tests::attach_offline_endpoint_short_circuits_clean
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.3203792Z         PASS [   0.322s] ( 745/3346) spt::bin/spt rc::tests::bringup_prompt_names_the_node_and_the_home_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.3505134Z         PASS [   0.347s] ( 746/3346) spt::bin/spt rc::tests::canonical_wire_id_strips_qualifiers_to_the_bare_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.4026544Z         PASS [   0.385s] ( 747/3346) spt::bin/spt rc::tests::ceremony_keys_fold_through_the_shared_kernel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.6690504Z         PASS [   0.638s] ( 748/3346) spt::bin/spt rc::tests::classify_read_err_eof_is_graceful_not_fatal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:03.7046969Z         PASS [   0.663s] ( 749/3346) spt::bin/spt rc::tests::clipboard_paste_wraps_nonempty_and_noops_on_empty_or_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:04.0109423Z         PASS [   0.962s] ( 750/3346) spt::bin/spt rc::tests::detach_keybind_semantics
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:04.0160772Z         PASS [   0.965s] ( 751/3346) spt::bin/spt rc::tests::detach_prefix_spans_chunks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:04.2907865Z         PASS [   0.970s] ( 752/3346) spt::bin/spt rc::tests::display_guard_postlude_exactly_once_and_inactive_silent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:04.5800761Z         PASS [   1.229s] ( 753/3346) spt::bin/spt rc::tests::driver_of_record_reports_no_driver_for_an_offline_record_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:04.8760330Z         PASS [   1.473s] ( 754/3346) spt::bin/spt rc::tests::driver_phrase_names_own_node_plainly_but_remote_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:05.1543566Z         PASS [   2.163s] ( 755/3346) spt::bin/spt rc::tests::attach_viewport_reconnects_across_a_broker_bounce
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:05.4246750Z         PASS [   1.720s] ( 756/3346) spt::bin/spt rc::tests::first_event_stall_decision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:05.7014667Z         PASS [   1.690s] ( 757/3346) spt::bin/spt rc::tests::fold_code_key_prompt_rules
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:05.7320650Z         PASS [   1.716s] ( 758/3346) spt::bin/spt rc::tests::give_up_copy_names_daemon_down_vs_generic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:05.7582494Z         PASS [   2.089s] ( 759/3346) spt::bin/spt rc::tests::establish_attach_reuses_the_probes_carried_pump_conn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:06.2738016Z         PASS [   1.983s] ( 760/3346) spt::bin/spt rc::tests::harness_only_row_matches_online_seatless_live_agents_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:06.5588634Z         PASS [   1.979s] ( 761/3346) spt::bin/spt rc::tests::identity_line_format
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:06.8455542Z         PASS [   1.969s] ( 762/3346) spt::bin/spt rc::tests::key_event_step_detach_sm
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:06.8683637Z         PASS [   1.714s] ( 763/3346) spt::bin/spt rc::tests::broker_host_child
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:07.1379981Z         PASS [   1.713s] ( 764/3346) spt::bin/spt rc::tests::mouse_is_paste_only_right_button_down
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:07.1657281Z         PASS [   1.464s] ( 765/3346) spt::bin/spt rc::tests::mouse_mode_decset_scan_survives_split_across_chunks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:07.4510866Z         PASS [   1.719s] ( 766/3346) spt::bin/spt rc::tests::mouse_mode_decset_scan_tracks_enable_and_sgr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:07.7130748Z         PASS [   1.955s] ( 767/3346) spt::bin/spt rc::tests::op_minter_distinct_and_monotonic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:07.9940416Z         PASS [   1.720s] ( 768/3346) spt::bin/spt rc::tests::over_surface_content_scrolls_and_never_shrinks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:08.2973425Z         PASS [   1.738s] ( 769/3346) spt::bin/spt rc::tests::pre_broker_busy_guidance_fires_for_any_driver_not_just_remote
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:08.5807720Z         PASS [   1.735s] ( 770/3346) spt::bin/spt rc::tests::public_attach_failure_maps_deadline_class_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:08.8670580Z         PASS [   1.999s] ( 771/3346) spt::bin/spt rc::tests::pump_status_emit_sequence_over_write_sink
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:10.7324546Z         PASS [   3.567s] ( 772/3346) spt::bin/spt rc::tests::reassert_scanner_survives_split_across_chunks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.3115972Z         PASS [   3.860s] ( 773/3346) spt::bin/spt rc::tests::reassert_scanner_triggers_only_on_region_destroyers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.3892152Z         PASS [   3.676s] ( 774/3346) spt::bin/spt rc::tests::reconnect_banner_clears_and_centers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.3944241Z         PASS [   3.401s] ( 775/3346) spt::bin/spt rc::tests::reconnect_banner_shows_the_countdown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.4015890Z         PASS [   3.104s] ( 776/3346) spt::bin/spt rc::tests::reconnect_remaining_secs_counts_down_ceil
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7037439Z         PASS [   3.123s] ( 777/3346) spt::bin/spt rc::tests::reconnect_window_expiry_decision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7376896Z         PASS [   2.870s] ( 778/3346) spt::bin/spt rc::tests::scroll_dir_classifies_wheel_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7670372Z         PASS [   1.034s] ( 779/3346) spt::bin/spt rc::tests::scroll_sgr_emits_exact_xterm_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7719531Z         PASS [   0.460s] ( 780/3346) spt::bin/spt rc::tests::serve_eof_severed_vs_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7820621Z         PASS [   0.393s] ( 781/3346) spt::bin/spt rc::tests::status_assert_reserves_row1_then_repaints
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7893008Z         PASS [   0.395s] ( 782/3346) spt::bin/spt rc::tests::status_repaint_exact_bytes_and_right_align
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.7959015Z         PASS [   0.394s] ( 783/3346) spt::bin/spt rc::tests::status_restore_exact_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.8058579Z         PASS [   0.102s] ( 784/3346) spt::bin/spt rc::tests::status_row_marker_is_disabled_by_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.8144372Z         PASS [   0.077s] ( 785/3346) spt::bin/spt rc::tests::status_update_size_repoints_geometry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.8228338Z         PASS [   0.056s] ( 786/3346) spt::bin/spt rc::tests::submit_is_not_gated_on_scroll_position
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.8296779Z         PASS [   0.058s] ( 787/3346) spt::bin/spt rc::tests::teardown_matrix_postlude_precedes_prose_across_every_final_class
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.8374404Z         PASS [   0.055s] ( 788/3346) spt::bin/spt rc::tests::the_ceremony_overlay_shows_the_content_verbatim_and_names_the_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:11.8432018Z         PASS [   0.054s] ( 789/3346) spt::bin/spt rc::tests::the_client_refuses_engine_room_viewports_and_qualified_targets_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1095014Z         PASS [   0.313s] ( 790/3346) spt::bin/spt rc::tests::the_fido2_offer_stands_only_for_the_enrolled_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1351984Z         PASS [   0.329s] ( 791/3346) spt::bin/spt rc::tests::the_prompt_row_hints_e_only_while_the_offer_stands
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1745944Z         PASS [   0.360s] ( 792/3346) spt::bin/spt rc::tests::translate_key_event_emits_exact_xterm_vt
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1790912Z         PASS [   0.356s] ( 793/3346) spt::bin/spt rc::tests::with_vt_output_disables_newline_auto_return
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1856166Z         PASS [   0.356s] ( 794/3346) spt::bin/spt rc::tests::with_vt_output_enables_virtual_terminal_processing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1926721Z         PASS [   0.355s] ( 795/3346) spt::bin/spt roster::tests::ambiguity_is_scoped_to_the_nearest_ancestor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.1992366Z         PASS [   0.356s] ( 796/3346) spt::bin/spt roster::tests::an_ambiguous_ancestor_resolves_to_none_in_either_candidate_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2189871Z         PASS [   0.109s] ( 797/3346) spt::bin/spt roster::tests::detect_self_by_ancestry_none_when_no_ancestor_owns_a_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2453938Z         PASS [   0.110s] ( 798/3346) spt::bin/spt roster::tests::detect_self_by_ancestry_resolves_a_live_ancestor_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2457687Z         PASS [   0.071s] ( 799/3346) spt::bin/spt roster::tests::detect_self_id_endpoint_id_leg_is_label_only_and_perch_gated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2522316Z         PASS [   0.067s] ( 800/3346) spt::bin/spt roster::tests::detect_self_resolves_spt_hosted_perch_via_parent_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2613585Z         PASS [   0.062s] ( 801/3346) spt::bin/spt roster::tests::enumerate_yields_offline_corrupt_row_for_unparseable_info
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2686908Z         PASS [   0.090s] ( 802/3346) spt::bin/spt roster::tests::detect_self_id_resolves_identity_with_zero_git_spawns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2693109Z         PASS [   0.024s] ( 803/3346) spt::bin/spt roster::tests::match_self_by_ancestry_disambiguates_and_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2766336Z         PASS [   0.031s] ( 804/3346) spt::bin/spt roster::tests::one_perch_matching_on_both_its_pids_still_resolves
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2915515Z         PASS [   0.072s] ( 805/3346) spt::bin/spt roster::tests::list_all_perch_dirs_enumerates_nested_psyche_for_self_resolution
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2917849Z         PASS [   0.030s] ( 806/3346) spt::bin/spt roster::tests::the_ambiguity_diagnostic_names_every_tied_id_and_the_shared_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.2995585Z         PASS [   0.031s] ( 807/3346) spt::bin/spt sealverb::tests::binding_subnet_rule_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3057426Z         PASS [   0.036s] ( 808/3346) spt::bin/spt sealverb::tests::enroll_outcome_exit_zero_iff_admitted_and_details_ride_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3128130Z         PASS [   0.061s] ( 809/3346) spt::bin/spt roster::tests::parent_pid_candidates_stay_ancestry_gated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3135018Z         PASS [   0.037s] ( 810/3346) spt::bin/spt sealverb::tests::mint_content_trims_like_send_and_refuses_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3196746Z         PASS [   0.028s] ( 811/3346) spt::bin/spt sealverb::tests::mint_outcome_exit_zero_iff_admitted_and_details_ride_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3263877Z         PASS [   0.035s] ( 812/3346) spt::bin/spt sealverb::tests::sealed_dispatch_refusals_send_nothing_by_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3328367Z         PASS [   0.033s] ( 813/3346) spt::bin/spt sealverb::tests::shared_pick_is_input_order_independent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3330925Z         PASS [   0.140s] ( 814/3346) spt::bin/spt roster::tests::enumerate_nested_keeps_a_child_whose_name_has_no_kind_suffix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3409914Z         PASS [   0.035s] ( 815/3346) spt::bin/spt serveverb::tests::a_narrowed_entry_renders_its_audience_beside_ttl_and_origin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3464888Z         PASS [   0.034s] ( 816/3346) spt::bin/spt serveverb::tests::lexical_parent_paths_identify_the_same_reference
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3651135Z         PASS [   0.052s] ( 817/3346) spt::bin/spt teardown::tests::an_unconfirmed_row_over_a_dead_root_is_stale_not_a_survivor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3803083Z         PASS [   0.054s] ( 818/3346) spt::bin/spt teardown::tests::timeout_refuses_the_stamp_and_names_the_survivor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3867265Z         PASS [   0.054s] ( 819/3346) spt::bin/spt teardown::tests::topology_gate_is_controllable_true_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3925043Z         PASS [   0.059s] ( 820/3346) spt::bin/spt tests::broken_pipe_panic_classifier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.3994663Z         PASS [   0.058s] ( 821/3346) spt::bin/spt tests::the_sized_stack_wrapper_maps_a_panic_to_the_main_thread_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.4104450Z         PASS [   0.064s] ( 822/3346) spt::bin/spt trustwarnverb::tests::a_refusal_names_the_verb_the_endpoint_and_the_reason
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.4130021Z         PASS [   0.093s] ( 823/3346) spt::bin/spt teardown::tests::liveness_proof_needs_a_real_snapshot_and_finds_this_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.4164285Z         PASS [   0.051s] ( 824/3346) spt::bin/spt trustwarnverb::tests::showing_the_warning_is_never_elevation_gated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.6788562Z         PASS [   0.298s] ( 825/3346) spt::bin/spt trustwarnverb::tests::the_gate_keys_on_whether_the_verb_writes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7017723Z         PASS [   0.315s] ( 826/3346) spt::bin/spt trustwarnverb::tests::writing_an_override_requires_confirmed_elevation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7369865Z         PASS [   0.344s] ( 827/3346) spt::bin/spt unlisted::tests::a_receipt_proven_cross_node_knock_renders_its_answer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7438952Z         PASS [   0.344s] ( 828/3346) spt::bin/spt unlisted::tests::a_rule_only_row_has_no_node_to_route_to
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7548628Z         PASS [   0.344s] ( 829/3346) spt::bin/spt unlisted::tests::an_exclusion_and_an_unheard_of_id_are_different_refusals
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7610307Z         PASS [   0.348s] ( 830/3346) spt::bin/spt unlisted::tests::an_exclusion_outranks_the_strongest_evidence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7701255Z         PASS [   0.354s] ( 831/3346) spt::bin/spt unlisted::tests::an_inbound_knock_is_never_read_as_our_own_outbound_act
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7765066Z         PASS [   0.098s] ( 832/3346) spt::bin/spt unlisted::tests::an_unproven_cross_node_knock_says_no_answer_while_a_same_node_one_says_approved
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7837467Z         PASS [   0.082s] ( 833/3346) spt::bin/spt unlisted::tests::contact_evidence_outside_the_window_produces_no_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7899820Z         PASS [   0.053s] ( 834/3346) spt::bin/spt unlisted::tests::listed_local_and_excluded_rows_are_dropped_and_the_rest_survive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.7964522Z         PASS [   0.053s] ( 835/3346) spt::bin/spt unlisted::tests::no_cross_node_silence_is_ever_read_as_an_answer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8024072Z         PASS [   0.048s] ( 836/3346) spt::bin/spt unlisted::tests::no_evidence_phrase_claims_liveness
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8076876Z         PASS [   0.047s] ( 837/3346) spt::bin/spt unlisted::tests::no_knock_evidence_phrase_claims_liveness
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8136098Z         PASS [   0.043s] ( 838/3346) spt::bin/spt unlisted::tests::rule_evidence_carries_no_node_and_contact_evidence_does
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8198377Z         PASS [   0.043s] ( 839/3346) spt::bin/spt unlisted::tests::the_relative_stamp_is_coarse_and_has_no_zero_forms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8260360Z         PASS [   0.042s] ( 840/3346) spt::bin/spt unlisted::tests::the_route_refuses_an_excluded_id_and_admits_a_non_excluded_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8319173Z         PASS [   0.042s] ( 841/3346) spt::bin/spt unlisted::tests::the_strongest_provenance_labels_the_row_and_a_weaker_one_supplies_the_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8440137Z         PASS [   0.042s] ( 842/3346) spt-daemon access::tests::a_sender_endpoint_rule_does_not_admit_a_fork
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8687449Z         PASS [   0.072s] ( 843/3346) spt-daemon access::tests::a_fork_grant_admits_fork_and_nothing_else_admits_fork
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8734248Z         PASS [   0.060s] ( 844/3346) spt-daemon access::tests::discover_gate_discloses_per_viewer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8753596Z         PASS [   0.068s] ( 845/3346) spt-daemon access::tests::corrupt_store_degrades_closed_but_replies_survive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8783077Z         PASS [   0.058s] ( 846/3346) spt-daemon access::tests::discover_gate_withholds_everything_while_degraded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8840691Z         PASS [   0.058s] ( 847/3346) spt-daemon access::tests::gate_decision_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8841295Z         PASS [   0.052s] ( 848/3346) spt-daemon access::tests::gate_feeds_the_proven_sender_endpoint_tier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8913040Z         PASS [   0.047s] ( 849/3346) spt-daemon access::tests::gate_is_per_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.8961333Z         PASS [   0.027s] ( 850/3346) spt-daemon access::tests::reply_passes_where_unsolicited_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9028389Z         PASS [   0.027s] ( 851/3346) spt-daemon access::tests::the_decision_helpers_split_pass_from_refusal_for_every_reason
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9161163Z         PASS [   0.043s] ( 852/3346) spt-daemon access::tests::same_node_always_passes_without_minting
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9219201Z         PASS [   0.038s] ( 853/3346) spt-daemon access::tests::the_inbound_lock_answers_replies_only_and_only_while_controlled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9387828Z         PASS [   0.055s] ( 854/3346) spt-daemon access::tests::the_engine_room_refuses_even_this_nodes_own_unsolicited_inbound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9413208Z         PASS [   0.038s] ( 855/3346) spt-daemon access::tests::the_trust_warning_fires_only_for_an_entry_admitted_stranger
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9532275Z         PASS [   0.062s] ( 856/3346) spt-daemon access::tests::the_inbound_lock_is_reached_through_the_sender_stamped_entry_point
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9544678Z         PASS [   0.038s] ( 857/3346) spt-daemon access::tests::the_wire_origin_stamp_reaches_the_chain
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:12.9839407Z         PASS [   0.088s] ( 858/3346) spt-daemon access::tests::the_pass_reason_names_which_arm_admitted_the_interaction
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.0021773Z         PASS [   0.124s] ( 859/3346) spt-daemon access::tests::the_engine_room_is_disclosed_only_to_the_viewers_it_chose
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.2184294Z         PASS [   0.296s] ( 860/3346) spt-daemon activity::tests::a_state_change_owes_a_push_both_directions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.2374265Z         PASS [   0.298s] ( 861/3346) spt-daemon activity::tests::a_token_change_with_an_identical_state_owes_a_push
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.2762443Z         PASS [   0.335s] ( 862/3346) spt-daemon activity::tests::an_identical_observation_pushes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.2925501Z         PASS [   0.338s] ( 863/3346) spt-daemon activity::tests::an_unseen_link_owes_a_push
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.2954267Z         PASS [   0.342s] ( 864/3346) spt-daemon activity::tests::an_owner_with_no_linked_shell_is_not_observed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3057588Z         PASS [   0.322s] ( 865/3346) spt-daemon activity::tests::an_unstamped_owner_observes_undated_and_stays_silent_across_sweeps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3064397Z         PASS [   0.304s] ( 866/3346) spt-daemon activity::tests::observe_links_on_an_absent_owlery_is_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3212689Z         PASS [   0.084s] ( 867/3346) spt-daemon activity::tests::remember_forgets_a_vanished_link_so_its_return_re_pushes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3231429Z         PASS [   0.105s] ( 868/3346) spt-daemon activity::tests::observe_links_sees_only_online_shells_holding_a_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3273784Z         PASS [   0.051s] ( 869/3346) spt-daemon activity::tests::the_diff_is_per_link_not_per_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3363561Z         PASS [   0.044s] ( 870/3346) spt-daemon activity::tests::the_flip_marker_is_idempotent_to_drop_and_taken_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3429215Z         PASS [   0.047s] ( 871/3346) spt-daemon adapter_update::tests::delegated_attested_delegates_command
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3497798Z         PASS [   0.044s] ( 872/3346) spt-daemon adapter_update::tests::delegated_unattested_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3716777Z         PASS [   0.065s] ( 873/3346) spt-daemon adapter_update::tests::file_pull_tampered_bytes_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3717606Z         PASS [   0.049s] ( 874/3346) spt-daemon adapter_update::tests::file_pull_without_payload_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3729349Z         PASS [   0.052s] ( 875/3346) spt-daemon adapter_update::tests::file_pull_verified_against_adapter_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3968727Z         PASS [   0.060s] ( 876/3346) spt-daemon adapter_update::tests::gh_release_is_managed_cli_side_not_in_pure_plan
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.3999143Z         PASS [   0.072s] ( 877/3346) spt-daemon adapter_update::tests::file_pull_wrong_key_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.4133761Z         PASS [   0.070s] ( 878/3346) spt-daemon adapter_update::tests::ripple_conducts_each_adapter_in_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.4701924Z         PASS [   0.120s] ( 879/3346) spt-daemon adapter_update::tests::ripple_registered_uses_the_registered_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.5173429Z         PASS [   0.146s] ( 880/3346) spt-daemon answerop::tests::a_denial_disarms_but_only_when_it_is_proven
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.6739917Z         PASS [   6.536s] ( 881/3346) spt::bin/spt rc::tests::qualified_targets_attach_with_bare_wire_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.7128958Z         PASS [   0.341s] ( 882/3346) spt-daemon answerop::tests::a_receipt_fires_only_from_the_node_the_knock_was_sent_to
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.7855874Z         PASS [   0.372s] ( 883/3346) spt-daemon answerop::tests::an_unknown_outcome_token_acts_on_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.7892940Z         PASS [   0.319s] ( 884/3346) spt-daemon attach::tests::the_engine_room_has_no_viewport_and_takes_its_controls_from_home
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.7985292Z         PASS [   0.281s] ( 885/3346) spt-daemon attach::tests::viewer_and_driving_intents_gate_on_different_surfaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8032091Z         PASS [   0.129s] ( 886/3346) spt::bin/spt rc::tests::reconnect_class_only_severed_transport_redrives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8109551Z         PASS [   0.098s] ( 887/3346) spt-daemon attachment::tests::a_relink_re_emits_current_state_as_a_link_push
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8144562Z         PASS [   0.029s] ( 888/3346) spt-daemon attachment::tests::a_session_that_ended_is_forgotten_latch_and_all
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8208464Z         PASS [   0.032s] ( 889/3346) spt-daemon attachment::tests::a_vanished_link_is_forgotten_and_reads_as_new_when_it_returns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8325493Z         PASS [   0.034s] ( 890/3346) spt-daemon attachment::tests::a_viewer_arriving_on_a_standing_link_names_the_changed_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8340461Z         PASS [   0.031s] ( 891/3346) spt::bin/spt wansend::tests::a_knock_reports_only_what_the_far_end_confirmed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8409689Z         PASS [   0.030s] ( 892/3346) spt-daemon attachment::tests::an_endpoint_that_never_went_away_is_never_told_someone_returned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:13.8465017Z         PASS [   0.032s] ( 893/3346) spt-daemon attachment::tests::an_unchanged_link_and_attachment_owes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.0745166Z         PASS [   0.701s] ( 894/3346) spt-daemon answerop::tests::a_receipt_for_a_knock_we_never_sent_notifies_nobody
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1014099Z         PASS [   0.701s] ( 895/3346) spt-daemon answerop::tests::an_approval_notifies_a_plain_knocker_with_no_pre_authorization
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1085041Z         PASS [   0.288s] ( 896/3346) spt-daemon attachment::tests::an_unseen_link_owes_a_link_push_with_no_changed_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1322371Z         PASS [   0.299s] ( 897/3346) spt-daemon attachment::tests::away_fires_once_after_five_unattached_minutes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1712820Z         PASS [   0.774s] ( 898/3346) spt-daemon answerop::tests::a_receipt_from_the_wrong_answerer_or_a_replayed_one_acts_on_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1824746Z         PASS [   0.348s] ( 899/3346) spt::bin/spt wansend::tests::a_routed_opening_beats_an_unroutable_one_and_ties_go_lexicographic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1850321Z         PASS [   0.344s] ( 900/3346) spt-daemon attachment::tests::every_link_of_one_owner_gets_its_own_push
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.1975306Z         PASS [   0.351s] ( 901/3346) spt-daemon attachment::tests::return_fires_only_after_away_and_any_attachment_ends_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2036545Z         PASS [   0.129s] ( 902/3346) spt-daemon attachment::tests::the_away_text_is_the_tickets_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2090710Z         PASS [   0.108s] ( 903/3346) spt-daemon attachment::tests::the_changed_node_hint_decision_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2272900Z         PASS [   0.095s] ( 904/3346) spt-daemon autostart::tests::empty_config_is_a_pure_noop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2310245Z         PASS [   0.060s] ( 905/3346) spt-daemon autostart::tests::launched_token_is_one_complete_newline_terminated_write
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2374640Z         PASS [   0.055s] ( 906/3346) spt::bin/spt wansend::tests::a_shared_short_key_refuses_and_an_unknown_one_is_its_own_outcome
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2437223Z         PASS [   0.059s] ( 907/3346) spt-daemon autostart::tests::launched_token_short_write_still_delivers_complete_text_in_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.2588110Z         PASS [   0.061s] ( 908/3346) spt-daemon autostart::tests::unresolved_adapter_loud_skips_before_any_launch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5212640Z         PASS [   0.317s] ( 909/3346) spt-daemon brain::tests::a_flagged_sync_frame_baselines_forward_never_backward_on_both_paths
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5322880Z         PASS [   0.323s] ( 910/3346) spt-daemon brain::tests::an_old_broker_wire_without_the_sync_key_keeps_every_legacy_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5672700Z         PASS [   0.340s] ( 911/3346) spt-daemon brain::tests::cold_brain_still_rejects_a_forward_output_gap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5752190Z         PASS [   0.344s] ( 912/3346) spt-daemon brain::tests::controller_resume_from_floor_refetches_after_a_gap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5835504Z         PASS [   0.346s] ( 913/3346) spt::bin/spt wansend::tests::a_short_key_resolves_through_each_node_tier_carrier_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5913611Z         PASS [   0.348s] ( 914/3346) spt-daemon brain::tests::peer_reply_deadline_caps_below_carrier_deadline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.5961903Z         PASS [   0.337s] ( 915/3346) spt-daemon brain::tests::reclassify_peer_reply_maps_timeout_off_poison
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.6057868Z         PASS [   0.084s] ( 916/3346) spt-daemon brain::tests::skip_to_live_accepts_a_forward_seq_jump_via_snap_above
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.6118765Z         PASS [   0.080s] ( 917/3346) spt-daemon brain::tests::viewer_snap_attach_accepts_a_forward_output_gap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.6175643Z         PASS [   0.050s] ( 918/3346) spt-daemon brainproc::tests::appended_padding_flips_exe_hash
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.6239996Z         PASS [   0.049s] ( 919/3346) spt-daemon brainproc::tests::backoff_doubles_on_fast_death_resets_when_healthy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.6300921Z         PASS [   0.046s] ( 920/3346) spt::bin/spt wansend::tests::an_explicit_override_outranks_the_ownership_scope
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.6357380Z         PASS [   0.044s] ( 921/3346) spt-daemon brainproc::tests::brain_child_args_carry_generation_and_reason
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.8957642Z         PASS [   0.299s] ( 922/3346) spt-daemon brainproc::tests::bytes_gate_truth_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:14.9915998Z         PASS [   0.379s] ( 923/3346) spt-daemon brainproc::tests::consumer_gate_spawns_once_when_net_enabled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:15.2611666Z         PASS [   0.631s] ( 924/3346) spt::bin/spt wansend::tests::an_unanswered_fork_is_unconfirmed_and_never_reported_as_done
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:15.2878699Z         PASS [   0.682s] ( 925/3346) spt-daemon brainproc::tests::clear_before_spawn_defeats_exact_generation_stale_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:15.2927810Z         PASS [   0.669s] ( 926/3346) spt-daemon brainproc::tests::planned_restart_respawns_with_update_reason
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:15.7377010Z         PASS [   1.629s] ( 927/3346) spt-daemon autostart::tests::a_persisted_reserved_id_default_is_never_replayed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:15.9072626Z         PASS [   0.646s] ( 928/3346) spt::bin/spt wansend::tests::bare_id_resolves_across_remote_snapshot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:15.9086797Z         PASS [   1.013s] ( 929/3346) spt-daemon brainproc::tests::ready_but_wrong_bytes_rolls_back_never_promotes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.1203961Z         LEAK [   1.485s] ( 930/3346) spt-daemon brainproc::tests::ready_but_old_gen_never_drains_does_not_promote_rolls_back
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.2058188Z         PASS [   0.918s] ( 931/3346) spt-daemon brainproc::tests::ready_exe_hash_parses_and_is_n1_readable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.2102665Z         PASS [   1.219s] ( 932/3346) spt-daemon brainproc::tests::ready_candidate_promotes_once_old_gen_drains
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.4930815Z         PASS [   1.200s] ( 933/3346) spt-daemon brainproc::tests::ready_generation_at_reads_file_and_absent_is_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.5057425Z         PASS [   0.768s] ( 934/3346) spt-daemon brainproc::tests::ready_generation_parses_stamp_and_fails_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.5803993Z         PASS [   1.963s] ( 935/3346) spt-daemon brainproc::tests::exe_hash_computed_exactly_once_across_n_publishes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:16.7750442Z         PASS [   0.868s] ( 936/3346) spt::bin/spt wansend::tests::classify_wan_reply_only_delivers_on_positive_outcomes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:17.3350810Z         PASS [   1.215s] ( 937/3346) spt-daemon brainproc::tests::rollback_running_version_is_prior_not_n_minus_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:17.6338666Z         PASS [   1.423s] ( 938/3346) spt-daemon brainproc::tests::select_brain_exe_prefers_canonical_over_per_spawn_current_exe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:17.6414002Z         PASS [   1.436s] ( 939/3346) spt-daemon brainproc::tests::rolled_back_record_spawns_rollback_binary_on_a_fresh_supervisor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:17.8921696Z         PASS [   1.983s] ( 940/3346) spt-daemon brainproc::tests::ready_with_matching_bytes_promotes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:18.2106222Z         PASS [   1.705s] ( 941/3346) spt-daemon brainproc::tests::start_reason_arg_round_trips_and_is_lenient
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:19.7951766Z         PASS [   3.020s] ( 942/3346) spt::bin/spt wansend::tests::hide_new_reaches_this_nodes_ids_and_no_further
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:20.8785901Z         PASS [   4.385s] ( 943/3346) spt-daemon brainproc::tests::stale_generation_minus_one_ready_never_promotes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.2245766Z         PASS [   1.429s] ( 944/3346) spt::bin/spt wansend::tests::load_snapshots_degrades_on_junk
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.2257788Z         PASS [   4.645s] ( 945/3346) spt-daemon brainproc::tests::supervisor_owns_generation_and_stamps_start_reason
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.2430988Z         PASS [   3.351s] ( 946/3346) spt-daemon brainproc::tests::trial_promotes_on_ready_then_supervises_the_accepted_binary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.2604761Z         PASS [   0.382s] ( 947/3346) spt-daemon codec::tests::back_to_back_frames_decode_independently
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.6128577Z         PASS [   4.278s] ( 948/3346) spt-daemon brainproc::tests::supervisor_respawns_brain_until_stopped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.6136814Z         PASS [   3.972s] ( 949/3346) spt-daemon brainproc::tests::trial_kills_alive_never_ready_candidate_before_rollback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.7766055Z         PASS [   0.552s] ( 950/3346) spt::bin/spt wansend::tests::refusals_render_copy_paste_targets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:21.9863737Z         PASS [   0.760s] ( 951/3346) spt-daemon codec::tests::frame_round_trips_through_buffer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0061924Z         PASS [   0.763s] ( 952/3346) spt-daemon codec::tests::oversized_prefix_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0433465Z         PASS [   0.783s] ( 953/3346) spt-daemon config::tests::auto_suspend_knob_is_opt_in_default_off
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0477729Z         PASS [   0.435s] ( 954/3346) spt-daemon config::tests::crash_grace_is_config_driven
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0546814Z         PASS [   0.441s] ( 955/3346) spt-daemon config::tests::detached_subnets_knob_defaults_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0673778Z         PASS [   0.081s] ( 956/3346) spt-daemon config::tests::full_auto_update_is_gated_by_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0741157Z         PASS [   0.068s] ( 957/3346) spt-daemon config::tests::malformed_file_degrades_to_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0761073Z         PASS [   0.033s] ( 958/3346) spt-daemon config::tests::missing_file_is_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.0876177Z         PASS [   0.040s] ( 959/3346) spt-daemon config::tests::pulse_period_is_config_driven
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1027514Z         PASS [   0.048s] ( 960/3346) spt-daemon config::tests::relay_choice_is_config_driven
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1088131Z         PASS [   0.035s] ( 961/3346) spt-daemon config::tests::save_load_roundtrip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1188176Z         PASS [   0.051s] ( 962/3346) spt-daemon config::tests::remove_startup_endpoint_takes_one_entry_and_reports_whether_there_was_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1197619Z         PASS [   0.044s] ( 963/3346) spt-daemon config::tests::startup_endpoints_roundtrip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1249570Z         PASS [   0.022s] ( 964/3346) spt-daemon conn::tests::conn_ids_are_unique_and_labels_stay_bounded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1328765Z         PASS [   0.024s] ( 965/3346) spt-daemon conn::tests::organic_write_failure_still_poisons_and_is_not_the_timeout_class
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1386886Z         PASS [   0.051s] ( 966/3346) spt-daemon config::tests::upsert_startup_endpoint_appends_then_replaces_preserving_other_knobs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1387823Z         PASS [   0.020s] ( 967/3346) spt-daemon conn::tests::retirement_token_splits_deadline_from_organic_with_attribution_parity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1453930Z         PASS [   0.026s] ( 968/3346) spt-daemon consent::tests::decide_honors_full_auto_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1885919Z         PASS [   0.050s] ( 969/3346) spt-daemon crc_swap::tests::apply_rollback_never_strands
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1888718Z         PASS [   0.043s] ( 970/3346) spt-daemon crc_swap::tests::crash_recovery_missing_target_keeps_last_good_old
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.1922545Z         PASS [   3.982s] ( 971/3346) spt-daemon brainproc::tests::trial_rolls_back_after_budget_of_pre_ready_exits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.2189797Z         PASS [   0.094s] ( 972/3346) spt-daemon consent::tests::no_live_session_resolves_to_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.2194558Z         PASS [   0.081s] ( 973/3346) spt-daemon crc_swap::tests::apply_swaps_changed_creates_new_untouched_identical
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.3119801Z         PASS [   0.179s] ( 974/3346) spt-daemon consent::tests::resolves_most_recently_active_live_session
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.4689133Z         PASS [   0.280s] ( 975/3346) spt-daemon crc_swap::tests::displace_picks_fresh_old_name_and_gc_sweeps_stale
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.5826747Z         PASS [   0.806s] ( 976/3346) spt::bin/spt wansend::tests::remote_rest_suspends_and_wakes_with_the_deferred_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.5965659Z         PASS [   0.404s] ( 977/3346) spt-daemon crc_swap::tests::plan_recurses_nested_dirs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.5988591Z         PASS [   0.380s] ( 978/3346) spt-daemon crc_swap::tests::plan_selects_only_changed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.6057350Z         PASS [   0.386s] ( 979/3346) spt-daemon crc_swap::tests::swap_error_carries_op_and_paths
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.6228692Z         PASS [   0.311s] ( 980/3346) spt-daemon daemon::tests::a_captured_spawn_inherits_only_the_handle_in_its_allowlist
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.7037309Z         PASS [   5.070s] ( 981/3346) spt-daemon brainproc::tests::the_ready_breadcrumb_tells_a_computed_hash_from_a_cached_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.7168375Z         PASS [   0.134s] ( 982/3346) spt::bin/spt wansend::tests::resolve_and_dial_owner_dials_the_resolved_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.7194614Z         PASS [   0.531s] ( 983/3346) spt-daemon crc_swap::tests::mapped_old_does_not_brick_apply_displaces_aside
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.9606691Z         PASS [   0.491s] ( 984/3346) spt-daemon daemon::tests::a_failed_job_termination_announces_the_tree_loss
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.9689999Z         PASS [   0.363s] ( 985/3346) spt-daemon daemon::tests::an_ordinary_teardown_announces_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.9694978Z         PASS [   0.373s] ( 986/3346) spt-daemon daemon::tests::a_scrubbed_variable_never_reaches_the_child
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.9917166Z         PASS [   0.272s] ( 987/3346) spt-daemon daemon::tests::drive_ladder_all_err_returns_last_err
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:22.9999733Z         PASS [   0.040s] ( 988/3346) spt-daemon daemon::tests::drive_ladder_falls_through_to_next_rung_on_err
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.0696057Z         PASS [   0.353s] ( 989/3346) spt::bin/spt wansend::tests::resolve_and_dial_owner_is_honest_on_resolution_misses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.1335317Z         PASS [   0.535s] ( 990/3346) spt-daemon daemon::tests::a_tree_teardown_reaches_a_grandchild_the_service_spawned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.1566716Z         PASS [   0.453s] ( 991/3346) spt-daemon daemon::tests::detached_no_inherit_falls_back_under_a_breakaway_denying_job
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.2708334Z         PASS [   0.302s] ( 992/3346) spt-daemon daemon::tests::drive_ladder_picks_first_ok_rung
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.2945064Z         PASS [   0.325s] ( 993/3346) spt-daemon daemon::tests::ensure_declines_only_against_a_standing_operator_stop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.3477060Z         PASS [   0.356s] ( 994/3346) spt-daemon daemon::tests::implicit_ensure_declines_without_clearing_the_inhibit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.3558880Z         PASS [   0.356s] ( 995/3346) spt-daemon daemon::tests::is_running_tracks_the_seed_channel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.4499504Z         PASS [   0.827s] ( 996/3346) spt-daemon daemon::tests::breakaway_spawn_escapes_a_kill_on_close_job
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.6200592Z         PASS [   0.550s] ( 997/3346) spt::bin/spt wansend::tests::seed_first_addr_prefers_the_cached_direct_address
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.6591274Z         PASS [   0.526s] ( 998/3346) spt-daemon daemon::tests::launch_ladder_order_is_wmi_schtasks_breakaway_injob
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.7000050Z         PASS [   0.543s] ( 999/3346) spt-daemon daemon::tests::net_retry_backoff_doubles_then_caps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.7117857Z         PASS [   0.441s] (1000/3346) spt-daemon daemon::tests::null_std_handles_only_on_a_pipe_stderr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.7273053Z         PASS [   0.380s] (1001/3346) spt-daemon daemon::tests::the_refusal_line_names_the_remedy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:23.9893402Z         PASS [   0.633s] (1002/3346) spt-daemon daemon::tests::the_tree_loss_line_names_the_loss_not_the_syscall
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.0160845Z         PASS [   0.566s] (1003/3346) spt-daemon daemon::tests::windows_arg_quoting_roundtrips_the_rules
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.0646924Z         PASS [   0.770s] (1004/3346) spt-daemon daemon::tests::spawn_env_additions_reach_the_child_and_keep_the_inherited_environment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.0695132Z         PASS [   0.449s] (1005/3346) spt::bin/spt wansend::tests::silence_from_the_minting_node_never_classifies_as_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.0730017Z         PASS [   0.414s] (1006/3346) spt-daemon daemon::tests::wmi_create_script_carries_the_no_window_startup_spec
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.3380306Z         PASS [   0.638s] (1007/3346) spt-daemon deadline::tests::advance_after_fire_steps_one_grid_normally_and_collapses_a_stall
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.5589654Z         PASS [   0.847s] (1008/3346) spt-daemon deadline::tests::cold_and_crash_write_fresh_anchor_at_now
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.5720719Z         PASS [   0.845s] (1009/3346) spt-daemon deadline::tests::corrupt_file_degrades_to_fresh
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.5769993Z         PASS [   0.588s] (1010/3346) spt-daemon deadline::tests::distinct_keys_do_not_cross_clobber
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.5814292Z         PASS [   0.565s] (1011/3346) spt-daemon deadline::tests::next_fire_between_grid_points_rounds_up
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.5879130Z         PASS [   0.523s] (1012/3346) spt-daemon deadline::tests::next_fire_long_jump_collapses_missed_ticks_to_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.8519963Z         PASS [   0.783s] (1013/3346) spt::bin/spt wansend::tests::the_evidence_routes_own_predicate_heals_with_the_seam
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.8751305Z         PASS [   0.802s] (1014/3346) spt-daemon deadline::tests::next_fire_on_grid_returns_now_and_advances_strictly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.9189400Z         PASS [   0.581s] (1015/3346) spt-daemon deadline::tests::next_fire_saturates_when_now_precedes_anchor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.9268205Z         PASS [   0.368s] (1016/3346) spt-daemon deadline::tests::one_shot_fires_at_or_after_target_and_never_resets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:24.9346076Z         PASS [   0.363s] (1017/3346) spt-daemon deadline::tests::update_keeps_anchor_and_refreshes_interval
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.1993951Z         PASS [   0.622s] (1018/3346) spt-daemon deadline::tests::update_with_no_file_falls_back_fresh
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.2158516Z         PASS [   0.634s] (1019/3346) spt-daemon deadline::tests::zero_interval_degrades_to_config_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.2560969Z         PASS [   0.668s] (1020/3346) spt-daemon deelevate::tests::env_overlay_keeps_explicit_spt_home_alive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.2730262Z         PASS [   0.398s] (1021/3346) spt-daemon deelevate::tests::plan_spawn_deelevates_only_with_a_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.2878618Z         PASS [   0.436s] (1022/3346) spt::bin/spt wansend::tests::the_knock_leg_routes_on_evidence_and_still_honors_the_askers_exclusion
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.5366566Z         PASS [   0.618s] (1023/3346) spt-daemon digest::tests::common_prefix_len_finds_the_unchanged_head
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.5962483Z         PASS [   0.397s] (1024/3346) spt-daemon digest::tests::merge_by_ts_interleaves_context
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.6087566Z         PASS [   0.674s] (1025/3346) spt-daemon digest::tests::log_less_two_origin_merge_interleaves_by_ts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.8783574Z         PASS [   0.663s] (1026/3346) spt-daemon digest::tests::projects_a_log_less_endpoint_from_digest_log
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:25.8825148Z         PASS [   0.626s] (1027/3346) spt-daemon digest::tests::projects_empty_for_a_sourceless_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:26.1719374Z         PASS [   0.899s] (1028/3346) spt-daemon digest::tests::resolve_config_precedence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:26.1876750Z         PASS [   0.900s] (1029/3346) spt::bin/spt wansend::tests::unknown_ownership_falls_back_to_applying_our_own_policy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:26.4603351Z         PASS [   0.924s] (1030/3346) spt-daemon digest::tests::supersede_collapses_cross_generation_replay_to_newest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:26.4874990Z         PASS [   0.891s] (1031/3346) spt-daemon digest::tests::supersede_is_noop_on_disjoint_sessions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:26.7621753Z         PASS [   1.153s] (1032/3346) spt-daemon digest::tests::supersede_keeps_within_generation_repeats
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:27.0412770Z         PASS [   1.163s] (1033/3346) spt-daemon digest::tests::supersede_trims_divider_around_emptied_middle_generation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:27.0529533Z         PASS [   2.126s] (1034/3346) spt-daemon digest::tests::extractor_spans_sessions_with_a_boundary_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:27.3233147Z         PASS [   1.441s] (1035/3346) spt-daemon digesthub::tests::dropped_subscriber_is_pruned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:27.5964444Z         PASS [   1.424s] (1036/3346) spt-daemon digesthub::tests::project_and_publish_stores_latest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:28.1505609Z         PASS [   1.690s] (1037/3346) spt-daemon digesthub::tests::publish_delta_is_tail_then_full_refresh
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:28.1707317Z         PASS [   1.983s] (1038/3346) spt::bin/spt wansend::tests::wan_send_ships_to_the_resolved_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:28.4325581Z         PASS [   1.945s] (1039/3346) spt-daemon digesthub::tests::render_is_glanceable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:28.9671591Z         PASS [   2.205s] (1040/3346) spt-daemon digesthub::tests::subscribe_returns_current_base
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:29.2462502Z         PASS [   2.205s] (1041/3346) spt-daemon dispatch::tests::a_fork_record_is_never_read_as_a_message_and_an_old_daemon_drops_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:29.7794052Z         PASS [   2.726s] (1042/3346) spt-daemon dispatch::tests::a_knock_record_routes_here_and_drops_cleanly_on_an_n1_daemon
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:30.3100279Z         PASS [   2.987s] (1043/3346) spt-daemon dispatch::tests::a_presence_record_classifies_as_its_own_family_and_never_as_a_message
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:31.3607410Z         PASS [   3.764s] (1044/3346) spt-daemon dispatch::tests::a_receipt_is_never_read_as_a_message_and_never_as_a_knock
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:32.6485387Z         PASS [   4.498s] (1045/3346) spt-daemon dispatch::tests::a_redemption_is_dropped_by_an_old_daemon_where_a_knock_field_would_have_been_accepted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:33.4405574Z         PASS [   5.270s] (1046/3346) spt::bin/spt wansend::tests::with_the_posture_off_the_same_fixture_hides_neither
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:33.9825464Z         PASS [   5.550s] (1047/3346) spt-daemon dispatch::tests::a_serve_for_request_opens_the_web_family_and_a_newer_kind_drops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.0519099Z         PASS [   4.806s] (1048/3346) spt-daemon dispatch::tests::a_web_request_is_never_read_as_a_message_and_a_newer_kind_drops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.1493745Z         PASS [   4.370s] (1049/3346) spt-daemon dispatch::tests::an_unadmitted_asker_is_refused_at_this_nodes_own_seam
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.2166629Z         PASS [   5.249s] (1050/3346) spt-daemon dispatch::tests::a_served_probe_leaves_the_targets_spool_and_inbox_byte_identical
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.3505162Z         PASS [   4.040s] (1051/3346) spt-daemon dispatch::tests::breaker_trips_with_doubling_capped_window_and_resets_on_progress
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.3831465Z         PASS [   3.022s] (1052/3346) spt-daemon dispatch::tests::classifies_every_family_by_first_line_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.4644442Z         PASS [   1.816s] (1053/3346) spt-daemon dispatch::tests::classify_failure_seat_blocked_is_exactly_the_three_discipline_strings
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.4947729Z         PASS [   1.054s] (1054/3346) spt-daemon applyhost::tests::apply_staged_daemonless_holds_the_fail_closed_gates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.7234367Z         PASS [   0.741s] (1055/3346) spt-daemon dispatch::tests::cold_enumeration_claims_at_most_the_pool_bound_per_poll
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.7502818Z         PASS [   0.698s] (1056/3346) spt-daemon dispatch::tests::digest_pull_and_rest_never_read_as_each_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.7950863Z         PASS [   0.646s] (1057/3346) spt-daemon dispatch::tests::dispatch_event_carries_the_complete_key_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8031892Z         PASS [   0.586s] (1058/3346) spt-daemon dispatch::tests::each_presence_word_has_exactly_one_authority
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8081546Z         PASS [   0.458s] (1059/3346) spt-daemon dispatch::tests::feed_accumulator_commits_per_bound_never_per_chunk
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8174402Z         PASS [   0.434s] (1060/3346) spt-daemon dispatch::tests::finished_is_terminal_for_attach_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8239578Z         PASS [   0.360s] (1061/3346) spt-daemon dispatch::tests::line_endpoint_resolves_each_family_identity_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8368031Z         PASS [   0.113s] (1062/3346) spt-daemon dispatch::tests::oneway_seatblocked_strikes_out_terminal_while_request_reply_paces_forever
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8431606Z         PASS [   0.093s] (1063/3346) spt-daemon dispatch::tests::only_the_old_broker_unknown_verb_answer_falls_back_to_the_peek
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:34.8513397Z         PASS [   0.056s] (1064/3346) spt-daemon dispatch::tests::seal_record_classifies_to_its_own_family_never_wanmsg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.1019185Z         PASS [   0.299s] (1065/3346) spt-daemon dispatch::tests::seat_blocked_requeues_budget_free_paced_by_the_breaker_window
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.1044892Z         PASS [   0.610s] (1066/3346) spt-daemon applyhost::tests::apply_staged_daemonless_swaps_binary_with_no_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.1078355Z         PASS [   0.300s] (1067/3346) spt-daemon dispatch::tests::the_family_census_is_bijective_with_the_enum
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.3805221Z         PASS [   0.563s] (1068/3346) spt-daemon dispatch::tests::the_family_census_knows_about_the_answer_receipt
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.4457719Z         PASS [   0.602s] (1069/3346) spt-daemon dispatch::tests::transient_failure_requeues_bounded_and_terminal_never_reenters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.4545510Z         PASS [   0.603s] (1070/3346) spt-daemon dispatch::tests::unknown_shapes_refuse_classification
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.4628422Z         PASS [   0.361s] (1071/3346) spt-daemon docshost::tests::content_types_cover_the_bundle_classes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.4808176Z         PASS [   0.373s] (1072/3346) spt-daemon docshost::tests::docs_url_encodes_the_canonical_node_prefix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.4873869Z         PASS [   0.107s] (1073/3346) spt-daemon docshost::tests::port_resolution_env_config_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.4979723Z         PASS [   0.674s] (1074/3346) spt-daemon dispatch::tests::the_receiver_decides_origin_and_flood_not_the_sender
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.5054031Z         PASS [   0.060s] (1075/3346) spt-daemon docshost::tests::rig_ephemeral_docs_port_retires_a_configured_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.7626626Z         PASS [   0.308s] (1076/3346) spt-daemon docshost::tests::sanitizer_admits_pages_and_rejects_escapes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.7877619Z         PASS [   0.325s] (1077/3346) spt-daemon drivehub::tests::a_following_op_is_served_when_nothing_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.8509445Z         PASS [   0.363s] (1078/3346) spt-daemon drivehub::tests::activity_and_drive_never_clobber_each_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.8517735Z         PASS [   0.371s] (1079/3346) spt-daemon drivehub::tests::a_foreign_owlery_is_refused_pre_ack_under_its_own_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:35.8844316Z         PASS [   0.386s] (1080/3346) spt-daemon drivehub::tests::activity_take_is_latest_wins_and_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.1244589Z         PASS [   0.619s] (1081/3346) spt-daemon drivehub::tests::an_attach_frame_from_a_dead_link_generation_is_evicted_never_served
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.1568138Z         PASS [   0.394s] (1082/3346) spt-daemon drivehub::tests::an_unknown_op_hangs_up_instead_of_being_swallowed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.2319698Z         PASS [   0.444s] (1083/3346) spt-daemon drivehub::tests::clear_evicts_both_classes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.4746967Z         PASS [   0.624s] (1084/3346) spt-daemon drivehub::tests::clear_evicts_the_slot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.4885482Z         PASS [   0.636s] (1085/3346) spt-daemon drivehub::tests::dead_generation_activity_frame_is_never_served
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.5138444Z         PASS [   0.629s] (1086/3346) spt-daemon drivehub::tests::dead_generation_frame_is_never_served
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.5279949Z         PASS [   0.403s] (1087/3346) spt-daemon drivehub::tests::drive_result_activity_key_is_additive_on_the_wire
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.5356538Z         PASS [   1.699s] (1088/3346) spt-daemon dispatch::tests::the_relay_observation_is_a_real_connect_and_a_gone_listener_never_reads_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.5357410Z         PASS [   0.379s] (1089/3346) spt-daemon drivehub::tests::only_a_pre_ack_refusal_permits_a_second_spawn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.5419875Z         PASS [   0.310s] (1090/3346) spt-daemon drivehub::tests::slots_are_per_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.5488520Z         PASS [   0.074s] (1091/3346) spt-daemon drivehub::tests::take_is_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.8081348Z         PASS [   0.320s] (1092/3346) spt-daemon drivehub::tests::the_launch_reply_shapes_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.8721674Z         PASS [   0.343s] (1093/3346) spt-daemon drivehub::tests::the_three_ephemeral_classes_never_clobber_each_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.8775152Z         PASS [   0.342s] (1094/3346) spt-daemon drivehub::tests::write_is_latest_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.9028522Z         PASS [   0.367s] (1095/3346) spt-daemon effect::tests::applied_set_survives_reopen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:36.9441632Z         PASS [   1.840s] (1096/3346) spt-daemon applyhost::tests::apply_staged_gates_fail_closed_with_the_seat_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.1341020Z         PASS [   0.620s] (1097/3346) spt-daemon drivehub::tests::the_pre_ack_causes_are_three_distinct_diagnostics
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.1414609Z         PASS [   0.599s] (1098/3346) spt-daemon effect::tests::apply_once_does_not_hold_the_journal_lock_across_effect
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.2742830Z         PASS [   0.466s] (1099/3346) spt-daemon effect::tests::failed_effect_is_not_recorded_applied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.2936896Z         PASS [   0.745s] (1100/3346) spt-daemon effect::tests::each_named_minter_namespaces_its_ops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.5189169Z         PASS [   0.641s] (1101/3346) spt-daemon effect::tests::marker_is_single_source_and_frozen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.5486329Z         PASS [   0.646s] (1102/3346) spt-daemon effect::tests::minter_tag_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.6001513Z         PASS [   0.729s] (1103/3346) spt-daemon effect::tests::gauntlet_is_exactly_once_across_brain_crashes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.8276791Z         PASS [   0.693s] (1104/3346) spt-daemon effect::tests::only_pty_writes_are_ephemeral
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.8520911Z         PASS [   0.710s] (1105/3346) spt-daemon effect::tests::open_creates_missing_parent_dirs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:37.8705875Z         PASS [   0.596s] (1106/3346) spt-daemon effect::tests::poisoned_journal_lock_still_applies_subsequent_ops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.1339472Z         PASS [   0.840s] (1107/3346) spt-daemon effect::tests::ptywrite_skips_the_durable_journal_write_while_netsend_persists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.1850397Z         PASS [   0.666s] (1108/3346) spt-daemon effect::tests::recover_is_migration_free
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.1981945Z         PASS [   0.649s] (1109/3346) spt-daemon effect::tests::second_apply_for_same_key_is_deduped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.4805066Z         PASS [   0.880s] (1110/3346) spt-daemon effect::tests::shellchan_and_rc_same_session_dont_collide
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.4869878Z         PASS [   0.659s] (1111/3346) spt-daemon effect::tests::with_tracing_retry_no_retry_on_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.7676934Z         PASS [   0.916s] (1112/3346) spt-daemon effect::tests::with_tracing_retry_passes_through_other_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.7834085Z         PASS [   0.913s] (1113/3346) spt-daemon effect::tests::with_tracing_retry_retries_once_on_no_longer_held
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:38.8037422Z         PASS [   0.670s] (1114/3346) spt-daemon effect::tests::with_tracing_retry_terminal_is_public_language
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.0991315Z         PASS [   0.914s] (1115/3346) spt-daemon failedaddr::tests::a_null_address_records_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.1634120Z         PASS [   2.219s] (1116/3346) spt-daemon applyhost::tests::apply_staged_refuses_a_quarantined_version
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.3666601Z         PASS [   1.168s] (1117/3346) spt-daemon failedaddr::tests::a_successful_dial_clears_the_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.4047597Z         PASS [   0.924s] (1118/3346) spt-daemon failedaddr::tests::an_expired_record_stops_matching_and_is_swept
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.6945757Z         PASS [   1.207s] (1119/3346) spt-daemon failedaddr::tests::connecting_to_a_peer_clears_only_that_peers_records
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.9614114Z         PASS [   1.194s] (1120/3346) spt-daemon failedaddr::tests::matches_the_exact_address_and_no_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:39.9844194Z         PASS [   1.201s] (1121/3346) spt-daemon firewall::tests::a_deny_line_naming_the_port_does_not_admit_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:40.2626591Z         PASS [   1.459s] (1122/3346) spt-daemon firewall::tests::a_disabled_manager_does_not_shadow_the_backend
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:40.2754500Z         PASS [   1.176s] (1123/3346) spt-daemon firewall::tests::a_live_manager_outranks_its_backend
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:40.5460784Z         PASS [   1.179s] (1124/3346) spt-daemon firewall::tests::a_reconcile_never_reaches_a_rule_it_was_not_asked_about
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:40.5676106Z         PASS [   1.163s] (1125/3346) spt-daemon firewall::tests::active_but_unreadable_is_unverified_not_a_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:40.8642073Z         PASS [   1.170s] (1126/3346) spt-daemon firewall::tests::active_ufw_is_decided_against_the_bound_port
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:41.1272228Z         PASS [   1.166s] (1127/3346) spt-daemon firewall::tests::any_rule_of_the_name_admitting_the_binder_passes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:41.4010613Z         PASS [   1.417s] (1128/3346) spt-daemon firewall::tests::no_active_firewall_reads_unknown_and_inactive_ones_are_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:41.5681248Z         PASS [   2.405s] (1129/3346) spt-daemon applyhost::tests::apply_staged_refuses_platform_blind_or_mismatched_single
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:41.7370732Z         PASS [   1.474s] (1130/3346) spt-daemon firewall::tests::rule_for_another_binary_is_a_mismatch_not_a_pass
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:42.2365629Z         PASS [   1.961s] (1131/3346) spt-daemon firewall::tests::rule_for_the_binder_passes_regardless_of_case_or_separators
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:42.5164184Z         PASS [   1.970s] (1132/3346) spt-daemon firewall::tests::the_reconcile_decides_create_repoint_nothing_and_cannot_elevate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:43.0448308Z         PASS [   2.477s] (1133/3346) spt-daemon firewall::tests::unanswerable_probes_read_unknown_and_no_rule_reads_missing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:43.3205846Z         PASS [   2.456s] (1134/3346) spt-daemon forkop::tests::forking_into_the_reserved_id_is_refused_before_the_mind_is_copied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:43.5976736Z         PASS [   2.470s] (1135/3346) spt-daemon frame::tests::envelope_with_unknown_trailing_field_decodes_on_older_peer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:43.8736885Z         PASS [   2.473s] (1136/3346) spt-daemon frame::tests::handshake_accepts_newer_brain_on_older_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:45.4305696Z         PASS [   3.693s] (1137/3346) spt-daemon frame::tests::handshake_rejects_below_floor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:45.9638702Z         PASS [   3.727s] (1138/3346) spt-daemon frame::tests::handshake_rejects_role_mismatch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:46.9982619Z         PASS [   4.482s] (1139/3346) spt-daemon frame::tests::unknown_kind_is_not_a_decode_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:47.7895898Z         PASS [   6.221s] (1140/3346) spt-daemon applyhost::tests::apply_staged_swaps_binary_and_hands_off_without_touching_the_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:48.3006935Z         PASS [   5.256s] (1141/3346) spt-daemon grants::tests::escalation_answers_apply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.3579182Z         PASS [   6.037s] (1142/3346) spt-daemon grants::tests::escalation_ask_body_roundtrip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.4244489Z         PASS [   5.551s] (1143/3346) spt-daemon grants::tests::no_session_escalates_with_none_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.4425558Z         PASS [   4.012s] (1144/3346) spt-daemon grants::tests::preconsent_flags_author_grants
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.4975446Z         PASS [   3.534s] (1145/3346) spt-daemon grants::tests::reserved_capabilities_refuse_even_when_granted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.5057052Z         PASS [   2.507s] (1146/3346) spt-daemon grants::tests::ungranted_escalates_granted_allows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.6083581Z         PASS [   6.011s] (1147/3346) spt-daemon grants::tests::escalation_notif_fires_to_most_recent_and_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.7963147Z         PASS [   1.495s] (1148/3346) spt-daemon harnesshost::tests::mint_session_id_is_fresh_hex
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.8711334Z         PASS [   0.513s] (1149/3346) spt-daemon harnesshost::tests::node_key_fills_advertised_label_in_session_template
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:49.8720369Z         PASS [   0.448s] (1150/3346) spt-daemon harnesshost::tests::node_missing_reference_fails_loud
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.1405483Z         PASS [   0.698s] (1151/3346) spt-daemon harnesshost::tests::prepare_fails_closed_on_wrong_kind_missing_role_and_bad_template
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.1736948Z         PASS [   0.676s] (1152/3346) spt-daemon harnesshost::tests::prepare_fills_env_inject_values_with_substitution
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.2305603Z         PASS [   0.725s] (1153/3346) spt-daemon harnesshost::tests::prepare_fills_id_and_session_into_self_command
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.4947221Z         PASS [   0.886s] (1154/3346) spt-daemon harnesshost::tests::prepare_resume_falls_back_to_self_when_no_resume_role
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.5126434Z         PASS [   0.716s] (1155/3346) spt-daemon harnesshost::tests::prepare_selects_resume_template_on_resume_else_self
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.5533233Z         PASS [   0.682s] (1156/3346) spt-daemon harnesshost::tests::prepare_threads_translation_binary_when_declared
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.5597968Z         PASS [   0.688s] (1157/3346) spt-daemon harnesshost::tests::provisional_session_id_recognizes_own_mint_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.7083456Z         PASS [   0.568s] (1158/3346) spt-daemon harnesshost::tests::translation_binary_resolves_against_install_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.8675479Z         PASS [   0.373s] (1159/3346) spt-daemon iobus::tests::a_boundary_frame_carries_no_body_even_if_the_event_does
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.8828249Z         PASS [   0.709s] (1160/3346) spt-daemon inject::tests::has_parked_idle_spool_gates_on_idle_hosted_and_pending
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:50.9368353Z         PASS [   0.424s] (1161/3346) spt-daemon iobus::tests::a_failing_sink_never_suppresses_a_later_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.0245117Z         PASS [   0.794s] (1162/3346) spt-daemon inject::tests::shared_inject_leg_detects_spt_hosted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.2050279Z         PASS [   0.652s] (1163/3346) spt-daemon iobus::tests::io_frame_carries_kind_seq_and_truncation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.2065276Z         PASS [   3.417s] (1164/3346) spt-daemon applyhost::tests::apply_staged_update_set_refuses_broker_touching_payloads
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.2390955Z         PASS [   0.679s] (1165/3346) spt-daemon iobus::tests::io_frame_carries_the_mid_marker_only_when_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.2864882Z         PASS [   0.578s] (1166/3346) spt-daemon iobus::tests::publish_fans_out_to_every_sink
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.5367403Z         PASS [   0.669s] (1167/3346) spt-daemon iobus::tests::publishing_to_an_empty_bus_is_a_no_op
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.5468276Z         PASS [   0.664s] (1168/3346) spt-daemon iobus::tests::the_event_carries_its_span_marker_to_the_frame
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.5688026Z         PASS [   0.632s] (1169/3346) spt-daemon iobus::tests::the_event_keeps_the_full_payload_the_frame_bounds_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.5939057Z         PASS [   0.569s] (1170/3346) spt-daemon iobus::tests::the_frame_class_follows_the_kind_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.6058729Z         PASS [   0.401s] (1171/3346) spt-daemon knocknotif::tests::correlation_subnet_beats_first_visible
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.6212630Z         PASS [   0.382s] (1172/3346) spt-daemon knocknotif::tests::courtesy_subnet_is_a_member_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.6271816Z         PASS [   0.341s] (1173/3346) spt-daemon knocknotif::tests::hidden_addressee_is_not_a_candidate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.9000697Z         PASS [   0.363s] (1174/3346) spt-daemon lanhost::tests::install_page_bakes_the_asked_for_triples_hex
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.9179593Z         PASS [   0.370s] (1175/3346) spt-daemon lanhost::tests::off_until_started_and_a_stop_with_nothing_to_stop_is_not_an_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.9478704Z         PASS [   0.379s] (1176/3346) spt-daemon lanhost::tests::port_resolution_and_rig_posture
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.9545181Z         PASS [   0.361s] (1177/3346) spt-daemon lanhost::tests::router_admits_three_routes_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:51.9919338Z         PASS [   0.371s] (1178/3346) spt-daemon lanhost::tests::the_production_entry_names_the_builtin_release_roots_and_the_t0_exe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:52.0047055Z         PASS [   0.399s] (1179/3346) spt-daemon lanhost::tests::set_gate_admits_the_applied_set_and_names_each_refusal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:52.0687764Z         PASS [   0.064s] (1180/3346) spt-daemon lifecycle::tests::base_keys_carries_single_subnet_no_home
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:52.0821564Z         PASS [   0.165s] (1181/3346) spt-daemon lifecycle::tests::a_seeded_ingest_fault_survives_a_turn_success_after_a_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:52.1001649Z         PASS [   0.108s] (1182/3346) spt-daemon lifecycle::tests::any_kind_success_clears_timeouts_but_only_its_own_hard_counter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:52.1106514Z         PASS [   0.163s] (1183/3346) spt-daemon lifecycle::tests::a_slotless_stamp_seeds_nothing_and_an_unknown_slot_is_ignored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:52.7088544Z         PASS [   0.608s] (1184/3346) spt-daemon lifecycle::tests::custody_survives_parent_boundary_and_reseed_clears
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:53.3185371Z         PASS [   2.112s] (1185/3346) spt-daemon applyhost::tests::apply_staged_update_set_selects_local_platform_artifact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:55.1407919Z         PASS [   1.822s] (1186/3346) spt-daemon applyhost::tests::apply_staged_without_broker_hosted_sessions_swaps_binary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:56.7469058Z         PASS [   1.606s] (1187/3346) spt-daemon applyhost::tests::brain_restart_verb_raises_the_supervisor_signal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:39:59.4367163Z         PASS [   2.690s] (1188/3346) spt-daemon applyhost::tests::broker_reports_its_compiled_image_version_over_ipc
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:00.8913040Z         PASS [   1.455s] (1189/3346) spt-daemon applyhost::tests::refresh_brain_cycles_without_staging_or_swap_preconditions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:00.9480452Z         PASS [   0.057s] (1190/3346) spt-daemon applyhost::tests::staged_already_applied_classifies_up_to_date_vs_newer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:01.2857748Z         PASS [   0.337s] (1191/3346) spt-daemon broker::tests::a_bring_up_admit_ticket_is_random_single_use_session_bound_and_short_lived
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:01.7505175Z         PASS [   0.465s] (1192/3346) spt-daemon broker::tests::a_bring_up_that_is_never_seated_grants_nothing_and_briefs_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:01.8999478Z         PASS [   0.149s] (1193/3346) spt-daemon broker::tests::a_controller_resume_below_the_floor_is_served_the_repaint_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:02.5251411Z         PASS [  10.571s] (1194/3346) spt-daemon lifecycle::tests::an_ingest_consumes_the_standing_expectation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:03.9276919Z         PASS [   2.028s] (1195/3346) spt-daemon broker::tests::a_failed_fido2_proof_spends_nothing_and_the_totp_fallback_still_admits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:04.4976665Z         PASS [   0.570s] (1196/3346) spt-daemon broker::tests::a_failed_surface_resize_leaves_the_grid_geometry_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:05.0544059Z         PASS [   0.557s] (1197/3346) spt-daemon broker::tests::a_full_controller_does_not_starve_a_viewer_or_block_the_drain
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:06.3651938Z         PASS [   1.311s] (1198/3346) spt-daemon broker::tests::a_gap_resume_on_the_same_conn_is_served_not_suppressed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:06.4406625Z         PASS [  14.371s] (1199/3346) spt-daemon lifecycle::tests::crash_signoff_spares_recovered_self
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:06.4561683Z         PASS [  14.373s] (1200/3346) spt-daemon lifecycle::tests::crash_signoff_tears_down_when_still_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:06.4968614Z         PASS [   0.131s] (1201/3346) spt-daemon broker::tests::a_grow_keeps_old_geometry_wrapping_and_places_new_output_at_the_new_width
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:06.9718646Z         PASS [  15.345s] (1202/3346) spt-daemon lifecycle::tests::a_declared_psyche_role_that_fails_still_strikes_and_stamps_no_absence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.1931586Z         PASS [   0.221s] (1203/3346) spt-daemon lifecycle::tests::event_turn_bound_follows_the_role_not_the_pulse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.2738815Z         PASS [   0.777s] (1204/3346) spt-daemon broker::tests::a_mint_with_no_ceremony_surface_refuses_by_name_and_a_capable_seat_proceeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.2819177Z         PASS [   0.089s] (1205/3346) spt-daemon lifecycle::tests::first_turn_psyche_context_is_never_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.3263185Z         PASS [  15.216s] (1206/3346) spt-daemon lifecycle::tests::declaring_the_role_clears_a_stored_absence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.7128812Z         PASS [   0.431s] (1207/3346) spt-daemon lifecycle::tests::harness_owner_gone_anchors_on_parent_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.7839980Z         PASS [   0.457s] (1208/3346) spt-daemon lifecycle::tests::ingest_hard_failures_stamp_even_while_turns_succeed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.8911501Z         PASS [   0.617s] (1209/3346) spt-daemon broker::tests::a_new_session_sweeps_earlier_sessions_undelivered_briefings_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:07.9600121Z         PASS [   0.247s] (1210/3346) spt-daemon lifecycle::tests::manifest_cell_refresh_swaps_manifest_and_runtime
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.0464943Z         PASS [   0.262s] (1211/3346) spt-daemon lifecycle::tests::node_key_fills_advertised_label_in_lifecycle_base_keys
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.1083921Z         PASS [   0.217s] (1212/3346) spt-daemon broker::tests::a_reap_clears_the_control_stamps_but_never_the_hosting_authority
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.2935281Z         PASS [   0.334s] (1213/3346) spt-daemon lifecycle::tests::only_a_consumed_commune_owes_an_event
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.4401955Z         PASS [  15.731s] (1214/3346) spt-daemon lifecycle::tests::echo_fire_runs_child_in_endpoint_cwd_and_routes_brief
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.6101102Z         PASS [   0.502s] (1215/3346) spt-daemon broker::tests::a_redeemed_ticket_settles_the_verdict_its_own_gate_recorded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.6722458Z         PASS [   0.379s] (1216/3346) spt-daemon lifecycle::tests::orphan_watch_honors_stop_for_live_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:08.6936393Z         PASS [   0.253s] (1217/3346) spt-daemon lifecycle::tests::outcome_classifies_by_type_never_by_message
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.0274231Z         PASS [   0.355s] (1218/3346) spt-daemon lifecycle::tests::outcome_names_its_leg_and_turn_failure_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.0672466Z         PASS [   0.373s] (1219/3346) spt-daemon lifecycle::tests::psyche_context_file_continue_is_zero_bytes_fresh_is_nonempty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.1095141Z         PASS [   0.082s] (1220/3346) spt-daemon lifecycle::tests::psyche_turn_keys_carry_custody_sids_and_context_file_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.3675880Z         PASS [   0.300s] (1221/3346) spt-daemon lifecycle::tests::psyche_turn_strikes_exhausted_boundary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.7420944Z         PASS [   0.375s] (1222/3346) spt-daemon lifecycle::tests::pulse_loop_does_not_write_anchor_per_fire
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.8184910Z         PASS [   0.709s] (1223/3346) spt-daemon lifecycle::tests::psyche_turn_threads_parent_read_env_into_spawn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.8190811Z         PASS [   1.209s] (1224/3346) spt-daemon broker::tests::a_refused_bring_up_starts_nothing_mints_nothing_and_answers_typed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:09.8303515Z         PASS [   0.088s] (1225/3346) spt-daemon lifecycle::tests::pulse_loop_is_config_paced_and_killable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.1207330Z         PASS [   0.300s] (1226/3346) spt-daemon broker::tests::a_resume_at_the_floor_keeps_the_raw_ring_replay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.1468051Z         PASS [   0.328s] (1227/3346) spt-daemon lifecycle::tests::pulse_loop_update_preserves_phase_crash_rebases
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.1643705Z         PASS [   0.044s] (1228/3346) spt-daemon broker::tests::a_resumed_controller_never_rereceives_a_suppressed_seq
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.2335289Z         PASS [   0.403s] (1229/3346) spt-daemon lifecycle::tests::pulse_recency_and_auto_suspend_follow_resting_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.3746774Z         PASS [   0.210s] (1230/3346) spt-daemon broker::tests::a_second_seat_on_the_same_session_enqueues_no_second_briefing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.5167323Z         PASS [   0.142s] (1231/3346) spt-daemon broker::tests::a_second_transition_is_refused_while_one_is_in_flight
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.5420460Z         PASS [   0.025s] (1232/3346) spt-daemon broker::tests::a_shrink_parses_held_output_at_the_geometry_it_was_emitted_under
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:10.8096175Z         PASS [   0.267s] (1233/3346) spt-daemon broker::tests::a_stale_guards_drop_does_not_release_its_successors_claim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:11.1131137Z         PASS [   0.303s] (1234/3346) spt-daemon broker::tests::a_started_bring_up_is_recorded_before_its_row_and_gone_after_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:11.3673029Z         PASS [   0.254s] (1235/3346) spt-daemon broker::tests::a_take_and_a_detach_each_drop_the_engine_rooms_empowerments
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:11.4974472Z         PASS [  19.597s] (1236/3346) spt-daemon lifecycle::tests::a_manifest_without_the_psyche_role_skips_strike_free_and_says_so
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:11.6269597Z         PASS [   0.260s] (1237/3346) spt-daemon broker::tests::a_take_that_re_proves_the_admin_code_earns_the_same_grant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:11.7962719Z         PASS [   0.299s] (1238/3346) spt-daemon lifecycle::tests::reload_fires_on_disk_change
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:12.1106928Z         PASS [   0.313s] (1239/3346) spt-daemon lifecycle::tests::reload_keeps_last_good_on_unparseable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:13.3383535Z         PASS [   1.228s] (1240/3346) spt-daemon lifecycle::tests::reload_noop_when_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:13.3998627Z         PASS [   1.773s] (1241/3346) spt-daemon broker::tests::a_ticket_seated_controllers_same_conn_re_serve_keeps_its_seat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:13.6073030Z         PASS [   0.269s] (1242/3346) spt-daemon lifecycle::tests::reload_noop_without_install_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:14.1883899Z         PASS [   0.581s] (1243/3346) spt-daemon lifecycle::tests::resolve_endpoint_drop_dir_cases
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:14.5437778Z         PASS [  12.019s] (1244/3346) spt-daemon lifecycle::tests::echo_fires_without_a_recorded_endpoint_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:15.4068727Z         PASS [   2.007s] (1245/3346) spt-daemon broker::tests::a_valid_fido2_proof_admits_mints_a_signed_record_and_spends_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:16.5640505Z         PASS [   1.157s] (1246/3346) spt-daemon broker::tests::a_viewer_below_the_floor_gets_the_repaint_and_skip_to_live_stays_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:17.7414236Z         PASS [   1.177s] (1247/3346) spt-daemon broker::tests::advance_delivered_is_monotonic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:17.7686571Z         PASS [  11.329s] (1248/3346) spt-daemon lifecycle::tests::echo_never_overwrites_an_authored_commune_drop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:18.8121701Z         PASS [   1.071s] (1249/3346) spt-daemon broker::tests::an_aborted_transition_syncs_at_the_old_geometry_with_no_size_frame
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:20.2432658Z         PASS [  13.787s] (1250/3346) spt-daemon lifecycle::tests::empty_sweep_yields_no_outcome_while_a_real_ingest_yields_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:20.3231962Z         PASS [   0.080s] (1251/3346) spt-daemon lifecycle::tests::session_not_found_discriminates_reseed_from_strike
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:20.5228803Z         PASS [   1.711s] (1252/3346) spt-daemon broker::tests::an_admin_bringup_empowers_the_home_subnet_and_a_member_bringup_empowers_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:20.6013418Z         PASS [   0.278s] (1253/3346) spt-daemon lifecycle::tests::spt_internal_decision_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:20.9592990Z         PASS [   0.358s] (1254/3346) spt-daemon lifecycle::tests::the_emitted_kinds_are_the_vocabularys_own
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.2020031Z         PASS [   0.679s] (1255/3346) spt-daemon broker::tests::an_admitted_bring_up_spawns_the_engine_room_and_its_ticket_seats_the_attach
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.3771774Z         PASS [   0.175s] (1256/3346) spt-daemon broker::tests::an_unreadable_node_key_refuses_the_mint_fail_closed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.4085448Z         PASS [   3.640s] (1257/3346) spt-daemon lifecycle::tests::role_less_manifest_ticks_strike_free
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.4215008Z         PASS [   0.462s] (1258/3346) spt-daemon lifecycle::tests::the_expectation_is_recorded_before_the_spawn_not_after
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.8103156Z         PASS [   0.433s] (1259/3346) spt-daemon broker::tests::an_unwritable_seal_ledger_refuses_even_an_admissible_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.9264992Z         PASS [  13.880s] (1260/3346) spt-daemon lifecycle::tests::orphan_watch_fires_on_dead_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.9406576Z         PASS [   0.519s] (1261/3346) spt-daemon lifecycle::tests::timeout_budget_is_ten_deep_not_three
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:21.9551870Z         PASS [   0.547s] (1262/3346) spt-daemon lifecycle::tests::thrash_budget_trips_on_a_synthetic_failure_loop_without_touching_status
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.0556583Z         PASS [   0.245s] (1263/3346) spt-daemon broker::tests::append_overflow_flags_the_evicted_viewer_for_skip_to_live
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.1590769Z         PASS [   0.232s] (1264/3346) spt-daemon lifecycle::tests::turn_budget_stamps_on_exhaustion_and_clears_on_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.4265136Z         PASS [   0.371s] (1265/3346) spt-daemon broker::tests::apply_once_enqueues_ptywrite_exactly_once_and_dedups_replay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.6128263Z         PASS [   0.657s] (1266/3346) spt-daemon linkhost::tests::force_on_an_offline_instance_is_the_plain_relink
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.6709302Z         PASS [   0.512s] (1267/3346) spt-daemon linkhost::tests::force_refuses_an_ephemeral_instance_and_moves_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.9130957Z         PASS [   0.972s] (1268/3346) spt-daemon linkhost::tests::cmd_wakes_a_stale_online_persistent_instance
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:22.9758405Z         PASS [   0.305s] (1269/3346) spt-daemon linkhost::tests::per_capability_act_gate_blocks_until_class_scoped_grant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.1875569Z         PASS [   0.761s] (1270/3346) spt-daemon broker::tests::attach_initial_batch_is_a_clean_alt_screen_repaint_not_the_raw_ring
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.3247042Z         PASS [   0.137s] (1271/3346) spt-daemon broker::tests::chunk_text_splits_and_reassembles_exactly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.6218492Z         PASS [   1.009s] (1272/3346) spt-daemon linkhost::tests::gateway_typed_owner_resolves_and_drives_keyed_on_id_not_type
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.6273367Z         PASS [   0.651s] (1273/3346) spt-daemon linkhost::tests::relink_refuses_a_live_instance_but_recovers_a_stale_online_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.6311523Z         PASS [   0.306s] (1274/3346) spt-daemon broker::tests::clamp_or_reset_resets_a_torn_ring_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.6528290Z         PASS [   0.740s] (1275/3346) spt-daemon linkhost::tests::prepare_drive_is_live_or_drop_and_never_spools
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:23.6560676Z         PASS [  13.510s] (1276/3346) spt-daemon lifecycle::tests::pulse_tick_ingests_drop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:24.0072539Z         PASS [   0.380s] (1277/3346) spt-daemon linkhost::tests::run_action_honors_the_force_arg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:24.0284194Z         PASS [   0.407s] (1278/3346) spt-daemon linkhost::tests::run_action_drive_drops_offline_without_wake_or_spool
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:24.2412063Z         PASS [   0.610s] (1279/3346) spt-daemon broker::tests::cold_attach_repaint_plus_next_differential_matches_independent_emulator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:25.1581349Z         PASS [   1.505s] (1280/3346) spt-daemon linkhost::tests::run_action_refuses_gated_op_without_spooling
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:25.4064016Z         PASS [   1.399s] (1281/3346) spt-daemon linkhost::tests::survivor_probe_separates_our_binary_from_a_recycled_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:25.9162015Z         PASS [   1.886s] (1282/3346) spt-daemon machineid::tests::hash_is_domain_separated_and_stable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:26.1943922Z         PASS [   2.538s] (1283/3346) spt-daemon linkhost::tests::run_action_relinks_drives_and_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:26.2038276Z         PASS [   1.963s] (1284/3346) spt-daemon broker::tests::contains_subslice_finds_contiguous_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:26.4952266Z         PASS [   1.337s] (1285/3346) spt-daemon machineid::tests::machine_id_hash_resolves_and_is_stable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:27.0352068Z         PASS [   1.629s] (1286/3346) spt-daemon msg::tests::bytes_round_trip_through_payload
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:27.3262819Z         PASS [   1.411s] (1287/3346) spt-daemon msg::tests::endpoint_injected_envelope_carries_delivered_and_spool_hint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:28.1317723Z         PASS [   1.937s] (1288/3346) spt-daemon msg::tests::endpoint_input_frames_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:28.6708532Z         PASS [   2.467s] (1289/3346) spt-daemon broker::tests::contiguous_advance_freezes_on_a_gap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:29.7228807Z         PASS [   3.227s] (1290/3346) spt-daemon msg::tests::evicted_envelope_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:29.7742216Z         PASS [   2.739s] (1291/3346) spt-daemon msg::tests::input_req_absent_ack_defaults_true_n_minus_1_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:29.8002621Z         PASS [   2.474s] (1292/3346) spt-daemon msg::tests::input_req_ack_false_round_trips_faithfully
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:29.8197837Z         PASS [   1.688s] (1293/3346) spt-daemon msg::tests::net_frames_round_trip_and_tolerate_unknown_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:29.8384981Z         PASS [   1.168s] (1294/3346) spt-daemon broker::tests::controller_write_stall_predicate_distinguishes_wedged_from_idle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.1172651Z         PASS [   0.394s] (1295/3346) spt-daemon msg::tests::output_envelope_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.2438443Z         PASS [   0.469s] (1296/3346) spt-daemon msg::tests::output_sync_flag_defaults_absent_and_skips_when_false
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.2577332Z         PASS [   0.438s] (1297/3346) spt-daemon msg::tests::spawn_req_tolerates_unknown_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.2598289Z         PASS [   0.459s] (1298/3346) spt-daemon msg::tests::presence_event_round_trips_and_tolerates_future_kind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.2756203Z         PASS [   0.437s] (1299/3346) spt-daemon broker::tests::delivered_cursor_advances_only_on_ok_and_is_monotonic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.2825220Z         PASS [   0.165s] (1300/3346) spt-daemon msg::tests::stream_lifetime_is_additive_and_defaults_durable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.5488980Z         PASS [   0.305s] (1301/3346) spt-daemon msg::tests::two_phase_join_wire_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.5808891Z         PASS [   0.323s] (1302/3346) spt-daemon msg::tests::wire_decodes_old_shape_to_legacy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.6601014Z         PASS [  16.472s] (1303/3346) spt-daemon lifecycle::tests::rest_edge_echo_success_clears_stale_psyche_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.6656942Z         PASS [   0.406s] (1304/3346) spt-daemon nethost::tests::append_halts_at_first_failed_write_removes_the_seat_and_cancels_the_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.6785585Z         PASS [   0.396s] (1305/3346) spt-daemon nethost::tests::attach_replay_never_interleaves_with_concurrent_live_appends
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.6852195Z         PASS [   0.136s] (1306/3346) spt-daemon nethost::tests::begin_attach_refuses_only_while_a_poisoned_prior_still_drains
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.7336095Z         PASS [   0.055s] (1307/3346) spt-daemon nethost::tests::displaced_writer_failure_never_cancels_the_successor_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.7408248Z         PASS [   0.056s] (1308/3346) spt-daemon nethost::tests::finish_halts_and_removes_a_poisoned_seat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.7943200Z         PASS [   0.129s] (1309/3346) spt-daemon nethost::tests::dispatch_stream_infos_excludes_local_and_retired_rows_server_side
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.8597453Z         PASS [  16.316s] (1310/3346) spt-daemon lifecycle::tests::rest_event_fires_echo_once_and_wake_resurfaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:30.9012484Z         PASS [   0.320s] (1311/3346) spt-daemon nethost::tests::bounded_block_on_cuts_a_never_completing_op_with_an_ordinary_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.0109266Z         PASS [   0.277s] (1312/3346) spt-daemon nethost::tests::home_relay_reads_a_real_serialized_endpoint_addr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.0823255Z         PASS [   0.807s] (1313/3346) spt-daemon broker::tests::delivery_is_suppressed_during_a_transition_and_one_sync_frame_substitutes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.0850619Z         PASS [   0.184s] (1314/3346) spt-daemon nethost::tests::next_seq_counts_appends_not_logical_chunks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1014619Z         PASS [   0.019s] (1315/3346) spt-daemon broker::tests::detach_and_conn_death_abort_the_ceremony_answering_whoever_remains
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1174799Z         PASS [   0.377s] (1316/3346) spt-daemon nethost::tests::host_binds_endpoint_to_node_identity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1200420Z         PASS [   0.019s] (1317/3346) spt-daemon broker::tests::echo_verified_catches_a_swallowed_head
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1403931Z         PASS [   0.023s] (1318/3346) spt-daemon nethost::tests::opener_capture_gives_up_bounded_on_a_newline_less_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1521612Z         PASS [   0.492s] (1319/3346) spt-daemon nethost::tests::conn_close_sweeps_its_stream_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1524119Z         PASS [   0.358s] (1320/3346) spt-daemon nethost::tests::loopback_conn_is_a_reused_singleton_that_cross_wires_a_stream_pair
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1562610Z         PASS [   0.036s] (1321/3346) spt-daemon broker::tests::equal_generation_same_conn_is_an_idempotent_replay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1645537Z         PASS [   0.024s] (1322/3346) spt-daemon nethost::tests::opener_pins_first_line_across_full_ring_roll
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1669962Z         PASS [   0.156s] (1323/3346) spt-daemon nethost::tests::op_maps_are_minter_namespaced
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1847271Z         PASS [   0.033s] (1324/3346) spt-daemon nethost::tests::overflow_detaches_without_lease_cancel_and_the_brain_resumes_from_cursor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1936110Z         PASS [   0.041s] (1325/3346) spt-daemon nethost::tests::presence_log_mirrors_the_seat_discipline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.1943626Z         PASS [   0.109s] (1326/3346) spt-daemon nethost::tests::open_class_routes_to_the_opener_row_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.2028760Z         PASS [   0.038s] (1327/3346) spt-daemon nethost::tests::retentive_log_is_lossless_ordered_while_ordinary_log_overwrites
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.2645893Z         PASS [   0.108s] (1328/3346) spt-daemon broker::tests::every_unredeemable_ticket_answers_one_sentence_and_spends_no_attempt
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.2880998Z         PASS [   0.024s] (1329/3346) spt-daemon broker::tests::exit_enqueues_behind_queued_output_per_sink
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.3046084Z         PASS [   0.110s] (1330/3346) spt-daemon nethost::tests::send_stream_refuses_on_a_canceled_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.3187028Z         PASS [   0.030s] (1331/3346) spt-daemon broker::tests::gap_resume_resubscribe_preserves_the_generation_against_stale_replay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.3236468Z         PASS [   0.156s] (1332/3346) spt-daemon nethost::tests::retire_hides_the_row_while_active_rows_stay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.3322197Z         PASS [   0.138s] (1333/3346) spt-daemon nethost::tests::retired_row_still_flushes_a_late_reply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.3323068Z         PASS [   0.148s] (1334/3346) spt-daemon nethost::tests::retire_sweep_dismisses_the_seat_and_terminal_retire_drops_the_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.4084139Z         PASS [   0.104s] (1335/3346) spt-daemon nethost::tests::unsubscribe_releases_only_the_callers_seat_joins_writer_and_is_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.4201645Z         PASS [   0.217s] (1336/3346) spt-daemon nethost::tests::two_hosts_dial_over_loopback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.6000154Z         PASS [   0.281s] (1337/3346) spt-daemon broker::tests::generation_ladder_newer_supersedes_loudly_older_refused_both_intents
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.6800308Z         PASS [   0.080s] (1338/3346) spt-daemon broker::tests::input_enqueue_drops_and_stamps_on_full_then_heals_on_drain
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.6976408Z         PASS [   0.018s] (1339/3346) spt-daemon broker::tests::input_writer_preserves_strict_fifo_order_through_the_sole_writer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.7299995Z         PASS [   0.032s] (1340/3346) spt-daemon broker::tests::local_controller_wedged_scopes_to_the_brains_own_conn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.7464191Z         PASS [   0.016s] (1341/3346) spt-daemon broker::tests::lock_floor_recovers_a_poisoned_inject_floor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.8453297Z         PASS [   0.099s] (1342/3346) spt-daemon broker::tests::mint_offers_decide_fido2_iff_enrolled_and_e_iff_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:31.9182915Z         PASS [   0.586s] (1343/3346) spt-daemon notif::tests::a_notify_opens_no_reply_window_under_its_display_label
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.1072001Z         PASS [   0.775s] (1344/3346) spt-daemon notif::tests::an_absent_addressee_yields_no_target_rather_than_the_mra_winner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.1187514Z         PASS [   0.273s] (1345/3346) spt-daemon broker::tests::miss_respool_is_once_then_dead_letters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.1572921Z         PASS [   0.737s] (1346/3346) spt-daemon notif::tests::consent_decision_produces_notif_only_when_gated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.1744458Z         PASS [   1.315s] (1347/3346) spt-daemon nethost::tests::loopback_tunnel_backpressures_without_loss
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.1817669Z         PASS [   0.063s] (1348/3346) spt-daemon broker::tests::miss_strikes_exhausted_at_budget
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.2045594Z         PASS [   0.023s] (1349/3346) spt-daemon broker::tests::only_the_supervised_generation_can_claim_the_coordinator_image
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.2194691Z         PASS [   0.015s] (1350/3346) spt-daemon broker::tests::output_log_tap_reads_bytes_since_snapshot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.2347456Z         PASS [   0.015s] (1351/3346) spt-daemon broker::tests::pair_hold_lifecycle_decisions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.2516158Z         PASS [   0.017s] (1352/3346) spt-daemon broker::tests::rc_input_fence_scopes_to_rc_minted_non_controller_input_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.2759562Z         PASS [   0.952s] (1353/3346) spt-daemon notif::tests::a_boundary_surfaces_an_addressed_row_only_at_its_addressee
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.2936473Z         PASS [   0.042s] (1354/3346) spt-daemon broker::tests::read_translation_command_none_when_absent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.3300617Z         PASS [   0.036s] (1355/3346) spt-daemon broker::tests::read_translation_command_reads_declared
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.3489761Z         PASS [   0.019s] (1356/3346) spt-daemon broker::tests::reap_dead_controller_clears_a_finished_writer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.5400850Z         PASS [   0.622s] (1357/3346) spt-daemon notif::tests::expired_row_is_auto_dismissed_at_boundary_not_surfaced
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.5727585Z         PASS [   0.466s] (1358/3346) spt-daemon notif::tests::first_fire_declines_an_already_expired_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.5860348Z         PASS [   1.178s] (1359/3346) spt-daemon notif::tests::an_addressed_row_fires_at_its_addressee_and_nowhere_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.6292135Z         PASS [   0.280s] (1360/3346) spt-daemon broker::tests::reap_dead_controller_leaves_a_live_writer_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.7011168Z         PASS [   0.072s] (1361/3346) spt-daemon broker::tests::reap_evicts_a_blocked_writer_not_only_an_exited_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.7162797Z         PASS [   0.015s] (1362/3346) spt-daemon broker::tests::recover_log_clamps_a_poisoned_torn_ring
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.7451711Z         PASS [   0.571s] (1363/3346) spt-daemon notif::tests::first_fire_redirects_to_a_fresher_remote_winner_unmarked
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.7675398Z         PASS [   0.491s] (1364/3346) spt-daemon notif::tests::first_fire_rides_the_quiet_window_not_the_live_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.7709939Z         PASS [   0.614s] (1365/3346) spt-daemon notif::tests::first_fire_reaches_most_recent_visible_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.7744133Z         PASS [   0.058s] (1366/3346) spt-daemon broker::tests::recover_reopens_a_poisoned_sessions_map
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:32.8110326Z         PASS [   0.036s] (1367/3346) spt-daemon broker::tests::registration_of_an_ordinary_spawn_leaves_the_ledger_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:33.0675520Z         PASS [   0.256s] (1368/3346) spt-daemon broker::tests::revoked_incumbent_writer_emits_the_terminal_displaced
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:33.0850282Z         PASS [   0.317s] (1369/3346) spt-daemon notif::tests::notif_command_renders_all_keys_and_is_opt_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:33.0987213Z         PASS [   0.031s] (1370/3346) spt-daemon broker::tests::same_identity_resubscribe_refuses_a_stale_generation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.0621381Z         PASS [   0.963s] (1371/3346) spt-daemon broker::tests::seal_codes_verify_member_or_admin_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.0678967Z         PASS [  23.834s] (1372/3346) spt-daemon lifecycle::tests::relative_commune_dir_resolves_against_endpoint_cwd_and_fills_project_branch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.0986669Z         PASS [   1.512s] (1373/3346) spt-daemon notif::tests::no_live_endpoint_is_a_typed_no_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.1079511Z         PASS [   0.046s] (1374/3346) spt-daemon broker::tests::select_endpoints_running_adapter_filters_dedups_sorts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.2241591Z         PASS [   1.684s] (1375/3346) spt-daemon notif::tests::hidden_endpoint_boundary_surfaces_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.3642605Z         PASS [   1.791s] (1376/3346) spt-daemon notif::tests::hidden_endpoint_is_never_the_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.3897756Z         PASS [   1.644s] (1377/3346) spt-daemon notif::tests::node_scoped_first_fire_ignores_a_fresher_remote_winner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4299459Z         PASS [   0.322s] (1378/3346) spt-daemon broker::tests::sessions_reply_resume_seq_defaults_when_absent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4357452Z         PASS [   0.212s] (1379/3346) spt-daemon notifgate::tests::an_unvalidatable_notify_passes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4463645Z         PASS [   0.082s] (1380/3346) spt-daemon notifgate::tests::distinct_notifs_both_deliver
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4560632Z         PASS [   0.066s] (1381/3346) spt-daemon notifgate::tests::retain_preserves_order_of_the_survivors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4606944Z         PASS [   0.031s] (1382/3346) spt-daemon broker::tests::should_settle_rearms_on_observable_pty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4668722Z         PASS [   0.031s] (1383/3346) spt-daemon notifgate::tests::the_validity_gate_decision_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.4989677Z         PASS [   0.038s] (1384/3346) spt-daemon broker::tests::stale_generation_detach_never_clears_the_newer_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.5279539Z         PASS [   0.460s] (1385/3346) spt-daemon notif::tests::shell_notif_templates_render_for_attached_instances_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.7206328Z         PASS [   1.950s] (1386/3346) spt-daemon notif::tests::resurface_delivers_undismissed_with_gates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.7208017Z         PASS [   0.222s] (1387/3346) spt-daemon broker::tests::stale_snapshot_stamp_write_refused_after_reap_generation_bump
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.7562857Z         PASS [   1.671s] (1388/3346) spt-daemon notif::tests::rollback_notif_is_loud_and_resurfaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.8192262Z         PASS [   0.373s] (1389/3346) spt-daemon notifsync::tests::concurrent_dismiss_and_surface_commute_across_the_feed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.8192775Z         PASS [   0.352s] (1390/3346) spt-daemon notifsync::tests::node_scoped_rows_are_excluded_from_the_feed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.8318868Z         PASS [   0.304s] (1391/3346) spt-daemon notifsync::tests::non_member_subnet_record_never_materializes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.8382815Z         PASS [   0.382s] (1392/3346) spt-daemon notifsync::tests::feed_converges_two_stores_and_dismiss_replicates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9335654Z         PASS [   0.213s] (1393/3346) spt-daemon broker::tests::stalled_incumbent_is_evicted_on_reattach_and_control_released
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9368171Z         PASS [   0.180s] (1394/3346) spt-daemon pairhost::tests::a_re_postured_subnet_advises_and_never_applies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9437988Z         PASS [   0.125s] (1395/3346) spt-daemon pairhost::tests::joiner_clock_render_shows_step_offset_and_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9589313Z         PASS [   0.127s] (1396/3346) spt-daemon pairhost::tests::meet_failure_detail_concise_vs_verbose
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9657321Z         PASS [   0.127s] (1397/3346) spt-daemon pairhost::tests::meet_final_retry_failing_surrenders_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9722873Z         PASS [   0.039s] (1398/3346) spt-daemon broker::tests::stamp_divergence_gates_writes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9784759Z         PASS [   0.042s] (1399/3346) spt-daemon pairhost::tests::meet_retries_once_after_refresh_on_exhaustion
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9850786Z         PASS [   0.041s] (1400/3346) spt-daemon pairhost::tests::the_advisory_says_nothing_was_applied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:34.9916586Z         PASS [   0.033s] (1401/3346) spt-daemon pairhost::tests::wire_errors_classify_for_the_guided_ux
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.0197607Z         PASS [   0.921s] (1402/3346) spt-daemon notif::tests::suppression_window_holds_cross_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.0595694Z         PASS [   0.094s] (1403/3346) spt-daemon presence::tests::mra_degrades_to_local_and_skips_noise_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.0599500Z         PASS [   0.075s] (1404/3346) spt-daemon presence::tests::snapshot_loading_degrades_on_junk
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.1063250Z         PASS [   0.128s] (1405/3346) spt-daemon presence::tests::mra_joins_local_and_gossiped_legs_under_one_max
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.1204713Z         PASS [   0.301s] (1406/3346) spt-daemon pairhost::tests::an_advisory_records_the_sighting_and_still_applies_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.1316348Z         PASS [   0.140s] (1407/3346) spt-daemon presence::tests::subnet_scope_gates_both_legs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.1815043Z         PASS [   0.461s] (1408/3346) spt-daemon notifsync::tests::untrusted_and_cross_subnet_origins_are_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.1890814Z         PASS [   0.217s] (1409/3346) spt-daemon broker::tests::stamp_driven_by_latches_own_node_hex_verbatim_like_remote
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.3508789Z         PASS [   0.291s] (1410/3346) spt-daemon projwriter::tests::cold_construct_spawns_no_git_and_first_cycle_publishes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.3825813Z         PASS [   0.323s] (1411/3346) spt-daemon projwriter::tests::corrupt_index_is_repaired_and_counted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:35.8295597Z         PASS [   0.640s] (1412/3346) spt-daemon broker::tests::superseded_controller_writer_is_epoch_gated_silent_one_live_writer_per_conn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:37.6826426Z         PASS [   1.853s] (1413/3346) spt-daemon broker::tests::supervised_worker_panic_faults_and_reaps_child
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:38.1509065Z         PASS [   0.468s] (1414/3346) spt-daemon broker::tests::taking_the_engine_rooms_controls_costs_a_member_or_admin_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:38.9517562Z         PASS [   0.801s] (1415/3346) spt-daemon broker::tests::the_absent_arm_fires_only_on_a_measured_absence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:39.7442249Z         PASS [   0.793s] (1416/3346) spt-daemon broker::tests::the_admit_ticket_seats_a_subscribe_arriving_on_another_connection
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:40.7100428Z         PASS [   5.604s] (1417/3346) spt-daemon projwriter::tests::cwd_invalidation_evicts_shared_cache_entry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:44.9456596Z         PASS [   5.201s] (1418/3346) spt-daemon broker::tests::the_bring_up_verb_grants_only_once_its_ticket_seats_a_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:45.2196686Z         PASS [   0.272s] (1419/3346) spt-daemon broker::tests::the_ceremony_seam_refuses_over_cap_and_non_utf8_content_by_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:45.3413659Z         PASS [  10.160s] (1420/3346) spt-daemon projwriter::tests::ordinary_commit_is_noop_config_change_rederives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:45.3453247Z         PASS [   0.126s] (1421/3346) spt-daemon broker::tests::the_ceremony_surface_is_the_seat_table_and_the_stamp_is_conn_keyed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:45.6219624Z         PASS [   0.281s] (1422/3346) spt-daemon propagate::tests::classifier_maps_every_status_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:45.6681273Z         PASS [   0.322s] (1423/3346) spt-daemon broker::tests::the_credential_discriminant_names_the_seed_and_a_tie_grants_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:45.7888612Z         PASS [   0.120s] (1424/3346) spt-daemon broker::tests::the_e_admit_writes_enrollment_and_seal_both_or_neither
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:46.1754441Z         PASS [   0.386s] (1425/3346) spt-daemon broker::tests::the_engine_room_refuses_every_viewport_and_every_off_node_attach
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:46.4485394Z         PASS [   0.273s] (1426/3346) spt-daemon broker::tests::the_enroll_purpose_admits_to_a_record_refuses_a_second_and_cancels_free
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:46.4779421Z         PASS [   5.768s] (1427/3346) spt-daemon projwriter::tests::writer_thread_debounces_burst_into_one_cycle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:46.4931448Z         PASS [   0.871s] (1428/3346) spt-daemon psyrelay::tests::empty_and_oversize_bodies_drop_typed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:46.7021921Z         PASS [   0.254s] (1429/3346) spt-daemon broker::tests::the_grant_point_writes_only_for_an_admin_credential
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:47.1379973Z         PASS [   0.436s] (1430/3346) spt-daemon broker::tests::the_seal_gate_counts_throttles_first_cancels_free_and_mints_on_admit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:47.4187220Z         PASS [   0.281s] (1431/3346) spt-daemon broker::tests::the_seal_gate_ledger_is_its_own_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:47.5460618Z         PASS [   1.068s] (1432/3346) spt-daemon psyrelay::tests::notify_reaches_own_user_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:47.7325304Z         PASS [   0.314s] (1433/3346) spt-daemon broker::tests::the_suppressed_window_is_exempt_from_the_controller_eviction_deadline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:48.0463229Z         PASS [   0.314s] (1434/3346) spt-daemon broker::tests::the_wedge_ceiling_is_most_generous_on_the_phase_that_measured_slow
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:48.1473066Z         PASS [   1.654s] (1435/3346) spt-daemon psyrelay::tests::notify_without_live_endpoint_is_pending
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:48.3360362Z         PASS [   0.289s] (1436/3346) spt-daemon broker::tests::tracked_state_inside_the_window_surfaces_in_the_sync_frame
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:48.6701655Z         PASS [   0.334s] (1437/3346) spt-daemon broker::tests::untracked_toggles_defer_into_the_sync_frame_and_hyperlinks_drop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:48.7532490Z         PASS [   1.207s] (1438/3346) spt-daemon psyrelay::tests::null_stdout_driver_fails_the_guard
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:48.9801489Z         PASS [   0.310s] (1439/3346) spt-daemon broker::tests::viewer_overflow_or_disconnect_evicts_never_blocks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:49.4604186Z         PASS [   1.313s] (1440/3346) spt-daemon psyrelay::tests::prose_only_relays_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:50.4468146Z         PASS [   1.693s] (1441/3346) spt-daemon psyrelay::tests::reply_relays_to_inbound_sender
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:50.9780337Z         PASS [   1.518s] (1442/3346) spt-daemon psyrelay::tests::reply_without_target_is_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:51.1827498Z         PASS [   0.205s] (1443/3346) spt-daemon pump::health::tests::a_failing_peer_whose_node_the_registry_reports_offline_reads_absent_not_degraded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:51.4680234Z         PASS [   0.285s] (1444/3346) spt-daemon pump::health::tests::a_non_target_connection_never_counts_and_disconnects_mirror_the_conn_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:51.7658484Z         PASS [   0.298s] (1445/3346) spt-daemon pump::health::tests::a_subnet_leave_re_derives_the_live_count_without_disconnecting_anybody
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:51.7699619Z         PASS [   2.790s] (1446/3346) spt-daemon broker::tests::viewer_writer_emits_evicted_marker_only_on_an_evicted_close
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:52.0501669Z         PASS [   0.284s] (1447/3346) spt-daemon pump::health::tests::a_target_leaving_the_roster_drops_its_failure_and_can_return_the_node_to_green
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:52.0564168Z         PASS [   0.286s] (1448/3346) spt-daemon broker::tests::wake_gate_decision_truth_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:52.2518821Z         PASS [   1.805s] (1449/3346) spt-daemon psyrelay::tests::spoofed_routing_is_stripped_and_restamped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:52.3519502Z         PASS [   0.302s] (1450/3346) spt-daemon pump::health::tests::degraded_on_all_peer_failure_healthy_only_on_real_progress
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:53.1856927Z         PASS [   0.934s] (1451/3346) spt-daemon pump::health::tests::five_of_seven_failing_behind_two_live_peers_is_degraded_partial_never_healthy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:54.0064069Z         PASS [   1.654s] (1452/3346) spt-daemon pump::health::tests::health_file_roundtrip_and_degrade
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:54.7807067Z         PASS [   2.724s] (1453/3346) spt-daemon broker::tests::windows_session_is_zombie_sees_a_handle_held_corpse_as_dead
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:55.5622131Z         PASS [   2.376s] (1454/3346) spt-daemon pump::health::tests::one_peer_reconnecting_narrows_the_verdict_without_restarting_the_incident_clock
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:55.8562388Z         PASS [  20.724s] (1455/3346) spt-daemon projwriter::tests::failed_cycle_preserves_last_known_good
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:56.6153843Z         PASS [   2.609s] (1456/3346) spt-daemon pump::health::tests::one_unaccounted_failing_peer_holds_the_degraded_partial_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:56.6742436Z         PASS [   1.893s] (1457/3346) spt-daemon broker::tests::wrapper_alive_prefers_the_table_and_falls_back_where_there_is_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:56.7176643Z         PASS [   1.155s] (1458/3346) spt-daemon pump::health::tests::peers_absent_replaces_only_a_degraded_verdict_and_never_outlives_its_target
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:56.7453798Z         PASS [   0.130s] (1459/3346) spt-daemon pump::health::tests::stage_parses_from_attributed_reasons
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:56.7469137Z         PASS [   0.891s] (1460/3346) spt-daemon pump::health::tests::registry_admit_stamp_survives_restart_rounds_and_never_regresses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:56.7707393Z         PASS [  21.388s] (1461/3346) spt-daemon projwriter::tests::warm_start_unchanged_generation_scans_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.0129905Z         PASS [   0.339s] (1462/3346) spt-daemon broker::tests::zombie_verdict_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.0565616Z         PASS [   0.339s] (1463/3346) spt-daemon pump::health::tests::stale_gossip_forces_the_conservative_read_even_with_every_node_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.1282296Z         PASS [   0.383s] (1464/3346) spt-daemon pump::registry::tests::disclosable_lines_keeps_the_per_subnet_filter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.1491182Z         PASS [   0.378s] (1465/3346) spt-daemon pump::registry::tests::discover_gate_filters_the_advert_push_per_viewer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.1735516Z         PASS [   0.426s] (1466/3346) spt-daemon pump::registry::tests::disclosable_lines_pushes_the_engine_room_only_to_its_chosen_viewer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.1962786Z         PASS [  22.076s] (1467/3346) spt-daemon projwriter::tests::endpoint_events_patch_rows_and_drop_purged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.1976116Z         PASS [   0.069s] (1468/3346) spt-daemon pump::registry::tests::legacy_allow_surfaces_shape_discloses_advert_to_third_party
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.2995024Z         PASS [   0.243s] (1469/3346) spt-daemon pump::registry::tests::fire_due_rotations_rotates_due_and_leaves_pending
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.3388737Z         PASS [   0.326s] (1470/3346) spt-daemon livehost::tests::boot_gate_offlines_sessionless_controllable_then_reconcile_skips_host
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.4496728Z         PASS [   0.301s] (1471/3346) spt-daemon pump::registry::tests::poll_wake_takes_the_advertise_marker_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.5528641Z         PASS [   0.356s] (1472/3346) spt-daemon pump::update::tests::advertised_version_finds_dotted_tokens_and_refuses_counter_shapes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.5648792Z         PASS [   0.367s] (1473/3346) spt-daemon pump::update::tests::the_retire_predicate_keeps_ahead_and_unparseable_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.5706188Z         PASS [   0.271s] (1474/3346) spt-daemon pump::update::tests::version_ge_compares_dotted_versions_and_rejects_garbage
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.5928164Z         PASS [   0.040s] (1475/3346) spt-daemon reap::tests::reap_without_enroll_is_noop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.6019141Z         PASS [   0.037s] (1476/3346) spt-daemon reap::tests::terminate_job_return_discriminates_broken_handle_from_ordinary_states
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.6588386Z         PASS [   0.485s] (1477/3346) spt-daemon pump::registry::tests::pre_round_sweeps_and_refreshes_adverts_each_round
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.6755582Z         PASS [   0.337s] (1478/3346) spt-daemon livehost::tests::broker_failure_skips_the_pass_never_mass_offlines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.8734599Z         PASS [   0.303s] (1479/3346) spt-daemon reconcile::tests::active_node_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.9086388Z         PASS [   0.316s] (1480/3346) spt-daemon reconcile::tests::double_active_tiebreaks_deterministically
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.9508183Z         PASS [   0.349s] (1481/3346) spt-daemon reconcile::tests::fallback_lowest_non_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:57.9519430Z         PASS [   0.293s] (1482/3346) spt-daemon reconcile::tests::no_rows_reconciles_locally
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.0888283Z         PASS [   0.413s] (1483/3346) spt-daemon livehost::tests::control_reap_clears_sticky_controlled_on_already_offline_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.1407157Z         PASS [   0.190s] (1484/3346) spt-daemon redeemop::tests::a_mint_armed_record_writes_no_rule_where_the_duplicate_would_show
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.2379621Z         PASS [   0.364s] (1485/3346) spt-daemon redeemop::tests::a_bare_terminal_presenter_binds_the_narrow_human_subject
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.3081585Z         PASS [   0.213s] (1486/3346) spt-daemon livehost::tests::decide_resume_goal_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.3464434Z         PASS [   0.437s] (1487/3346) spt-daemon redeemop::tests::a_foreign_presentation_of_a_spent_code_still_gets_the_one_refusal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.4013070Z         PASS [   0.449s] (1488/3346) spt-daemon redeemop::tests::a_node_code_answers_under_the_engine_rooms_seat_where_an_endpoint_code_cannot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.4988425Z         PASS [   0.358s] (1489/3346) spt-daemon redeemop::tests::a_policy_refusal_says_nothing_and_leaves_the_code_unspent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.6204519Z         PASS [   0.382s] (1490/3346) spt-daemon redeemop::tests::a_repeat_of_the_same_exchange_echoes_redeemed_and_writes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.7232920Z         PASS [   0.415s] (1491/3346) spt-daemon livehost::tests::fresh_brain_rehydrates_an_online_live_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:58.9069344Z         PASS [   0.561s] (1492/3346) spt-daemon redeemop::tests::a_wire_redemption_addresses_its_courtesy_to_the_minter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.0304043Z         PASS [   1.581s] (1493/3346) spt-daemon reap::tests::job_reaps_enrolled_child_and_grandchild
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.0722012Z         PASS [   0.671s] (1494/3346) spt-daemon redeemop::tests::a_wire_redemption_binds_the_stamped_redeemer_and_never_the_claimed_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.0797305Z         PASS [   0.459s] (1495/3346) spt-daemon redeemop::tests::every_cause_of_refusal_emits_the_identical_line_and_names_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.0945196Z         PASS [   0.596s] (1496/3346) spt-daemon redeemop::tests::an_attributable_surface_binds_the_sender_and_a_non_attributable_one_binds_the_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.3235678Z         PASS [   0.600s] (1497/3346) spt-daemon livehost::tests::hybrid_self_heal_due_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.7672733Z         PASS [   0.860s] (1498/3346) spt-daemon redeemop::tests::the_minters_arming_comes_back_as_a_request_and_opens_nothing_here
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:40:59.9275830Z         PASS [   0.897s] (1499/3346) spt-daemon registryhost::tests::admitted_feeds_stamp_the_heard_map
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:00.7982452Z         PASS [   1.726s] (1500/3346) spt-daemon registryhost::tests::advertise_local_scans_and_respects_visibility
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:00.8273574Z         PASS [   1.733s] (1501/3346) spt-daemon registryhost::tests::advertised_status_ignores_host_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:00.8656586Z         PASS [   1.786s] (1502/3346) spt-daemon registryhost::tests::advertise_local_stamps_the_node_label
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:01.7013368Z         PASS [   1.934s] (1503/3346) spt-daemon registryhost::tests::advertised_status_splits_unbound_warm_from_cold_suspended
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:01.9971479Z         PASS [   2.069s] (1504/3346) spt-daemon registryhost::tests::advertisement_carries_both_authored_blurb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:02.1683792Z         PASS [   2.845s] (1505/3346) spt-daemon livehost::tests::legacy_psyche_sweep_guard_is_id_specific_and_fail_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:02.7969983Z         PASS [   1.999s] (1506/3346) spt-daemon registryhost::tests::advertisement_carries_the_presence_datum
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:03.6386364Z         PASS [   2.811s] (1507/3346) spt-daemon registryhost::tests::advertisement_follows_resting_transitions_epoch_bumped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:04.1110761Z         PASS [   3.245s] (1508/3346) spt-daemon registryhost::tests::apply_feed_batch_writes_snapshots_once_with_per_kind_semantics_parity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.3162723Z         PASS [   3.614s] (1509/3346) spt-daemon registryhost::tests::apply_feed_flips_only_on_observed_transition_to_active
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.3357795Z         PASS [   3.338s] (1510/3346) spt-daemon registryhost::tests::apply_feed_gates_and_merges_under_the_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.3453923Z         PASS [   2.548s] (1511/3346) spt-daemon registryhost::tests::apply_node_labels_gates_and_merges
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.3454509Z         PASS [   3.177s] (1512/3346) spt-daemon livehost::tests::live_bin_gc_removes_own_copy_and_displaces_when_locked
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.6471955Z         PASS [   1.536s] (1513/3346) spt-daemon registryhost::tests::evict_aged_offline_rows_reaps_ghosts_and_rewrites_snapshots
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.6560156Z         PASS [   2.017s] (1514/3346) spt-daemon registryhost::tests::erased_perch_is_advertised_offline_not_left_active
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.6835701Z         PASS [   0.368s] (1515/3346) spt-daemon registryhost::tests::evict_silent_peers_drops_unheard_rows_and_rewrites_snapshots
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.6860344Z         PASS [   0.341s] (1516/3346) spt-daemon registryhost::tests::gossip_controller_node_covers_any_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.7217380Z         PASS [   0.386s] (1517/3346) spt-daemon registryhost::tests::evict_silent_peers_never_touches_own_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.7953504Z         PASS [   0.450s] (1518/3346) spt-daemon livehost::tests::pull_liveness_demotes_a_relay_held_endpoint_instead_of_offlining_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.9514233Z         PASS [   0.305s] (1519/3346) spt-daemon registryhost::tests::recent_projects_cap_fires_on_output_length_not_scanned_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:05.9813631Z         PASS [   0.325s] (1520/3346) spt-daemon registryhost::tests::recent_projects_derive_once_per_distinct_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.0954804Z         PASS [   0.374s] (1521/3346) spt-daemon registryhost::tests::superseded_requires_label_and_machine_id_under_other_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.1084760Z         PASS [   0.422s] (1522/3346) spt-daemon registryhost::tests::repair_evict_tombstones_roster_snapshot_and_notices
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.5076368Z         PASS [   0.526s] (1523/3346) spt-daemon registryhost::tests::with_epoch_is_the_one_canonical_counter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.5992987Z         PASS [   0.648s] (1524/3346) spt-daemon registryhost::tests::the_engine_room_is_absent_from_the_advertisement_until_it_chooses_a_viewer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.8389416Z         PASS [   0.743s] (1525/3346) spt-daemon relay::tests::relay_backlog_never_drains_active_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.8422261Z         PASS [   1.047s] (1526/3346) spt-daemon livehost::tests::pull_liveness_marks_sessionless_spt_hosted_offline_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.8824657Z         PASS [   0.375s] (1527/3346) spt-daemon relay::tests::run_honors_stop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.8996095Z         PASS [   0.791s] (1528/3346) spt-daemon relay::tests::respawn_loses_no_spooled_message
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9004422Z         PASS [   0.301s] (1529/3346) spt-daemon relcache::tests::applied_state_two_phase_round_trips_and_degrades
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9194170Z         PASS [   0.081s] (1530/3346) spt-daemon relcache::tests::docs_bundle_stages_loads_and_clears_independently
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9447275Z         PASS [   0.062s] (1531/3346) spt-daemon relcache::tests::partial_update_set_can_serve_held_platform_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9600989Z         PASS [   0.061s] (1532/3346) spt-daemon relcache::tests::single_platform_stamp_is_explicit_and_cleared_on_restage
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9647055Z         PASS [   0.064s] (1533/3346) spt-daemon relcache::tests::stage_round_trips_and_restage_replaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9791849Z         PASS [   0.060s] (1534/3346) spt-daemon relcache::tests::torn_or_corrupt_stage_offers_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:06.9909447Z         PASS [   0.046s] (1535/3346) spt-daemon relcache::tests::update_set_round_trips_and_loads_by_platform
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.0039337Z         PASS [   0.044s] (1536/3346) spt-daemon release::tests::artifact_digest_mismatch_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.0971468Z         PASS [   0.255s] (1537/3346) spt-daemon livehost::tests::pull_reconcile_offlines_perch_when_broker_session_dies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.2729031Z         PASS [   0.308s] (1538/3346) spt-daemon release::tests::builtin_keys_merge_and_revoke_under_file_overlay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3004353Z         PASS [   0.321s] (1539/3346) spt-daemon release::tests::channel_mismatch_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3231198Z         PASS [   0.332s] (1540/3346) spt-daemon release::tests::current_platform_is_registered_or_unknown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3302035Z         PASS [   0.326s] (1541/3346) spt-daemon release::tests::docs_entry_is_additive_and_verifies_exact_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3613922Z         PASS [   0.088s] (1542/3346) spt-daemon release::tests::expired_metadata_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3643672Z         PASS [   0.064s] (1543/3346) spt-daemon release::tests::hex_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3755947Z         PASS [   0.051s] (1544/3346) spt-daemon release::tests::known_triples_project_the_registry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.3878501Z         PASS [   0.058s] (1545/3346) spt-daemon release::tests::musl_platform_registered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.4019911Z         PASS [   0.305s] (1546/3346) spt-daemon livehost::tests::reconcile_attempts_resume_for_a_registered_woken_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.4163252Z         PASS [   0.042s] (1547/3346) spt-daemon release::tests::revoked_key_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.4180301Z         PASS [   0.054s] (1548/3346) spt-daemon release::tests::production_policy_loads_fail_closed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.4251716Z         PASS [   0.064s] (1549/3346) spt-daemon release::tests::non_monotonic_version_is_rollback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.4253774Z         PASS [   0.037s] (1550/3346) spt-daemon release::tests::shipped_builtin_table_is_well_formed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.4635273Z         PASS [   0.047s] (1551/3346) spt-daemon release::tests::tampered_metadata_fails_signature
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.6511428Z         PASS [   0.249s] (1552/3346) spt-daemon livehost::tests::reconcile_converges_a_dead_relay_and_spares_a_live_or_unproven_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.7518117Z         PASS [   0.334s] (1553/3346) spt-daemon release::tests::untrusted_key_is_unknown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.7679012Z         PASS [   2.084s] (1554/3346) spt-daemon registryhost::tests::recent_projects_for_dedups_newest_first_excludes_spt_internal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.8431527Z         PASS [   0.417s] (1555/3346) spt-daemon release::tests::update_set_artifact_mismatch_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:07.8705739Z         PASS [   0.445s] (1556/3346) spt-daemon release::tests::update_set_channel_and_rollback_gates_hold
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.1169651Z         PASS [   0.653s] (1557/3346) spt-daemon release::tests::update_set_missing_platform_is_typed_rejection
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.2238269Z         PASS [   0.472s] (1558/3346) spt-daemon release::tests::update_set_tampering_breaks_whole_set_signature
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.2332174Z         PASS [   0.582s] (1559/3346) spt-daemon livehost::tests::reconcile_does_not_double_host
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.2383674Z         PASS [   0.470s] (1560/3346) spt-daemon release::tests::update_set_verifies_and_selects_platform_artifact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.2549475Z         PASS [   0.413s] (1561/3346) spt-daemon release::tests::valid_release_verifies_and_artifact_matches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.2846059Z         PASS [   0.414s] (1562/3346) spt-daemon release::tests::verify_detached_signs_raw_artifact_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.6455032Z         PASS [   0.422s] (1563/3346) spt-daemon resting::tests::apply_event_echo_failure_is_loud_but_state_persists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.6531980Z         PASS [   0.536s] (1564/3346) spt-daemon resting::tests::apply_event_auto_suspends_under_the_resolved_chain
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:08.7760194Z         PASS [   0.542s] (1565/3346) spt-daemon livehost::tests::reconcile_hosts_an_online_live_endpoint_and_drives_its_pulse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.0695360Z         PASS [   0.814s] (1566/3346) spt-daemon resting::tests::apply_event_miss_message_is_single_sourced
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.1257567Z         PASS [   0.887s] (1567/3346) spt-daemon resting::tests::apply_event_fires_echo_once_per_rest_edge_and_wake_on_wake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.3479259Z         PASS [   0.694s] (1568/3346) spt-daemon resting::tests::auto_suspend_counts_from_dormancy_onset_and_is_opt_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.3480151Z         PASS [   1.063s] (1569/3346) spt-daemon resting::tests::apply_event_no_spurious_echo_on_cold_void_suspend
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.3718931Z         PASS [   0.726s] (1570/3346) spt-daemon resting::tests::apply_event_wakes_a_cold_void_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.6858073Z         PASS [   0.910s] (1571/3346) spt-daemon livehost::tests::reconcile_keeps_driver_on_transient_read_fail_unhosts_on_dir_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.7696808Z         PASS [   0.644s] (1572/3346) spt-daemon resting::tests::deferred_held_keys_on_the_durable_rest_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.7744094Z         PASS [   0.705s] (1573/3346) spt-daemon resting::tests::daemon_rest_event_arms_gate_at_rest_edge_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.9573491Z         PASS [   0.609s] (1574/3346) spt-daemon resting::tests::effective_rest_state_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:09.9887968Z         PASS [   0.641s] (1575/3346) spt-daemon resting::tests::freshness_pull_marker_is_taken_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.0317944Z         PASS [   0.660s] (1576/3346) spt-daemon resting::tests::knob_chain_resolves_global_node_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.3524216Z         PASS [   0.666s] (1577/3346) spt-daemon livehost::tests::reconcile_leaves_a_genuinely_suspended_endpoint_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.4006874Z         PASS [  35.381s] (1578/3346) spt-daemon projwriter::tests::batched_complexity_counters_hold
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.4094368Z         PASS [   0.635s] (1579/3346) spt-daemon resting::tests::rest_record_round_trips_with_anchor_discipline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.6266761Z         PASS [   0.669s] (1580/3346) spt-daemon resting::tests::route_rest_event_contract_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.6397767Z         PASS [   0.870s] (1581/3346) spt-daemon resting::tests::rest_edges_cascade_shells_with_divergence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.7031559Z         PASS [   0.671s] (1582/3346) spt-daemon resting::tests::transition_table_matches_the_context_model
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:10.7042060Z         PASS [   0.715s] (1583/3346) spt-daemon resting::tests::suspend_with_broker_liveness_hint_edges_instead_of_no_edge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.0050740Z         PASS [   0.604s] (1584/3346) spt-daemon rollback_compat::tests::pre_ready_durable_files_are_additive_and_n1_readable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.0681829Z         PASS [   0.716s] (1585/3346) spt-daemon livehost::tests::reconcile_marks_unbound_skeleton_offline_on_session_death
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.2975154Z         PASS [   0.888s] (1586/3346) spt-daemon sealsync::tests::emit_carries_only_the_named_subnets_records
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.3096721Z         PASS [   0.683s] (1587/3346) spt-daemon sealsync::tests::enrollment_feed_converges_scoped_and_replay_noops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.5740899Z         PASS [   0.934s] (1588/3346) spt-daemon sealsync::tests::enrollment_gate_arms_drop_fail_closed_and_collision_keeps_existing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.5918424Z         PASS [   0.889s] (1589/3346) spt-daemon sealsync::tests::feed_converges_two_stores_and_replay_noops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.8683638Z         PASS [   1.164s] (1590/3346) spt-daemon sealsync::tests::non_member_subnet_record_never_materializes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:11.8953343Z         PASS [   0.890s] (1591/3346) spt-daemon sealsync::tests::trusted_collision_is_dropped_with_existing_kept
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:12.1968944Z         PASS [   0.899s] (1592/3346) spt-daemon sealsync::tests::unscoped_record_is_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:12.3745954Z         PASS [   1.306s] (1593/3346) spt-daemon livehost::tests::reconcile_reaps_orphaned_worker_and_spares_live_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:12.4591537Z         PASS [   1.149s] (1594/3346) spt-daemon sealsync::tests::untrusted_and_cross_subnet_origins_are_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:12.7436996Z         PASS [   1.169s] (1595/3346) spt-daemon seedmap::tests::put_refreshes_existing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:12.7680549Z         PASS [   1.176s] (1596/3346) spt-daemon seedmap::tests::put_then_take_consumes_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.0338956Z         PASS [   1.165s] (1597/3346) spt-daemon seedmap::tests::request_stop_barrier_holds_until_no_listener
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.0480087Z         PASS [   1.153s] (1598/3346) spt-daemon seedmap::tests::stop_op_acks_then_serve_returns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.3189519Z         PASS [   1.122s] (1599/3346) spt-daemon seedmap::tests::take_absent_is_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.3549152Z         PASS [   0.896s] (1600/3346) spt-daemon seedproofx::grace_tests::grade_truth_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.3778310Z         PASS [   1.003s] (1601/3346) spt-daemon livehost::tests::reconcile_refuses_a_woken_endpoint_with_an_unregistered_adapter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.6176602Z         PASS [   0.874s] (1602/3346) spt-daemon seedproofx::grace_tests::seed_never_appears_in_roster_gossip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.6388950Z         PASS [   0.871s] (1603/3346) spt-daemon seedproofx::grace_tests::seedxfer_frame_round_trips_and_rejects_malformed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:13.9259902Z         PASS [   0.892s] (1604/3346) spt-daemon seedproofx::roster_tests::admin_seed_rides_as_prefixed_sibling_and_routes_to_its_own_seam
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:14.1964461Z         PASS [   1.148s] (1605/3346) spt-daemon seedproofx::roster_tests::empty_roster_frame_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:14.4779197Z         PASS [   1.159s] (1606/3346) spt-daemon seedproofx::roster_tests::malformed_roster_frame_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:15.0105771Z         PASS [   1.656s] (1607/3346) spt-daemon seedproofx::roster_tests::reconcile_fills_absent_keeps_observed_and_skips_self
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:15.2899818Z         PASS [   1.912s] (1608/3346) spt-daemon livehost::tests::reconcile_routing_controllable_falls_through_to_broker_session_truth
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:15.8242577Z         PASS [   2.206s] (1609/3346) spt-daemon seedproofx::roster_tests::reconcile_refuses_mismatch_and_repairs_invalid_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:16.1023511Z         PASS [   2.463s] (1610/3346) spt-daemon seedproofx::roster_tests::reconcile_refuses_to_reinstall_the_address_that_just_failed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:16.3748003Z         PASS [   2.449s] (1611/3346) spt-daemon seedproofx::roster_tests::reconcile_replaces_a_suspect_row_with_the_validated_roster_address
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:17.1590211Z         PASS [   2.963s] (1612/3346) spt-daemon seedproofx::roster_tests::roster_frame_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:17.6931006Z         PASS [   3.215s] (1613/3346) spt-daemon servehost::tests::a_lan_status_writes_nothing_and_does_not_run_the_set_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:18.7431344Z         PASS [   3.732s] (1614/3346) spt-daemon servehost::tests::a_quoted_directory_registers_as_a_narrowed_directory_entry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.5985425Z         PASS [   4.307s] (1615/3346) spt-daemon livehost::tests::reconcile_skips_a_woken_endpoint_with_no_ledger_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.6837578Z         PASS [   3.309s] (1616/3346) spt-daemon servehost::tests::concurrent_requests_publish_distinct_entries_without_lost_updates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.7045647Z         PASS [   2.545s] (1617/3346) spt-daemon servehost::tests::removal_persists_and_does_not_delete_reference_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.7760380Z         PASS [   3.674s] (1618/3346) spt-daemon servehost::tests::adapter_lifecycle_has_one_root_and_retains_output_and_live_assignments
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.9509710Z         PASS [   2.258s] (1619/3346) spt-daemon serveprobe::tests::is_serving_subnet_honors_membership_and_detach
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.9626905Z         PASS [   1.219s] (1620/3346) spt-daemon service::tests::plan_start_prefers_service_then_spawn_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:19.9670360Z         PASS [   4.142s] (1621/3346) spt-daemon servehost::tests::a_reap_shaped_pass_cannot_clobber_a_concurrent_add
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.0251844Z         PASS [   0.341s] (1622/3346) spt-daemon service::tests::plan_stop_routes_managed_then_ipc_then_noop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.0352741Z         PASS [   0.331s] (1623/3346) spt-daemon service::tests::run_refused_only_when_windows_and_vanishing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.0448422Z         PASS [   0.269s] (1624/3346) spt-daemon service::tests::stale_bare_logon_action_classification
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.0576235Z         PASS [   0.106s] (1625/3346) spt-daemon servicehost::tests::a_bind_service_defers_at_boot_and_starts_at_its_bind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.0685799Z         PASS [   0.471s] (1626/3346) spt-daemon livehost::tests::reconcile_skips_an_offline_live_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.0696613Z         PASS [   0.103s] (1627/3346) spt-daemon servicehost::tests::a_healthy_run_resets_the_fast_exit_counter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.4351495Z         PASS [   0.390s] (1628/3346) spt-daemon servicehost::tests::a_newer_daemons_status_row_degrades_instead_of_failing_the_whole_reply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.4486612Z         PASS [   0.486s] (1629/3346) spt-daemon servicehost::tests::a_boot_service_starts_once_and_the_next_sweep_reads_already_running
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.4921125Z         PASS [   0.457s] (1630/3346) spt-daemon servicehost::tests::a_latched_option_reports_the_captured_evidence_behind_its_latch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.4951061Z         PASS [   0.438s] (1631/3346) spt-daemon servicehost::tests::a_path_verified_orphan_is_reaped_and_confirmed_by_a_post_kill_read
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.5302720Z         PASS [   0.462s] (1632/3346) spt-daemon livehost::tests::reconcile_unhosts_on_offline_transition
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.8255788Z         PASS [   0.755s] (1633/3346) spt-daemon servicehost::tests::a_service_that_exits_instantly_latches_and_stops_relaunching
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.8485064Z         PASS [   0.823s] (1634/3346) spt-daemon servicehost::tests::a_held_option_is_refused_by_a_clearing_sweep_and_starts_only_when_the_hold_releases
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.8488273Z         PASS [   0.354s] (1635/3346) spt-daemon servicehost::tests::a_soft_deregistered_adapters_service_never_starts_in_the_first_place
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:20.8506952Z         PASS [   0.416s] (1636/3346) spt-daemon servicehost::tests::a_service_that_exits_on_the_stop_marker_quiesces_cooperatively
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:21.0561337Z         PASS [   0.607s] (1637/3346) spt-daemon servicehost::tests::a_service_that_ignores_the_stop_marker_is_force_killed_and_confirmed_dead
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:21.1192142Z         PASS [   0.589s] (1638/3346) spt-daemon livehost::tests::restart_resume_gate_reruns_the_orphaned_controllable_dead_set_regardless_of_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:21.4565579Z         PASS [   0.608s] (1639/3346) spt-daemon servicehost::tests::a_status_read_mints_no_hold_flag_for_the_option_it_reports
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:21.7654427Z         PASS [   0.940s] (1640/3346) spt-daemon servicehost::tests::a_startup_fault_carries_what_the_service_said_before_it_died
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:22.0934658Z         PASS [   1.245s] (1641/3346) spt-daemon servicehost::tests::a_stood_down_supervisors_latch_outlives_its_thread_and_suppresses_the_next_sweep
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:22.5266463Z         PASS [   1.675s] (1642/3346) spt-daemon servicehost::tests::a_stop_kills_the_child_and_re_reads_liveness_after_the_kill
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:22.5797740Z         PASS [  47.229s] (1643/3346) spt-daemon projwriter::tests::parity_full_ordered_list_vs_legacy_oracle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:22.5966564Z         PASS [   1.477s] (1644/3346) spt-daemon livehost::tests::split_cleanup_clears_all_three_stamps_on_state_quirk_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:22.6320276Z         PASS [   1.576s] (1645/3346) spt-daemon servicehost::tests::a_supervised_option_no_longer_declared_still_appears_as_undeclared
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:22.9215317Z         PASS [   1.156s] (1646/3346) spt-daemon servicehost::tests::adapter_dir_substitutes_as_one_argv_element_even_with_spaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:23.3268810Z         PASS [   1.870s] (1647/3346) spt-daemon servicehost::tests::a_supervisor_whose_declaration_is_gone_is_torn_down_by_the_next_sweep
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:23.5258172Z         PASS [   1.000s] (1648/3346) spt-daemon servicehost::tests::an_exit_under_an_engaged_hold_stands_down_quiesced_instead_of_latching
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:23.5325840Z         PASS [   0.953s] (1649/3346) spt-daemon servicehost::tests::an_orphan_pid_running_a_different_image_is_never_killed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:23.6077777Z         PASS [   1.514s] (1650/3346) spt-daemon servicehost::tests::an_adapter_scoped_sweep_neither_starts_nor_stops_another_adapters_service
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:23.8055711Z         PASS [   1.209s] (1651/3346) spt-daemon pump::tests::choreography_fan_targets_skips_detached_and_self
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:24.1164239Z         PASS [   1.484s] (1652/3346) spt-daemon servicehost::tests::an_orphan_whose_image_cannot_be_verified_is_reported_not_killed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:24.3763504Z         PASS [   1.455s] (1653/3346) spt-daemon servicehost::tests::an_unknown_op_closes_the_connection_instead_of_wedging_the_caller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:24.6706814Z         PASS [   1.344s] (1654/3346) spt-daemon servicehost::tests::backoff_doubles_and_saturates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:24.9491841Z         PASS [   1.423s] (1655/3346) spt-daemon servicehost::tests::consecutive_fast_exits_latch_startup_fault_early
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:25.4941107Z         PASS [   1.961s] (1656/3346) spt-daemon servicehost::tests::empty_and_dead_orphan_records_read_apart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:25.7901902Z         PASS [   2.182s] (1657/3346) spt-daemon servicehost::tests::ensure_supervised_is_one_instance_per_option_and_refuses_an_unclear_sweep
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:25.8751281Z         PASS [   5.383s] (1658/3346) spt-daemon servicehost::tests::a_silent_daemon_times_the_caller_out_instead_of_wedging_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:26.3119860Z         PASS [   2.507s] (1659/3346) spt-daemon pump::tests::choreography_first_tick_primes_all_legs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:27.3649031Z         PASS [   3.248s] (1660/3346) spt-daemon servicehost::tests::hold_outranks_everything
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:27.9054904Z         PASS [   3.529s] (1661/3346) spt-daemon servicehost::tests::only_an_unconfirmed_kill_blocks_the_swap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.4704012Z         PASS [   4.799s] (1662/3346) spt-daemon servicehost::tests::only_the_three_ruled_opportunities_clear_the_latch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.5053491Z         PASS [   4.556s] (1663/3346) spt-daemon servicehost::tests::quiesce_engages_the_hold_before_placing_the_stop_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.5334918Z         PASS [   4.039s] (1664/3346) spt-daemon servicehost::tests::quiesce_raises_the_hold_before_it_can_place_any_stop_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.5579274Z         PASS [   3.767s] (1665/3346) spt-daemon servicehost::tests::slow_crashes_latch_the_ordinary_give_up_not_startup_fault
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.5694130Z         PASS [   3.694s] (1666/3346) spt-daemon servicehost::tests::start_trigger_decides_which_opportunities_start_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.5893029Z         PASS [   3.277s] (1667/3346) spt-daemon pump::tests::choreography_mark_after_round_stamps_only_due
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.8686447Z         PASS [   2.504s] (1668/3346) spt-daemon servicehost::tests::the_advisory_line_is_read_bounded_and_never_dressed_up_when_absent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.9600643Z         PASS [   0.455s] (1669/3346) spt-daemon servicehost::tests::the_projection_scopes_to_one_adapter_and_keeps_deregistered_declarations
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.9704045Z         PASS [   0.437s] (1670/3346) spt-daemon servicehost::tests::the_service_command_resolves_its_program_through_the_install_dir_helper
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.9774430Z         PASS [   0.420s] (1671/3346) spt-daemon servicehost::tests::the_service_spawn_scrubs_the_session_identity_env
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:29.9856398Z         PASS [   0.416s] (1672/3346) spt-daemon servicehost::tests::the_spawn_environment_carries_the_cli_capability
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.0728502Z         PASS [   0.602s] (1673/3346) spt-daemon servicehost::tests::the_projection_reports_a_live_supervisor_with_its_declaration_and_advisory
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.1353660Z         PASS [   2.230s] (1674/3346) spt-daemon servicehost::tests::the_hold_outlives_the_force_killed_supervision_it_ended
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.2572018Z         PASS [   0.667s] (1675/3346) spt-daemon pump::tests::choreography_peer_step_aborts_on_first_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.2964518Z         PASS [   0.428s] (1676/3346) spt-daemon servicehost::tests::the_spawn_environment_carries_the_per_option_identity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.4153690Z         PASS [   0.430s] (1677/3346) spt-daemon shellchan::tests::activity_frame_parses_back_through_the_public_decoder
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.4254577Z         PASS [   0.455s] (1678/3346) spt-daemon servicehost::tests::the_status_op_reports_over_the_wire_and_starts_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.6802025Z         PASS [   0.607s] (1679/3346) spt-daemon shellchan::tests::activity_frame_shape_is_the_published_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.7607347Z         PASS [   0.625s] (1680/3346) spt-daemon shellchan::tests::boundary_frame_parses_back_through_the_public_decoder
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.7630517Z         PASS [   0.506s] (1681/3346) spt-daemon pump::tests::choreography_pre_round_once_and_before_any_peer_step
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.7763038Z         PASS [   0.480s] (1682/3346) spt-daemon shellchan::tests::boundary_frame_shape_is_the_published_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.7858157Z         PASS [   0.370s] (1683/3346) spt-daemon shellchan::tests::drive_frame_shape_mirrors_sensory
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.7954546Z         PASS [   0.370s] (1684/3346) spt-daemon shellchan::tests::frames_compose_and_stamp_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.8080151Z         PASS [   0.047s] (1685/3346) spt-daemon shellchan::tests::sensory_text_file_frames_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.8435006Z         PASS [   0.883s] (1686/3346) spt-daemon servicehost::tests::the_startup_capture_is_reclaimed_once_the_run_proves_it_starts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:30.9336850Z         PASS [   0.253s] (1687/3346) spt-daemon shellchan::tests::restamp_carries_pending_rows_across_rotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.0731090Z         PASS [   0.310s] (1688/3346) spt-daemon pump::tests::choreography_wake_forces_only_that_worker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.1043179Z         PASS [   0.327s] (1689/3346) spt-daemon shellchan::tests::vocab_check_bounds_ops_and_args
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.1244098Z         PASS [   1.146s] (1690/3346) spt-daemon servicehost::tests::the_stop_marker_is_never_visible_before_the_hold_is_up
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.2209632Z         PASS [   0.435s] (1691/3346) spt-daemon shelldisc::tests::discover_across_joins_other_node_subnet_adapters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.2324391Z         PASS [   0.298s] (1692/3346) spt-daemon shellhost::tests::a_daemon_that_launches_is_the_only_launcher
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.2476729Z         PASS [   0.174s] (1693/3346) spt-daemon pump::tests::drain_read_classifies_dead_carrier_as_restart_timeout_as_quiet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.2537195Z         PASS [   0.410s] (1694/3346) spt-daemon shelldisc::tests::shell_context_renders_sections_and_empties_to_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.2696281Z         PASS [   0.166s] (1695/3346) spt-daemon shellhost::tests::a_late_ack_loser_adopts_the_winner_instead_of_spawning
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.2918996Z         PASS [   0.496s] (1696/3346) spt-daemon shelldisc::tests::discovery_lists_a_dead_pid_instance_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.3046795Z         PASS [   0.497s] (1697/3346) spt-daemon shelldisc::tests::discovery_own_plus_broadcast_gated_instantiable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.5423712Z         PASS [   0.415s] (1698/3346) spt-daemon shellhost::tests::a_post_ack_failure_never_spawns_again
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.5618645Z         PASS [   0.341s] (1699/3346) spt-daemon shellhost::tests::a_post_ack_silence_is_indeterminate_not_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.5971022Z         PASS [   0.365s] (1700/3346) spt-daemon shellhost::tests::a_pre_ack_refusal_falls_back_in_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.6015471Z         PASS [   0.354s] (1701/3346) spt-daemon pump::tests::every_route_leg_reports_a_distinct_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.6243085Z         PASS [   0.355s] (1702/3346) spt-daemon shellhost::tests::a_spawn_template_resolves_its_program_and_adapter_dir_against_the_install_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.6261008Z         PASS [   0.334s] (1703/3346) spt-daemon shellhost::tests::an_answered_refusal_never_consults_the_arbiter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.6322724Z         PASS [   0.328s] (1704/3346) spt-daemon shellhost::tests::an_unserved_socket_is_a_pre_ack_refusal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.6633545Z         PASS [   0.062s] (1705/3346) spt-daemon pump::tests::first_tick_is_due_and_never_underflows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.7002819Z         PASS [   0.103s] (1706/3346) spt-daemon shellhost::tests::close_shell_ephemeral_tears_down_and_frees_the_slot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.7223984Z         PASS [   0.469s] (1707/3346) spt-daemon shellhost::tests::a_spawn_program_the_install_dir_does_not_ship_falls_through_to_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.8773566Z         PASS [   0.335s] (1708/3346) spt-daemon shellhost::tests::close_shell_dead_child_is_prompt_and_manifestless_never_erases
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.9602439Z         PASS [   0.336s] (1709/3346) spt-daemon shellhost::tests::gateway_typed_owner_spawns_and_owns_a_shell
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:31.9784097Z         PASS [   0.315s] (1710/3346) spt-daemon pump::tests::heartbeat_writes_and_advances
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.0360095Z         PASS [   0.313s] (1711/3346) spt-daemon shellhost::tests::kill_verdict_fires_only_on_a_proven_own_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.1988141Z         PASS [   0.637s] (1712/3346) spt-daemon shellhost::tests::close_shell_delivers_pre_close_then_kills_and_flips_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.3928563Z         PASS [   0.515s] (1713/3346) spt-daemon shellhost::tests::launch_fails_closed_on_bad_templates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.6262711Z         PASS [   0.648s] (1714/3346) spt-daemon pump::tests::leg2_skips_the_just_failed_roster_address_and_falls_through_to_discovery
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.6322950Z         PASS [   0.596s] (1715/3346) spt-daemon shellhost::tests::link_key_and_frame_mac_roundtrip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.6500903Z         PASS [   0.690s] (1716/3346) spt-daemon shellhost::tests::launch_parks_token_and_bind_by_token_onlines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.7862118Z         PASS [   1.154s] (1717/3346) spt-daemon shellhost::tests::kill_shell_at_still_kills_a_matching_pair
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.9082436Z         PASS [   0.709s] (1718/3346) spt-daemon shellhost::tests::only_a_live_recorded_pid_wins_a_launch_race
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.9227110Z         PASS [   0.530s] (1719/3346) spt-daemon shellhost::tests::only_the_relay_receipt_routes_through_the_daemon
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.9785676Z         PASS [   0.352s] (1720/3346) spt-daemon pump::tests::only_a_positively_offline_node_is_read_as_absent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:32.9863369Z         PASS [   0.354s] (1721/3346) spt-daemon shellhost::tests::spawn_template_perch_dir_fills_as_one_argv_element
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.1097328Z         PASS [   1.409s] (1722/3346) spt-daemon shellhost::tests::kill_shell_at_still_kills_a_pre_stamp_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.1102651Z         PASS [   1.484s] (1723/3346) spt-daemon shellhost::tests::kill_shell_at_spares_a_recycled_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.2594749Z         PASS [   0.609s] (1724/3346) spt-daemon shellhost::tests::spawn_template_without_perch_dir_is_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.2723729Z         PASS [   0.486s] (1725/3346) spt-daemon shellhost::tests::the_arbiter_does_not_block_an_uncontested_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.2980807Z         PASS [   0.390s] (1726/3346) spt-daemon shellwake::tests::a_wake_template_resolves_its_program_and_adapter_dir_against_the_install_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.3173030Z         PASS [   0.339s] (1727/3346) spt-daemon pump::tests::peer_leg_outcome_isolates_ordinary_backs_off_carrier_timeout_still_poisons
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.3234454Z         PASS [   0.337s] (1728/3346) spt-daemon shellwake::tests::backoff_curve_doubles_to_the_cap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.6118454Z         PASS [   0.339s] (1729/3346) spt-daemon shellwake::tests::only_a_launch_from_before_this_boot_is_a_restart_casualty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.6381446Z         PASS [   0.715s] (1730/3346) spt-daemon shellwake::tests::an_owner_coming_online_after_a_spent_sweep_restores_only_its_restart_casualty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:33.6979362Z         PASS [   0.381s] (1731/3346) spt-daemon pump::tests::per_peer_backoff_doubles_caps_and_eligibility
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.0229208Z         PASS [   0.699s] (1732/3346) spt-daemon shellwake::tests::reconcile_never_adopts_a_stale_online_instance
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.0229943Z         PASS [   0.411s] (1733/3346) spt-daemon shellwake::tests::reconcile_resolves_profile_overlay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.4264097Z         PASS [   1.317s] (1734/3346) spt-daemon shellwake::tests::kill_waker_at_refuses_and_keeps_an_unparseable_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.8186627Z         PASS [   1.121s] (1735/3346) spt-daemon pump::tests::presence_state_effect_correlates_and_isolates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.8443151Z         PASS [   1.206s] (1736/3346) spt-daemon shellwake::tests::resolve_wake_leaves_a_dormant_owner_and_relaunches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.9930149Z         PASS [   1.733s] (1737/3346) spt-daemon shellwake::tests::kill_waker_at_still_kills_a_matching_pair
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:34.9977217Z         PASS [   1.700s] (1738/3346) spt-daemon shellwake::tests::reconcile_flips_watchers_with_instance_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:35.1525094Z         PASS [   1.129s] (1739/3346) spt-daemon shellwake::tests::resolve_wake_refuses_without_a_reachable_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:35.2965980Z         PASS [   2.186s] (1740/3346) spt-daemon shellwake::tests::kill_waker_at_spares_a_recycled_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:35.4742679Z         PASS [   0.656s] (1741/3346) spt-daemon pump::tests::push_feed_retires_its_own_row_after_successful_fin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:35.7626819Z         PASS [   1.336s] (1742/3346) spt-daemon shellwake::tests::the_boot_sweep_restores_only_the_restart_casualty_of_an_online_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:35.8031410Z         PASS [   0.810s] (1743/3346) spt-daemon shellwake::tests::the_heal_writes_the_truth_once_and_then_leaves_the_record_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:36.0264938Z         PASS [   2.001s] (1744/3346) spt-daemon shellwake::tests::resolve_wake_revives_a_suspended_owner_without_double_launch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:36.0343838Z         PASS [   1.037s] (1745/3346) spt-daemon shellwake::tests::the_wake_catalog_shares_the_spawn_vocabulary_but_is_not_the_same_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:36.0581761Z         PASS [   0.906s] (1746/3346) spt-daemon shellwake::tests::waker_record_round_trips_and_reads_the_legacy_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:36.5998298Z         PASS [   1.125s] (1747/3346) spt-daemon pump::tests::push_target_is_the_full_roster_minus_self_and_tombstoned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:36.9030427Z         PASS [   1.100s] (1748/3346) spt-daemon stderrlog::tests::path_under_home_and_stamp_is_legible
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:37.4472053Z         PASS [   1.421s] (1749/3346) spt-daemon stderrlog::tests::roll_keeps_bounded_generations_and_preserves_current
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:37.7270683Z         PASS [   1.964s] (1750/3346) spt-daemon shellwake::tests::watcher_opcode_exit_fires_resolution_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:37.7274413Z         PASS [   1.693s] (1751/3346) spt-daemon stderrlog::tests::roll_with_keep_one_clears_without_backup
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:38.2655451Z         PASS [   2.207s] (1752/3346) spt-daemon stderrlog::tests::should_roll_at_or_over_cap_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:39.0574396Z         PASS [   2.457s] (1753/3346) spt-daemon pump::tests::refresh_self_addr_rewrites_only_on_a_real_change
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:40.6036411Z         PASS [   3.701s] (1754/3346) spt-daemon sync::tests::gate_decision_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:40.7370854Z         PASS [   5.440s] (1755/3346) spt-daemon shellwake::tests::watcher_crash_exits_respawn_then_give_up
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.5541469Z         PASS [   0.950s] (1756/3346) spt-daemon translation::tests::inject_floor_buffers_while_held_then_drains_in_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.5584853Z         PASS [   2.501s] (1757/3346) spt-daemon pump::tests::resolve_submit_addr_walks_the_route_chain
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.8147548Z         PASS [   1.078s] (1758/3346) spt-daemon translation::tests::key_cmd_parses_each_wire_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.8346899Z         PASS [   4.107s] (1759/3346) spt-daemon test_home::tests::with_home_and_testhome_serialize_on_the_same_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.8499105Z         PASS [   0.296s] (1760/3346) spt-daemon translation::tests::key_to_bytes_send_keys_map
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9555786Z         PASS [   0.397s] (1761/3346) spt-daemon pump::tests::startup_reconcile_heals_suspect_rows_and_migrates_invalid_ones
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9584764Z         PASS [   0.144s] (1762/3346) spt-daemon translation::tests::to_binary_serializes_to_wire_and_input_is_content_free
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9614936Z         PASS [   0.127s] (1763/3346) spt-daemon transport::tests::local_socket_handshake_and_frame_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9722713Z         PASS [   0.122s] (1764/3346) spt-daemon transport::tests::local_socket_rejects_wrong_role
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9789076Z         PASS [   3.713s] (1765/3346) spt-daemon translation::tests::flagged_spawn_still_starts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9838005Z         PASS [   0.028s] (1766/3346) spt-daemon pump::tests::supervisor_backoff_doubles_caps_and_resets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:41.9893051Z         PASS [   0.031s] (1767/3346) spt-daemon tunnelhub::tests::clear_evicts_the_entry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.2545034Z         PASS [   0.293s] (1768/3346) spt-daemon tunnelhub::tests::dead_generation_stream_is_never_surfaced
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.2845425Z         PASS [   0.312s] (1769/3346) spt-daemon tunnelhub::tests::entries_are_per_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3217890Z         PASS [   0.343s] (1770/3346) spt-daemon tunnelhub::tests::relink_overwrites_the_entry_with_a_fresh_generation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3357689Z         PASS [   0.346s] (1771/3346) spt-daemon tunnelhub::tests::resolve_serves_each_end_under_the_opening_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3414949Z         PASS [   0.087s] (1772/3346) spt-daemon update::tests::apply_refuses_non_brain_only_plan
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3493803Z         PASS [   0.065s] (1773/3346) spt-daemon update::tests::classify_brain_only_when_broker_hosts_new_brain
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3590893Z         PASS [   0.037s] (1774/3346) spt-daemon update::tests::classify_broker_breaking_on_resource_abi_change
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3593221Z         PASS [   0.376s] (1775/3346) spt-daemon pump::tests::supervisor_restarts_a_panicking_pump_until_stop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3649314Z         PASS [   0.029s] (1776/3346) spt-daemon update::tests::classify_broker_compatible_when_brain_below_floor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3917867Z         PASS [   0.050s] (1777/3346) spt-daemon update::tests::plan_verified_produces_no_plan_for_a_rejected_release
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3950448Z         PASS [   0.036s] (1778/3346) spt-daemon pump::tests::unresolved_splits_the_refused_roster_address_from_having_none_at_all
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.3969488Z         PASS [   0.038s] (1779/3346) spt-daemon update::tests::plan_verified_yields_a_plan_for_a_valid_release
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.4074724Z         PASS [   0.058s] (1780/3346) spt-daemon update::tests::plan_verified_update_set_uses_selected_platform_spec
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.7261783Z         PASS [   0.331s] (1781/3346) spt-daemon pump::tests::wake_forces_a_round_regardless_of_cadence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.7487876Z         PASS [   0.023s] (1782/3346) spt-daemon wan::tests::a_plain_msg_mentioning_a_path_asks_for_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:42.9228372Z         PASS [   0.558s] (1783/3346) spt-daemon wan::tests::a_burst_from_one_peer_surfaces_one_warning
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:43.3354751Z         PASS [   0.413s] (1784/3346) spt-daemon wan::tests::an_admitted_arrival_records_contact_and_a_refused_one_does_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.4362840Z         PASS [   2.044s] (1785/3346) spt-daemon wan::tests::a_forged_inbound_mnemonics_attribute_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.4457744Z         PASS [   2.049s] (1786/3346) spt-daemon wan::tests::a_forged_inbound_trust_warning_attribute_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.5045861Z         PASS [   2.097s] (1787/3346) spt-daemon wan::tests::a_perch_with_no_readable_record_warns_every_time
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.5349516Z         PASS [   1.786s] (1788/3346) spt-daemon wan::tests::a_typed_envelope_body_still_draws_the_separate_warning
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.6033843Z         PASS [   1.268s] (1789/3346) spt-daemon wan::tests::an_admitted_strangers_warning_rides_the_message_it_is_about
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.8176276Z         PASS [   0.372s] (1790/3346) spt-daemon wan::tests::denied_msg_is_refused_and_absence_is_noperch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:44.9387449Z         PASS [   0.502s] (1791/3346) spt-daemon wan::tests::an_undelivered_warning_claims_nothing_and_warns_again
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.0106754Z         PASS [   0.506s] (1792/3346) spt-daemon wan::tests::no_binary_wan_arrival_spools_not_pty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.0842615Z         PASS [   0.549s] (1793/3346) spt-daemon wan::tests::only_a_custody_confirmed_round_trip_records_the_reply_correlation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.1180799Z         PASS [   0.515s] (1794/3346) spt-daemon wan::tests::only_a_daemon_stamped_send_records_the_reply_correlation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.3926779Z         PASS [   0.575s] (1795/3346) spt-daemon wan::tests::origin_user_backed_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.4182181Z         PASS [   0.479s] (1796/3346) spt-daemon wan::tests::the_ingress_helper_never_writes_into_the_senders_own_attributes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.6867175Z         PASS [   0.676s] (1797/3346) spt-daemon wan::tests::the_ingress_helper_returns_without_waiting_for_the_peer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:45.7206995Z         PASS [   0.636s] (1798/3346) spt-daemon wan::tests::the_recorded_row_is_the_key_the_receiving_leg_reads
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:46.0268745Z         PASS [   0.909s] (1799/3346) spt-daemon wan::tests::the_stamp_not_the_from_is_the_sender_subject
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:46.2850641Z         PASS [   0.892s] (1800/3346) spt-daemon wan::tests::the_three_redemption_outcomes_stay_distinct
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:46.3188395Z         PASS [   0.901s] (1801/3346) spt-daemon wan::tests::wan_ingress_empty_from_renders_origin_node_label
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:46.8745930Z         PASS [   1.188s] (1802/3346) spt-daemon wan::tests::wan_outcome_token_round_trips_and_unknown_is_noreply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:47.1582236Z         PASS [   1.437s] (1803/3346) spt-daemon wan::tests::wan_user_msg_restamped_unless_origin_user_backed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:47.4491748Z         PASS [   1.422s] (1804/3346) spt-daemon webproxy::tests::response_parts_reads_a_full_body_without_a_runtime
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:47.7311346Z         PASS [   1.446s] (1805/3346) spt-daemon webproxy::tests::route_for_prefers_cache_then_roster_then_bare_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:47.9988259Z         PASS [   1.680s] (1806/3346) spt-daemon webproxy::tests::unavailable_names_the_node_and_refused_names_the_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:48.2819962Z         PASS [   1.407s] (1807/3346) spt-daemon webproxy::tests::under_own_prefix_replaces_only_the_label
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:48.5784689Z         PASS [   1.420s] (1808/3346) spt-daemon webserve::tests::a_scoped_entry_is_still_served_on_loopback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:48.8802302Z         PASS [   1.431s] (1809/3346) spt-daemon webserve::tests::adapter_facet_and_disambiguated_alias_share_one_contained_reference
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:49.1283273Z         PASS [   1.397s] (1810/3346) spt-daemon webserve::tests::corrupt_registry_is_loud_but_does_not_disable_unrelated_facets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:49.6835758Z         PASS [   1.685s] (1811/3346) spt-daemon webserve::tests::directory_references_reject_traversal_and_track_current_children
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:50.2271979Z         PASS [   1.945s] (1812/3346) spt-daemon webserve::tests::docs_aliases_preserve_existing_and_new_bundle_roots
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:50.5004086Z         PASS [   1.922s] (1813/3346) spt-daemon webserve::tests::index_escapes_html_encodes_urls_and_reports_real_source_paths
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:51.0506705Z         PASS [   2.170s] (1814/3346) spt-daemon webserve::tests::materialize_reads_a_file_plan_through_the_range
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:52.1467466Z         PASS [   3.018s] (1815/3346) spt-daemon webserve::tests::node_routing_reserves_facets_without_registry_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:52.9009771Z         PASS [   3.217s] (1816/3346) spt-daemon webserve::tests::peer_paths_proxy_by_facet_and_unknown_labels_stay_docs_404
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:53.6837382Z         PASS [   3.456s] (1817/3346) spt-daemon webserve::tests::range_grammar_partial_suffix_clamp_and_unsatisfiable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:54.5109487Z         PASS [   4.010s] (1818/3346) spt-daemon webserve::tests::references_observe_edits_deletion_and_registry_removal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:55.8151651Z         PASS [  18.367s] (1819/3346) spt-daemon sync::tests::reconcile_driver_structurally_excludes_live_role
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:55.8203020Z         PASS [   4.770s] (1820/3346) spt-daemon webserve::tests::served_subject_is_the_entrys_origin_or_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:55.8957014Z         PASS [   3.749s] (1821/3346) spt-daemon webserve::tests::the_adapter_docs_segment_serves_docs_dir_and_never_falls_through
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:55.9075583Z         PASS [   3.006s] (1822/3346) spt-daemon webserve::tests::the_adapter_facet_root_still_serves_the_core_owned_web_root
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:56.2754224Z         PASS [   2.592s] (1823/3346) spt-daemon::access whitelist_refuses_exempts_replies_and_admits_listed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:56.3070574Z         PASS [   0.032s] (1824/3346) spt-daemon::attach_resize_capture the_pre_window_renders_identically_at_both_widths
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:56.3102516Z         PASS [   0.414s] (1825/3346) spt-daemon::attach_resize_capture the_grid_alone_reproduces_the_authoritative_screen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:57.8080166Z         PASS [   3.297s] (1826/3346) spt-daemon::attach_idempotent_replay a_same_conn_equal_gen_replay_preserves_the_seat_and_replays_no_history
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:57.9545306Z         PASS [  20.227s] (1827/3346) spt-daemon sync::tests::select_refs_scopes_two_tiers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:58.8370213Z         PASS [   1.029s] (1828/3346) spt-daemon::brain_decouple non_draining_controller_stall_evict_releases_writer_and_connection
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:59.3141287Z         PASS [   0.477s] (1829/3346) spt-daemon::brain_read_deadline split_carrier_still_times_out_at_its_deadline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:59.5831646Z         PASS [   0.269s] (1830/3346) spt-daemon::brain_read_deadline whole_carrier_does_not_silently_ignore_its_read_deadline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:59.6175111Z         PASS [   0.033s] (1831/3346) spt-daemon::brain_read_deadline whole_carrier_without_a_deadline_still_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:59.7622029Z         PASS [   1.808s] (1832/3346) spt-daemon::brain_decouple suspended_brain_controller_is_stall_evicted_take_completes_viewer_ticks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:59.9164887Z         PASS [   3.609s] (1833/3346) spt-daemon::attach_resize_repaint a_controller_attaching_at_a_different_geometry_ends_on_the_authoritative_screen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:41:59.9442308Z         PASS [   3.634s] (1834/3346) spt-daemon::attach_resize_repaint the_oracle_detects_a_seeded_geometry_mismatch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:00.5931875Z         PASS [   4.686s] (1835/3346) spt-daemon::attach_resize_capture the_oracle_detects_a_seeded_geometry_mismatch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:00.5932758Z         PASS [   4.773s] (1836/3346) spt-daemon::attach_resize_capture the_field_client_model_reproduces_the_captured_scrap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:00.6383025Z         PASS [   4.823s] (1837/3346) spt-daemon::attach_resize_capture the_captured_attach_and_resize_ends_on_the_authoritative_screen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.0043378Z         PASS [   0.411s] (1838/3346) spt-daemon::digest_cross_node a_busy_endpoints_trailing_turn_crosses_the_wire_unsealed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.0089214Z         PASS [   1.093s] (1839/3346) spt-daemon::control_stamp_lifetime converge_stamps_on_sessions_poll_after_late_bind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.2792725Z         PASS [   0.641s] (1840/3346) spt-daemon::digest_cross_node an_endpoint_with_no_buffer_answers_no_digest_not_a_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.3293479Z         PASS [   1.567s] (1841/3346) spt-daemon::control_stamp_lifetime control_reap_clears_sticky_stamps_no_session_online_and_boot_sweep
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.4129631Z         PASS [   1.469s] (1842/3346) spt-daemon::control_stamp_lifetime reap_clears_control_and_viewer_stamps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.5299877Z         PASS [   0.526s] (1843/3346) spt-daemon::digest_cross_node an_unbounded_carrier_is_refused_by_name_instead_of_wedging_the_caller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:01.9727364Z         PASS [   0.693s] (1844/3346) spt-daemon::digest_cross_node dispatcher_serves_a_cross_node_digest_pull_undriven_with_a_sealed_turn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:02.0678903Z         PASS [   0.655s] (1845/3346) spt-daemon::docs_server_e2e docsless_home_answers_loud_pointer_and_stays_bound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:02.1001686Z         PASS [   0.570s] (1846/3346) spt-daemon::docs_server_e2e serves_published_surface_and_refuses_escapes_and_writes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:02.2135426Z         PASS [   0.884s] (1847/3346) spt-daemon::digest_cross_node the_address_gate_refuses_an_unwhitelisted_caller_with_no_reply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:02.2304900Z         PASS [   1.637s] (1848/3346) spt-daemon::digest_cross_node a_silent_peer_is_bounded_and_named_rather_than_hanging_the_caller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:02.6980868Z         PASS [   0.630s] (1849/3346) spt-daemon::er_inbound_local_notify an_uninvited_notify_addressed_at_the_engine_room_is_refused_and_never_spooled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:02.7345934Z         PASS [   0.504s] (1850/3346) spt-daemon::lan_bootstrap_e2e the_set_gate_refuses_by_name_and_serves_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:03.4730224Z         PASS [   2.464s] (1851/3346) spt-daemon::digest_cross_node an_unknown_family_is_dropped_without_a_fin_so_the_caller_only_sees_silence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:03.6168048Z         PASS [   0.919s] (1852/3346) spt-daemon::legacy_resident_sweep_e2e legacy_resident_sweep_reaps_match_and_declines_control
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:04.1397259Z         PASS [   0.523s] (1853/3346) spt-daemon::netbroker brain_dials_second_broker_over_loopback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:04.4446080Z         PASS [   0.972s] (1854/3346) spt-daemon::mesh staggered_offliner_still_meshes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:04.4975967Z         PASS [   0.358s] (1855/3346) spt-daemon::netbroker broker_owns_endpoint_and_reports_status
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:04.8176223Z         LEAK [   2.717s] (1856/3346) spt-daemon::false_promote ready_candidate_does_not_promote_until_the_wedged_old_gen_conn_drains
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:05.5364451Z         PASS [  30.692s] (1857/3346) spt-daemon shellwake::tests::the_heal_fires_yet_a_same_boot_corpse_is_never_adopted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:05.5411989Z         PASS [   1.044s] (1858/3346) spt-daemon::netbroker netless_broker_probes_gracefully
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:05.9410366Z         PASS [   1.123s] (1859/3346) spt-daemon::netbroker replayed_dial_op_is_deduped_across_brain_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:06.1607093Z         PASS [   0.624s] (1860/3346) spt-daemon::netbroker unknown_net_frame_is_reported_not_fatal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:06.5310972Z         PASS [   4.317s] (1861/3346) spt-daemon::lan_bootstrap_e2e bootstrap_serves_the_applied_set_isolates_bad_triples_and_stops_for_real
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:06.9551004Z         PASS [   2.510s] (1862/3346) spt-daemon::netbroker dial_to_a_black_holing_peer_fails_with_a_bounded_ordinary_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:07.0729727Z         PASS [   1.532s] (1863/3346) spt-daemon::netstream receiver_brain_restart_is_gapless_and_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:07.1929312Z         PASS [   1.252s] (1864/3346) spt-daemon::netstream sender_brain_restart_redrive_is_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:07.7515624Z         PASS [   1.591s] (1865/3346) spt-daemon::notif_drain_validity a_dismissed_rows_spooled_copy_delivers_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:08.5103237Z         PASS [   1.979s] (1866/3346) spt-daemon::notif_drain_validity a_live_rows_spooled_copy_still_delivers_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:09.3176336Z         PASS [   2.362s] (1867/3346) spt-daemon::notif_drain_validity ordinary_messages_are_untouched_by_the_validity_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:10.7378712Z         PASS [   3.665s] (1868/3346) spt-daemon::notif_quiet_delivery notif_first_fire_is_quiet_even_to_a_live_relay_rollback_included
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:11.5849890Z         PASS [   4.392s] (1869/3346) spt-daemon::notif_update_row_retire a_keyless_legacy_update_row_is_retired_on_the_version_we_already_run
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:11.6742933Z         PASS [   3.923s] (1870/3346) spt-daemon::notif_update_row_retire a_swept_dismissal_replicates_to_a_peer_through_the_merge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:11.9939724Z         PASS [   0.409s] (1871/3346) spt-daemon::pairjoin pair_code_submit_for_an_unknown_session_fails_cleanly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.1761474Z         PASS [   3.666s] (1872/3346) spt-daemon::notifsync node_scoped_stays_home_and_migration_dismissal_reaches_the_peer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.2114376Z         PASS [   2.894s] (1873/3346) spt-daemon::notifsync notif_spools_converge_over_the_wire_and_dismiss_replicates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.2360605Z         PASS [   0.562s] (1874/3346) spt-daemon::presence presence_history_replays_from_zero_for_a_late_subscriber
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.2373292Z         PASS [   1.499s] (1875/3346) spt-daemon::pairjoin daemon_hosted_responder_pairs_a_loopback_joiner_end_to_end
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.5011920Z         PASS [   0.507s] (1876/3346) spt-daemon::presence presence_survives_brain_restart_with_cursor_resume
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.5883791Z         PASS [   9.854s] (1877/3346) spt-daemon::mesh all_online_star_a_reaches_c_b_never_relays
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.7050125Z         PASS [   0.493s] (1878/3346) spt-daemon::propagate rollback_offer_is_rejected_before_any_fetch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.8600356Z         PASS [   0.359s] (1879/3346) spt-daemon::propagate untrusted_origin_gets_no_offer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.8924778Z         PASS [   0.655s] (1880/3346) spt-daemon::propagate tampered_relay_artifact_is_rejected_and_never_staged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:12.9757408Z         PASS [   0.799s] (1881/3346) spt-daemon::propagate chain_self_heal_propagates_with_gate_at_every_hop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:13.1343710Z         PASS [   0.898s] (1882/3346) spt-daemon::propagate status_query_drives_the_convergence_table_end_to_end
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:13.1473804Z         PASS [   0.559s] (1883/3346) spt-daemon::propagate update_set_carries_and_verifies_the_musl_artifact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:13.8790509Z         PASS [   1.174s] (1884/3346) spt-daemon::propagate update_set_propagates_selected_platform_artifact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:13.9131644Z         PASS [   1.021s] (1885/3346) spt-daemon::psyche_context_file_e2e large_preload_mind_rides_the_context_file_not_argv
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:14.0030538Z         PASS [   1.143s] (1886/3346) spt-daemon::propagate worker_dismisses_the_staged_notif_when_the_running_image_catches_up
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:14.3025908Z         PASS [   1.168s] (1887/3346) spt-daemon::psyche_event_turn_e2e pulse_fire_runs_one_bounded_psyche_turn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:15.3875669Z         PASS [  15.771s] (1888/3346) spt-daemon::commune_io_events_int a_consumed_commune_and_a_failed_ingest_reach_a_shell_as_distinct_events
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:15.9079678Z         PASS [  13.935s] (1889/3346) spt-daemon::echo_direct_route_int the_echo_brief_reaches_a_shell_as_a_commune_frame_and_writes_no_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:15.9774775Z         PASS [   3.002s] (1890/3346) spt-daemon::psyche_event_turn_e2e host_one_spawns_no_resident_psyche
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:15.9884901Z         PASS [   0.601s] (1891/3346) spt-daemon::pump pump_w2_presence_reaches_only_the_subscribing_carrier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:16.6041369Z         PASS [   2.725s] (1892/3346) spt-daemon::psyche_residency_expectation_e2e failing_psyche_never_unhosts_or_destamps_the_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:16.6416081Z         PASS [   0.734s] (1893/3346) spt-daemon::pumpdeadline broker_image_query_until_times_out_when_responder_is_silent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:16.6704037Z         PASS [   0.693s] (1894/3346) spt-daemon::pumpdeadline pump_brain_times_out_when_broker_never_replies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:16.7144975Z         PASS [   0.726s] (1895/3346) spt-daemon::pumpdeadline pump_reply_read_reclassifies_a_silent_peer_within_the_budget
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.1591028Z         PASS [   0.555s] (1896/3346) spt-daemon::replicate registries_converge_over_the_wire_and_the_lease_holds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.2004032Z         PASS [   0.559s] (1897/3346) spt-daemon::reseed benign_offliner_is_reseeded_across_a_rotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.2004647Z         PASS [   0.530s] (1898/3346) spt-daemon::reseed grace_push_carries_the_admin_seed_as_a_prefixed_sibling
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.3598080Z         PASS [   0.201s] (1899/3346) spt-daemon::resume_custody_aba matched_custody_pair_still_defers_the_reconcile
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.5584723Z         PASS [   0.358s] (1900/3346) spt-daemon::rosterprop roster_exchange_never_leaks_unproven_subnets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.7470105Z         PASS [   0.546s] (1901/3346) spt-daemon::resume_custody_aba recycled_pid_custody_offlines_the_row_and_self_heals_the_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.7911998Z         PASS [   0.431s] (1902/3346) spt-daemon::rosterprop roster_propagates_transitively_on_connect
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:17.8023014Z         PASS [   0.244s] (1903/3346) spt-daemon::seedproofx both_members_prove_and_cache_the_shared_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:18.2322886Z         PASS [   0.441s] (1904/3346) spt-daemon::seedproofx proven_verdict_is_the_shared_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:19.2948189Z         PASS [   2.580s] (1905/3346) spt-daemon::reseed revoked_node_is_denied_and_never_reseeded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:19.3200346Z         PASS [   1.088s] (1906/3346) spt-daemon::servicehost_supervision_e2e a_wedged_service_is_force_killed_with_the_descendant_it_left_behind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:19.7877077Z         PASS [   5.785s] (1907/3346) spt-daemon::pump pump_survives_a_black_holing_peer_heartbeat_advances_no_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:20.2104463Z         PASS [   2.463s] (1908/3346) spt-daemon::seedproofx no_shared_subnet_is_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:20.2121612Z         PASS [   2.410s] (1909/3346) spt-daemon::seedproofx wrong_seed_is_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:20.7691808Z         PASS [   1.449s] (1910/3346) spt-daemon::servicehost_supervision_e2e repeated_instant_exits_report_a_startup_fault_carrying_the_services_own_words
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:20.9624325Z         PASS [   1.175s] (1911/3346) spt-daemon::servicehost_supervision_e2e the_published_stop_marker_earns_a_cooperative_exit_inside_grace
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:21.4433989Z         PASS [   2.148s] (1912/3346) spt-daemon::servicehost_supervision_e2e bits_swap_under_the_hold_and_the_new_ones_come_up_on_release
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:23.0943950Z         PASS [   2.884s] (1913/3346) spt-daemon::shell_kill_auth kill_shell_at_spares_a_stranger_wearing_a_recycled_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:33.2636306Z         PASS [  18.961s] (1914/3346) spt-daemon::pump pump_w2_live_peer_advertised_amid_dead_peers_no_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:33.4657759Z         PASS [  10.371s] (1915/3346) spt-daemon::wake_single_flight a_winner_slower_than_the_retired_deadline_is_still_waited_on
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:33.9604373Z         PASS [  12.517s] (1916/3346) spt-daemon::wake_single_flight a_holder_stalled_past_its_ceiling_is_taken_over_rather_than_stranding_the_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:36.5597991Z         PASS [   3.296s] (1917/3346) spt-daemon::wake_single_flight two_concurrent_wakes_for_one_endpoint_spawn_exactly_one_launch_tree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:39.8519412Z         PASS [   3.292s] (1918/3346) spt-daemon::wanmsg wan_user_msg_from_unproven_origin_is_restamped_at_the_funnel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:40.0239697Z         PASS [   6.063s] (1919/3346) spt-daemon::wanmsg wan_message_lands_exactly_once_under_transport_origin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:40.0347883Z         PASS [   6.569s] (1920/3346) spt-daemon::wanmsg receiver_restart_replays_feed_without_double_delivery
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:40.3955111Z         PASS [   0.543s] (1921/3346) spt-daemon::webserve_e2e production_listener_exposes_only_the_adapter_web_root_through_both_urls
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:41.1963804Z         PASS [   1.172s] (1922/3346) spt-daemon::webserve_e2e production_listener_redirects_directory_roots_before_serving_relative_links
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:41.4984084Z         PASS [   1.464s] (1923/3346) spt-daemon::webserve_e2e production_listener_routes_nodes_docs_and_live_registry_references
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:42.0665501Z         PASS [   1.671s] (1924/3346) spt-daemon::webserve_e2e subnet_node_labels_shadow_only_the_docs_compat_alias_while_members
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:42.8437708Z         PASS [   1.647s] (1925/3346) spt-daemon::webserve_e2e the_adapter_docs_facet_serves_over_the_production_listener
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.1323147Z         PASS [   1.634s] (1926/3346) spt-live context::tests::direct_always_writes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.1999487Z         PASS [   0.356s] (1927/3346) spt-live context::tests::llm_over_llm_writes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.2221970Z         PASS [   0.090s] (1928/3346) spt-live context::tests::llm_past_window_writes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.2434852Z         PASS [   1.177s] (1929/3346) spt-live context::tests::identified_write_stamps_advancing_vector
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.4902506Z         PASS [   0.290s] (1930/3346) spt-live context::tests::llm_within_window_suppressed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.5386711Z         PASS [   0.316s] (1931/3346) spt-live context::tests::pre_identity_write_stamps_v1_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:43.5875667Z         PASS [   0.344s] (1932/3346) spt-live context::tests::write_context_suppresses_stale_llm
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.2663582Z         PASS [   0.776s] (1933/3346) spt-live digest::tests::extractor_timeout_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.3286442Z         PASS [   0.790s] (1934/3346) spt-live digest::tests::extracts_records_from_the_located_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.3737213Z         PASS [   0.786s] (1935/3346) spt-live digest::tests::falls_back_to_history_locate_template
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.6246414Z         PASS [   0.296s] (1936/3346) spt-live digest::tests::missing_source_file_is_read_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.6540471Z         PASS [   0.280s] (1937/3346) spt-live digest::tests::no_source_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.6892629Z         PASS [   0.422s] (1938/3346) spt-live digest::tests::fetcher_digest_lets_the_adapter_locate_and_emit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.7662687Z         PASS [   0.142s] (1939/3346) spt-live echo::tests::echo_child_is_recursion_guarded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:44.7689723Z         PASS [   0.115s] (1940/3346) spt-live echo::tests::echo_consumes_history_and_returns_stamped_brief
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.0174633Z         PASS [   0.251s] (1941/3346) spt-live echo::tests::provenance_is_stamped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.0357293Z         PASS [   0.347s] (1942/3346) spt-live echo::tests::echo_nonzero_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.1691849Z         PASS [   0.152s] (1943/3346) spt-live history::tests::fetcher_yields_records
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.4221501Z         PASS [   0.253s] (1944/3346) spt-live history::tests::missing_fetcher_field_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.4649351Z         PASS [   0.043s] (1945/3346) spt-live history::tests::native_missing_log_is_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.4667275Z         PASS [   0.431s] (1946/3346) spt-live history::tests::locate_normalize_reads_and_normalizes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.4969213Z         PASS [   0.032s] (1947/3346) spt-live history::tests::native_reads_logged_records
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.5022279Z         PASS [   0.036s] (1948/3346) spt-live ingest::tests::a_failed_ingest_returns_err_and_leaves_the_drop_in_place
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:45.6221208Z         LEAK [   0.853s] (1949/3346) spt-live history::tests::fetcher_timeout_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:46.0910001Z         PASS [  32.178s] (1950/3346) spt-daemon::pump pump_and_dispatch_self_drive_the_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:46.6648077Z         PASS [   1.162s] (1951/3346) spt-live ingest::tests::an_uncommittable_project_slice_is_preserved_not_consumed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:53.9501687Z         PASS [   7.285s] (1952/3346) spt-live ingest::tests::commune_drop_is_ingested_and_deleted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:53.9746854Z         PASS [  40.827s] (1953/3346) spt-daemon::psyche_real_bound_kill_soft_budget_e2e real_bound_kill_spends_the_soft_budget_and_never_the_hard_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:54.5764180Z         PASS [   8.954s] (1954/3346) spt-live ingest::tests::both_drops_ingested
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:54.7345032Z         PASS [   9.238s] (1955/3346) spt-live ingest::tests::a_lock_timeout_fails_the_ingest_and_deletes_no_drop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:55.1938041Z         PASS [  34.425s] (1956/3346) spt-daemon::sync torn_pull_recovers_by_repulling
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:55.5041864Z         PASS [   9.413s] (1957/3346) spt-live ingest::tests::commune_and_signoff_both_deferred_signoff_supersedes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:42:55.7677707Z         PASS [   0.263s] (1958/3346) spt-live ingest::tests::no_drops_is_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:07.1848026Z         PASS [  13.234s] (1959/3346) spt-live ingest::tests::empty_project_id_preserves_project_slice_drop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:07.2287689Z         PASS [  12.652s] (1960/3346) spt-live ingest::tests::ingest_never_writes_the_live_role
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:07.2403468Z         PASS [  12.046s] (1961/3346) spt-live ingest::tests::marker_only_project_slice_is_not_preserved
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:07.2430539Z         PASS [  12.509s] (1962/3346) spt-live ingest::tests::ingest_strips_checkpoint_sentinel_from_durable_tier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:07.5371690Z         PASS [   0.294s] (1963/3346) spt-live ingest::tests::strip_checkpoint_markers_removes_tokens_keeps_text
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:07.5774223Z         PASS [  13.603s] (1964/3346) spt-live ingest::tests::empty_project_id_skips_project_tier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:10.1031950Z         PASS [   2.863s] (1965/3346) spt-live ingest::tests::stale_commune_suppressed_but_deleted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:10.5073287Z         PASS [  14.740s] (1966/3346) spt-live ingest::tests::preserved_drop_retry_is_idempotent_then_commits_on_resolve
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:10.7724045Z         PASS [   0.265s] (1967/3346) spt-live inject::tests::long_body_is_capped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:10.8272096Z         PASS [   0.055s] (1968/3346) spt-live inject::tests::missing_perch_is_best_effort
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:10.8854050Z         PASS [   0.058s] (1969/3346) spt-live inject::tests::tap_appends_a_context_entry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.1565152Z         PASS [   0.271s] (1970/3346) spt-live outbound::tests::empty_body_parses_to_empty_intent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.1948090Z         PASS [   0.038s] (1971/3346) spt-live outbound::tests::malformed_and_chunk_lines_are_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.2495022Z         PASS [   0.055s] (1972/3346) spt-live outbound::tests::non_authorable_types_are_ignored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.2779258Z         PASS [   0.028s] (1973/3346) spt-live outbound::tests::parses_reply_and_notify_in_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.3025591Z         PASS [   0.025s] (1974/3346) spt-live outbound::tests::prose_only_yields_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.3093581Z         PASS [   3.772s] (1975/3346) spt-live ingest::tests::the_consumed_drops_content_is_carried_byte_for_byte
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.5728559Z         PASS [   0.270s] (1976/3346) spt-live outbound::tests::spoofed_routing_attrs_are_unrepresentable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.6060277Z         PASS [   0.297s] (1977/3346) spt-live pulse::tests::a_fresh_turn_sentinel_waits_and_is_left_in_place
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.6505537Z         PASS [   0.078s] (1978/3346) spt-live pulse::tests::an_aged_turn_sentinel_fires_once_and_clears
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.6647877Z         PASS [   0.058s] (1979/3346) spt-live pulse::tests::an_unreadable_age_fails_open_and_fires
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.6853767Z         PASS [   0.021s] (1980/3346) spt-live pulse::tests::echo_gate_fires_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:11.7009041Z         PASS [   0.016s] (1981/3346) spt-live pulse::tests::the_edge_arm_fires_immediately_and_the_arms_are_independent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:13.5747057Z         PASS [   6.390s] (1982/3346) spt-live ingest::tests::project_tier_precedence_suppression_under_resolvable_id_still_deletes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:13.6334857Z         PASS [   0.059s] (1983/3346) spt-live pulse::tests::tick_reports_idle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:14.3673990Z         PASS [   7.139s] (1984/3346) spt-live ingest::tests::signoff_deferred_project_preserves_into_commune_pending
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:16.7607319Z         PASS [   9.183s] (1985/3346) spt-live ingest::tests::two_slice_drop_routes_per_tier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:17.4132471Z         PASS [   5.712s] (1986/3346) spt-live pulse::tests::tick_ingests_drops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:18.9076360Z         PASS [   8.804s] (1987/3346) spt-live ingest::tests::untagged_and_suppressed_drops_still_delete
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:19.8793149Z         PASS [   5.512s] (1988/3346) spt-live reconcile::tests::no_conflict_is_a_noop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:20.7690767Z         SLOW [> 60.000s] (─────────) spt-daemon::sync concurrent_writes_reconcile_on_elected_node_and_converge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:21.8833563Z         SLOW [> 60.000s] (─────────) spt-daemon::sync two_tier_sync_lands_and_gate_refuses_server_side
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:24.7877514Z         PASS [  11.154s] (1989/3346) spt-live reconcile::tests::failed_turn_preserves_everything
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:25.0588760Z         PASS [   0.271s] (1990/3346) spt-live resume::tests::a_standing_ingest_latch_warns_while_a_turn_latch_and_a_clean_stamp_do_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:25.9712984Z         PASS [  14.321s] (1991/3346) spt-live pulse::tests::commune_defers_project_then_lands_it_across_pulses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:26.7340938Z         PASS [   7.826s] (1992/3346) spt-live resume::tests::a_clean_stamp_leaves_the_composed_brief_byte_identical
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:27.4709122Z         PASS [   7.592s] (1993/3346) spt-live resume::tests::a_resume_over_a_misplaced_drop_is_marked_stale_and_over_a_registered_one_is_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:27.8417508Z         PASS [  10.428s] (1994/3346) spt-live reconcile::tests::suppressed_write_preserves_artifacts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.1158827Z         PASS [   0.274s] (1995/3346) spt-live resume::tests::misplaced_drop_surfaces_once_and_names_it_while_a_consumed_one_is_silent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.2111175Z         PASS [   0.095s] (1996/3346) spt-live resume::tests::pending_strips_checkpoint_sentinel_keeps_inter_marker_text
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.2473458Z         PASS [   0.036s] (1997/3346) spt-live resume::tests::the_never_ingested_notice_fires_only_for_the_artifact_less_case
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.3258617Z         PASS [  67.363s] (1998/3346) spt-daemon::sync two_tier_sync_lands_and_gate_refuses_server_side
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.5615796Z         PASS [   0.236s] (1999/3346) spt-live signoff::tests::echo_precedes_signoff_compose
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.6309038Z         PASS [   0.067s] (2000/3346) spt-live signoff::tests::missing_session_skips_echo
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.6671866Z         PASS [   0.038s] (2001/3346) spt-live signoff::tests::recovered_self_is_not_signed_off
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.6946133Z         PASS [   3.635s] (2002/3346) spt-live resume::tests::download_appends_pending_drop_after_project
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:28.9514399Z         PASS [   0.284s] (2003/3346) spt-live signoff::tests::stale_signoff_swept
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:29.0464929Z         PASS [   0.095s] (2004/3346) spt-live turn::tests::failed_turn_display_carries_stdout_tail_and_marks_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:29.3042873Z         PASS [   0.258s] (2005/3346) spt-live turn::tests::stream_tail_is_bounded_utf8_safe_and_from_the_end
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:29.7108896Z         PASS [  12.950s] (2006/3346) spt-live reconcile::tests::reconcile_merges_and_clears
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:29.7314516Z         PASS [   1.037s] (2007/3346) spt-live turn::tests::empty_stdout_is_an_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:29.7350398Z         PASS [   0.024s] (2008/3346) spt-msg deliver::tests::a_sealed_envelope_keeps_its_seal_attr_through_ingress
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.1003057Z         PASS [   0.796s] (2009/3346) spt-live turn::tests::turn_captures_stdout
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.2144270Z         PASS [   0.479s] (2010/3346) spt-msg deliver::tests::deferred_send_skips_stream_drain_survives_for_hook
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.3747722Z         PASS [   0.274s] (2011/3346) spt-msg deliver::tests::deferred_send_validates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.5146276Z         PASS [   0.783s] (2012/3346) spt-msg deliver::tests::active_only_never_tcp_delivers_to_a_live_relay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.6162408Z         PASS [   0.402s] (2013/3346) spt-msg deliver::tests::offline_existing_perch_spools
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.6644745Z         PASS [   0.290s] (2014/3346) spt-msg deliver::tests::online_delivers_via_tcp_without_spooling
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.8896811Z         PASS [   0.225s] (2015/3346) spt-msg emit::tests::a_content_trigger_fires_on_the_body_from_an_unclassified_sender
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:30.9162361Z         PASS [   0.300s] (2016/3346) spt-msg deliver::tests::send_outcome_mapping
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.1574577Z         PASS [   0.268s] (2017/3346) spt-msg emit::tests::a_real_trust_warning_attr_does_not_split_the_frame
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.1913317Z         PASS [   0.275s] (2018/3346) spt-msg emit::tests::a_senders_own_monic_and_warning_are_stripped_before_ours_are_attached
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.2359249Z         PASS [   0.078s] (2019/3346) spt-msg emit::tests::a_typed_body_reports_that_the_warning_found_no_carrier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.4882429Z         PASS [   0.297s] (2020/3346) spt-msg emit::tests::a_typed_msg_envelope_carries_the_trust_warning
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.5196787Z         PASS [   0.284s] (2021/3346) spt-msg emit::tests::a_typed_msg_envelope_still_carries_the_recipients_monic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.5752955Z         PASS [   0.087s] (2022/3346) spt-msg emit::tests::a_typed_user_msg_envelope_is_still_verbatim_and_monicless
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.8325282Z         PASS [   0.313s] (2023/3346) spt-msg emit::tests::anonymous_still_enveloped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.8669641Z         PASS [   0.292s] (2024/3346) spt-msg emit::tests::husk_record_rides_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.9101286Z         PASS [   0.077s] (2025/3346) spt-msg emit::tests::matched_monic_rides_both_edges_as_json_array
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.9268460Z         PASS [   0.060s] (2026/3346) spt-msg emit::tests::monic_attr_survives_chunking
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.9349278Z         PASS [   0.025s] (2027/3346) spt-msg emit::tests::monic_text_cannot_break_out_of_the_attr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:31.9411265Z         PASS [   0.014s] (2028/3346) spt-msg emit::tests::multiline_body_escapes_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.2000318Z         PASS [   0.265s] (2029/3346) spt-msg emit::tests::oversized_listener_line_chunks_into_event_parts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.2347620Z         PASS [   0.293s] (2030/3346) spt-msg emit::tests::structural_renders_msg_envelope
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.2918241Z         PASS [   0.092s] (2031/3346) spt-msg emit::tests::the_spliced_envelope_declares_its_type_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.2988823Z         PASS [   0.064s] (2032/3346) spt-msg emit::tests::the_trust_warning_rides_the_envelope_beside_a_matched_monic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.3150186Z         PASS [   6.344s] (2033/3346) spt-live resume::tests::download_composes_two_tiers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.5508260Z         PASS [   0.259s] (2034/3346) spt-msg emit::tests::typed_body_carries_no_monic_attr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.5772515Z         PASS [   0.278s] (2035/3346) spt-msg emit::tests::typed_body_from_wins_over_structural_from_no_double_wrap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.6251880Z         PASS [   0.310s] (2036/3346) spt-msg emit::tests::unmatched_sender_gets_no_attr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.6298297Z         PASS [   0.079s] (2037/3346) spt-msg emit::tests::user_msg_envelope_renders_verbatim_on_both_edges
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:32.6380181Z         PASS [   0.061s] (2038/3346) spt-msg emit::tests::whole_render_never_chunks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.0021852Z         PASS [   2.487s] (2039/3346) spt-msg deliver::tests::recycled_pid_address_does_not_misdeliver
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.0244364Z         PASS [   0.399s] (2040/3346) spt-msg listener::tests::bind_registers_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.0778486Z         PASS [   0.448s] (2041/3346) spt-msg listener::tests::blocking_accepts_within_window
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.1043993Z         PASS [   0.102s] (2042/3346) spt-msg listener::tests::drop_unregisters_address
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.1719241Z         PASS [   0.534s] (2043/3346) spt-msg listener::tests::blocking_times_out_when_idle
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.2920769Z         PASS [   0.268s] (2044/3346) spt-msg ready::tests::a_listener_cannot_claim_the_reserved_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.6846279Z         PASS [   0.607s] (2045/3346) spt-msg ready::tests::backlog_drains_on_start
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.7063471Z         PASS [   0.602s] (2046/3346) spt-msg ready::tests::recv_gets_live_tcp_message
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.7260855Z         PASS [   0.554s] (2047/3346) spt-msg ready::tests::soft_cleanup_preserves_spool_and_info
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.7508555Z         PASS [   6.280s] (2048/3346) spt-live resume::tests::download_serves_the_engine_rooms_core_role_and_ignores_a_planted_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:33.8095443Z         PASS [   0.517s] (2049/3346) spt-msg ready::tests::start_ledgers_a_boot_session_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:34.2051572Z         PASS [   0.520s] (2050/3346) spt-msg ready::tests::start_registers_resolvable_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:34.9630689Z         PASS [  74.751s] (2051/3346) spt-daemon::sync concurrent_writes_reconcile_on_elected_node_and_converge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:34.9955988Z         PASS [   1.289s] (2052/3346) spt-msg ring::tests::a_late_reply_to_a_spooled_ring_still_reaches_the_caller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.1628259Z         PASS [   1.437s] (2053/3346) spt-msg ring::tests::a_live_shaped_perch_survives_a_timed_out_ring_byte_identical
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.3316604Z         PASS [   1.581s] (2054/3346) spt-msg ring::tests::a_spool_without_a_record_counts_as_occupied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.4132818Z         PASS [   1.604s] (2055/3346) spt-msg ring::tests::a_spooled_ring_waits_and_names_the_silence_it_got
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.5273498Z         PASS [   0.564s] (2056/3346) spt-msg ring::tests::an_empty_perch_dir_is_refused_and_left_for_its_creator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.5383393Z         PASS [   0.125s] (2057/3346) spt-msg ring::tests::ring_no_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.5499322Z         PASS [   0.387s] (2058/3346) spt-msg ring::tests::an_unreadable_record_counts_as_occupied_and_is_never_deleted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.6981781Z         PASS [   1.493s] (2059/3346) spt-msg ring::tests::a_third_partys_ring_never_drains_the_victims_mail_into_its_reply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.8121451Z         PASS [   0.274s] (2060/3346) spt-msg wire::tests::decode_rejects_overrunning_from_len
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.8244822Z         PASS [   0.274s] (2061/3346) spt-msg wire::tests::encode_decode_round_trips_structural
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:35.8303909Z         PASS [   0.499s] (2062/3346) spt-msg ring::tests::ring_gets_reply_and_cleans_up
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.1003969Z         PASS [   0.402s] (2063/3346) spt-msg wire::tests::encode_empty_from_is_anonymous
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.1920259Z         PASS [   1.196s] (2064/3346) spt-msg ring::tests::an_explicit_from_never_becomes_the_gate_subject_or_a_reply_window
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.2681954Z         PASS [   0.741s] (2065/3346) spt-msg ring::tests::ring_timeout_cleans_up
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.3779111Z         PASS [   0.566s] (2066/3346) spt-msg wire::tests::frame_round_trips_over_loopback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.4439476Z         PASS [   9.710s] (2067/3346) spt-live resume::tests::download_renders_role_first_then_live_then_project
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.6618049Z         PASS [   0.837s] (2068/3346) spt-msg wire::tests::oversized_length_prefix_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:36.6878110Z         PASS [   0.857s] (2069/3346) spt-msg wire::tests::typed_event_body_rides_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.0052379Z         PASS [   0.737s] (2070/3346) spt-net net::answermsg::tests::a_receipt_round_trips_and_is_neither_a_message_nor_a_knock
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.0125180Z         PASS [   0.635s] (2071/3346) spt-net net::answermsg::tests::the_ack_is_two_words_and_the_refusal_side_is_undifferentiated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.2777089Z         PASS [   0.834s] (2072/3346) spt-net net::answermsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.2982543Z         PASS [   0.636s] (2073/3346) spt-net net::answermsg::tests::the_receipt_has_two_answers_and_no_word_for_silence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.3275458Z         PASS [   0.640s] (2074/3346) spt-net net::attach::tests::attach_intents_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.3616634Z         PASS [   1.261s] (2075/3346) spt-msg::killer_quickstart offline_then_online_delivers_backlog
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.5401937Z         PASS [   1.348s] (2076/3346) spt-msg::killer_quickstart two_agents_exchange_message_tcp_and_spool
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.5810810Z         PASS [   0.576s] (2077/3346) spt-net net::attach::tests::fido2_fields_are_additive_and_absent_decodes_as_plain_totp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.5919941Z         PASS [   0.579s] (2078/3346) spt-net net::attach::tests::kick_take_and_displaced_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.6145246Z         PASS [   0.337s] (2079/3346) spt-net net::attach::tests::record_split_across_chunks_reassembles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.8848779Z         PASS [   0.586s] (2080/3346) spt-net net::attach::tests::records_round_trip_and_unknown_kind_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:37.8966460Z         PASS [   0.569s] (2081/3346) spt-net net::attach::tests::request_code_is_additive_and_absent_reads_as_no_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.1624722Z         PASS [   0.801s] (2082/3346) spt-net net::attach::tests::request_endpoint_id_is_additive_and_local_wire_is_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.1817609Z         PASS [   0.641s] (2083/3346) spt-net net::attach::tests::request_without_intent_defaults_to_control
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.2019396Z         PASS [   0.621s] (2084/3346) spt-net net::attach::tests::seal_ceremony_capability_is_additive_and_absent_reads_as_undeclared
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.4597721Z         PASS [   0.868s] (2085/3346) spt-net net::attach::tests::seal_ceremony_code_carries_the_code_and_no_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.4854828Z         PASS [   0.871s] (2086/3346) spt-net net::codeseal::tests::a_code_minted_before_a_rotation_still_opens_under_the_previous_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.7525059Z         PASS [   0.868s] (2087/3346) spt-net net::codeseal::tests::a_legacy_bare_hex_code_is_not_a_sealed_form
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:38.7766311Z         PASS [   0.880s] (2088/3346) spt-net net::codeseal::tests::a_partial_envelope_refuses_like_every_other_failure
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:39.0485348Z         PASS [   0.886s] (2089/3346) spt-net net::codeseal::tests::a_retyped_code_opens_in_either_case
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:39.3228388Z         PASS [   1.141s] (2090/3346) spt-net net::codeseal::tests::a_sealed_code_round_trips_and_has_the_ratified_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:39.3316407Z         PASS [   1.130s] (2091/3346) spt-net net::codeseal::tests::a_single_flipped_byte_anywhere_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:39.6020810Z         PASS [   1.142s] (2092/3346) spt-net net::codeseal::tests::a_two_subnet_code_opens_under_either_and_carries_one_secret
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:39.8809361Z         PASS [   1.395s] (2093/3346) spt-net net::codeseal::tests::an_exhausted_candidate_list_refuses_like_a_malformed_string
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:40.4209476Z         PASS [   1.668s] (2094/3346) spt-net net::codeseal::tests::another_subnets_key_opens_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:40.6957091Z         PASS [   1.919s] (2095/3346) spt-net net::codeseal::tests::every_refusal_shape_is_the_same_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:41.2297353Z         PASS [   2.181s] (2096/3346) spt-net net::codeseal::tests::no_envelope_window_equals_the_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:41.5014465Z         PASS [   2.179s] (2097/3346) spt-net net::codeseal::tests::open_all_among_returns_every_opening_with_its_label
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:42.5380196Z         PASS [   3.206s] (2098/3346) spt-net net::codeseal::tests::the_cipher_and_mac_keys_are_separate_derivations
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.1129943Z         PASS [   4.511s] (2099/3346) spt-net net::codeseal::tests::the_rotation_grace_still_opens_one_envelope_of_a_multi_envelope_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.1569326Z         PASS [   4.276s] (2100/3346) spt-net net::codeseal::tests::two_codes_differing_in_one_byte_do_not_share_a_keystream
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.2097987Z         PASS [   3.789s] (2101/3346) spt-net net::digestpull::tests::records_round_trip_and_degrade
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.2152771Z         PASS [   3.520s] (2102/3346) spt-net net::digestpull::tests::reply_outcomes_are_distinct_and_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.2301755Z         PASS [   3.000s] (2103/3346) spt-net net::digestpull::tests::request_wire_shape_carries_the_demux_marker_and_omits_an_absent_depth
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.5008112Z         PASS [   2.999s] (2104/3346) spt-net net::digestpull::tests::the_request_carries_no_spoofable_origin_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.5849195Z         PASS [   0.472s] (2105/3346) spt-net net::endpoint::tests::family_force_off_flag_parsing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.5947892Z         PASS [   0.438s] (2106/3346) spt-net net::endpoint::tests::family_selection_drops_dead_keeps_working
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.6055791Z         PASS [   0.396s] (2107/3346) spt-net net::endpoint::tests::keep_alive_is_under_idle_timeout
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.6786437Z         PASS [   2.141s] (2108/3346) spt-net net::endpoint::tests::endpoint_id_binds_to_identity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.9052056Z         PASS [   0.675s] (2109/3346) spt-net net::forkmsg::tests::a_fork_record_round_trips_carrying_its_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.9156133Z         PASS [   0.414s] (2110/3346) spt-net net::forkmsg::tests::the_wire_shape_cannot_express_deleting_the_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:44.9665215Z         PASS [   0.381s] (2111/3346) spt-net net::knockmsg::tests::a_knock_record_can_never_be_read_as_a_message_feed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.0193548Z         PASS [   0.804s] (2112/3346) spt-net net::endpoint::tests::two_endpoints_loopback_echo
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.2251803Z         PASS [   0.630s] (2113/3346) spt-net net::knockmsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.2647886Z         PASS [   0.659s] (2114/3346) spt-net net::knockmsg::tests::the_record_round_trips_and_tolerates_unknown_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.3033253Z         PASS [   0.625s] (2115/3346) spt-net net::mesh::seedproof::tests::cross_connection_replay_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.5706373Z         PASS [   0.666s] (2116/3346) spt-net net::mesh::seedproof::tests::forged_proof_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.5927883Z         PASS [   0.678s] (2117/3346) spt-net net::mesh::seedproof::tests::frame_codec_round_trips_and_rejects_garbage
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.6140409Z         PASS [  17.365s] (2118/3346) spt-live signoff::tests::boundary_writes_resume_commune
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.6431967Z         PASS [   0.676s] (2119/3346) spt-net net::mesh::seedproof::tests::hello_frame_round_trips_and_rejects_malformed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.6551367Z         PASS [   0.636s] (2120/3346) spt-net net::mesh::seedproof::tests::mk_derivation_is_deterministic_and_input_sensitive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.9247607Z         PASS [   0.700s] (2121/3346) spt-net net::mesh::seedproof::tests::mutual_requires_both_sides
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:45.9598859Z         PASS [   0.695s] (2122/3346) spt-net net::mesh::seedproof::tests::proofset_frame_round_trips_and_rejects_malformed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.0123108Z         PASS [   0.709s] (2123/3346) spt-net net::mesh::seedproof::tests::valid_proof_verifies_and_roles_differ
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.2687773Z         PASS [   0.698s] (2124/3346) spt-net net::mesh::seedproof::tests::wrong_epoch_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.3099179Z         PASS [   0.717s] (2125/3346) spt-net net::mesh::seedproof::tests::wrong_subnet_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.3463757Z         PASS [   0.734s] (2126/3346) spt-net net::notif::tests::forged_origin_field_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.5996450Z         PASS [   0.957s] (2127/3346) spt-net net::notif::tests::n1_wire_record_omits_default_fields_and_reads_old_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.6179315Z         PASS [   0.963s] (2128/3346) spt-net net::notif::tests::record_round_trips_and_unknown_kind_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.6465637Z         PASS [   0.722s] (2129/3346) spt-net net::notif::tests::record_split_across_chunks_reassembles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.6665973Z         PASS [   0.707s] (2130/3346) spt-net net::pairing::meet::tests::derived_identity_is_deterministic_and_input_bound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.6727291Z         PASS [   0.660s] (2131/3346) spt-net net::pairing::meet::tests::key_seed_is_not_the_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:46.9663567Z         PASS [   0.656s] (2132/3346) spt-net net::pairing::meet::tests::skewed_window_contains_the_listener_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.0194834Z         PASS [   0.673s] (2133/3346) spt-net net::pairing::ntp::tests::clock_step_forces_refresh_via_injected_reads
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.0234757Z         PASS [   0.424s] (2134/3346) spt-net net::pairing::ntp::tests::invalidate_clears_the_snapshot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.1063806Z         PASS [   0.837s] (2135/3346) spt-net net::pairing::meet::tests::meet_redirects_joiner_to_the_real_pairing_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.2850990Z         PASS [   0.667s] (2136/3346) spt-net net::pairing::ntp::tests::loud_fail_logs_only_on_transitions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.3078814Z         PASS [   0.661s] (2137/3346) spt-net net::pairing::ntp::tests::offset_applies_signed_and_saturates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.3425406Z         PASS [   0.676s] (2138/3346) spt-net net::pairing::ntp::tests::parse_rejects_short_and_zeroed_replies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.3558361Z         PASS [   0.683s] (2139/3346) spt-net net::pairing::ntp::tests::sntp_query_reads_the_transmit_timestamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.3579011Z         PASS [   0.392s] (2140/3346) spt-net net::pairing::ntp::tests::sort_v4_first_leads_with_v4_preserving_family_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.3681408Z         PASS [   0.349s] (2141/3346) spt-net net::pairing::ntp::tests::unreachable_server_falls_back
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.3759069Z         PASS [   0.352s] (2142/3346) spt-net net::pairing::ntp::tests::v6_first_ordering_does_not_starve_the_query
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.6344185Z         PASS [   0.528s] (2143/3346) spt-net net::pairing::ratelimit::tests::abandoned_ceremony_is_reclaimed_and_charged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.6517281Z         PASS [   0.367s] (2144/3346) spt-net net::pairing::ratelimit::tests::backoff_curve_doubles_then_caps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.6819984Z         PASS [   0.374s] (2145/3346) spt-net net::pairing::ratelimit::tests::backoff_is_per_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.6867623Z         PASS [   0.344s] (2146/3346) spt-net net::pairing::ratelimit::tests::failures_impose_exponential_backoff
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.6935014Z         PASS [   0.338s] (2147/3346) spt-net net::pairing::ratelimit::tests::first_ceremony_is_free_and_success_resets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7026721Z         PASS [   0.345s] (2148/3346) spt-net net::pairing::ratelimit::tests::one_active_ceremony_per_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7084454Z         PASS [   0.340s] (2149/3346) spt-net net::pairing::ratelimit::tests::success_clears_accumulated_backoff
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7141664Z         PASS [   0.338s] (2150/3346) spt-net net::pairing::rendezvous::tests::distinct_same_length_names_diverge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7218244Z         PASS [   0.087s] (2151/3346) spt-net net::pairing::rendezvous::tests::length_prefix_prevents_boundary_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7283053Z         PASS [   0.077s] (2152/3346) spt-net net::pairing::rendezvous::tests::token_is_deterministic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7346643Z         PASS [   0.053s] (2153/3346) spt-net net::pairing::rendezvous::tests::token_varies_with_name_and_step
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.7406696Z         PASS [   0.054s] (2154/3346) spt-net net::pairing::rendezvous::tests::window_is_three_adjacent_tokens
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:47.8836688Z         PASS [   0.190s] (2155/3346) spt-net net::pairing::spake::tests::a_code_that_is_neither_key_fails_both_candidates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.1261862Z         PASS [   0.404s] (2156/3346) spt-net net::pairing::spake::tests::reflected_role_is_rejected_by_pake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.1369898Z         PASS [   0.434s] (2157/3346) spt-net net::pairing::spake::tests::dual_start_shares_one_msg_a
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.1559630Z         PASS [   0.442s] (2158/3346) spt-net net::pairing::spake::tests::matching_code_pairs_and_agrees_on_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.1620315Z         PASS [   0.434s] (2159/3346) spt-net net::pairing::spake::tests::stale_epoch_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.3254741Z         PASS [   0.617s] (2160/3346) spt-net net::pairing::spake::tests::either_key_confirms_through_the_candidate_pair
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4280696Z         PASS [   0.693s] (2161/3346) spt-net net::pairing::spake::tests::stale_step_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4302234Z         PASS [   0.274s] (2162/3346) spt-net net::pairing::totp::tests::code_at_is_six_zero_padded_digits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4393274Z         PASS [   0.277s] (2163/3346) spt-net net::pairing::totp::tests::debug_redacts_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4465570Z         PASS [   0.121s] (2164/3346) spt-net net::pairing::totp::tests::generated_seeds_are_distinct
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4513759Z         PASS [   0.711s] (2165/3346) spt-net net::pairing::spake::tests::substituted_pubkey_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4551526Z         PASS [   0.027s] (2166/3346) spt-net net::pairing::totp::tests::matches_rfc6238_appendix_b_vectors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4779168Z         PASS [   0.594s] (2167/3346) spt-net net::pairing::spake::tests::tampered_tag_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4861410Z         PASS [   0.360s] (2168/3346) spt-net net::pairing::spake::tests::wrong_code_fails_at_confirmation_not_spake
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.4943551Z         PASS [   0.357s] (2169/3346) spt-net net::pairing::spake::tests::wrong_subnet_fails
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.7132535Z         PASS [   0.283s] (2170/3346) spt-net net::pairing::totp::tests::otpauth_uri_is_well_formed_and_encoded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:48.7448687Z         PASS [   0.305s] (2171/3346) spt-net net::pairing::totp::tests::seed_round_trips_through_base32
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.0391911Z         PASS [   0.593s] (2172/3346) spt-net net::pairing::totp::tests::time_step_is_floor_unix_over_period
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.0547631Z         PASS [   0.603s] (2173/3346) spt-net net::pairing::totp::tests::window_accepts_plus_minus_one_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.0834981Z         PASS [   0.628s] (2174/3346) spt-net net::pairing::transcript::tests::diverged_shared_secret_fails_verification
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.5567125Z         PASS [   1.079s] (2175/3346) spt-net net::pairing::transcript::tests::each_bound_field_changes_the_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.8162486Z         PASS [   1.330s] (2176/3346) spt-net net::pairing::transcript::tests::length_prefixing_prevents_boundary_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.8277841Z         PASS [   1.333s] (2177/3346) spt-net net::pairing::transcript::tests::matching_tag_verifies_and_roles_differ
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:49.8483327Z         PASS [   1.135s] (2178/3346) spt-net net::pairing::transcript::tests::message_order_is_bound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:50.1211862Z         PASS [   1.376s] (2179/3346) spt-net net::pairing::transcript::tests::pake_identity_binds_role_and_context
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:50.2457914Z         PASS [   1.207s] (2180/3346) spt-net net::pairing::wire::tests::a_legacy_joiner_ignores_the_trailing_candidate_and_still_joins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:50.5120953Z         PASS [   1.429s] (2181/3346) spt-net net::pairing::wire::tests::busy_subnet_refuses_ceremony
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:50.6393174Z         PASS [   1.584s] (2182/3346) spt-net net::pairing::wire::tests::a_wrong_code_is_refused_the_same_way_on_a_two_key_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:50.6697415Z         PASS [   1.113s] (2183/3346) spt-net net::pairing::wire::tests::create_new_then_join_learns_named_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:50.7211566Z         PASS [   0.893s] (2184/3346) spt-net net::pairing::wire::tests::frame_codec_round_trips_and_rejects_garbage
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:51.0079055Z         PASS [   1.159s] (2185/3346) spt-net net::pairing::wire::tests::hello_intro_is_additive_and_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:51.1347178Z         PASS [   1.318s] (2186/3346) spt-net net::pairing::wire::tests::either_subnet_code_joins_a_two_key_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:51.4720053Z         PASS [   1.351s] (2187/3346) spt-net net::pairing::wire::tests::loopback_pairs_and_transfers_seed_and_roster
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:51.7482091Z         PASS [   1.502s] (2188/3346) spt-net net::pairing::wire::tests::repair_member_keeps_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:51.8415340Z         PASS [   1.329s] (2189/3346) spt-net net::pairing::wire::tests::seed_frame_carries_both_keys_and_the_declared_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:52.1139438Z         PASS [   1.475s] (2190/3346) spt-net net::pairing::wire::tests::seed_frame_roster_is_additive_and_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:52.3945896Z         PASS [   1.725s] (2191/3346) spt-net net::pairing::wire::tests::spake2_second_candidate_is_additive_and_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:52.7628370Z         PASS [   2.042s] (2192/3346) spt-net net::pairing::wire::tests::stale_step_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:53.0344079Z         PASS [   2.026s] (2193/3346) spt-net net::pairing::wire::tests::unknown_subnet_is_rejected
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:53.1543441Z         PASS [   2.020s] (2194/3346) spt-net net::pairing::wire::tests::wrong_code_fails_and_records_no_membership
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:53.2390184Z         PASS [   1.767s] (2195/3346) spt-net net::presencemsg::tests::a_presence_record_can_never_be_read_as_a_message_feed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:53.5022825Z         PASS [   1.754s] (2196/3346) spt-net net::presencemsg::tests::an_unrecognized_token_reads_unknown_and_never_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:53.7692037Z         PASS [   1.928s] (2197/3346) spt-net net::presencemsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:54.0422363Z         PASS [   1.928s] (2198/3346) spt-net net::presencemsg::tests::the_record_round_trips_and_tolerates_unknown_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.0760198Z         PASS [   2.681s] (2199/3346) spt-net net::presencemsg::tests::the_reply_carries_the_word_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.6230108Z         PASS [   2.860s] (2200/3346) spt-net net::redeemmsg::tests::a_redemption_record_round_trips_carrying_its_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.6480691Z         PASS [   2.613s] (2201/3346) spt-net net::redeemmsg::tests::a_refusal_carries_nothing_while_a_redemption_carries_the_rendering
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.6873157Z         PASS [   2.533s] (2202/3346) spt-net net::redeemmsg::tests::no_token_means_unconfirmed_and_only_redeemed_carries_data
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.7099039Z         PASS [   2.471s] (2203/3346) spt-net net::redeemmsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.7160495Z         PASS [   2.214s] (2204/3346) spt-net net::redeemmsg::tests::the_reply_asks_for_the_reverse_and_no_constructor_can_claim_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.7214152Z         PASS [   1.952s] (2205/3346) spt-net net::redeemmsg::tests::the_reply_round_trips_both_arms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.7339962Z         PASS [   1.692s] (2206/3346) spt-net net::redeemmsg::tests::the_wire_shape_cannot_ask_the_minter_to_arm_the_other_side
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:55.7430552Z         PASS [   0.667s] (2207/3346) spt-net net::registry::tests::adapter_projects_controlled_serde_and_n_minus_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0177969Z         PASS [   0.395s] (2208/3346) spt-net net::registry::tests::advertise_if_visible_gates_before_join
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0384133Z         PASS [   0.390s] (2209/3346) spt-net net::registry::tests::display_parity_fields_serde_and_n_minus_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0596636Z         PASS [   0.372s] (2210/3346) spt-net net::registry::tests::distinct_nodes_are_separate_instances
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0694487Z         PASS [   0.360s] (2211/3346) spt-net net::registry::tests::equal_epoch_replay_is_stale_noop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0769092Z         PASS [   0.361s] (2212/3346) spt-net net::registry::tests::evicting_dead_node_clears_phantom_ambiguity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0842673Z         PASS [   0.363s] (2213/3346) spt-net net::registry::tests::excluded_endpoint_is_not_routable_even_via_node_pin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0924177Z         PASS [   0.359s] (2214/3346) spt-net net::registry::tests::exclusion_prunes_cross_subnet_ambiguity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.0984866Z         PASS [   0.355s] (2215/3346) spt-net net::registry::tests::join_collides_even_with_offline_holder
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1055778Z         PASS [   0.088s] (2216/3346) spt-net net::registry::tests::join_colliding_id_on_other_node_refuses_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1156515Z         PASS [   0.077s] (2217/3346) spt-net net::registry::tests::join_fresh_id_is_inserted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1220784Z         PASS [   0.062s] (2218/3346) spt-net net::registry::tests::join_same_name_in_different_subnet_is_legal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1301154Z         PASS [   0.061s] (2219/3346) spt-net net::registry::tests::join_same_node_falls_through_to_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1377387Z         PASS [   0.061s] (2220/3346) spt-net net::registry::tests::newer_epoch_supersedes_same_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1455295Z         PASS [   0.061s] (2221/3346) spt-net net::registry::tests::node_label_rides_the_lease_and_serde
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1525472Z         PASS [   0.060s] (2222/3346) spt-net net::registry::tests::node_level_label_lease_persist_prune_and_serde
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1580910Z         PASS [   0.060s] (2223/3346) spt-net net::registry::tests::node_qualifier_accepts_label_and_prefix_refuses_shared
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1655883Z         PASS [   0.060s] (2224/3346) spt-net net::registry::tests::node_routability_keeps_unknown_distinct_from_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1728928Z         PASS [   0.057s] (2225/3346) spt-net net::registry::tests::offline_rows_decay_past_grace_own_rows_survive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1800891Z         PASS [   0.058s] (2226/3346) spt-net net::registry::tests::offline_since_side_map_is_self_pruning
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1886192Z         PASS [   0.058s] (2227/3346) spt-net net::registry::tests::presence_datum_rides_the_lease_and_serde
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.1956482Z         PASS [   0.058s] (2228/3346) spt-net net::registry::tests::purge_churn_offline_ghosts_stay_bounded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.4560225Z         PASS [   0.310s] (2229/3346) spt-net net::registry::tests::registry_serde_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.4750527Z         PASS [   0.322s] (2230/3346) spt-net net::registry::tests::rename_collision_refuses_whole_ripple
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5037508Z         PASS [   0.345s] (2231/3346) spt-net net::registry::tests::rename_ripples_rows_across_advertised_subnets
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5105982Z         PASS [   0.345s] (2232/3346) spt-net net::registry::tests::renaming_into_the_reserved_id_is_refused_with_no_ripple
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5167060Z         PASS [   0.344s] (2233/3346) spt-net net::registry::tests::resolve_across_bare_id_distinct_nodes_refuses_acrossnodes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5243170Z         PASS [   0.344s] (2234/3346) spt-net net::registry::tests::resolve_across_local_wins_over_remote_in_other_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5297360Z         PASS [   0.341s] (2235/3346) spt-net net::registry::tests::resolve_across_same_node_twins_keep_freshest_epoch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5358635Z         PASS [   0.340s] (2236/3346) spt-net net::registry::tests::resolve_across_same_node_two_subnets_resolves
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5399874Z         PASS [   0.084s] (2237/3346) spt-net net::registry::tests::resolve_across_subnet_qualified_routes_there
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5458904Z         PASS [   0.071s] (2238/3346) spt-net net::registry::tests::resolve_across_unique_id_resolves
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5515266Z         PASS [   0.048s] (2239/3346) spt-net net::registry::tests::resolve_multiple_live_nodes_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5577100Z         PASS [   0.047s] (2240/3346) spt-net net::registry::tests::resolve_node_qualifier_pins_and_offline_is_not_found
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5637033Z         PASS [   0.047s] (2241/3346) spt-net net::registry::tests::resolve_prefers_local_instance
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5690434Z         PASS [   0.045s] (2242/3346) spt-net net::registry::tests::resolve_sole_live_remote_and_skips_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5753069Z         PASS [   0.046s] (2243/3346) spt-net net::registry::tests::resource_blurb_rides_the_lease_and_serde
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5806155Z         PASS [   0.045s] (2244/3346) spt-net net::registry::tests::resource_projection_filters_hidden_and_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5860453Z         PASS [   0.046s] (2245/3346) spt-net net::registry::tests::resource_projection_threads_adapter_projects_controlled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5918184Z         PASS [   0.046s] (2246/3346) spt-net net::registry::tests::resource_projection_threads_endpoint_type
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.5976312Z         PASS [   0.046s] (2247/3346) spt-net net::registry::tests::resource_projection_threads_node_label
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6032128Z         PASS [   0.045s] (2248/3346) spt-net net::registry::tests::revival_not_out_raced
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6089282Z         PASS [   0.045s] (2249/3346) spt-net net::registry::tests::select_rest_target_offline_never_a_candidate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6144037Z         PASS [   0.045s] (2250/3346) spt-net net::registry::tests::select_rest_target_suspend_goal_satisfaction
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6197745Z         PASS [   0.044s] (2251/3346) spt-net net::registry::tests::select_rest_target_wake_goal_satisfaction
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6256254Z         PASS [   0.045s] (2252/3346) spt-net net::registry::tests::stale_active_cannot_clobber_newer_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6315436Z         PASS [   0.045s] (2253/3346) spt-net net::registry::tests::suspended_is_addressable_and_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6369114Z         PASS [   0.045s] (2254/3346) spt-net net::replicate::tests::apply_routes_by_subnet_and_drops_non_member
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6431515Z         PASS [   0.045s] (2255/3346) spt-net net::replicate::tests::decoder_survives_chunk_splits_and_corrupt_lines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6480317Z         PASS [   0.045s] (2256/3346) spt-net net::replicate::tests::feed_carries_instances_and_node_labels_wire_compat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6535621Z         PASS [   0.045s] (2257/3346) spt-net net::replicate::tests::stale_wire_update_cannot_clobber_newer_state
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6591450Z         PASS [   0.045s] (2258/3346) spt-net net::replicate::tests::update_round_trips_and_tolerates_unknown_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6647947Z         PASS [   0.045s] (2259/3346) spt-net net::rest::tests::records_round_trip_and_degrade
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6707301Z         PASS [   0.045s] (2260/3346) spt-net net::sealmsg::tests::enrollment_record_rides_the_feed_under_its_own_tag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6760119Z         PASS [   0.044s] (2261/3346) spt-net net::sealmsg::tests::forged_origin_field_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6816449Z         PASS [   0.045s] (2262/3346) spt-net net::sealmsg::tests::record_round_trips_and_unknown_kind_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6872230Z         PASS [   0.044s] (2263/3346) spt-net net::sealmsg::tests::record_split_across_chunks_reassembles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.6930156Z         PASS [   0.045s] (2264/3346) spt-net net::serveprobe::tests::records_round_trip_and_degrade
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.9545381Z         PASS [   0.301s] (2265/3346) spt-net net::shelllink::tests::records_round_trip_and_degrade
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:56.9750546Z         PASS [   0.316s] (2266/3346) spt-net net::sync::tests::forged_origin_field_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0152047Z         PASS [   0.350s] (2267/3346) spt-net net::sync::tests::record_split_across_chunks_reassembles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0230081Z         PASS [   0.352s] (2268/3346) spt-net net::sync::tests::records_round_trip_and_unknown_kind_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0302553Z         PASS [   0.354s] (2269/3346) spt-net net::update::tests::forged_origin_field_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0360338Z         PASS [   0.354s] (2270/3346) spt-net net::update::tests::record_split_across_chunks_reassembles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0423141Z         PASS [   0.355s] (2271/3346) spt-net net::update::tests::records_round_trip_and_unknown_kind_is_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0477311Z         PASS [   0.355s] (2272/3346) spt-net net::wanmsg::tests::forged_origin_field_is_inert
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0543758Z         PASS [   0.100s] (2273/3346) spt-net net::wanmsg::tests::message_round_trips_and_tolerates_unknown_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0600885Z         PASS [   0.085s] (2274/3346) spt-net net::wanmsg::tests::reply_round_trips_and_tolerates_unknown_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0665105Z         PASS [   0.051s] (2275/3346) spt-net net::wanmsg::tests::route_splits_local_and_remote_and_passes_refusals
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0736282Z         PASS [   0.051s] (2276/3346) spt-net net::wanmsg::tests::sender_origin_is_additive_in_both_directions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0794500Z         PASS [   0.049s] (2277/3346) spt-net net::wanmsg::tests::sender_proven_is_additive_in_both_directions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.0863770Z         PASS [   0.050s] (2278/3346) spt-net net::webmsg::tests::records_round_trip_tag_the_first_line_and_skip_an_unknown_kind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1242329Z         PASS [   0.064s] (2279/3346) spt-poolguard tests::a_dead_lane_holder_is_a_loud_takeover_not_a_refusal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1264175Z         PASS [   0.079s] (2280/3346) spt-poolguard tests::a_claim_with_no_git_identity_falls_back_and_names_the_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1288911Z         PASS [   0.055s] (2281/3346) spt-poolguard tests::a_directory_without_the_cargo_cache_marker_is_never_a_pool
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1343330Z         PASS [   0.080s] (2282/3346) spt-poolguard tests::a_dead_holder_over_an_unlanded_lane_refuses_instead_of_taking_over
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1350583Z         PASS [   0.056s] (2283/3346) spt-poolguard tests::a_foreign_pool_with_no_lane_claim_refuses_and_names_the_claim_command
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1399770Z         PASS [   0.073s] (2284/3346) spt-poolguard tests::a_dead_lane_is_owned_while_its_tree_lives_and_orphaned_once_it_does_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.1436471Z         PASS [   0.101s] (2285/3346) spt-poolguard tests::a_claim_from_another_repository_reads_unknown_not_settled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4084485Z         PASS [   0.284s] (2286/3346) spt-poolguard tests::a_fresh_pool_imprints_its_first_builder_and_proceeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4358003Z         PASS [   0.309s] (2287/3346) spt-poolguard tests::a_git_worktree_counts_as_the_enclosing_source_tree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4447283Z         PASS [   0.358s] (2288/3346) spt-poolguard tests::a_foreign_tree_is_refused_while_the_lane_holder_is_live
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4603980Z         PASS [   0.331s] (2289/3346) spt-poolguard tests::a_landed_lane_with_a_dead_holder_is_still_a_takeover
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4684021Z         PASS [   0.324s] (2290/3346) spt-poolguard tests::a_remedy_that_names_a_command_names_one_that_can_actually_run
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4745924Z         PASS [   0.340s] (2291/3346) spt-poolguard tests::a_live_holder_refuses_even_when_the_lane_has_landed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4793137Z         PASS [   0.071s] (2292/3346) spt-poolguard tests::a_stamp_round_trips_with_backslashes_and_a_birth_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4798869Z         PASS [   0.345s] (2293/3346) spt-poolguard tests::a_pool_held_by_a_live_lane_is_in_use
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4853197Z         PASS [   0.345s] (2294/3346) spt-poolguard tests::a_recycled_holder_pid_is_a_takeover_not_a_live_lane
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4910889Z         PASS [   0.046s] (2295/3346) spt-poolguard tests::an_unreadable_stamp_degrades_to_ownerless
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.4950104Z         PASS [   0.035s] (2296/3346) spt-poolguard tests::an_unstamped_in_tree_target_is_owned_by_the_tree_around_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5011130Z         PASS [   0.033s] (2297/3346) spt-poolguard tests::an_unstamped_pool_nothing_links_to_is_orphaned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5079223Z         PASS [   0.033s] (2298/3346) spt-poolguard tests::an_unstamped_pool_with_inbound_links_is_owned_not_orphaned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5086576Z         PASS [   0.073s] (2299/3346) spt-poolguard tests::a_sweep_keeps_a_pool_whose_lane_is_in_flight_with_a_dead_holder
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5236277Z         PASS [   0.044s] (2300/3346) spt-poolguard tests::path_spelling_does_not_manufacture_a_crossing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5279573Z         PASS [   0.027s] (2301/3346) spt-procident pinned_proc_tests::a_live_pid_carrying_a_different_birth_stamp_reads_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5388744Z         PASS [   0.044s] (2302/3346) spt-poolguard tests::the_owning_tree_proceeds_without_imprinting_again
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5621740Z         PASS [   0.054s] (2303/3346) spt-procident pinned_proc_tests::a_live_pinned_process_does_not_read_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5723939Z         PASS [   0.044s] (2304/3346) spt-procident pinned_proc_tests::pinning_a_live_process_on_this_platform_yields_a_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5770986Z         PASS [   0.086s] (2305/3346) spt-poolguard tests::the_escape_hatch_opens_and_is_never_silent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5924713Z         PASS [   0.084s] (2306/3346) spt-procident pinned_proc_tests::a_pinned_process_that_exited_reads_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.5937503Z         PASS [   0.114s] (2307/3346) spt-poolguard tests::no_refusal_arm_names_a_command_that_cannot_be_run
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.8508103Z         PASS [   0.312s] (2308/3346) spt-procident pinned_proc_tests::the_same_live_pid_carrying_its_real_birth_stamp_does_not_read_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.8603738Z         PASS [   0.337s] (2309/3346) spt-procident pinned_proc_tests::an_unstamped_pin_degrades_to_bare_pid_in_both_directions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9017656Z         PASS [   0.339s] (2310/3346) spt-proto addr::tests::display_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9143836Z         PASS [   0.342s] (2311/3346) spt-proto addr::tests::parses_every_qualifier_combination
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9170259Z         PASS [   0.340s] (2312/3346) spt-proto addr::tests::rejects_doubled_delimiters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9287465Z         PASS [   0.336s] (2313/3346) spt-proto addr::tests::rejects_empty_or_bad_components
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9366314Z         PASS [   0.343s] (2314/3346) spt-proto boundary::tests::boundary_kinds_and_io_kinds_never_collide
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9447361Z         PASS [   0.094s] (2315/3346) spt-proto boundary::tests::the_class_is_the_three_ruled_variants
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9539774Z         PASS [   0.094s] (2316/3346) spt-proto chunk::tests::malformed_parts_return_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9656076Z         PASS [   0.064s] (2317/3346) spt-proto chunk::tests::missing_middle_part_is_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9715388Z         PASS [   0.057s] (2318/3346) spt-proto chunk::tests::orphan_group_without_head_is_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9789320Z         PASS [   0.062s] (2319/3346) spt-proto chunk::tests::oversized_line_splits_and_each_part_is_well_formed_and_bounded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:57.9847601Z         PASS [   0.056s] (2320/3346) spt-proto chunk::tests::reassemble_stream_handles_mixed_traffic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.2449568Z         PASS [   0.308s] (2321/3346) spt-proto chunk::tests::short_line_passes_through_unchunked
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.2897399Z         PASS [   0.336s] (2322/3346) spt-proto emit::tests::a_bare_carriage_return_is_escaped_too
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.2988938Z         PASS [   0.354s] (2323/3346) spt-proto chunk::tests::split_then_reassemble_is_byte_identity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.2993577Z         PASS [   0.334s] (2324/3346) spt-proto emit::tests::a_caller_supplied_terminator_is_absorbed_not_doubled
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3058531Z         PASS [   0.334s] (2325/3346) spt-proto emit::tests::a_plain_interpolated_write_fmt_splits_into_fragments
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3122504Z         PASS [   0.333s] (2326/3346) spt-proto emit::tests::a_short_writing_sink_receives_a_complete_block_too
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3193391Z         PASS [   0.335s] (2327/3346) spt-proto emit::tests::a_short_writing_sink_still_receives_the_complete_terminated_line
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3257951Z         PASS [   0.081s] (2328/3346) spt-proto emit::tests::a_static_literal_write_fmt_is_already_one_write
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3331042Z         PASS [   0.043s] (2329/3346) spt-proto emit::tests::an_interior_newline_is_escaped_so_one_emission_stays_one_line
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3395988Z         PASS [   0.041s] (2330/3346) spt-proto emit::tests::emit_block_keeps_interior_newlines_and_is_still_one_write
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3490286Z         PASS [   0.050s] (2331/3346) spt-proto emit::tests::emit_block_terminates_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3554793Z         PASS [   0.050s] (2332/3346) spt-proto emit::tests::emit_line_is_one_write_for_a_static_literal_too
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3623083Z         PASS [   0.050s] (2333/3346) spt-proto emit::tests::emit_line_issues_exactly_one_write_of_the_whole_line
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3720108Z         PASS [   0.053s] (2334/3346) spt-proto emit::tests::has_interior_break_ignores_the_terminator_and_catches_the_rest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3779413Z         PASS [   0.052s] (2335/3346) spt-proto emit::tests::the_stderr_spellings_expand_and_run
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3879666Z         PASS [   0.055s] (2336/3346) spt-proto emit::tests::write_line_debug_asserts_on_an_interior_newline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.3952928Z         PASS [   0.056s] (2337/3346) spt-proto endpoint::tests::agent_vs_shell_split
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.6560981Z         PASS [   0.307s] (2338/3346) spt-proto endpoint::tests::broker_and_node_families
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.6861031Z         PASS [   0.330s] (2339/3346) spt-proto endpoint::tests::day_one_tags_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.7430946Z         PASS [   0.381s] (2340/3346) spt-proto endpoint::tests::shell_kind_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:58.7476342Z         PASS [   0.376s] (2341/3346) spt-proto endpoint::tests::unknown_tag_tolerated_and_preserved
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.0274279Z         PASS [   0.649s] (2342/3346) spt-proto envelope::tests::attr_escape_is_line_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.0437767Z         PASS [   0.656s] (2343/3346) spt-proto envelope::tests::attr_newline_entity_decodes_before_amp_last
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3209832Z         PASS [   0.926s] (2344/3346) spt-proto envelope::tests::body_escape_is_cr_linesafe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3305609Z         PASS [   0.674s] (2345/3346) spt-proto envelope::tests::body_escape_unescape_round_trips_html_and_newlines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3498788Z         PASS [   0.664s] (2346/3346) spt-proto envelope::tests::decode_is_amp_last_so_literal_entities_do_not_double_decode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3661490Z         PASS [   0.623s] (2347/3346) spt-proto envelope::tests::from_attr_decodes_by_the_same_rule_as_every_other_attr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3734339Z         PASS [   0.626s] (2348/3346) spt-proto envelope::tests::from_attr_returns_none_on_garbage_or_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3791883Z         PASS [   0.352s] (2349/3346) spt-proto envelope::tests::from_attr_unescape_is_amp_last
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3859840Z         PASS [   0.342s] (2350/3346) spt-proto envelope::tests::parser_both_tags_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3925526Z         PASS [   0.072s] (2351/3346) spt-proto envelope::tests::parser_empty_body_is_some_empty_and_nested_tags_preserved
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.3986991Z         PASS [   0.068s] (2352/3346) spt-proto envelope::tests::parser_no_tags_falls_back_whole_payload_to_live
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.4046667Z         PASS [   0.055s] (2353/3346) spt-proto envelope::tests::parser_out_of_order_tags_both_extracted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.4091498Z         PASS [   0.043s] (2354/3346) spt-proto envelope::tests::parser_unclosed_live_tag_does_not_scoop_project
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.6674153Z         PASS [   0.294s] (2355/3346) spt-proto event::tests::a_recomposed_event_declares_its_type_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.6886975Z         PASS [   0.309s] (2356/3346) spt-proto event::tests::alarm_event_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.7302058Z         PASS [   0.344s] (2357/3346) spt-proto event::tests::an_unreemittable_key_is_dropped_by_the_strip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.7327551Z         PASS [   0.340s] (2358/3346) spt-proto event::tests::attr_decode_is_amp_last
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:43:59.9954265Z         PASS [   0.597s] (2359/3346) spt-proto event::tests::attr_order_preserved
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.0166692Z         PASS [   0.612s] (2360/3346) spt-proto event::tests::body_with_literal_event_tokens_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.0509662Z         PASS [   0.642s] (2361/3346) spt-proto event::tests::empty_body_envelope_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.0564774Z         PASS [   0.389s] (2362/3346) spt-proto event::tests::malformed_inputs_return_none_without_panic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.0645741Z         PASS [   0.376s] (2363/3346) spt-proto event::tests::msg_event_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.0721900Z         PASS [   0.342s] (2364/3346) spt-proto event::tests::psyche_authorable_types_are_reply_and_notify_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.0786974Z         PASS [   0.346s] (2365/3346) spt-proto event::tests::the_alarm_composer_renders_identically_to_the_general_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.3415972Z         PASS [   0.346s] (2366/3346) spt-proto event::tests::the_msg_composer_renders_identically_to_the_general_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.3647891Z         PASS [   0.348s] (2367/3346) spt-proto event::tests::the_seal_attr_is_sender_authored_and_survives_the_strip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.4023470Z         PASS [   0.351s] (2368/3346) spt-proto event::tests::the_strip_is_identity_when_there_is_nothing_to_strip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.4084815Z         PASS [   0.352s] (2369/3346) spt-proto event::tests::the_strip_removes_receiver_composed_attrs_and_keeps_the_rest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.4160013Z         PASS [   0.351s] (2370/3346) spt-proto event::tests::the_w2_message_attrs_are_sender_authored_and_survive_the_strip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.6791836Z         PASS [   0.607s] (2371/3346) spt-proto event::tests::typed_envelope_detected_and_parsed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.7010615Z         PASS [   0.622s] (2372/3346) spt-proto event::tests::typed_predicate_rejects_partials
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:00.9853101Z         PASS [   0.644s] (2373/3346) spt-proto event::tests::user_msg_envelope_is_n_minus_one_tolerant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.0030817Z         PASS [   0.638s] (2374/3346) spt-proto event::tests::user_msg_event_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.0404601Z         PASS [   0.638s] (2375/3346) spt-proto event::tests::user_msg_gate_is_not_payload_trusted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.3063604Z         PASS [   0.898s] (2376/3346) spt-proto event::tests::user_msg_identity_gate_truth_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.3270529Z         PASS [   0.911s] (2377/3346) spt-proto id::tests::accepts_japanese_scripts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.5988966Z         PASS [   0.920s] (2378/3346) spt-proto id::tests::accepts_plain_and_composite_ids
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.6263963Z         PASS [   0.925s] (2379/3346) spt-proto id::tests::rejects_empty_and_overlong
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:01.9141521Z         PASS [   0.928s] (2380/3346) spt-proto id::tests::rejects_path_whitespace_and_control
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:02.1947109Z         PASS [   1.192s] (2381/3346) spt-proto id::tests::reports_bad_char_position
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:02.4845820Z         PASS [   1.444s] (2382/3346) spt-proto id::tests::reserves_address_delimiters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:02.7688385Z         PASS [   1.462s] (2383/3346) spt-proto identity::tests::bad_inputs_error_without_panic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:03.0578048Z         PASS [   1.731s] (2384/3346) spt-proto identity::tests::known_answer_fixed_seed_is_stable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:03.3245859Z         PASS [   1.726s] (2385/3346) spt-proto identity::tests::public_key_hex_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:03.8925304Z         PASS [   2.266s] (2386/3346) spt-proto identity::tests::sign_verify_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:04.1385860Z         PASS [   2.225s] (2387/3346) spt-proto ioevent::tests::long_payload_is_cut_and_flagged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:04.6705086Z         PASS [   2.476s] (2388/3346) spt-proto ioevent::tests::short_payload_is_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:05.7127550Z         PASS [   3.228s] (2389/3346) spt-proto ioevent::tests::tool_use_is_named_but_not_emitted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:07.7637083Z         PASS [   4.995s] (2390/3346) spt-proto ioevent::tests::truncation_lands_on_a_char_boundary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:07.8116689Z         PASS [   4.753s] (2391/3346) spt-proto ioevent::tests::vocabulary_is_closed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:07.8377438Z         PASS [   4.513s] (2392/3346) spt-proto payload::tests::base64_known_vectors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:07.8476997Z         PASS [   3.955s] (2393/3346) spt-proto payload::tests::binary_blob_round_trips_all_byte_values
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:07.8719026Z         PASS [   3.733s] (2394/3346) spt-proto payload::tests::blob_padding_lengths_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:07.8938373Z         PASS [   3.223s] (2395/3346) spt-proto payload::tests::command_payload_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.1630579Z         PASS [   2.450s] (2396/3346) spt-proto payload::tests::text_payload_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.1947390Z         PASS [   0.431s] (2397/3346) spt-proto payload::tests::unknown_or_malformed_decodes_to_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.2736342Z         PASS [   0.462s] (2398/3346) spt-proto shortform::seal_tests::a_bare_trailing_marker_seals_the_remainder_and_claims_nothing_before_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.2819787Z         PASS [   0.444s] (2399/3346) spt-proto shortform::seal_tests::a_lone_marker_seals_everything_after_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.2907780Z         PASS [   0.443s] (2400/3346) spt-proto shortform::seal_tests::a_quoted_pair_and_a_live_pair_coexist
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.5598310Z         PASS [   0.688s] (2401/3346) spt-proto shortform::seal_tests::a_quoted_seal_marker_mints_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.5934373Z         PASS [   0.700s] (2402/3346) spt-proto shortform::seal_tests::an_empty_pair_does_not_disturb_the_pairs_around_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.6621125Z         PASS [   0.499s] (2403/3346) spt-proto shortform::seal_tests::an_empty_pair_mints_nothing_and_refuses_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.6819490Z         PASS [   0.487s] (2404/3346) spt-proto shortform::seal_tests::pairs_parse_greedy_left_to_right_and_each_mints_its_own
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.9527181Z         PASS [   0.679s] (2405/3346) spt-proto shortform::seal_tests::the_sealed_text_is_carried_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:08.9784847Z         PASS [   0.696s] (2406/3346) spt-proto shortform::tests::a_live_tags_body_is_carried_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.0342913Z         PASS [   0.743s] (2407/3346) spt-proto shortform::tests::a_lone_backtick_suppresses_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.2980925Z         PASS [   0.738s] (2408/3346) spt-proto shortform::tests::a_plain_tag_splits_targets_from_body
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.3279730Z         PASS [   0.734s] (2409/3346) spt-proto shortform::tests::a_quoted_tag_and_a_live_tag_coexist
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.3831779Z         PASS [   0.721s] (2410/3346) spt-proto shortform::tests::a_space_inside_the_id_list_ends_the_list
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.6490559Z         PASS [   0.967s] (2411/3346) spt-proto shortform::tests::a_tag_inside_a_fenced_block_is_a_quotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.6726088Z         PASS [   0.720s] (2412/3346) spt-proto shortform::tests::a_tag_inside_inline_backticks_is_a_quotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.6929270Z         PASS [   0.714s] (2413/3346) spt-proto shortform::tests::a_tag_needs_both_a_target_and_a_body
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7006993Z         PASS [   0.666s] (2414/3346) spt-proto shortform::tests::an_unclosed_fence_suppresses_to_the_end
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7064744Z         PASS [   0.408s] (2415/3346) spt-proto shortform::tests::an_unterminated_tag_is_not_a_dispatch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7126374Z         PASS [   0.385s] (2416/3346) spt-proto shortform::tests::backticks_inside_a_fence_are_just_fenced_content
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7196198Z         PASS [   0.336s] (2417/3346) spt-proto shortform::tests::several_tags_in_one_text_all_parse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7258076Z         PASS [   0.077s] (2418/3346) spt-proto shortform::tests::targets_are_comma_separated_and_ordered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7320604Z         PASS [   0.059s] (2419/3346) spt-proto version::tests::current_version_self_compatible
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7397942Z         PASS [   0.047s] (2420/3346) spt-proto version::tests::n_minus_one_window_accepts_and_rejects
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7453699Z         PASS [   0.045s] (2421/3346) spt-proto version::tests::window_floor_saturates_at_zero
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7661593Z         PASS [   0.046s] (2422/3346) spt-runtime manifest::io_gate_tests::absent_io_section_means_shortform_is_off
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7695482Z         PASS [   0.063s] (2423/3346) spt-runtime manifest::io_gate_tests::a_compliance_declaration_enables_shortform
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7696850Z         PASS [   0.057s] (2424/3346) spt-runtime manifest::io_gate_tests::a_declaring_adapter_can_still_opt_out
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7709985Z         PASS [   0.045s] (2425/3346) spt-runtime manifest::io_gate_tests::an_undeclared_io_section_is_still_off
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:09.7920139Z         PASS [   0.060s] (2426/3346) spt-runtime manifest::tests::a_misspelled_adapter_key_parses_and_is_named
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.0540403Z         PASS [   0.314s] (2427/3346) spt-runtime manifest::tests::checked_in_schema_is_current
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.0640709Z         PASS [   0.319s] (2428/3346) spt-runtime manifest::tests::digest_section_source_resolution
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.0983536Z         PASS [   0.332s] (2429/3346) spt-runtime manifest::tests::digest_section_validation_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1031721Z         PASS [   0.334s] (2430/3346) spt-runtime manifest::tests::each_role_resolves_its_own_declaration
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1064523Z         PASS [  12.621s] (2431/3346) spt-poolguard tests::the_ancestry_probe_reads_a_real_repository_both_ways
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1102724Z         PASS [   0.341s] (2432/3346) spt-runtime manifest::tests::fetcher_digest_strategy_needs_no_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1152352Z         PASS [   0.344s] (2433/3346) spt-runtime manifest::tests::fetcher_strategy_requires_fetcher_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1246997Z         PASS [   0.333s] (2434/3346) spt-runtime manifest::tests::free_form_tables_are_not_swept
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1304209Z         PASS [   0.076s] (2435/3346) spt-runtime manifest::tests::harness_fixture_parses_all_sections
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1340955Z         PASS [   0.070s] (2436/3346) spt-runtime manifest::tests::harness_kind_with_shell_section_fails_validation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1476002Z         PASS [   0.044s] (2437/3346) spt-runtime manifest::tests::host_binaries_optional_and_n1_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1521985Z         PASS [   0.046s] (2438/3346) spt-runtime manifest::tests::inject_env_without_value_fails_validation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1537486Z         PASS [   0.055s] (2439/3346) spt-runtime manifest::tests::hint_keyword_matching
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1588000Z         PASS [   0.048s] (2440/3346) spt-runtime manifest::tests::invocation_budget_defaults_passes_through_and_clamps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1729885Z         PASS [   0.058s] (2441/3346) spt-runtime manifest::tests::known_keys_across_the_full_fixtures_report_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1787862Z         PASS [   0.054s] (2442/3346) spt-runtime manifest::tests::manifest_schema_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1816491Z         PASS [   0.051s] (2443/3346) spt-runtime manifest::tests::message_idle_translation_binary_opt_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1874309Z         PASS [   0.053s] (2444/3346) spt-runtime manifest::tests::minimal_header_only_manifest_is_valid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.1942959Z         PASS [   0.047s] (2445/3346) spt-runtime manifest::tests::per_capability_act_gate_parses_and_validates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.2033976Z         PASS [   0.051s] (2446/3346) spt-runtime manifest::tests::profile_overlays_hints_wholesale
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.2082620Z         PASS [   0.054s] (2447/3346) spt-runtime manifest::tests::role_template_admits_valid_and_refuses_bad_env_inject
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.2147635Z         PASS [   0.056s] (2448/3346) spt-runtime manifest::tests::role_template_is_role_aware_for_notif_extras
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.2223469Z         PASS [   0.049s] (2449/3346) spt-runtime manifest::tests::role_template_refuses_env_remove_read_contradiction
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.4813167Z         PASS [   0.302s] (2450/3346) spt-runtime manifest::tests::role_template_refuses_unfillable_key_but_parse_admits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5018602Z         PASS [   0.320s] (2451/3346) spt-runtime manifest::tests::role_template_refuses_unterminated_brace
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5327347Z         PASS [   0.344s] (2452/3346) spt-runtime manifest::tests::role_template_skips_retired_psyche_init
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5413777Z         PASS [   0.347s] (2453/3346) spt-runtime manifest::tests::round_trips_through_toml
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5458439Z         PASS [   0.342s] (2454/3346) spt-runtime manifest::tests::service_section_parses_round_trips_and_defaults_its_grace
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5541287Z         PASS [   0.346s] (2455/3346) spt-runtime manifest::tests::service_section_refuses_contradictions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5600566Z         PASS [   0.345s] (2456/3346) spt-runtime manifest::tests::session_resume_role_parses_roundtrips_and_is_backcompat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5658038Z         PASS [   0.343s] (2457/3346) spt-runtime manifest::tests::shell_fixture_parses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5716385Z         PASS [   0.090s] (2458/3346) spt-runtime manifest::tests::shell_kind_without_shell_section_fails_validation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5787203Z         PASS [   0.077s] (2459/3346) spt-runtime manifest::tests::shell_tunnel_opt_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5858839Z         PASS [   0.054s] (2460/3346) spt-runtime manifest::tests::shortcut_basename_optional_with_default
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5903544Z         PASS [   0.049s] (2461/3346) spt-runtime manifest::tests::syntactically_broken_toml_is_an_error_not_a_panic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.5972621Z         PASS [   0.051s] (2462/3346) spt-runtime manifest::tests::translation_binary_command_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6034957Z         PASS [   0.049s] (2463/3346) spt-runtime manifest::tests::unknown_enum_variant_is_an_error_not_a_panic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6134593Z         PASS [   0.053s] (2464/3346) spt-runtime manifest::tests::unknown_keys_are_named_by_table_at_every_depth
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6173583Z         PASS [   0.051s] (2465/3346) spt-runtime manifest::tests::update_avenue_content_signing_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6243197Z         PASS [   0.053s] (2466/3346) spt-runtime manifest::tests::update_avenue_gh_release_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6334655Z         PASS [   0.055s] (2467/3346) spt-runtime manifest::tests::update_post_sub_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6401861Z         PASS [   0.054s] (2468/3346) spt-runtime manifest::tests::version_meets_floor_numeric_not_lexical
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6470693Z         PASS [   0.057s] (2469/3346) spt-runtime profile::tests::adapter_parent_matches_on_parent_not_composite
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6537681Z         PASS [   0.056s] (2470/3346) spt-runtime profile::tests::deep_nested_leaf_replace
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6587770Z         PASS [   0.055s] (2471/3346) spt-runtime profile::tests::file_pointer_recognized_only_for_single_file_key_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6661583Z         PASS [   0.053s] (2472/3346) spt-runtime profile::tests::leaf_replace_contract
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6726513Z         PASS [   0.055s] (2473/3346) spt-runtime profile::tests::profile_overlays_strings
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.6798467Z         PASS [   0.055s] (2474/3346) spt-runtime profile::tests::resolve_shipped_profile_applies_overlay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.9399496Z         PASS [   0.306s] (2475/3346) spt-runtime profile::tests::resolve_unknown_profile_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.9579435Z         PASS [   0.318s] (2476/3346) spt-runtime profile::tests::split_option_first_colon
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:10.9941026Z         PASS [   0.347s] (2477/3346) spt-runtime profile::tests::string_dot_path_read_write
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0024761Z         PASS [   0.349s] (2478/3346) spt-runtime profile::tests::tighten_only_allows_tightening
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0094896Z         PASS [   0.351s] (2479/3346) spt-runtime profile::tests::tighten_only_refuses_loosened_over_cap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0215548Z         PASS [   0.355s] (2480/3346) spt-runtime profile::tests::tighten_only_refuses_loosened_require_approval
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0529820Z         PASS [   0.380s] (2481/3346) spt-runtime registry::tests::a_misspelled_manifest_key_still_registers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0558488Z         PASS [   0.376s] (2482/3346) spt-runtime registry::tests::create_local_profile_guards
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0720654Z         PASS [   0.132s] (2483/3346) spt-runtime registry::tests::cross_adapter_fallback_target_resolves_adapter_and_profile
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0736661Z         PASS [   0.116s] (2484/3346) spt-runtime registry::tests::delete_local_profile_rules
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0758615Z         PASS [   0.066s] (2485/3346) spt-runtime registry::tests::docs_dir_fixture_lands_under_the_adapter_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0802750Z         PASS [   0.078s] (2486/3346) spt-runtime registry::tests::docs_dir_absolute_path_is_refused_at_register
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0945608Z         PASS [   0.073s] (2487/3346) spt-runtime registry::tests::docs_dir_parent_traversal_is_refused_at_register
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.0962427Z         PASS [   0.102s] (2488/3346) spt-runtime registry::tests::deregister_is_soft_and_readd_reactivates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.1088411Z         PASS [   0.053s] (2489/3346) spt-runtime registry::tests::invalid_manifest_records_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.1289062Z         PASS [   0.076s] (2490/3346) spt-runtime registry::tests::file_backed_string_reads_contents_lazily
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.1407647Z         PASS [   0.069s] (2491/3346) spt-runtime registry::tests::local_profile_overrides_a_shipped_file_pointer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4207633Z         PASS [   0.345s] (2492/3346) spt-runtime registry::tests::local_profile_survives_readd
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4349868Z         PASS [   0.359s] (2493/3346) spt-runtime registry::tests::missing_docs_dir_registers_adapter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4566453Z         PASS [   0.376s] (2494/3346) spt-runtime registry::tests::missing_string_file_skips_at_read_without_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4569636Z         PASS [   0.362s] (2495/3346) spt-runtime registry::tests::pointer_missing_manifest_is_deferred_not_cryptic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4670207Z         PASS [   0.358s] (2496/3346) spt-runtime registry::tests::register_refuses_unfillable_role_key_and_writes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4739598Z         PASS [   0.378s] (2497/3346) spt-runtime registry::tests::register_copy_vs_pointer_by_avenue
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4776444Z         PASS [   0.349s] (2498/3346) spt-runtime registry::tests::register_with_core_admits_when_core_meets_floor
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4815424Z         PASS [   0.341s] (2499/3346) spt-runtime registry::tests::register_with_core_refuses_below_floor_and_writes_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4937927Z         PASS [   0.074s] (2500/3346) spt-runtime registry::tests::resolve_option_bare_shipped_and_local
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.4998216Z         PASS [   0.065s] (2501/3346) spt-runtime registry::tests::resolve_option_in_matches_disk
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5076045Z         PASS [   0.051s] (2502/3346) spt-runtime registry::tests::string_file_pointer_escaping_the_dir_is_refused_at_register
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5287908Z         PASS [   0.047s] (2503/3346) spt-runtime resolve::tests::normalize_folds_case_and_stems_first_dot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5350899Z         PASS [   0.078s] (2504/3346) spt-runtime registry::tests::strings_get_set_through_overlay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5406596Z         PASS [   0.063s] (2505/3346) spt-runtime resolve::tests::no_candidate_when_no_adapter_hosts_binary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5508188Z         PASS [   0.057s] (2506/3346) spt-runtime resolve::tests::pointer_is_sibling_to_adapter_dirs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5561590Z         PASS [   0.027s] (2507/3346) spt-runtime resolve::tests::resolve_error_hints_print_the_group_level_adapter_form
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5636143Z         PASS [   0.056s] (2508/3346) spt-runtime resolve::tests::renamed_in_use_exe_still_resolves
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5735077Z         PASS [   0.099s] (2509/3346) spt-runtime resolve::tests::fallback_picks_freshest_then_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5756392Z         PASS [   0.076s] (2510/3346) spt-runtime resolve::tests::pointer_overrides_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5846728Z         PASS [   0.044s] (2511/3346) spt-runtime resolve::tests::single_candidate_resolves_base_no_pointer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5849828Z         PASS [   0.029s] (2512/3346) spt-runtime runtime::tests::adapter_static_keys_inject_and_substitute
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.5950050Z         PASS [   0.128s] (2513/3346) spt-runtime registry::tests::web_alias_validation_precedes_registration_and_rechecks_resolved_profiles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.6082686Z         PASS [   0.073s] (2514/3346) spt-runtime resolve::tests::set_clear_prune_rules
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.6099867Z         PASS [   0.059s] (2515/3346) spt-runtime resolve::tests::stale_pointer_self_heals_to_fallback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.8726590Z         PASS [   0.297s] (2516/3346) spt-runtime runtime::tests::capture_read_env_is_declared_allowlist_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9062225Z         PASS [   0.321s] (2517/3346) spt-runtime runtime::tests::engine_room_cwd_is_forced_over_role_and_caller
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9107343Z         PASS [   0.326s] (2518/3346) spt-runtime runtime::tests::expand_tilde_expands_leading_home_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9166648Z         PASS [   0.353s] (2519/3346) spt-runtime runtime::tests::bounded_run_captures_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9194060Z         PASS [   0.324s] (2520/3346) spt-runtime runtime::tests::fills_known_placeholders
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9275954Z         PASS [   0.319s] (2521/3346) spt-runtime runtime::tests::identity_env_scrubbed_even_when_role_declares_no_env_remove
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9336068Z         PASS [   0.324s] (2522/3346) spt-runtime runtime::tests::identity_scrub_overrides_a_spawn_env_stamp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9495508Z         PASS [   0.077s] (2523/3346) spt-runtime runtime::tests::inject_read_env_keys_resolves_ambient_then_value_then_skips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9553006Z         PASS [   0.049s] (2524/3346) spt-runtime runtime::tests::literal_braces_still_escape_per_token
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9612053Z         PASS [   0.050s] (2525/3346) spt-runtime runtime::tests::missing_key_and_empty_command_errors_still_fire
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9677629Z         PASS [   0.051s] (2526/3346) spt-runtime runtime::tests::missing_key_errors_before_spawn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9739802Z         PASS [   0.055s] (2527/3346) spt-runtime runtime::tests::multiword_value_is_one_argv_element
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9801566Z         PASS [   0.053s] (2528/3346) spt-runtime runtime::tests::placeholder_inside_larger_token_substitutes_in_place
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9864623Z         PASS [   0.053s] (2529/3346) spt-runtime runtime::tests::quote_and_semicolon_values_stay_one_element
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9930848Z         PASS [   0.043s] (2530/3346) spt-runtime runtime::tests::resolve_program_adds_exe_suffix_on_windows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:11.9993133Z         PASS [   0.044s] (2531/3346) spt-runtime runtime::tests::resolve_program_falls_back_to_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.0067998Z         PASS [   0.046s] (2532/3346) spt-runtime runtime::tests::resolve_program_prefers_install_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.0122601Z         PASS [   0.044s] (2533/3346) spt-runtime runtime::tests::scrub_identity_env_clears_all_identity_vars_from_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.2742696Z         PASS [   0.300s] (2534/3346) spt-runtime runtime::tests::spawn_cwd_default_applies_only_without_role_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.2889264Z         PASS [   0.309s] (2535/3346) spt-runtime runtime::tests::spawn_env_stamps_reach_the_command_env
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3174196Z         PASS [   0.324s] (2536/3346) spt-runtime runtime::tests::stamp_survives_env_remove
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3230203Z         PASS [   0.324s] (2537/3346) spt-runtime runtime::tests::tokenize_honors_double_quotes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3292784Z         PASS [   0.322s] (2538/3346) spt-runtime runtime::tests::unknown_role_errors
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3396726Z         PASS [   0.353s] (2539/3346) spt-runtime runtime::tests::spawn_session_detached_returns_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3415213Z         PASS [   0.329s] (2540/3346) spt-store access::tests::a_blanket_closed_node_admits_discover_and_still_refuses_msg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3470114Z         PASS [   0.073s] (2541/3346) spt-store access::tests::a_blanket_rule_must_satisfy_the_policy_on_every_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3486421Z         PASS [   0.060s] (2542/3346) spt-store access::tests::a_case_folded_discover_key_is_honored_by_the_governing_reader
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3551175Z         PASS [   0.038s] (2543/3346) spt-store access::tests::a_closed_endpoint_with_an_allow_hole_is_not_locked
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3601383Z         PASS [   0.037s] (2544/3346) spt-store access::tests::a_closed_posture_refuses_a_remote_send_and_still_admits_a_local_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3663718Z         PASS [   0.037s] (2545/3346) spt-store access::tests::a_deny_row_does_not_unlock
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3797484Z         PASS [   0.040s] (2546/3346) spt-store access::tests::a_discover_naming_deny_row_still_denies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3862744Z         PASS [   0.045s] (2547/3346) spt-store access::tests::a_node_scope_allow_is_a_hole_in_an_endpoints_lock
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3863307Z         LEAK [   0.813s] (2548/3346) spt-runtime runtime::tests::bounded_run_kills_on_timeout
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3917283Z         PASS [   0.045s] (2549/3346) spt-store access::tests::a_node_wide_close_locks_an_endpoint_that_names_no_posture
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.3989849Z         PASS [   0.050s] (2550/3346) spt-store access::tests::a_per_endpoint_own_node_allow_reopens_one_target_through_a_node_wide_deny
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4039836Z         PASS [   0.049s] (2551/3346) spt-store access::tests::a_qualifier_that_excludes_the_invocation_falls_through_to_the_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4157673Z         PASS [   0.056s] (2552/3346) spt-store access::tests::a_retired_surface_leaves_the_vocabulary_stays_legal_and_is_reported_at_load
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4166278Z         PASS [   0.050s] (2553/3346) spt-store access::tests::a_revoked_default_open_endpoint_is_not_locked
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4223286Z         PASS [   0.043s] (2554/3346) spt-store access::tests::a_rule_naming_the_local_origin_still_governs_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4279637Z         PASS [   0.042s] (2555/3346) spt-store access::tests::a_sender_rule_is_more_specific_than_both_own_node_denies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4341820Z         PASS [   0.048s] (2556/3346) spt-store access::tests::a_surface_mode_write_replaces_every_spelling_of_that_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.4397856Z         PASS [   0.048s] (2557/3346) spt-store access::tests::a_surface_reaches_the_rendered_section_by_existing_in_the_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.6993085Z         PASS [   0.300s] (2558/3346) spt-store access::tests::a_wrong_case_mode_heals_and_an_exact_spelling_still_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7201955Z         PASS [   0.316s] (2559/3346) spt-store access::tests::a_wrong_case_rule_covers_the_canonical_traffic
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7568004Z         PASS [   0.340s] (2560/3346) spt-store access::tests::allow_revoke_open_polarity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7631975Z         PASS [   0.341s] (2561/3346) spt-store access::tests::an_absent_or_unrecognized_origin_stamp_classifies_as_agent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7683984Z         PASS [   0.353s] (2562/3346) spt-store access::tests::absent_is_baseline_corrupt_is_degrade
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7710779Z         PASS [   0.343s] (2563/3346) spt-store access::tests::an_excluded_rule_does_not_shadow_a_lower_ranked_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7781267Z         PASS [   0.344s] (2564/3346) spt-store access::tests::an_explicit_discover_deny_closes_it_at_every_mode_tier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7840672Z         PASS [   0.344s] (2565/3346) spt-store access::tests::an_ordinary_agent_cannot_author_a_node_scope_rule
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7896801Z         PASS [   0.090s] (2566/3346) spt-store access::tests::an_origin_qualified_allow_still_counts_as_a_hole
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.7959602Z         PASS [   0.076s] (2567/3346) spt-store access::tests::an_own_node_deny_leaves_remote_origins_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8025078Z         PASS [   0.046s] (2568/3346) spt-store access::tests::an_unknown_surface_is_not_attributable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8133606Z         PASS [   0.050s] (2569/3346) spt-store access::tests::an_unqualified_rule_decodes_as_any_and_never_serializes_the_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8151931Z         PASS [   0.047s] (2570/3346) spt-store access::tests::an_unset_policy_derives_from_the_requested_surfaces_posture
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8215730Z         PASS [   0.050s] (2571/3346) spt-store access::tests::attributability_is_read_only_from_the_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8268786Z         PASS [   0.049s] (2572/3346) spt-store access::tests::captured_mode_decides_the_bottom_and_absence_stays_open
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8334228Z         PASS [   0.049s] (2573/3346) spt-store access::tests::chain_first_match_wins_tier_by_tier
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8390912Z         PASS [   0.049s] (2574/3346) spt-store access::tests::clearing_a_node_surface_mode_folds_case
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8458071Z         PASS [   0.050s] (2575/3346) spt-store access::tests::discover_stays_outside_the_locked_claim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:12.8514709Z         PASS [   0.049s] (2576/3346) spt-store access::tests::every_reading_of_locked_comes_from_one_predicate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1168851Z         PASS [   0.303s] (2577/3346) spt-store access::tests::every_shipped_surface_renders_with_a_description
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1325764Z         PASS [   0.317s] (2578/3346) spt-store access::tests::node_scope_rules_print_the_engine_room_removal_form
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1596928Z         PASS [   0.338s] (2579/3346) spt-store access::tests::only_the_origin_user_qualifier_takes_a_node_subject_out_of_widening
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1674392Z         PASS [   0.340s] (2580/3346) spt-store access::tests::provenance_records_history_without_splitting_the_tuple
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1746180Z         PASS [   0.341s] (2581/3346) spt-store access::tests::recent_outbound_correlates_within_window
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1875152Z         PASS [   0.348s] (2582/3346) spt-store access::tests::recent_outbound_is_bounded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1973818Z         PASS [   0.346s] (2583/3346) spt-store access::tests::revoking_the_last_rule_leaves_no_vacant_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.1984843Z         PASS [   0.353s] (2584/3346) spt-store access::tests::recent_outbound_persists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2043525Z         PASS [   0.087s] (2585/3346) spt-store access::tests::rules_are_per_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2115070Z         PASS [   0.079s] (2586/3346) spt-store access::tests::sender_endpoint_rule_ids_span_both_scopes_and_ignore_other_subjects
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2182546Z         PASS [   0.059s] (2587/3346) spt-store access::tests::sender_endpoint_tier_matches_only_a_supplied_subject
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2242111Z         PASS [   0.057s] (2588/3346) spt-store access::tests::surface_ids_never_differ_by_case_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2302620Z         PASS [   0.056s] (2589/3346) spt-store access::tests::surface_vocabulary_is_open_and_constant_case
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2367516Z         PASS [   0.049s] (2590/3346) spt-store access::tests::the_attributability_reader_follows_the_table_not_a_hardcoded_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2432806Z         PASS [   0.046s] (2591/3346) spt-store access::tests::the_default_on_reader_follows_the_table_not_a_hardcoded_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2499355Z         PASS [   0.051s] (2592/3346) spt-store access::tests::the_default_open_pass_is_distinguishable_from_the_implicit_open_bottom
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2561082Z         PASS [   0.052s] (2593/3346) spt-store access::tests::the_locked_surface_set_is_derived_from_the_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2623936Z         PASS [   0.051s] (2594/3346) spt-store access::tests::the_node_surface_mode_closes_one_surface_and_only_that_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2690561Z         PASS [   0.051s] (2595/3346) spt-store access::tests::the_node_surface_mode_read_is_the_named_entry_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2753545Z         PASS [   0.051s] (2596/3346) spt-store access::tests::the_origin_qualifier_admits_exactly_its_own_class
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2816489Z         PASS [   0.051s] (2597/3346) spt-store access::tests::the_posture_close_happens_only_when_no_posture_is_set
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2886336Z         PASS [   0.052s] (2598/3346) spt-store access::tests::the_posture_reading_follows_the_carve_out_exactly_as_the_chain_does
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.2971590Z         PASS [   0.054s] (2599/3346) spt-store access::tests::the_printed_remove_command_removes_that_exact_rule
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.3007033Z         PASS [   0.051s] (2600/3346) spt-store access::tests::the_subject_consequence_follows_the_attributability_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.5611181Z         PASS [   0.305s] (2601/3346) spt-store access::tests::the_surface_default_open_set_is_derived_from_the_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.6137888Z         PASS [   0.351s] (2602/3346) spt-store access::tests::the_three_origins_decide_the_write_and_a_husk_never_lands
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.6214271Z         PASS [   0.352s] (2603/3346) spt-store access::tests::the_v1_vocabulary_is_derived_from_the_surface_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.6430444Z         PASS [   0.367s] (2604/3346) spt-store access::tests::the_widening_gate_binds_the_owner_agent_but_not_the_user_or_engine_room
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.6490975Z         PASS [   0.367s] (2605/3346) spt-store access::tests::tuple_removal_is_idempotent_and_removes_only_the_matching_tuple
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.6555566Z         PASS [   0.367s] (2606/3346) spt-store access::tests::unsetting_a_node_surface_mode_restores_the_default_rather_than_pinning_open
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.9132183Z         PASS [   0.616s] (2607/3346) spt-store access::tests::upserting_the_opposite_decision_replaces_rather_than_contradicts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.9563438Z         PASS [   0.654s] (2608/3346) spt-store access::tests::v1_rows_migrate_preserving_semantics
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.9804497Z         PASS [   0.367s] (2609/3346) spt-store access::tests::web_is_default_on_but_explicit_denies_govern
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.9805636Z         PASS [   0.419s] (2610/3346) spt-store access::tests::v2_round_trips_every_construct
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:13.9861298Z         PASS [   0.365s] (2611/3346) spt-store access::tests::widening_counts_both_polarities_and_narrowing_counts_as_neither
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.0016286Z         PASS [   0.359s] (2612/3346) spt-store atomic::tests::atomic_write_bytes_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.0034292Z         PASS [   0.354s] (2613/3346) spt-store atomic::tests::atomic_write_creates_and_replaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.0223080Z         PASS [   0.067s] (2614/3346) spt-store atomic::tests::retry_absorbs_transient_then_succeeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.0460581Z         PASS [   0.390s] (2615/3346) spt-store atomic::tests::atomic_write_durable_round_trips_and_renames_tmp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.2867944Z         PASS [   0.306s] (2616/3346) spt-store atomic::tests::retry_does_not_retry_non_transient
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.3076034Z         PASS [   0.327s] (2617/3346) spt-store atomic::tests::retry_gives_up_after_max_attempts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.3480050Z         PASS [   0.362s] (2618/3346) spt-store atomic::tests::to_forward_slash_strips_unc_prefix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.3680753Z         PASS [   0.366s] (2619/3346) spt-store attachment::tests::attached_default_flip_roundtrip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.3732792Z         PASS [   0.370s] (2620/3346) spt-store attachment::tests::boot_reset_and_serving_filter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.3766648Z         PASS [   0.354s] (2621/3346) spt-store attachment::tests::corrupt_file_degrades_to_attached
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:14.7255640Z         PASS [   0.352s] (2622/3346) spt-store branchstore::tests::config_error_classifier_covers_both_symptom_families
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:16.9910513Z         PASS [   3.078s] (2623/3346) spt-store atomic::tests::concurrent_writers_never_collide_on_tmp
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:21.9700828Z         PASS [   7.245s] (2624/3346) spt-store branchstore::tests::open_or_init_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:22.7157478Z         PASS [   8.347s] (2625/3346) spt-store branchstore::tests::concurrent_open_or_init_on_one_fresh_store_all_ok
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:22.7370115Z         PASS [   0.021s] (2626/3346) spt-store briefing::tests::a_blank_label_is_not_a_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:22.7627742Z         PASS [   0.026s] (2627/3346) spt-store briefing::tests::a_pipe_in_a_cell_cannot_break_the_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:22.7840202Z         PASS [   0.021s] (2628/3346) spt-store briefing::tests::a_resolvable_node_subject_renders_its_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:22.7981765Z         PASS [   0.014s] (2629/3346) spt-store briefing::tests::an_empty_markdown_ruleset_still_says_so
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.0693219Z         PASS [   0.271s] (2630/3346) spt-store briefing::tests::an_unresolvable_node_subject_keeps_the_full_hex
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.1079427Z         PASS [   0.038s] (2631/3346) spt-store briefing::tests::an_unresolved_row_omits_the_label_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.2604234Z         PASS [   0.152s] (2632/3346) spt-store briefing::tests::bring_up_spools_one_briefing_and_writes_no_role_text
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.5084615Z         PASS [   0.248s] (2633/3346) spt-store briefing::tests::only_node_subjects_resolve_to_a_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.5363106Z         PASS [   6.545s] (2634/3346) spt-store branchstore::tests::sweep_removes_only_stale_empty_locks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.5460335Z         PASS [   0.037s] (2635/3346) spt-store briefing::tests::row_order_follows_the_identity_not_the_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.5861038Z         PASS [   0.049s] (2636/3346) spt-store briefing::tests::the_briefing_states_an_admin_bringup_grant_and_is_silent_without_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.6120350Z         PASS [   0.066s] (2637/3346) spt-store briefing::tests::the_briefing_states_session_weather_and_leaves_the_role_to_the_role
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.6182761Z         PASS [   0.032s] (2638/3346) spt-store briefing::tests::the_drilldown_prints_provenance_and_a_single_sourced_remove_command
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.6349840Z         PASS [   0.023s] (2639/3346) spt-store briefing::tests::the_json_row_keeps_the_hex_and_carries_the_name_beside_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.6431196Z         PASS [   0.025s] (2640/3346) spt-store briefing::tests::the_ruleset_renders_as_a_markdown_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.9136726Z         PASS [   0.279s] (2641/3346) spt-store briefing::tests::the_table_gives_every_rule_a_row_and_says_so_when_there_are_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.9505674Z         PASS [   0.307s] (2642/3346) spt-store commune_intent::tests::an_unparseable_marker_is_not_a_standing_expectation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:23.9801743Z         PASS [   0.066s] (2643/3346) spt-store commune_intent::tests::each_attempt_is_judged_against_its_own_recorded_budget
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0129132Z         PASS [   0.032s] (2644/3346) spt-store commune_intent::tests::orphan_is_past_budget_and_artifact_less_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0136957Z         PASS [   0.063s] (2645/3346) spt-store commune_intent::tests::intent_records_reads_and_is_consumed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0275783Z         PASS [   0.015s] (2646/3346) spt-store contacts::tests::a_row_past_the_window_is_dropped_at_write_and_at_read
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0352690Z         PASS [   0.021s] (2647/3346) spt-store contacts::tests::direction_is_part_of_the_key_and_a_repeat_refreshes_in_place
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0363123Z         PASS [   9.749s] (2648/3346) spt-store branchstore::tests::branches_are_independent_roots
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0453517Z         PASS [   0.018s] (2649/3346) spt-store contacts::tests::the_cap_bounds_the_ledger_oldest_first_at_its_stated_value
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0655882Z         PASS [   0.029s] (2650/3346) spt-store contacts::tests::the_ledger_round_trips_and_degrades_to_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.0675733Z         PASS [   0.022s] (2651/3346) spt-store contextmark::tests::join_bump_dominates_both_parents
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.2166018Z         PASS [   0.181s] (2652/3346) spt-store contacts::tests::the_ledger_is_carried_by_no_wire_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.3316099Z         PASS [   0.266s] (2653/3346) spt-store contextmark::tests::marker_round_trips_v1_and_v2
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.3580302Z         PASS [   0.290s] (2654/3346) spt-store contextmark::tests::merge_decisions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.4019143Z         PASS [   0.184s] (2655/3346) spt-store contextmark::tests::vector_compare_covers_all_orders
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.4197242Z         PASS [   0.088s] (2656/3346) spt-store contextmark::tests::vector_parse_tolerant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:24.7670745Z         PASS [  10.390s] (2657/3346) spt-store branchstore::tests::multi_key_commit_is_one_commit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:25.2062718Z         PASS [  10.858s] (2658/3346) spt-store branchstore::tests::commit_then_read_at_tip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:26.3621274Z         PASS [  12.316s] (2659/3346) spt-store branchstore::tests::branch_tips_by_recency_matches_order_and_tips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:26.6645764Z         PASS [   1.897s] (2660/3346) spt-store contextstore::tests::invalid_id_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:27.8093272Z         PASS [   5.839s] (2661/3346) spt-store branchstore::tests::unchanged_write_is_no_commit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:29.6734490Z         PASS [  15.366s] (2662/3346) spt-store branchstore::tests::branches_by_recency_orders_newest_first
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:29.7080859Z         PASS [   0.035s] (2663/3346) spt-store daemon_inhibit::tests::a_torn_inhibit_record_still_inhibits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:29.7460564Z         PASS [   0.038s] (2664/3346) spt-store daemon_inhibit::tests::inhibit_stands_until_an_intent_verb_clears_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.1498907Z         PASS [   0.404s] (2665/3346) spt-store daemon_inhibit::tests::spawn_lock_is_exclusive_and_released_on_drop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.4028316Z         PASS [   0.253s] (2666/3346) spt-store dispatchresults::tests::a_torn_last_line_never_hides_the_rows_before_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.4492119Z         PASS [   0.046s] (2667/3346) spt-store dispatchresults::tests::no_file_reads_as_no_results
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.4829523Z         PASS [   0.034s] (2668/3346) spt-store dispatchresults::tests::rows_accumulate_per_target_across_dispatches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.5041053Z         PASS [   0.021s] (2669/3346) spt-store dispatchresults::vocabulary_tests::a_seal_row_has_no_target_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.5234537Z         PASS [   0.019s] (2670/3346) spt-store dispatchresults::vocabulary_tests::no_perch_is_named_and_survives_the_wire_before_anything_emits_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.5422454Z         PASS [   0.019s] (2671/3346) spt-store dispatchresults::vocabulary_tests::targeted_and_seal_rows_share_one_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.8124858Z         PASS [   0.270s] (2672/3346) spt-store empower::tests::a_carry_moves_the_grant_and_leaves_nothing_at_the_old_session
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:30.9090530Z         PASS [   0.096s] (2673/3346) spt-store empower::tests::a_failed_carry_drops_the_authority_rather_than_leaving_it_behind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.1920530Z         PASS [   0.283s] (2674/3346) spt-store empower::tests::a_grant_covers_one_subnet_and_absence_covers_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.2684252Z         PASS [   0.076s] (2675/3346) spt-store empower::tests::a_removal_failure_still_stops_the_old_record_from_granting
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.2699242Z         PASS [   6.064s] (2676/3346) spt-store contextstore::tests::project_branch_holds_many_agents
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.5277160Z         PASS [   0.259s] (2677/3346) spt-store empower::tests::the_drop_edge_revokes_and_corruption_degrades_closed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.5487052Z         PASS [   0.279s] (2678/3346) spt-store empower::tests::the_grant_sentence_names_the_subnet_the_grant_and_the_lifetime
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.5982081Z         PASS [   0.070s] (2679/3346) spt-store empower::tests::the_shared_writer_makes_both_grants_one_record_with_one_lifetime
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.6128513Z         PASS [   0.064s] (2680/3346) spt-store empower::tests::the_sweep_clears_dead_sessions_and_spares_the_live_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.6274177Z         PASS [   0.029s] (2681/3346) spt-store engineroom::tests::a_reset_drops_the_advertisement_whitelist
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.6345341Z         PASS [   0.022s] (2682/3346) spt-store engineroom::tests::a_shut_gate_answers_an_absent_code_exactly_as_it_answers_a_wrong_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.6425210Z         PASS [   0.015s] (2683/3346) spt-store engineroom::tests::an_absent_code_is_refused_without_counting
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.6504190Z         PASS [   0.016s] (2684/3346) spt-store engineroom::tests::an_attempt_during_backoff_is_refused_without_counting
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.9135068Z         PASS [   0.271s] (2685/3346) spt-store engineroom::tests::backoff_doubles_from_one_second_and_caps_at_an_hour
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:31.9497966Z         PASS [   0.299s] (2686/3346) spt-store engineroom::tests::bring_up_needs_the_adapter_first_and_the_code_after
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.0174718Z         PASS [   0.067s] (2687/3346) spt-store engineroom::tests::every_seat_change_drops_authority_and_a_re_serve_does_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.0179888Z         PASS [   0.104s] (2688/3346) spt-store engineroom::tests::creation_and_reset_are_the_same_path_and_the_id_is_the_uniqueness
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.2938117Z         PASS [   0.276s] (2689/3346) spt-store engineroom::tests::failures_past_the_third_are_loud
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.3184648Z         PASS [   0.300s] (2690/3346) spt-store engineroom::tests::one_ledger_covers_both_secrets_so_the_budget_never_doubles
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.3548780Z         PASS [   0.061s] (2691/3346) spt-store engineroom::tests::only_the_admitted_connection_re_serving_itself_skips_the_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.3651312Z         PASS [   0.047s] (2692/3346) spt-store engineroom::tests::posture_beats_the_advertisement_whitelist
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.3717218Z         PASS [   0.017s] (2693/3346) spt-store engineroom::tests::posture_is_online_only_while_a_controller_is_attached
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.3784604Z         PASS [   0.013s] (2694/3346) spt-store engineroom::tests::success_clears_the_ledger_and_reopens_the_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.3851442Z         PASS [   0.013s] (2695/3346) spt-store engineroom::tests::the_edge_revocation_ignores_every_other_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.4022734Z         PASS [   0.024s] (2696/3346) spt-store engineroom::tests::the_ledger_survives_a_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.4037460Z         PASS [   0.019s] (2697/3346) spt-store engineroom::tests::the_reserved_id_refusal_is_one_sentence_naming_the_one_entry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:32.4152820Z         PASS [   0.013s] (2698/3346) spt-store enroll::tests::absent_and_corrupt_stores_load_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:33.8011542Z         PASS [   1.386s] (2699/3346) spt-store enroll::tests::hello_kcm_pubkey_layout_is_der_spki_and_the_retired_blob_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:33.8142008Z         PASS [   0.013s] (2700/3346) spt-store enroll::tests::join_is_insert_if_absent_with_collision_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.0999747Z         PASS [   0.286s] (2701/3346) spt-store enroll::tests::mint_persists_and_finds_by_node_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.1170075Z         PASS [   1.713s] (2702/3346) spt-store enroll::tests::backend_signature_verifies_dispatches_and_refuses_distinctly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.3829304Z         PASS [   0.283s] (2703/3346) spt-store enroll::tests::mint_refuses_already_enrolled_but_pair_is_the_key
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.4228909Z         PASS [   0.306s] (2704/3346) spt-store enroll::tests::mint_refuses_empty_subnet_and_bad_pubkey
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.4646260Z         PASS [   0.081s] (2705/3346) spt-store enroll::tests::mint_refuses_every_non_short_hex_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.7456089Z         PASS [   0.323s] (2706/3346) spt-store epoch::tests::a_nul_husk_loads_as_zero_and_heals
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.7764671Z         PASS [   0.312s] (2707/3346) spt-store epoch::tests::corrupt_or_absent_file_degrades_safely
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:34.8237129Z         PASS [   0.078s] (2708/3346) spt-store epoch::tests::counter_persists_across_reload
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.1185056Z         PASS [   0.342s] (2709/3346) spt-store epoch::tests::fast_forward_jumps_strictly_past_the_fleet_lease
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.1251970Z         PASS [   0.301s] (2710/3346) spt-store epoch::tests::fast_forward_leaves_a_healthy_counter_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.4229252Z         PASS [   0.297s] (2711/3346) spt-store erole::tests::an_invented_surface_reaches_the_role_exactly_as_it_reaches_the_help
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.4307801Z         PASS [   0.312s] (2712/3346) spt-store epoch::tests::next_is_strictly_increasing_from_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.4693422Z         PASS [   0.046s] (2713/3346) spt-store erole::tests::the_role_is_the_same_bytes_every_time_and_names_the_seat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.4778697Z         PASS [   0.047s] (2714/3346) spt-store gate::tests::an_absence_is_never_an_identity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.7429431Z         PASS [   0.274s] (2715/3346) spt-store gate::tests::the_resolution_predicate_never_disagrees_with_the_filesystem
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:35.8024279Z         PASS [   0.324s] (2716/3346) spt-store gitrun::tests::deadline_kills_and_reports_timed_out
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.0859130Z         PASS [   0.283s] (2717/3346) spt-store grants::tests::grant_match_is_exact_per_tuple
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.3801389Z         PASS [   0.294s] (2718/3346) spt-store grants::tests::grant_revoke_roundtrip_default_deny
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.4307790Z         PASS [   0.051s] (2719/3346) spt-store grants::tests::persistence_and_corrupt_degrade_to_deny
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.4326487Z         PASS [   0.690s] (2720/3346) spt-store gitrun::tests::version_runs_within_budget
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.7178384Z         PASS [   0.287s] (2721/3346) spt-store helperline::tests::a_torn_line_is_skipped_and_the_rest_survives
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.7244389Z         PASS [   0.292s] (2722/3346) spt-store helperline::tests::an_anchored_path_of_either_platform_is_a_candidate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.7545016Z         PASS [   0.037s] (2723/3346) spt-store helperline::tests::an_endpoint_with_no_registrations_reads_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:36.7885275Z         PASS [  12.430s] (2724/3346) spt-store contextstore::tests::conflict_artifacts_preserve_both_versions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.0196701Z         PASS [   0.295s] (2725/3346) spt-store helperline::tests::an_unanchored_path_is_not_a_candidate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.0444739Z         PASS [   0.290s] (2726/3346) spt-store helperline::tests::candidates_are_deduplicated_and_capped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.1013543Z         PASS [   0.082s] (2727/3346) spt-store helperline::tests::the_record_lives_in_the_perch_beside_the_io_log
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.1173716Z         PASS [   0.073s] (2728/3346) spt-store history::tests::appends_one_record_per_line
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.3761416Z         PASS [   0.275s] (2729/3346) spt-store history::tests::context_entries_carry_the_discriminator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.4223523Z         PASS [   0.303s] (2730/3346) spt-store history::tests::digest_entries_go_to_a_separate_log
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.4638235Z         PASS [   0.088s] (2731/3346) spt-store home::tests::adoption_stamps_only_unset_and_only_when_unambiguous
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.7167404Z         PASS [   0.253s] (2732/3346) spt-store home::tests::home_assignment_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.7311518Z         PASS [   0.309s] (2733/3346) spt-store home::tests::effective_subnet_precedence_and_self_still_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:37.7810710Z         PASS [   0.064s] (2734/3346) spt-store home::tests::nested_parent_home_derives_from_parent_and_none_for_self
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.0147052Z         PASS [   0.284s] (2735/3346) spt-store home::tests::scope_seeding_never_clobbers_user_policy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.0401732Z         PASS [   0.259s] (2736/3346) spt-store home::tests::stamp_creation_fields_news_assign_and_revives_carry_forward
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.0858265Z         PASS [   0.070s] (2737/3346) spt-store home::tests::stamp_creation_fields_preserves_profile_against_bare_parent_rebind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.3527538Z         PASS [   0.312s] (2738/3346) spt-store hostlabel::tests::hostname_is_nonempty_and_trimmed_on_supported_platforms
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.3726912Z         PASS [   0.288s] (2739/3346) spt-store hostlabel::tests::node_key_absent_label_falls_back_to_hostname
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.4084244Z         PASS [  10.599s] (2740/3346) spt-store contextstore::tests::two_tier_layout_and_commits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.4257688Z         PASS [   0.073s] (2741/3346) spt-store inbound::tests::a_dead_binder_discards_even_a_green_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.4307120Z         PASS [   0.058s] (2742/3346) spt-store inbound::tests::a_live_binder_round_trips_its_verdict
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.6903777Z         PASS [   0.282s] (2743/3346) spt-store inbound::tests::a_recycled_pid_is_not_the_binder
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.7213889Z         PASS [   0.296s] (2744/3346) spt-store inbound::tests::absent_and_corrupt_read_unknown
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:38.7831415Z         PASS [   0.352s] (2745/3346) spt-store inbound::tests::every_verdict_variant_round_trips_through_the_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:39.0307242Z         PASS [   0.340s] (2746/3346) spt-store inbound::tests::speakable_verdicts_render_the_binder_built_fix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:39.3831980Z         PASS [   0.662s] (2747/3346) spt-store info::tests::anchored_skeleton_carries_the_home_the_caller_knew
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:39.3924594Z         PASS [   0.609s] (2748/3346) spt-store info::tests::anchored_skeleton_never_overwrites_an_existing_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:39.6719787Z         PASS [   0.641s] (2749/3346) spt-store info::tests::busy_sentinel_round_trips_and_read_pid_is_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:39.7270682Z         PASS [   0.335s] (2750/3346) spt-store info::tests::controllable_is_additive_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:39.9609250Z         PASS [   0.578s] (2751/3346) spt-store info::tests::concurrent_read_during_writes_never_torn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.0055729Z         PASS [   0.278s] (2752/3346) spt-store info::tests::corrupt_content_returns_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.0620065Z         PASS [   0.390s] (2753/3346) spt-store info::tests::converge_dead_relay_guards_on_pid_session_and_online
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.4261393Z         PASS [   0.364s] (2754/3346) spt-store info::tests::psyche_host_error_slots_round_trip_and_stay_additive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.4564070Z         PASS [   0.451s] (2755/3346) spt-store info::tests::psyche_host_error_round_trips_and_set_clear_increments
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.6017967Z         PASS [   0.641s] (2756/3346) spt-store info::tests::mutate_info_serializes_writers_so_offline_is_never_clobbered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.6437335Z         PASS [   0.217s] (2757/3346) spt-store info::tests::read_env_is_additive_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.6584842Z         PASS [   0.202s] (2758/3346) spt-store info::tests::read_pid_tolerates_schema_minimal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:40.9957358Z         PASS [   0.394s] (2759/3346) spt-store info::tests::resume_unbound_stamp_fires_on_offline_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:41.0406861Z         PASS [   0.397s] (2760/3346) spt-store info::tests::rollback_unbound_stamp_is_generation_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:41.2933562Z         PASS [   0.635s] (2761/3346) spt-store info::tests::set_driven_by_stamps_and_clears
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:41.4458395Z         PASS [   4.657s] (2762/3346) spt-store helperline::tests::the_file_is_trimmed_to_its_newest_records
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:41.5726600Z         PASS [   0.577s] (2763/3346) spt-store info::tests::set_last_active_stamps_recency
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:41.5990346Z         PASS [   0.558s] (2764/3346) spt-store info::tests::set_resources_writes_and_clears_the_blurb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:41.8717672Z         PASS [   0.578s] (2765/3346) spt-store info::tests::set_rest_state_stamps_state_and_anchor_as_a_pair
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:42.1532896Z         PASS [   0.707s] (2766/3346) spt-store info::tests::set_status_marks_existing_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:42.4718734Z         PASS [   0.899s] (2767/3346) spt-store info::tests::terminal_normalize_cas_miss_leaves_a_newer_bind_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:42.7764055Z         PASS [   1.177s] (2768/3346) spt-store info::tests::terminal_normalize_writes_the_triple_atomically_never_mixed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:43.0528403Z         PASS [   1.181s] (2769/3346) spt-store info::tests::translation_fault_round_trips_and_set_clear
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:43.3154722Z         PASS [   1.162s] (2770/3346) spt-store info::tests::worker_correlation_metadata_is_additive_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:44.0847391Z         PASS [   1.308s] (2771/3346) spt-store info::tests::write_read_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:44.4302358Z         PASS [   1.377s] (2772/3346) spt-store iolog::tests::a_corrupt_line_is_skipped_not_fatal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:44.9904900Z         PASS [   1.675s] (2773/3346) spt-store iolog::tests::a_cursor_returns_strictly_what_follows_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:45.2718197Z         PASS [   1.187s] (2774/3346) spt-store iolog::tests::a_multiline_payload_stays_one_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:46.0627252Z         PASS [   1.632s] (2775/3346) spt-store iolog::tests::a_poll_reports_the_true_snapshot_head_independent_of_selected_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:46.8532006Z         PASS [   1.863s] (2776/3346) spt-store iolog::tests::a_row_with_an_unknown_field_is_read_not_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:48.1789526Z         PASS [   2.907s] (2777/3346) spt-store iolog::tests::a_tail_window_inside_three_byte_utf8_never_resets_the_seq
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:49.7427534Z         PASS [   3.680s] (2778/3346) spt-store iolog::tests::a_tail_without_a_complete_row_falls_back_to_the_whole_file
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:51.3354808Z         PASS [   8.864s] (2779/3346) spt-store info::tests::write_info_racing_mutate_info_never_lost_update
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:51.9653183Z         PASS [   5.112s] (2780/3346) spt-store iolog::tests::an_internal_reset_is_repaired_even_when_last_exceeds_first
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:53.6209075Z         PASS [   5.442s] (2781/3346) spt-store iolog::tests::appends_assign_monotonic_seqs_from_one
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.2812567Z         PASS [   2.946s] (2782/3346) spt-store iolog::tests::healthy_sequence_gaps_do_not_trigger_repair_or_retention
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.2820342Z         PASS [   4.539s] (2783/3346) spt-store iolog::tests::equal_adjacent_seqs_are_repaired
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.3172834Z         PASS [   2.352s] (2784/3346) spt-store iolog::tests::oversized_repair_retains_bounded_newest_history
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.6030141Z         PASS [   0.981s] (2785/3346) spt-store iolog::tests::repair_uses_the_global_max_even_when_it_is_outside_the_tail
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.6557709Z         PASS [   0.374s] (2786/3346) spt-store iolog::tests::reset_blocks_repair_above_the_max_without_changing_payload_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.7037621Z         PASS [   0.422s] (2787/3346) spt-store iolog::tests::sequence_exhaustion_refuses_without_modifying_history
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:54.9400985Z         PASS [   0.623s] (2788/3346) spt-store iolog::tests::the_log_seq_and_the_digest_seq_do_not_collide
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.0536629Z         PASS [   0.398s] (2789/3346) spt-store iolog::tests::the_mid_marker_round_trips_and_is_absent_when_false
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.0782039Z         PASS [   0.374s] (2790/3346) spt-store iolog::tests::trimming_1251_reset_rows_keeps_the_newest_1000_by_position
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.3239251Z         PASS [   0.384s] (2791/3346) spt-store knock::tests::a_blanket_code_binds_the_machine_for_every_surface
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.3579801Z         PASS [   0.304s] (2792/3346) spt-store knock::tests::a_claim_whose_write_is_refused_leaves_the_code_redeemable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.4372485Z         PASS [   0.359s] (2793/3346) spt-store knock::tests::a_code_minted_before_the_seal_reads_as_legacy_and_unacknowledged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.4373429Z         PASS [   0.113s] (2794/3346) spt-store knock::tests::a_code_preauth_is_not_consumable_by_a_knock_answer_of_the_same_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.4465525Z         PASS [   0.089s] (2795/3346) spt-store knock::tests::a_code_reads_with_or_without_a_monic_imprint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.4545626Z         PASS [   0.017s] (2796/3346) spt-store knock::tests::a_code_shorter_than_the_entropy_floor_is_malformed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.7171113Z         PASS [   0.280s] (2797/3346) spt-store knock::tests::a_genuinely_node_widening_bake_is_still_refused_without_the_acknowledgment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.7532200Z         PASS [   0.307s] (2798/3346) spt-store knock::tests::a_human_presenting_an_msg_only_code_reaches_a_decision_that_matches_them
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.8536277Z         PASS [   0.399s] (2799/3346) spt-store knock::tests::a_human_redeemer_binds_their_machine_and_only_its_humans
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.8606909Z         PASS [   0.107s] (2800/3346) spt-store knock::tests::a_knock_sent_to_another_node_is_retained_but_answerable_nowhere_here
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.8663043Z         PASS [   0.149s] (2801/3346) spt-store knock::tests::a_husked_store_degrades_loudly_rather_than_reading_as_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.8713477Z         PASS [   0.018s] (2802/3346) spt-store knock::tests::a_mutual_preauth_is_consumed_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:55.8783061Z         PASS [   0.018s] (2803/3346) spt-store knock::tests::a_non_attributable_surface_binds_a_rule_the_real_gate_actually_matches
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.1389957Z         PASS [   0.273s] (2804/3346) spt-store knock::tests::a_partial_approval_renders_its_own_verdict_and_never_collapses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.1698770Z         PASS [   0.298s] (2805/3346) spt-store knock::tests::a_preauth_armed_under_the_retired_flags_still_consumes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2216084Z         PASS [   0.343s] (2806/3346) spt-store knock::tests::a_receipt_stamps_only_the_row_it_names
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2330575Z         PASS [   0.094s] (2807/3346) spt-store knock::tests::a_redeemer_armed_record_takes_subject_and_surfaces_from_the_reply
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2406134Z         PASS [   0.071s] (2808/3346) spt-store knock::tests::a_redemption_answers_under_the_mints_authority_never_same_node_user
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2489212Z         PASS [   0.027s] (2809/3346) spt-store knock::tests::a_redemption_consumes_what_it_makes_due_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2586916Z         PASS [   0.025s] (2810/3346) spt-store knock::tests::a_refused_record_and_a_never_armed_one_are_indistinguishable_by_design
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2682891Z         PASS [   0.028s] (2811/3346) spt-store knock::tests::a_reknock_updates_in_place_and_never_queues_a_second_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2841394Z         PASS [   0.035s] (2812/3346) spt-store knock::tests::a_sealed_secret_is_exactly_twenty_hex_chars
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.2942047Z         PASS [   0.036s] (2813/3346) spt-store knock::tests::a_sent_knock_stays_answerable_here_until_it_names_a_far_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.3322017Z         PASS [  29.668s] (2814/3346) spt-store contextstore::tests::rename_ripples_both_tiers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.3353937Z         PASS [  31.934s] (2815/3346) spt-store contextstore::tests::fork_copies_both_tiers_then_diverges
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.5557522Z         PASS [   0.287s] (2816/3346) spt-store knock::tests::a_sent_row_and_a_received_row_do_not_replace_each_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.5853553Z         PASS [   0.301s] (2817/3346) spt-store knock::tests::an_absent_store_is_the_empty_inbox
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6463001Z         PASS [   0.352s] (2818/3346) spt-store knock::tests::an_expired_knock_is_unanswerable_even_from_a_stale_listing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6518974Z         PASS [   0.320s] (2819/3346) spt-store knock::tests::an_unanswered_knock_leaves_the_preauth_unconsumed_and_rearming_replaces
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6601367Z         PASS [   0.325s] (2820/3346) spt-store knock::tests::an_unidentified_consumption_never_echoes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6678815Z         PASS [   0.112s] (2821/3346) spt-store knock::tests::expired_and_unknown_codes_are_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6760307Z         PASS [   0.091s] (2822/3346) spt-store knock::tests::expiry_renders_as_expired_rather_than_as_nothing_to_approve
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6869145Z         PASS [   0.041s] (2823/3346) spt-store knock::tests::node_target_knocks_reach_only_the_engine_room
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.6997531Z         PASS [   0.048s] (2824/3346) spt-store knock::tests::purging_the_knockers_perch_leaves_the_knock_answerable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.9632769Z         PASS [   0.303s] (2825/3346) spt-store knock::tests::records_written_before_this_wave_still_decode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:56.9939070Z         PASS [   0.326s] (2826/3346) spt-store knock::tests::redeemed_consumes_refused_disarms_and_unconfirmed_leaves_it_armed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0356878Z         PASS [   0.359s] (2827/3346) spt-store knock::tests::the_arrival_rate_limit_refuses_past_its_window_and_admits_within_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0446467Z         PASS [   0.357s] (2828/3346) spt-store knock::tests::the_attributable_half_binds_the_endpoint_and_the_rest_binds_the_machine
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0584398Z         PASS [   0.359s] (2829/3346) spt-store knock::tests::the_courtesy_seam_matches_only_a_knock_this_node_sent_to_that_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0761900Z         PASS [   0.082s] (2830/3346) spt-store knock::tests::the_knocker_is_the_stamped_id_and_survives_a_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0764536Z         PASS [   0.113s] (2831/3346) spt-store knock::tests::the_inbox_round_trips_and_stays_minimal_when_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0865467Z         PASS [   0.051s] (2832/3346) spt-store knock::tests::the_outbound_fields_read_and_write_back_absent_on_an_n_1_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.0931462Z         PASS [   0.049s] (2833/3346) spt-store knock::tests::the_recorded_exchange_matches_on_all_three_identity_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.1022051Z         PASS [   0.044s] (2834/3346) spt-store knock::tests::the_same_code_presented_by_an_endpoint_binds_the_sender_endpoint_unchanged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.3753997Z         PASS [   0.299s] (2835/3346) spt-store knock::tests::the_same_secret_is_well_formed_under_one_form_and_not_the_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.4021069Z         PASS [   0.325s] (2836/3346) spt-store knock::tests::the_widening_acknowledgment_comes_from_the_record_and_not_from_the_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.4602978Z         PASS [   0.374s] (2837/3346) spt-store knock::tests::two_redemptions_of_one_code_yield_exactly_one_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.4710633Z         PASS [   0.378s] (2838/3346) spt-store lastmsg::tests::a_corrupt_row_reads_as_absent_rather_than_failing_the_poll
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.4750513Z         PASS [   0.373s] (2839/3346) spt-store lastmsg::tests::a_msg_envelope_is_excerpted_by_its_text_and_other_envelopes_are_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.4912210Z         PASS [   0.089s] (2840/3346) spt-store lastmsg::tests::excerpt_bounds_at_ten_words_and_says_so
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.4960019Z         PASS [   0.121s] (2841/3346) spt-store lastmsg::tests::a_row_round_trips_and_an_absent_one_reads_as_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.7523545Z         PASS [   0.292s] (2842/3346) spt-store lastmsg::tests::excerpt_collapses_whitespace_so_a_body_cannot_shape_the_render
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.7841804Z         PASS [   0.313s] (2843/3346) spt-store liveness::tests::busy_and_missing_keep_interim_parity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.8311357Z         PASS [   0.356s] (2844/3346) spt-store liveness::tests::corrupt_record_not_alive_but_absent_stays_alive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.8682452Z         PASS [   0.377s] (2845/3346) spt-store liveness::tests::daemon_hosted_offline_overrides_live_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.8811422Z         PASS [   0.385s] (2846/3346) spt-store liveness::tests::daemon_hosted_online_survives_dead_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.8998039Z         PASS [   0.147s] (2847/3346) spt-store liveness::tests::external_perch_still_pid_probes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.9253489Z         PASS [   0.141s] (2848/3346) spt-store liveness::tests::is_perch_unbound_false_for_online_and_offline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:57.9337165Z         PASS [   0.103s] (2849/3346) spt-store liveness::tests::registry_entry_keys_on_status_for_hosted_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:58.1932315Z         PASS [   0.324s] (2850/3346) spt-store liveness::tests::relay_liveness_kills_only_a_provably_gone_relay
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:58.2449656Z         PASS [   0.345s] (2851/3346) spt-store matchrule::tests::an_invalid_regex_never_matches_and_never_falls_back_to_literal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:58.2535208Z         PASS [   0.328s] (2852/3346) spt-store matchrule::tests::literal_is_case_insensitive_substring_and_regex_is_opt_in
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:44:58.2822213Z         PASS [   0.401s] (2853/3346) spt-store liveness::tests::unbound_not_alive_but_detected_and_not_stale
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:02.9320735Z         PASS [   8.330s] (2854/3346) spt-store iolog::tests::the_log_trims_oldest_first_at_the_bound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:07.3695300Z         PASS [   9.176s] (2855/3346) spt-store monic::tests::a_clone_with_nothing_to_copy_mints_no_mind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:09.2802418Z         PASS [  42.918s] (2856/3346) spt-store contextstore::tests::remove_endpoint_removes_exactly_the_source
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:09.3531953Z         PASS [  44.933s] (2857/3346) spt-store contextstore::tests::fork_copies_the_whole_mind_tier_including_files_no_constant_names
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:09.6013763Z         PASS [  11.668s] (2858/3346) spt-store monic::tests::a_bad_monic_id_is_refused_but_a_trigger_pattern_may_be_anything
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:10.0363346Z         PASS [  11.754s] (2859/3346) spt-store monic::tests::a_w5_peer_keyed_record_migrates_to_the_re_keyed_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:14.1009668Z         PASS [  15.856s] (2860/3346) spt-store monic::tests::a_monic_is_committed_to_the_minds_own_branch
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:14.3746357Z         PASS [   0.274s] (2861/3346) spt-store monic::tests::every_published_trigger_row_now_reads_as_evaluated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:14.6746963Z         PASS [   0.300s] (2862/3346) spt-store monic::tests::every_trigger_kind_is_published_under_its_wire_spelling
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:19.0695359Z         PASS [  20.816s] (2863/3346) spt-store monic::tests::a_monics_id_is_independent_of_the_peers_it_classifies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:28.5467653Z         PASS [  25.615s] (2864/3346) spt-store monic::tests::add_and_update_refuse_opposite_states
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.1274630Z         PASS [  22.757s] (2865/3346) spt-store monic::tests::an_imparted_monic_never_overwrites_a_standing_judgement
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.2382799Z         PASS [  20.885s] (2866/3346) spt-store monic::tests::classification_is_sender_only_and_never_warns_about_a_classified_peer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.4849654Z         PASS [   0.247s] (2867/3346) spt-store monic::tests::the_trigger_section_carries_no_markdown_or_internal_codes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.5693627Z         PASS [   0.084s] (2868/3346) spt-store monic::tests::the_trigger_section_is_composed_from_its_table_not_a_literal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.6030467Z         PASS [   0.034s] (2869/3346) spt-store msgid::tests::a_byte_identical_repeat_still_mints
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.8763620Z         PASS [   0.273s] (2870/3346) spt-store msgid::tests::a_collision_lengthens_the_newcomer_and_leaves_the_incumbent_alone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.9428077Z         PASS [   0.064s] (2871/3346) spt-store msgid::tests::a_nested_perchs_sent_message_is_found_too
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:30.9975939Z         PASS [   0.056s] (2872/3346) spt-store msgid::tests::a_path_the_words_never_named_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.2656102Z         PASS [   0.268s] (2873/3346) spt-store msgid::tests::a_target_other_than_the_audience_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.3006660Z         PASS [   0.035s] (2874/3346) spt-store msgid::tests::an_absent_origin_refuses_where_a_present_one_admits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.3546976Z         PASS [   0.054s] (2875/3346) spt-store msgid::tests::an_agent_attributed_row_refuses_where_a_user_row_admits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.6281154Z         PASS [   0.273s] (2876/3346) spt-store msgid::tests::an_id_is_eight_base32_characters_derived_from_the_content
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.6648481Z         PASS [   0.037s] (2877/3346) spt-store msgid::tests::an_unfound_row_refuses_where_a_found_one_admits
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.7083261Z         PASS [   0.043s] (2878/3346) spt-store msgid::tests::an_unknown_id_resolves_to_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:31.9827488Z         PASS [   0.274s] (2879/3346) spt-store msgid::tests::an_unknown_parent_is_carried_not_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.0466970Z         PASS [   0.064s] (2880/3346) spt-store msgid::tests::lengthening_extends_rather_than_remints
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.3491640Z         PASS [  23.067s] (2881/3346) spt-store monic::tests::an_unreadable_record_is_not_a_classification_but_is_still_listed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.3889739Z         PASS [   0.342s] (2882/3346) spt-store msgid::tests::short_id_shape_is_judged_by_alphabet_and_length
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.4156861Z         PASS [   0.068s] (2883/3346) spt-store msgid::tests::the_node_finds_its_own_sent_message_and_nothing_it_did_not_send
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.4273126Z         PASS [   0.038s] (2884/3346) spt-store nodeid::tests::corrupt_key_errors_never_regenerates
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.7021360Z         PASS [   0.286s] (2885/3346) spt-store nodeid::tests::create_then_load_is_stable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.7528755Z         PASS [   0.325s] (2886/3346) spt-store nodeid::tests::seed_hex_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.7633693Z         PASS [   0.061s] (2887/3346) spt-store notif::tests::adr0046_fields_are_additive_and_n1_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.8858249Z         PASS [   0.134s] (2888/3346) spt-store notif::tests::an_addressed_row_round_trips_and_an_ordinary_one_stays_unaddressed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:32.8909260Z         PASS [   0.128s] (2889/3346) spt-store notif::tests::bare_coalesce_key_rejected_at_front_door
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:33.2314742Z         PASS [   0.340s] (2890/3346) spt-store notif::tests::dismiss_by_coalesce_key_latches_matching_rows_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:33.2400409Z         PASS [   0.354s] (2891/3346) spt-store notif::tests::coalesce_supersedes_exact_tuple_latest_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:33.5730368Z         PASS [   0.341s] (2892/3346) spt-store notif::tests::legacy_schema_gains_columns_on_open
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:33.5877373Z         PASS [   0.348s] (2893/3346) spt-store notif::tests::listing_is_subnet_scoped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:33.9895547Z         PASS [   0.416s] (2894/3346) spt-store notif::tests::merge_is_idempotent_and_commutative
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.0008797Z         PASS [   0.413s] (2895/3346) spt-store notif::tests::migration_dismisses_only_stale_update_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.2540868Z         PASS [   0.264s] (2896/3346) spt-store notif::tests::produce_list_dismiss_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.2748884Z         PASS [   0.274s] (2897/3346) spt-store notif::tests::reopen_is_durable_and_corrupt_seen_degrades
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.4286958Z         PASS [   0.175s] (2898/3346) spt-store notif::tests::row_serde_round_trips_with_forward_compat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.4606607Z         PASS [  15.391s] (2899/3346) spt-store monic::tests::remove_withdraws_an_unreadable_record_without_a_force_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.5257816Z         PASS [   0.251s] (2900/3346) spt-store notif::tests::seen_unions_and_surfaced_maxes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.7626878Z         PASS [   0.302s] (2901/3346) spt-store notif::tests::the_addressee_is_additive_on_the_wire
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.8489131Z         PASS [   0.420s] (2902/3346) spt-store notif::tests::stale_undismissed_copy_cannot_undismiss
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:34.9213003Z         PASS [   0.395s] (2903/3346) spt-store notif::tests::ttl_expiry_ignores_seen_state_and_is_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.0780838Z         PASS [   0.315s] (2904/3346) spt-store peeraddrs::tests::a_poison_row_never_becomes_a_route
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.1097473Z         PASS [   0.261s] (2905/3346) spt-store peeraddrs::tests::corrupt_file_degrades_to_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.1519956Z         PASS [   0.231s] (2906/3346) spt-store peeraddrs::tests::put_get_roundtrip_and_noop_reput
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.4152406Z         PASS [   0.337s] (2907/3346) spt-store peeraddrs::tests::put_refuses_a_mismatched_mapping
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.4529628Z         PASS [   0.343s] (2908/3346) spt-store peeraddrs::tests::record_is_one_step_and_skips_noops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.4963389Z         PASS [   0.344s] (2909/3346) spt-store peeraddrs::tests::suspect_persists_and_old_files_load_clean
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.7578471Z         PASS [   0.342s] (2910/3346) spt-store peeraddrs::tests::suspect_row_survives_failures_and_a_validated_put_supersedes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.7870914Z         PASS [   0.334s] (2911/3346) spt-store perch::tests::a_boundary_echo_record_is_first_wins_and_read_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:35.8199046Z         PASS [   0.324s] (2912/3346) spt-store perch::tests::a_stamp_disagreeing_with_the_sentinel_is_discarded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.0833151Z         PASS [   0.325s] (2913/3346) spt-store perch::tests::activity_stamp_round_trips_both_directions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.0993384Z         PASS [   0.312s] (2914/3346) spt-store perch::tests::adapter_option_encoding_dodges_windows_path_traps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.3764768Z         PASS [   0.556s] (2915/3346) spt-store perch::tests::adapter_option_encoding_is_injective
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.4090143Z         PASS [   0.326s] (2916/3346) spt-store perch::tests::an_unstamped_perch_reports_its_state_with_no_instant_either_direction
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.4190828Z         PASS [   6.292s] (2917/3346) spt-store monic::tests::the_delivery_edge_reads_without_minting_a_mind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.6899384Z         PASS [   0.590s] (2918/3346) spt-store perch::tests::child_files_route_through_one_resolver
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.7121576Z         PASS [   0.336s] (2919/3346) spt-store perch::tests::classification_matrix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:36.9888948Z         PASS [   0.580s] (2920/3346) spt-store perch::tests::explicit_parent_wins_over_infer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.0234688Z         PASS [   0.604s] (2921/3346) spt-store perch::tests::list_nested_perch_ids_in_is_structural_not_name_matched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.0265327Z         PASS [   0.337s] (2922/3346) spt-store perch::tests::list_self_perch_ids_enumerates_bound_top_level
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.2847881Z         PASS [   0.573s] (2923/3346) spt-store perch::tests::parse_activity_stamp_rejects_malformed_and_disagreeing_bodies
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.5421527Z         PASS [   0.519s] (2924/3346) spt-store perch::tests::resolve_self_is_flat
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.5422809Z         PASS [   0.553s] (2925/3346) spt-store perch::tests::resolve_psyche_and_worker_nest_under_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.6076326Z         PASS [   0.581s] (2926/3346) spt-store perch::tests::service_dir_is_home_scoped_and_encoded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.8747267Z         PASS [   0.590s] (2927/3346) spt-store perch::tests::shell_perches_resolve_under_owner_shells_namespace
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.9076786Z         PASS [   0.365s] (2928/3346) spt-store perch::tests::spt_home_is_pure_and_honors_env
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:37.9419322Z         PASS [   0.399s] (2929/3346) spt-store perchgc::tests::a_held_info_lock_refuses_the_mid_create_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.2098686Z         PASS [   0.602s] (2930/3346) spt-store perchgc::tests::a_refused_parent_shields_its_whole_subtree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.2222315Z         PASS [   0.347s] (2931/3346) spt-store perchgc::tests::corrupt_record_is_occupied_never_residue
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.2623076Z         PASS [   0.355s] (2932/3346) spt-store perchgc::tests::counts_partition_the_population
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.5359445Z         PASS [   0.326s] (2933/3346) spt-store perchgc::tests::fully_residual_subtree_is_reaped_deepest_first
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.5539137Z         PASS [   0.612s] (2934/3346) spt-store perchgc::tests::declines_to_reap_a_live_or_offline_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.8661679Z         PASS [   0.644s] (2935/3346) spt-store perchgc::tests::never_descends_into_a_subtree_a_record_claims
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:38.8753997Z         PASS [   0.613s] (2936/3346) spt-store perchgc::tests::never_keys_on_is_perch_alive_which_inverts_here
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:39.1271848Z         PASS [   0.591s] (2937/3346) spt-store perchgc::tests::reaps_only_recordless_spool_less_non_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:39.4050757Z         PASS [   0.851s] (2938/3346) spt-store perchgc::tests::recordless_parent_with_a_held_child_is_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:39.6853189Z         PASS [   0.819s] (2939/3346) spt-store perchgc::tests::refused_residue_reports_a_distinct_token_and_a_remedy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:39.9982149Z         PASS [   1.123s] (2940/3346) spt-store perchgc::tests::report_is_identical_with_and_without_reap
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:40.5121204Z         PASS [   1.385s] (2941/3346) spt-store perchgc::tests::spool_sidecar_alone_still_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:40.8012024Z         PASS [   1.396s] (2942/3346) spt-store perchgc::tests::unreadable_root_does_nothing_and_says_so
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:41.0949323Z         PASS [   1.410s] (2943/3346) spt-store proc::tests::current_process_is_alive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:41.9214823Z         PASS [   1.409s] (2944/3346) spt-store proc::tests::exe_basename_dead_pid_is_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:42.7213148Z         PASS [   1.920s] (2945/3346) spt-store proc::tests::exe_basename_resolves_current_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:43.2370551Z         PASS [   3.239s] (2946/3346) spt-store proc::tests::descendants_include_a_spawned_child
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.3602472Z         PASS [   2.438s] (2947/3346) spt-store proc::tests::parent_pid_resolves_and_is_alive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.4286112Z         PASS [   1.707s] (2948/3346) spt-store proc::tests::pid_zero_is_dead_on_every_os
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.4526245Z         PASS [   3.358s] (2949/3346) spt-store proc::tests::kill_pid_tree_kills_the_whole_subtree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.7080135Z         PASS [   1.471s] (2950/3346) spt-store proc::tests::process_cmdline_reads_a_live_arg_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.7116177Z         PASS [   0.283s] (2951/3346) spt-store proc::tests::process_table_lists_the_current_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.7205258Z         PASS [   0.361s] (2952/3346) spt-store proc::tests::process_exists_is_tristate_and_never_guesses_without_a_snapshot
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.7409719Z         PASS [   0.288s] (2953/3346) spt-store proc::tests::unassigned_pid_is_dead
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:44.8111641Z         PASS [   0.099s] (2954/3346) spt-store projderive::tests::dedup_and_owlery_exclusion
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.0798362Z         PASS [   0.359s] (2955/3346) spt-store projderive::tests::normalization_and_path_under
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.1018673Z         PASS [   0.394s] (2956/3346) spt-store proc::tests::windows_handle_held_corpse_reads_alive_to_the_holder_but_gone_to_the_table
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.1195950Z         PASS [   0.379s] (2957/3346) spt-store projderive::tests::precedence_session_then_origin_then_context
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.1266234Z         PASS [  30.452s] (2958/3346) spt-store monic::tests::monic_crud_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.4958224Z         PASS [   0.394s] (2959/3346) spt-store project::tests::url_spellings_normalize_to_one_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.5531316Z         PASS [   0.433s] (2960/3346) spt-store projindex::tests::fingerprint_keys_on_project_tips_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.5683979Z         PASS [   0.442s] (2961/3346) spt-store projindex::tests::join_is_roster_authoritative
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.5839526Z         PASS [   0.088s] (2962/3346) spt-store projindex::tests::missing_index_degrades_to_absent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.8543798Z         PASS [   0.302s] (2963/3346) spt-store projindex::tests::roundtrip_reads_back_without_git
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.8971569Z         PASS [   0.329s] (2964/3346) spt-store projindex::tests::schema_mismatch_degrades_distinctly
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:45.9728051Z         PASS [   0.389s] (2965/3346) spt-store projindex::tests::truncated_index_degrades_to_unreadable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.2298306Z         PASS [   0.375s] (2966/3346) spt-store projindex::tests::w2_shaped_row_tolerates_missing_refs_and_order_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.2614530Z         PASS [   0.364s] (2967/3346) spt-store projinval::tests::burst_coalesces_into_one_refresh
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.3367954Z         PASS [   0.364s] (2968/3346) spt-store projinval::tests::garbage_event_is_skipped_and_removed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.5966944Z         PASS [   0.367s] (2969/3346) spt-store projinval::tests::nudge_drain_roundtrip_consumes_queue
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.6352773Z         PASS [   0.374s] (2970/3346) spt-store psyche_custody::tests::custody_mint_write_read_clear_round_trip
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.6756831Z         PASS [   0.339s] (2971/3346) spt-store psyche_custody::tests::custody_record_has_no_status_no_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.6961222Z         PASS [   0.061s] (2972/3346) spt-store psyche_custody::tests::custody_squatter_tolerates_missing_nested_and_corrupt_records
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.7119776Z         PASS [   0.036s] (2973/3346) spt-store psyche_custody::tests::empty_or_corrupt_reads_as_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.7120312Z         PASS [   0.115s] (2974/3346) spt-store psyche_custody::tests::custody_squatter_finds_the_holding_psyche_and_misses_others
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.9653722Z         PASS [   0.269s] (2975/3346) spt-store psyche_custody::tests::mint_is_canonical_uuid_v4
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:46.9998488Z         PASS [   0.288s] (2976/3346) spt-store recent_home::tests::blank_name_is_noop
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.0553152Z         PASS [   0.343s] (2977/3346) spt-store recent_home::tests::legacy_single_value_reads_as_one_element
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.0680022Z         PASS [   0.103s] (2978/3346) spt-store recent_home::tests::mru_less_project_falls_back_to_node_global
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.0740707Z         PASS [   0.074s] (2979/3346) spt-store recent_home::tests::node_global_moves_to_front
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.0767764Z         PASS [   0.021s] (2980/3346) spt-store recent_home::tests::project_then_node_global_precedence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.0898363Z         PASS [   0.022s] (2981/3346) spt-store recent_home::tests::record_updates_both_levels
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.1033430Z         PASS [   2.023s] (2982/3346) spt-store project::tests::display_derivation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.1838468Z         PASS [   0.110s] (2983/3346) spt-store registry::tests::clean_keys_on_status_for_daemon_hosted_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.4877516Z         PASS [   0.411s] (2984/3346) spt-store registry::tests::clean_removes_dead_keeps_live
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.4920152Z         PASS [   2.681s] (2985/3346) spt-store project::tests::derivation_ladder
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.5329250Z         PASS [   0.349s] (2986/3346) spt-store registry::tests::register_on_nonexistent_owlery_creates_dir_and_succeeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:47.5413309Z         PASS [   0.438s] (2987/3346) spt-store registry::tests::register_and_lookup
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.1034857Z         PASS [   0.562s] (2988/3346) spt-store rename::tests::live_nested_child_blocks_rename
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.1107515Z         PASS [   0.578s] (2989/3346) spt-store registry::tests::resolve_on_empty_registry_is_none_not_error
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.1237923Z         PASS [   0.636s] (2990/3346) spt-store registry::tests::reregister_replaces_address
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.1395410Z         PASS [   0.647s] (2991/3346) spt-store registry::tests::resolve_cleans_before_lookup
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.3346332Z         PASS [   1.245s] (2992/3346) spt-store registry::tests::concurrent_registration_never_locks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.3724442Z         PASS [   0.269s] (2993/3346) spt-store rename::tests::rename_refusals_leave_owlery_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.3764222Z         PASS [   0.253s] (2994/3346) spt-store resume_custody::tests::corrupt_record_is_not_custody
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4009388Z         PASS [   0.066s] (2995/3346) spt-store resume_custody::tests::legacy_bare_pid_file_is_deleted_and_never_honored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4505498Z         PASS [   0.311s] (2996/3346) spt-store resume_custody::tests::dead_pid_reads_not_ours
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4522356Z         PASS [   0.051s] (2997/3346) spt-store resume_custody::tests::unproven_defers_exactly_one_tick
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4564277Z         PASS [   0.346s] (2998/3346) spt-store rename::tests::rename_ripples_self_and_nested_children
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4643509Z         PASS [   0.092s] (2999/3346) spt-store resume_custody::tests::matching_pair_reads_ours_and_clear_removes_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4690453Z         PASS [  19.922s] (3000/3346) spt-store monic::tests::the_delivery_edge_evaluates_the_live_kinds_and_not_the_inert_ones
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.4708062Z         PASS [   0.094s] (3001/3346) spt-store resume_custody::tests::recycled_pid_reads_not_ours_and_the_record_is_deleted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.7110867Z         PASS [   0.260s] (3002/3346) spt-store roster::tests::is_member_any_spans_subnets_and_honors_tombstones
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.7343014Z         PASS [   0.282s] (3003/3346) spt-store roster::tests::merge_entry_is_strictly_greater_lease_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.7652967Z         PASS [   0.309s] (3004/3346) spt-store roster::tests::merge_is_commutative_and_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.7837077Z         PASS [   0.319s] (3005/3346) spt-store roster::tests::offline_member_persists_through_silence_and_reload
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.7892856Z         PASS [   0.320s] (3006/3346) spt-store roster::tests::roster_for_projects_one_subnets_slice
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:48.7999968Z         PASS [   0.329s] (3007/3346) spt-store roster::tests::self_lease_ceiling_is_the_max_of_our_own_rows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.0698509Z         PASS [   0.359s] (3008/3346) spt-store roster::tests::serde_additive_and_degrades_to_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.0945759Z         PASS [   0.360s] (3009/3346) spt-store roster::tests::tombstone_dominates_suppresses_reinsert_and_clears
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.1508632Z         PASS [   0.385s] (3010/3346) spt-store roster::tests::tombstones_are_scoped_and_merge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.1554820Z         PASS [   0.371s] (3011/3346) spt-store roster::tests::upsert_self_overwrites_unconditionally
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.1698801Z         PASS [   0.380s] (3012/3346) spt-store rotation::tests::coalesce_is_per_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.4220334Z         PASS [   0.622s] (3013/3346) spt-store rotation::tests::coalesce_unions_revokees_and_keeps_earliest_deadline
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.4452767Z         PASS [   0.375s] (3014/3346) spt-store rotation::tests::due_subnets_respects_deadline_and_force_is_immediate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.4810518Z         PASS [   0.386s] (3015/3346) spt-store rotation::tests::park_admin_requires_entry_never_overwrites_and_round_trips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.4892378Z         PASS [   0.339s] (3016/3346) spt-store rotation::tests::persists_and_degrades_to_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.4894665Z         PASS [   0.334s] (3017/3346) spt-store seal::tests::absent_and_corrupt_stores_load_empty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.4941997Z         PASS [   0.324s] (3018/3346) spt-store seal::tests::fido2_mint_records_signature_and_plain_mints_stay_bare
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.5025180Z         PASS [   0.080s] (3019/3346) spt-store seal::tests::fido2_signing_payload_spelling_is_pinned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.5085289Z         PASS [   0.063s] (3020/3346) spt-store seal::tests::join_is_insert_if_absent_with_collision_dropped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.5220811Z         PASS [   0.033s] (3021/3346) spt-store seal::tests::mint_refuses_empty_content_and_partial_minters
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.5229348Z         PASS [   0.042s] (3022/3346) spt-store seal::tests::mint_binds_content_and_persists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.7913380Z         PASS [   0.302s] (3023/3346) spt-store seal::tests::minted_tokens_are_well_formed_over_the_charset
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.8053383Z         PASS [   0.311s] (3024/3346) spt-store seal::tests::unparseable_minter_yields_no_binding_subnet
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.8523204Z         PASS [   0.350s] (3025/3346) spt-store seal::tests::well_formedness_bounds_length_and_charset
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.8623666Z         PASS [   0.354s] (3026/3346) spt-store seed::tests::absent_cwd_is_omitted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:49.8724893Z         PASS [   0.350s] (3027/3346) spt-store seed::tests::seed_round_trips_through_json
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.1905255Z         PASS [   0.398s] (3028/3346) spt-store serving::tests::a_directory_is_not_an_attachment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.1999876Z         PASS [   0.676s] (3029/3346) spt-store serving::tests::a_changed_kind_cannot_reclaim_a_paths_prior_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.2281923Z         PASS [   0.423s] (3030/3346) spt-store serving::tests::a_docs_dir_resolving_outside_the_adapter_directory_is_refused_at_resolve
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.2313444Z         PASS [   0.379s] (3031/3346) spt-store serving::tests::a_docs_dir_that_leaves_the_adapter_directory_is_refused_by_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.2405433Z         PASS [   0.378s] (3032/3346) spt-store serving::tests::a_ttl_needs_a_unit_and_the_default_is_thirty_days
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.2713449Z         PASS [   0.081s] (3033/3346) spt-store serving::tests::adapter_cannot_claim_an_explicit_registration_or_escape_its_aux_directory
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.2727404Z         PASS [   0.400s] (3034/3346) spt-store serving::tests::adapter_alias_disambiguates_once_and_survives_reactivation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.5222989Z         PASS [   0.323s] (3035/3346) spt-store serving::tests::allocation_is_node_local
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.5816401Z         PASS [   0.352s] (3036/3346) spt-store serving::tests::an_attachment_serves_the_bytes_as_they_were_at_send_time
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.6276103Z         PASS [   0.356s] (3037/3346) spt-store serving::tests::expiry_counts_from_registration_and_a_backwards_clock_reaps_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.6340250Z         PASS [   0.393s] (3038/3346) spt-store serving::tests::dotfiles_extensionless_names_and_directories_keep_reference_paths
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.6428990Z         PASS [   0.412s] (3039/3346) spt-store serving::tests::corrupt_or_unsupported_store_cannot_reset_names
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.9076315Z         PASS [   0.635s] (3040/3346) spt-store serving::tests::explicit_and_generated_names_cannot_reuse_each_others_history
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.9117012Z         PASS [   0.389s] (3041/3346) spt-store serving::tests::explicit_names_and_source_names_share_one_allocator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:50.9658520Z         PASS [   0.385s] (3042/3346) spt-store serving::tests::first_bare_then_suffix_before_final_extension_per_family
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.2383011Z         PASS [   0.611s] (3043/3346) spt-store serving::tests::lifetime_and_audience_survive_storage_for_every_entry_kind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.2695135Z         PASS [   0.635s] (3044/3346) spt-store serving::tests::persisted_assignment_retains_identity_and_next_suffix
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.2932545Z         PASS [   0.650s] (3045/3346) spt-store serving::tests::reserved_aliases_fail_before_allocation_and_without_alias_facet_still_exists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.5442021Z         PASS [   0.636s] (3046/3346) spt-store serving::tests::resource_url_encodes_each_segment_and_lowercases_node
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.5737758Z         PASS [   0.662s] (3047/3346) spt-store serving::tests::retired_names_remain_not_found_after_restart_and_new_registration
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.6010896Z         PASS [   0.363s] (3048/3346) spt-store serving::tests::same_absolute_path_preserves_entry_even_after_source_disappears
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.6027274Z         PASS [   0.637s] (3049/3346) spt-store serving::tests::retired_names_return_only_to_their_prior_paths_without_rewinding_suffixes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.8619035Z         PASS [   0.592s] (3050/3346) spt-store serving::tests::scoping_an_entry_keeps_it_a_reference_and_records_ttl_audience_and_origin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.8650468Z         PASS [   0.572s] (3051/3346) spt-store serving::tests::two_sends_of_one_name_get_distinct_stable_urls
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.8860707Z         PASS [   0.342s] (3052/3346) spt-store serving::tests::unreadable_store_is_not_absence
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.8963759Z         PASS [   0.323s] (3053/3346) spt-store serving::tests::unsafe_names_and_relative_paths_do_not_consume_assignments
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.9104724Z         PASS [   0.309s] (3054/3346) spt-store sessions::tests::adapter_field_roundtrips_and_survives_append
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:51.9274528Z         PASS [   0.325s] (3055/3346) spt-store sessions::tests::append_stamps_monotonic_ordinals
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.1808989Z         PASS [   0.319s] (3056/3346) spt-store sessions::tests::appends_and_reads_in_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.2490603Z         PASS [   0.363s] (3057/3346) spt-store sessions::tests::none_cwd_emits_no_field_and_roundtrips
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.5153665Z         PASS [   0.619s] (3058/3346) spt-store sessions::tests::pre_migration_row_without_adapter_deserializes_as_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.5409997Z         PASS [   0.630s] (3059/3346) spt-store sessions::tests::pre_migration_row_without_cwd_deserializes_as_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.5688012Z         PASS [   0.704s] (3060/3346) spt-store sessions::tests::last_k_and_bounding
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.8327465Z         PASS [   0.905s] (3061/3346) spt-store sessions::tests::pre_migration_rows_backfill_to_index_on_append
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.8535753Z         PASS [   0.604s] (3062/3346) spt-store sessions::tests::row_with_cwd_appends_and_reads_back
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.8730336Z         PASS [   0.358s] (3063/3346) spt-store sessions::tests::same_session_rebind_is_deduped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:52.9367818Z         PASS [   0.756s] (3064/3346) spt-store sessions::tests::prune_does_not_renumber_surviving_ordinals
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.3099689Z         PASS [   0.769s] (3065/3346) spt-store sessions::tests::tolerant_of_garbage_lines
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.3493799Z         PASS [   0.496s] (3066/3346) spt-store shellinfo::tests::alias_unique_rename_and_resolution
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.3564565Z         PASS [   0.524s] (3067/3346) spt-store shellinfo::tests::a_live_pid_with_its_own_birth_stamp_is_held
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.3602122Z         PASS [   0.791s] (3068/3346) spt-store shellinfo::tests::a_live_pid_with_a_foreign_birth_stamp_reads_gone
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.5957690Z         PASS [   0.723s] (3069/3346) spt-store shellinfo::tests::composite_option_mints_colon_free_id_and_carries_the_composite
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.6108911Z         PASS [   0.674s] (3070/3346) spt-store shellinfo::tests::derivation_never_promotes_offline_to_online
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.9025614Z         PASS [   0.593s] (3071/3346) spt-store shellinfo::tests::mint_smallest_free_and_teardown_frees
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:53.9705355Z         PASS [   0.621s] (3072/3346) spt-store shellinfo::tests::online_derives_offline_only_for_a_provably_dead_pid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:54.1988288Z         PASS [   0.842s] (3073/3346) spt-store shellinfo::tests::shellinfo_roundtrip_and_corrupt_tolerance
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:54.5734015Z         PASS [   1.213s] (3074/3346) spt-store spool::tests::a_spooled_envelope_is_readable_back_by_its_short_id
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:54.8376557Z         PASS [   1.242s] (3075/3346) spt-store spool::tests::a_sweep_with_nothing_to_drop_reports_zero
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:55.2645148Z         PASS [   1.654s] (3076/3346) spt-store spool::tests::active_window_drain_suppresses_idle_only_and_honors_include_deferred
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:55.5425018Z         PASS [   1.640s] (3077/3346) spt-store spool::tests::audited_take_records_taker_provenance_unaudited_leaves_null
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:55.7175690Z         PASS [   1.747s] (3078/3346) spt-store spool::tests::claim_idle_edge_audited_stamps_idle_inject_leg
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:56.0698987Z         PASS [   1.871s] (3079/3346) spt-store spool::tests::concurrent_take_yields_exactly_one_winner
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:56.3189657Z         PASS [   1.745s] (3080/3346) spt-store spool::tests::deferred_mirrors_active_only_window_across_all_three
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:56.5834777Z         PASS [   1.746s] (3081/3346) spt-store spool::tests::deferred_row_survives_event_drain_then_hook_delivers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:57.0901221Z         PASS [   1.826s] (3082/3346) spt-store spool::tests::drain_marks_delivered_and_is_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:57.3742984Z         PASS [   1.832s] (3083/3346) spt-store spool::tests::drain_take_ack_is_double_deliver_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:57.9312673Z         PASS [   2.214s] (3084/3346) spt-store spool::tests::evaporate_drops_only_ephemeral_non_deferred_undelivered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.1740040Z         PASS [   2.854s] (3085/3346) spt-store spool::tests::idle_edge_claims_never_take_a_deferred_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.3537800Z         PASS [   3.284s] (3086/3346) spt-store spool::tests::event_part_body_persists_byte_exact
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.4484251Z         PASS [   0.275s] (3087/3346) spt-store spool::tests::reopen_is_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.4753699Z         PASS [   2.892s] (3088/3346) spt-store spool::tests::no_binary_idle_drain_spools_not_pty
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.4935615Z         PASS [   1.562s] (3089/3346) spt-store spool::tests::release_clears_taker_audit_then_retake_restamps
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.4995988Z         PASS [   2.409s] (3090/3346) spt-store spool::tests::non_deferred_drain_skips_deferred_and_preserves_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.5782569Z         PASS [   2.204s] (3091/3346) spt-store spool::tests::poll_taken_row_never_idle_injected_but_untaken_row_still_claimable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.6204838Z         PASS [   0.042s] (3092/3346) spt-store subnet::tests::a_record_written_before_sightings_still_loads
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.6319006Z         PASS [   0.011s] (3093/3346) spt-store subnet::tests::a_sighting_is_recorded_replaced_and_adopted_but_never_queued
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.6459403Z         PASS [   0.014s] (3094/3346) spt-store subnet::tests::add_joined_preserves_seed_epoch_and_captures_the_two_key_material
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.6582258Z         PASS [   0.012s] (3095/3346) spt-store subnet::tests::adopt_admin_rotation_takes_current_or_newer_and_never_downgrades
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.6717288Z         PASS [   0.013s] (3096/3346) spt-store subnet::tests::adopt_rotation_takes_newer_seed_and_is_idempotent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.7005642Z         PASS [   0.347s] (3097/3346) spt-store spool::tests::sentinel_create_fail_warns_once_nonfatal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.7097758Z         PASS [   0.261s] (3098/3346) spt-store spool::tests::spool_touches_has_messages_sentinel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.7546209Z         PASS [   0.261s] (3099/3346) spt-store spool::tests::wan_mark_seen_claims_once_and_blocks_spool_path
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.8028228Z         PASS [   0.303s] (3100/3346) spt-store spool::tests::wan_spool_dedups_on_op_id_across_reopen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.8459904Z         PASS [   0.371s] (3101/3346) spt-store spool::tests::the_sweep_drops_one_authors_undelivered_rows_and_nothing_else
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.9394598Z         PASS [   0.268s] (3102/3346) spt-store subnet::tests::colon_names_are_refused_at_create_and_join
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:45:59.9848728Z         PASS [   0.284s] (3103/3346) spt-store subnet::tests::create_mints_both_keys_and_records_the_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.0404961Z         PASS [   0.330s] (3104/3346) spt-store subnet::tests::create_subnet_starts_at_epoch_one_unique_name
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.0433724Z         PASS [   0.289s] (3105/3346) spt-store subnet::tests::debug_redacts_the_admin_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.0562897Z         PASS [   0.253s] (3106/3346) spt-store subnet::tests::hex_round_trips_and_rejects_bad_input
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.0736595Z         PASS [   0.228s] (3107/3346) spt-store subnet::tests::hide_new_endpoints_defaults_off_and_persists
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.0764283Z         PASS [   0.137s] (3108/3346) spt-store subnet::tests::minted_seeds_are_random
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.0827630Z         PASS [   0.098s] (3109/3346) spt-store subnet::tests::missing_or_corrupt_file_is_empty_store
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.3448689Z         PASS [   0.304s] (3110/3346) spt-store subnet::tests::no_prior_generation_before_rotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.3651824Z         PASS [   0.322s] (3111/3346) spt-store subnet::tests::pre_two_key_record_loads_without_admin_seed_or_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.4071359Z         PASS [   0.349s] (3112/3346) spt-store subnet::tests::remove_drops_membership
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.4124257Z         PASS [   0.339s] (3113/3346) spt-store subnet::tests::rotate_bumps_epoch_and_changes_seed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.4194927Z         PASS [   0.343s] (3114/3346) spt-store subnet::tests::rotation_rotates_admin_seed_with_no_grace_and_one_epoch_bump
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.4275044Z         PASS [   0.345s] (3115/3346) spt-store subnet::tests::rotation_without_parked_admin_degrades_to_member_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:00.4442444Z         PASS [   0.099s] (3116/3346) spt-store subnet::tests::store_persists_multi_subnet_and_rotation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:04.9311737Z         PASS [   4.504s] (3117/3346) spt-store syncmerge::tests::non_context_branch_refused
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:09.9051877Z         SLOW [> 60.000s] (─────────) spt-store monic::tests::clone_copies_without_trampling_and_stamps_what_it_copied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:10.3059576Z         SLOW [> 60.000s] (─────────) spt-store monic::tests::different_monics_never_conflict_across_instances
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:12.4887985Z         PASS [  62.887s] (3118/3346) spt-store monic::tests::clone_copies_without_trampling_and_stamps_what_it_copied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:12.7104908Z         PASS [   0.222s] (3119/3346) spt-store timefmt::tests::formats_known_instants
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:12.7664974Z         PASS [   0.055s] (3120/3346) spt-store timefmt::tests::lexical_order_matches_chronological_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:12.8154289Z         PASS [   0.050s] (3121/3346) spt-store trustwarn::tests::a_blank_or_oversized_override_is_refused_at_write_time
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:12.8388316Z         PASS [   0.023s] (3122/3346) spt-store trustwarn::tests::a_marker_that_cannot_be_written_leaves_the_warning_owed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.0928123Z         PASS [   0.254s] (3123/3346) spt-store trustwarn::tests::a_named_peer_and_an_unnamed_sender_never_quiet_each_other
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.1292634Z         PASS [   0.036s] (3124/3346) spt-store trustwarn::tests::a_new_session_owes_the_warning_again
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.1775028Z         PASS [   0.048s] (3125/3346) spt-store trustwarn::tests::a_peer_that_cannot_be_a_path_component_claims_nothing_and_warns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.2060526Z         PASS [   0.028s] (3126/3346) spt-store trustwarn::tests::a_stored_override_replaces_the_advisory_and_a_reset_restores_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.2253857Z         PASS [   0.019s] (3127/3346) spt-store trustwarn::tests::a_traversal_endpoint_id_is_refused_reading_and_writing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.4982309Z         PASS [   0.273s] (3128/3346) spt-store trustwarn::tests::a_warning_about_one_peer_leaves_another_peers_warning_owed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.5512728Z         PASS [   0.053s] (3129/3346) spt-store trustwarn::tests::an_override_belongs_to_one_endpoint_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.8430297Z         PASS [   0.292s] (3130/3346) spt-store trustwarn::tests::an_override_replaces_the_advice_but_never_the_identity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:13.8896670Z         PASS [   0.047s] (3131/3346) spt-store trustwarn::tests::an_unnamed_sender_dedups_within_a_session_and_re_warns_in_the_next
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.1927552Z         PASS [   0.303s] (3132/3346) spt-store trustwarn::tests::an_unnamed_sender_is_warned_about_without_a_command_that_cannot_work
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.2370054Z         PASS [   0.044s] (3133/3346) spt-store trustwarn::tests::an_unreadable_marker_leaves_the_warning_owed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.2810615Z         PASS [   0.044s] (3134/3346) spt-store trustwarn::tests::an_unreadable_override_falls_back_to_the_default_advisory
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.5533180Z         PASS [   0.272s] (3135/3346) spt-store trustwarn::tests::one_peer_in_one_session_is_warned_about_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.5939059Z         PASS [   0.040s] (3136/3346) spt-store trustwarn::tests::the_default_warning_names_the_peer_the_risks_and_the_way_out
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.8940195Z         PASS [   0.300s] (3137/3346) spt-store trustwarn::tests::the_scope_notice_states_what_an_override_cannot_reach
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.9248881Z         PASS [   0.031s] (3138/3346) spt-store visibility::tests::hidden_gates_sync_even_when_listed
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:14.9606556Z         PASS [  64.924s] (3139/3346) spt-store monic::tests::different_monics_never_conflict_across_instances
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.2167481Z         PASS [   0.292s] (3140/3346) spt-store visibility::tests::hidden_is_or_of_defaults
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.2435237Z         PASS [   0.283s] (3141/3346) spt-store visibility::tests::override_wins_both_directions
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.2831547Z         PASS [   0.066s] (3142/3346) spt-store visibility::tests::store_persists_and_degrades_safe
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.2867319Z         PASS [   0.043s] (3143/3346) spt-store visibility::tests::synced_requires_membership_listing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.5530430Z         PASS [   0.270s] (3144/3346) spt-store worker_reap::tests::clamp_ttl_floors_fat_finger_but_allows_disable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.8402349Z         PASS [   0.553s] (3145/3346) spt-store worker_reap::tests::keeps_inflight_and_pending_reaps_drained
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:15.9194473Z         PASS [   0.366s] (3146/3346) spt-store worker_reap::tests::never_touches_a_psyche
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:16.0791869Z         PASS [   0.239s] (3147/3346) spt-store worker_reap::tests::orphaned_respects_boot_race_grace
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:16.4085200Z         PASS [   0.489s] (3148/3346) spt-store worker_reap::tests::reap_preserves_wseq_so_next_mint_continues
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:16.8514911Z         PASS [   0.443s] (3149/3346) spt-store worker_seq::tests::concurrent_mints_never_collide
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:16.8767618Z         PASS [   0.798s] (3150/3346) spt-store worker_reap::tests::ttl_overrides_live_ready_marker
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:17.1448389Z         PASS [   0.293s] (3151/3346) spt-store worker_seq::tests::counter_survives_reap_no_reuse
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:17.4725648Z         PASS [   0.596s] (3152/3346) spt-store worker_seq::tests::mints_monotonic_per_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:17.6901842Z         PASS [   0.545s] (3153/3346) spt-store wtlock::tests::case_variant_spellings_resolve_to_one_sentinel
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:17.8452095Z         PASS [   0.373s] (3154/3346) spt-store wtlock::tests::distinct_worktrees_are_independent_and_the_same_one_is_non_reentrant
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:18.3977401Z         PASS [   0.552s] (3155/3346) spt-store wtlock::tests::timeout_error_names_sentinel_elapsed_and_bound
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:18.4178541Z         PASS [   0.728s] (3156/3346) spt-store wtlock::tests::second_acquire_waits_for_the_holder_then_succeeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:18.6125831Z         PASS [   0.215s] (3157/3346) spt-store wtlock::tests::wait_bound_defaults_to_ten_seconds_and_reads_only_the_test_var
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:18.8966691Z         PASS [   0.479s] (3158/3346) spt-store xfer::tests::progress_round_trips_per_role_and_updates_mid_flight
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:18.9259038Z         PASS [   0.313s] (3159/3346) spt-store xfer::tests::xfer_id_is_filename_safe_and_distinct
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:19.5233583Z         PASS [   0.597s] (3160/3346) spt-store::one_liveness_predicate spt_store_re_exports_the_predicate_rather_than_owning_a_second_copy
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:19.8425581Z         PASS [   0.319s] (3161/3346) spt-store::one_liveness_predicate the_re_exported_predicate_still_answers_about_this_process
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:20.6502247Z         PASS [   0.807s] (3162/3346) spt-store::pool_guard_canary the_build_script_is_wired_into_the_package
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:20.8145092Z         PASS [   1.918s] (3163/3346) spt-store::carrier_claim_int two_carriers_race_one_spool_every_row_delivered_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:20.9392547Z         PASS [   0.289s] (3164/3346) spt-store::pool_guard_canary the_canary_detects_a_directive_when_one_is_present
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:21.2110117Z         PASS [   0.396s] (3165/3346) spt-store::pool_guard_canary the_pool_guard_build_script_emits_no_rerun_directive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:28.9106451Z         PASS [   7.971s] (3166/3346) spt-store::wtlock_two_process_int an_acquire_waits_out_a_holder_in_another_process_then_succeeds
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.1494985Z         PASS [   0.239s] (3167/3346) spt-term digest::tests::config_defaults_are_the_presentation_formula
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.1900046Z         PASS [   0.040s] (3168/3346) spt-term digest::tests::truncate_arg_cuts_to_width_with_ellipsis
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.4774204Z         PASS [   0.287s] (3169/3346) spt-term projection::tests::a_post_seal_straggler_folds_in_without_moving_a_published_seq
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.5077235Z         PASS [   0.030s] (3170/3346) spt-term projection::tests::a_sealed_sprint_grows_forward_only_keeping_the_turn_anchor_stable
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.5561328Z         PASS [   0.048s] (3171/3346) spt-term projection::tests::agent_between_tools_breaks_the_sprint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.5735409Z         PASS [   0.017s] (3172/3346) spt-term projection::tests::context_record_discriminator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.8398105Z         PASS [   0.266s] (3173/3346) spt-term projection::tests::crux_committed_seqs_survive_a_turn_window_slide
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.8735555Z         PASS [   0.034s] (3174/3346) spt-term projection::tests::diagnostics_clean_stream_has_no_drops
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.9128253Z         PASS [   0.039s] (3175/3346) spt-term projection::tests::diagnostics_record_every_drop_with_reason
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.9283605Z         PASS [   0.015s] (3176/3346) spt-term projection::tests::empty_input_projects_empty_digest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:29.9409315Z         PASS [   0.013s] (3177/3346) spt-term projection::tests::idle_on_an_empty_or_single_turn_timeline_invents_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.2096884Z         PASS [   0.269s] (3178/3346) spt-term projection::tests::idle_seals_the_trailing_turn_while_busy_leaves_it_partial
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.2521090Z         PASS [   0.042s] (3179/3346) spt-term projection::tests::leading_output_without_input_is_a_preamble_turn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.2994213Z         PASS [   0.047s] (3180/3346) spt-term projection::tests::malformed_unknown_role_and_toolless_tool_are_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.3199388Z         PASS [   0.020s] (3181/3346) spt-term projection::tests::partial_trailing_turn_has_no_seqs
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.5855344Z         PASS [   0.265s] (3182/3346) spt-term projection::tests::projects_input_agent_and_collapses_tool_sprints
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.6117812Z         PASS [   0.026s] (3183/3346) spt-term projection::tests::re_projecting_a_sealed_idle_timeline_is_identical
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.6564497Z         PASS [   0.044s] (3184/3346) spt-term projection::tests::sealing_survives_a_window_slide
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.9323077Z         PASS [   0.276s] (3185/3346) spt-term projection::tests::seq_encoding_total_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:30.9773347Z         PASS [   0.045s] (3186/3346) spt-term projection::tests::sprint_collapse_off_keeps_tools_separate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.2797168Z         PASS [   0.302s] (3187/3346) spt-term projection::tests::the_sealed_seq_equals_what_the_next_input_fallback_would_assign
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.3188442Z         PASS [   0.039s] (3188/3346) spt-term projection::tests::timeline_boundary_divider_and_window_bridge
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.3746978Z         PASS [   0.056s] (3189/3346) spt-term projection::tests::timeline_folds_context_into_a_turn
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.6419415Z         PASS [   0.267s] (3190/3346) spt-term projection::tests::tool_sprint_seq_is_last_collapsed_record
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.6825188Z         PASS [   0.038s] (3191/3346) spt-term projection::tests::truncates_tool_args_to_width
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.7185942Z         PASS [   0.038s] (3192/3346) spt-term projection::tests::ts_ordering_key_parses_and_is_optional
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:31.9877115Z         PASS [   0.269s] (3193/3346) spt-term projection::tests::unknown_fields_are_tolerated
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.0225735Z         PASS [   0.035s] (3194/3346) spt-term projection::tests::window_input_turns_bridges_and_trims
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.0631930Z         PASS [   0.041s] (3195/3346) spt-term projection::tests::windows_to_last_n_turns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.0777066Z         PASS [   0.014s] (3196/3346) spt-term reader::tests::auto_answers_synthetic_dsr_query
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.1103934Z         PASS [  31.691s] (3197/3346) spt-store syncmerge::tests::legacy_bottom_vectors_surface_not_overwrite
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.3493589Z         PASS [   0.272s] (3198/3346) spt-term reader::tests::cursor_provider_yields_accurate_display_column_cpr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.3817302Z         PASS [   0.271s] (3199/3346) spt-term reader::tests::dsr_splitter_finds_and_strips_query_across_chunk_boundary
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.4431088Z         PASS [   0.094s] (3200/3346) spt-term reader::tests::no_dsr_means_no_answer
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.7052110Z         PASS [   0.323s] (3201/3346) spt-term reader::tests::query_free_chunk_reaches_the_sink_as_one_segment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.7343004Z         PASS [   0.291s] (3202/3346) spt-term screen::tests::a_sequence_split_across_captured_advances_defers_whole
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.7718652Z         PASS [   0.066s] (3203/3346) spt-term screen::tests::alt_screen_repaint_excludes_main_scrollback
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:32.7798523Z         PASS [   0.046s] (3204/3346) spt-term screen::tests::capture_consumes_tracked_state_instead_of_deferring_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.0512275Z         PASS [   0.280s] (3205/3346) spt-term screen::tests::capture_defers_osc_color_with_original_terminator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.0747645Z         PASS [   0.295s] (3206/3346) spt-term screen::tests::capture_defers_untracked_stateful_one_shots_and_queries_in_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.1250616Z         PASS [   0.074s] (3207/3346) spt-term screen::tests::capture_drops_hyperlinks_dcs_and_dsr
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.1301405Z         PASS [   0.055s] (3208/3346) spt-term screen::tests::combining_mark_attaches_without_advancing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.3932743Z         PASS [   0.268s] (3209/3346) spt-term screen::tests::cursor_position_reports_display_columns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.4266344Z         PASS [   0.296s] (3210/3346) spt-term screen::tests::cursor_visibility_hidden_emitted
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.4911818Z         PASS [   0.098s] (3211/3346) spt-term screen::tests::dch_ich_heal_wide_pairs_at_the_boundaries
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.7550003Z         PASS [   0.328s] (3212/3346) spt-term screen::tests::empty_grid_repaint_is_clean
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:33.7899938Z         PASS [   0.299s] (3213/3346) spt-term screen::tests::erase_across_a_wide_half_leaves_no_orphan
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.0821776Z         PASS [   0.327s] (3214/3346) spt-term screen::tests::erase_display_clears_screen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.1184014Z         PASS [   0.328s] (3215/3346) spt-term screen::tests::leaving_alt_restores_main_screen
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.4120883Z         PASS [   0.330s] (3216/3346) spt-term screen::tests::main_screen_repaint_paints_text_no_alt_enter
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.4395572Z         PASS [   0.321s] (3217/3346) spt-term screen::tests::overwriting_either_half_clears_the_whole_wide_glyph
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.7223206Z         PASS [   0.310s] (3218/3346) spt-term screen::tests::plain_advance_never_captures
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.7592575Z         PASS [   0.320s] (3219/3346) spt-term screen::tests::repaint_emits_display_width_not_scalar_count_per_row
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:34.7756506Z         PASS [  34.410s] (3220/3346) spt-store syncmerge::tests::adopt_then_incremental_then_idempotent_repull
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.0409584Z         PASS [   0.318s] (3221/3346) spt-term screen::tests::repaint_replays_tracked_decstbm_before_cursor_placement
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.0577082Z         PASS [   0.298s] (3222/3346) spt-term screen::tests::repaint_then_raw_scroll_matches_the_server_grid
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.0731829Z         PASS [   0.297s] (3223/3346) spt-term screen::tests::resize_preserves_content
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.3330559Z         PASS [   0.293s] (3224/3346) spt-term screen::tests::resize_preserves_title
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.3541052Z         PASS [   0.296s] (3225/3346) spt-term screen::tests::resize_through_a_wide_pair_heals_the_cut_lead
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.3839373Z         PASS [   0.311s] (3226/3346) spt-term screen::tests::ris_clears_title_and_untitled_emits_none
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.6546142Z         PASS [   0.321s] (3227/3346) spt-term screen::tests::ris_mid_capture_keeps_the_deferred_tail
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.6754606Z         PASS [   0.321s] (3228/3346) spt-term screen::tests::sgr_pen_reconstructed_in_repaint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.7262918Z         PASS [   0.342s] (3229/3346) spt-term screen::tests::title_captured_and_replayed_in_repaint
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:35.7349825Z         PASS [   0.080s] (3230/3346) spt-term screen::tests::wide_glyph_advances_two_display_columns
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.0081146Z         PASS [   0.333s] (3231/3346) spt-term screen::tests::wide_glyph_wraps_whole_at_right_margin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.0273945Z         PASS [   0.301s] (3232/3346) spt-term winprog::tests::bare_name_prefers_cmd_over_extensionless_shim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.0565646Z         PASS [   0.322s] (3233/3346) spt-term winprog::tests::bare_name_prefers_exe_and_spawns_direct
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.3507231Z         PASS [   0.343s] (3234/3346) spt-term winprog::tests::earlier_path_dir_wins
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.3854039Z         PASS [   0.358s] (3235/3346) spt-term winprog::tests::explicit_extension_is_classified_in_place
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.6509509Z         PASS [   0.594s] (3236/3346) spt-term winprog::tests::unresolvable_passes_through
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:36.7149647Z         PASS [   0.364s] (3237/3346) spt-test-support tests::scoped_home_cleans_without_overriding_the_outer_temp_sandbox
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.0173954Z         PASS [   0.302s] (3238/3346) xtask::bench_row_parity the_local_ledger_directory_is_gitignored
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.0263243Z         PASS [   0.375s] (3239/3346) xtask::bench_row_parity every_ci_ledger_writer_emits_exactly_the_declared_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.0455642Z         PASS [   0.028s] (3240/3346) xtask::bench_row_parity the_parity_check_notices_a_missing_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.3439277Z         PASS [   0.298s] (3241/3346) xtask::bin/xtask adapter_docs_schema_tests::checked_in_schema_publishes_docs_dir_without_internal_codes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.3891504Z         PASS [   0.045s] (3242/3346) xtask::bin/xtask asset_map_tests::asset_target_triple_resolves_musl_from_registry
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.4248252Z         PASS [   1.039s] (3243/3346) xtask::bench_row_parity both_ci_wraps_propagate_the_wrapped_commands_exit_code
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.6750131Z         PASS [   0.286s] (3244/3346) xtask::bin/xtask bench::tests::a_corrupt_line_is_skipped_rather_than_fatal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.6896639Z         PASS [   0.265s] (3245/3346) xtask::bin/xtask bench::tests::a_failed_row_is_excluded_from_the_aggregate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.9708450Z         PASS [   0.296s] (3246/3346) xtask::bin/xtask bench::tests::a_row_predating_the_ok_field_reads_as_success
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:37.9875103Z         PASS [   0.298s] (3247/3346) xtask::bin/xtask bench::tests::a_row_round_trips_including_a_step_name_with_quotes_and_backslashes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.0077291Z         PASS [   0.037s] (3248/3346) xtask::bin/xtask bench::tests::an_empty_ledger_says_so_instead_of_rendering_empty_headings
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.0288790Z         PASS [   0.041s] (3249/3346) xtask::bin/xtask bench::tests::distinct_keys_alone_never_produce_a_repeat_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.2943218Z         PASS [   0.287s] (3250/3346) xtask::bin/xtask bench::tests::repeated_work_is_counted_per_input_key_never_per_run
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.3153220Z         PASS [   0.286s] (3251/3346) xtask::bin/xtask bench::tests::the_emitted_json_carries_exactly_the_declared_fields
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.3462502Z         PASS [   0.052s] (3252/3346) xtask::bin/xtask bench::tests::the_report_names_the_slowest_step_and_flags_only_real_repeats
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.3725083Z         PASS [   0.057s] (3253/3346) xtask::bin/xtask binedge::tests::baseline_reds_only_on_a_new_entry_and_reports_burn_down
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.6283839Z         PASS [   0.282s] (3254/3346) xtask::bin/xtask binedge::tests::derived_fix_round_trips_through_the_prebuild_detector
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.6595532Z         PASS [   0.287s] (3255/3346) xtask::bin/xtask binedge::tests::false_positive_arm_refuses_when_it_has_gone_blind
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.9481233Z         PASS [   0.320s] (3256/3346) xtask::bin/xtask binedge::tests::guarantee_is_same_package_integration_only
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:38.9813087Z         PASS [   0.322s] (3257/3346) xtask::bin/xtask binedge::tests::kind_of_reads_the_path_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:39.2980184Z         PASS [   0.350s] (3258/3346) xtask::bin/xtask binedge::tests::line_comments_are_prose_and_line_numbers_survive_them
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:39.3290796Z         PASS [  38.885s] (3259/3346) spt-store syncmerge::tests::project_branch_unions_disjoint_agents
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:39.5802630Z         PASS [   0.599s] (3260/3346) xtask::bin/xtask binedge::tests::owning_pkg_takes_the_nearest_manifest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:39.8595154Z         PASS [   0.561s] (3261/3346) xtask::bin/xtask binedge::tests::prebuild_detection_needs_the_single_bin_build_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:40.1394713Z         PASS [   0.810s] (3262/3346) xtask::bin/xtask binedge::tests::scan_finds_all_four_syntaxes_with_true_line_numbers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:40.1720064Z         PASS [   0.592s] (3263/3346) xtask::bin/xtask binedge::tests::scan_rejects_near_misses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:40.4501875Z         PASS [   0.591s] (3264/3346) xtask::bin/xtask binnames::tests::a_repeated_pair_from_one_package_is_not_a_cross_package_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:40.4573852Z         PASS [   0.318s] (3265/3346) xtask::bin/xtask binnames::tests::an_invented_collision_is_reported_with_both_packages
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:40.4713462Z         PASS [   0.299s] (3266/3346) xtask::bin/xtask binnames::tests::the_named_counterparts_are_distinct_and_not_a_collision
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:41.0360453Z         PASS [   0.579s] (3267/3346) xtask::bin/xtask changelog_page_tests::changelog_is_linked_from_real_book_and_agent_indexes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:41.1392668Z         PASS [   0.689s] (3268/3346) xtask::bin/xtask binnames::tests::the_workspace_declares_no_duplicate_bin_names
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:41.3240691Z         PASS [   0.853s] (3269/3346) xtask::bin/xtask changelog_page_tests::non_comment_lines_preserve_bytes_and_order
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:41.6290502Z         PASS [   0.593s] (3270/3346) xtask::bin/xtask changelog_page_tests::stale_changelog_check_names_page_then_gen_clears_drift
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:41.9198568Z         PASS [   0.780s] (3271/3346) xtask::bin/xtask changelog_page_tests::traceability_comments_are_stripped_and_changelog_is_scanned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:42.1958221Z         PASS [   0.872s] (3272/3346) xtask::bin/xtask changelog_page_tests::visible_body_codes_remain_for_the_published_doc_gate_to_reject
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:42.4739497Z         PASS [   0.845s] (3273/3346) xtask::bin/xtask cli_reference_tests::api_standin_injects_once_at_any_depth_and_only_for_the_root_verb
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:42.4994454Z         PASS [   5.473s] (3274/3346) xtask::pool_claim verb_refuses_accidental_crossing_but_admits_the_explicit_remedy_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:42.7572749Z         PASS [   0.837s] (3275/3346) xtask::bin/xtask converge_tests::converge_table_renders_rows_and_success_predicate
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:43.0408394Z         PASS [   0.845s] (3276/3346) xtask::bin/xtask debug_rollout_meta_tests::defaults_reproduce_the_counter_only_debug_shape
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:43.3262334Z         PASS [   0.852s] (3277/3346) xtask::bin/xtask debug_rollout_meta_tests::stamps_channel_and_product_version_verbatim
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:43.8612630Z         PASS [   1.362s] (3278/3346) xtask::bin/xtask diskfloor::tests::a_zero_floor_is_print_only_and_never_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:44.1453213Z         PASS [   1.388s] (3279/3346) xtask::bin/xtask diskfloor::tests::the_drive_is_spelled_the_way_the_golden_runner_spells_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:44.4301007Z         PASS [   1.389s] (3280/3346) xtask::bin/xtask diskfloor::tests::the_floor_refuses_below_and_admits_at_or_above
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:44.9781205Z         PASS [   1.652s] (3281/3346) xtask::bin/xtask diskfloor::tests::the_line_carries_the_golden_runners_keys
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:45.7805489Z         PASS [   1.919s] (3282/3346) xtask::bin/xtask diskfloor::tests::the_reader_returns_a_real_reading_for_a_real_directory
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:46.5716935Z         PASS [   2.426s] (3283/3346) xtask::bin/xtask docs_token_gate_tests::clean_help_text_passes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:47.6195480Z         PASS [   3.189s] (3284/3346) xtask::bin/xtask docs_token_gate_tests::planted_internal_codes_are_flagged
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:48.9266460Z         PASS [   3.948s] (3285/3346) xtask::bin/xtask heavy_class_tests::a_by_binary_filter_does_not_classify_a_lib_module
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.0305186Z         PASS [   2.459s] (3286/3346) xtask::bin/xtask heavy_class_tests::only_a_broker_bound_inside_the_test_block_counts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.0319991Z         PASS [   3.251s] (3287/3346) xtask::bin/xtask heavy_class_tests::a_module_inside_an_alternation_group_reads_as_classified
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.0337159Z         PASS [   1.414s] (3288/3346) xtask::bin/xtask heavy_integration_tests::a_qualifying_binary_absent_from_the_string_is_what_this_detects
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.0466264Z         PASS [   0.120s] (3289/3346) xtask::bin/xtask heavy_integration_tests::the_criterion_reads_a_real_daemon_or_brain_tree_through_any_formatting
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.3360014Z         PASS [   0.305s] (3290/3346) xtask::bin/xtask heavy_integration_tests::the_drift_panel_names_the_side_that_has_the_extra_member
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.3717632Z         PASS [   0.340s] (3291/3346) xtask::bin/xtask heavy_integration_tests::the_expression_is_read_from_the_line_that_actually_carries_it
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.4332226Z         PASS [   0.399s] (3292/3346) xtask::bin/xtask llms_link_tests::stored_root_assets_must_really_exist
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.4402051Z         PASS [   0.393s] (3293/3346) xtask::bin/xtask patch_pin_tests::a_deleted_patch_stanza_reads_as_unpinned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.4463867Z         PASS [   0.110s] (3294/3346) xtask::bin/xtask patch_pin_tests::a_moved_rev_disagrees_with_the_manifest
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.7075660Z         PASS [   0.336s] (3295/3346) xtask::bin/xtask patch_pin_tests::a_prefix_named_crate_never_answers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.7377958Z         PASS [   0.305s] (3296/3346) xtask::bin/xtask patch_pin_tests::a_registry_resolution_reads_as_unpatched
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.7859391Z         PASS [   0.346s] (3297/3346) xtask::bin/xtask patch_pin_tests::a_rev_inside_a_url_never_answers_for_the_rev_field
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.7933231Z         PASS [   0.347s] (3298/3346) xtask::bin/xtask patch_pin_tests::an_unused_patch_table_never_answers_for_the_graph
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.8064741Z         PASS [   0.099s] (3299/3346) xtask::bin/xtask patch_pin_tests::manifest_pin_and_lock_resolution_agree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.8255728Z         PASS [   0.040s] (3300/3346) xtask::bin/xtask perjob::tests::a_job_guarantees_by_prebuild_or_by_a_workspace_build
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.8303918Z         PASS [   0.093s] (3301/3346) xtask::bin/xtask patch_pin_tests::the_shipped_workspace_satisfies_every_load_bearing_pin
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:49.8491041Z         PASS [   0.056s] (3302/3346) xtask::bin/xtask perjob::tests::block_and_inline_run_bodies_both_survive
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.1101070Z         PASS [   0.304s] (3303/3346) xtask::bin/xtask perjob::tests::cargo_invocations_stop_at_a_shell_separator
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.1418636Z         PASS [   0.316s] (3304/3346) xtask::bin/xtask perjob::tests::flag_values_needs_the_whole_flag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2247770Z         PASS [   0.394s] (3305/3346) xtask::bin/xtask perjob::tests::kind_filtered_workspace_runs_are_consumers_not_builders
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2313898Z         PASS [   0.382s] (3306/3346) xtask::bin/xtask perjob::tests::parser_refuses_rather_than_dropping_a_step
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2401886Z         PASS [   0.130s] (3307/3346) xtask::bin/xtask perjob::tests::script_prose_is_not_an_invocation
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2473861Z         PASS [   0.016s] (3308/3346) xtask::bin/xtask phase_a_profile_tests::a_mirrored_phase_a_override_is_satisfied
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2564368Z         PASS [   0.032s] (3309/3346) xtask::bin/xtask phase_a_profile_tests::a_mirrored_override_that_drifted_reads_as_missing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2677865Z         PASS [   0.126s] (3310/3346) xtask::bin/xtask phase_a_profile_tests::a_heavy_by_binary_override_needs_no_mirror
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2799954Z         PASS [   0.040s] (3311/3346) xtask::bin/xtask phase_a_profile_tests::an_unmirrored_phase_a_override_is_reported
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.2863760Z         PASS [   0.039s] (3312/3346) xtask::bin/xtask phase_a_profile_tests::the_checked_in_config_is_in_parity
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.5504083Z         PASS [   0.294s] (3313/3346) xtask::bin/xtask pickaudit::tests::a_populated_report_never_claims_zero_picks
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.5748992Z         PASS [   0.307s] (3314/3346) xtask::bin/xtask pickaudit::tests::an_empty_range_says_zero_picks_is_not_a_pass
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.6665518Z         PASS [   0.091s] (3315/3346) xtask::bin/xtask pickaudit::tests::changed_lines_keeps_the_edits_and_drops_the_file_headers
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.6809175Z         PASS [   0.014s] (3316/3346) xtask::bin/xtask pickaudit::tests::count_and_digest_are_separate_verdicts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.9471295Z         PASS [   0.266s] (3317/3346) xtask::bin/xtask pickaudit::tests::exit_code_fails_on_loss_and_on_unclassified_but_never_on_drift
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:50.9826749Z         PASS [   0.035s] (3318/3346) xtask::bin/xtask pickaudit::tests::pairing_reports_no_match_and_ambiguity_rather_than_guessing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.0542531Z         PASS [   0.071s] (3319/3346) xtask::bin/xtask pool_claim_tests::claim_refuses_a_pool_in_a_sibling_worktree
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.0733156Z         PASS [   0.019s] (3320/3346) xtask::bin/xtask spacerun::tests::a_brace_inside_test_text_does_not_close_the_module_early
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.0872480Z         PASS [   0.014s] (3321/3346) xtask::bin/xtask spacerun::tests::a_healthy_continuation_renders_with_one_space_and_is_not_a_finding
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.1040570Z         PASS [   0.017s] (3322/3346) xtask::bin/xtask spacerun::tests::a_marked_line_is_exempt_and_an_unmarked_one_is_not
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.3778485Z         PASS [   0.274s] (3323/3346) xtask::bin/xtask spacerun::tests::a_marked_multi_line_literal_is_walked_past_rather_than_re_entered
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.4150766Z         PASS [   0.037s] (3324/3346) xtask::bin/xtask spacerun::tests::a_marker_counts_anywhere_in_the_comment_block_above
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.4713947Z         PASS [   0.056s] (3325/3346) xtask::bin/xtask spacerun::tests::a_marker_on_the_line_above_exempts_a_continued_literal
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.4857653Z         PASS [   0.014s] (3326/3346) xtask::bin/xtask spacerun::tests::a_marker_without_a_reason_token_does_not_exempt
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.4988665Z         PASS [   0.013s] (3327/3346) xtask::bin/xtask spacerun::tests::a_quote_inside_a_char_literal_opens_nothing_and_does_not_swallow_what_follows
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.5129571Z         PASS [   0.014s] (3328/3346) xtask::bin/xtask spacerun::tests::an_eaten_continuation_leaves_a_run_and_is_a_finding
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.5257408Z         PASS [   0.013s] (3329/3346) xtask::bin/xtask spacerun::tests::an_unclosed_test_module_ends_the_scan
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.7926044Z         PASS [   0.267s] (3330/3346) xtask::bin/xtask spacerun::tests::assertion_messages_are_out_of_scope
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.8240967Z         PASS [   0.031s] (3331/3346) xtask::bin/xtask spacerun::tests::leading_and_trailing_runs_are_not_interior
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.8762754Z         PASS [   0.052s] (3332/3346) xtask::bin/xtask spacerun::tests::only_a_top_level_cfg_test_marker_ends_the_scan
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.9061043Z         PASS [   0.030s] (3333/3346) xtask::bin/xtask spacerun::tests::production_code_after_a_test_module_is_scanned
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.9203994Z         PASS [   0.014s] (3334/3346) xtask::bin/xtask spacerun::tests::raw_strings_are_skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.9316412Z         PASS [   0.011s] (3335/3346) xtask::bin/xtask spacerun::tests::text_after_the_cfg_test_marker_is_out_of_scope
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:51.9439403Z         PASS [   0.012s] (3336/3346) xtask::bin/xtask spacerun::tests::the_repaired_fork_sentence_is_refused_in_its_original_bytes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:52.2057770Z         PASS [   0.262s] (3337/3346) xtask::bin/xtask spacerun::tests::the_two_forms_differ_by_one_backslash_and_the_gate_separates_them
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:52.2443822Z         PASS [   0.038s] (3338/3346) xtask::bin/xtask spacerun::tests::two_spaces_are_prose_and_three_are_alignment
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:52.2940482Z         PASS [   0.049s] (3339/3346) xtask::bin/xtask spt_bin_tests::target_debug_dir_honors_cargo_target_dir
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:52.3924452Z         PASS [  51.980s] (3340/3346) spt-store syncmerge::tests::dominated_incoming_drops_but_joins_dag
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:53.2082351Z         PASS [  52.802s] (3341/3346) spt-store syncmerge::tests::concurrent_writes_surface_on_both_nodes
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:54.0714592Z         PASS [   3.521s] (3342/3346) xtask::bin/xtask pickaudit::tests::audit_passes_a_same_count_different_line_pick_as_drift
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:54.0810539Z         PASS [   3.801s] (3343/3346) xtask::bin/xtask pickaudit::tests::an_explicit_pair_audits_a_pick_whose_subject_was_reworded
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:54.2047186Z         PASS [  32.994s] (3344/3346) spt-store::wtlock_two_process_int two_processes_commit_into_one_worktree_without_failing
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:54.6030396Z         PASS [   4.317s] (3345/3346) xtask::bin/xtask pickaudit::tests::audit_names_a_dropped_line_a_faithful_pick_and_an_unpaired_commit
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:56.1471936Z         PASS [  51.216s] (3346/3346) spt-store syncmerge::tests::reconciled_write_propagates_and_clears_artifacts
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:56.1477134Z ────────────
test (self-hosted, Windows, hfenduleam)	Test — Phase A (light pool; bounded parallelism) — windows	2026-09-09T04:46:56.1477365Z      Summary [ 641.931s] 3346 tests run: 3346 passed (4 slow, 4 leaky), 1 skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	﻿2026-09-09T04:46:56.2269085Z ##[group]Run .github/bench/wrap.ps1 -Step "test-phase-b" -Command "cargo nextest run --workspace --no-fail-fast -E '$env:HEAVY'"
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2269774Z [36;1m.github/bench/wrap.ps1 -Step "test-phase-b" -Command "cargo nextest run --workspace --no-fail-fast -E '$env:HEAVY'"[0m
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2275408Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2275774Z env:
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2275963Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2276364Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2276704Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2297596Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2307983Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2308774Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2309491Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:46:56.2310263Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:47:10.5680661Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 7.38s
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:48:24.3473855Z ────────────
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:48:24.3474215Z  Nextest run ID 88e7c80a-daf0-424e-b15c-b7de84f3218f with nextest profile: default
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:48:24.3474555Z     Starting 234 tests across 89 binaries (137 binaries skipped)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:48:39.3689947Z         PASS [  15.020s] (  1/234) spt::activity_link_push_e2e activity_frames_reach_a_linked_shell_through_the_real_daemon
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:48:57.1741122Z         PASS [  17.805s] (  2/234) spt::attach_link_push_e2e attachment_frames_reach_a_linked_shell_through_the_real_daemon
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:49:12.4978557Z         PASS [  15.324s] (  3/234) spt::attach_wedge_e2e attach_wedge_dead_child_plus_dropped_pump_does_not_wedge_the_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:49:17.5677960Z         PASS [   5.070s] (  4/234) spt::bind_cwd_project_e2e endpoint_run_records_cwd_and_appears_under_its_project
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:49:21.2715405Z         PASS [   3.703s] (  5/234) spt::bind_honest_cross_perch_e2e cross_perch_dead_owner_repin_is_refused_no_contamination
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:49:37.7300451Z         PASS [  16.458s] (  6/234) spt::brain_respawn_rename brain_respawns_onto_applied_bytes_after_in_place_rename
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:49:48.6054054Z         PASS [  10.875s] (  7/234) spt::brain_split broker_survives_brain_kill_and_respawns_it
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:00.6512411Z         PASS [  12.046s] (  8/234) spt::brain_split seed_anchor_survives_brain_cycle
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:10.1766968Z         PASS [   9.525s] (  9/234) spt::brain_survive pty_and_quic_survive_brain_process_restart_onto_swapped_binary
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:18.7139417Z         PASS [   8.537s] ( 10/234) spt::commune_two_cwd_e2e a_commune_written_from_a_worktree_is_loud_and_stale_while_the_registered_one_is_not
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:19.5143871Z         PASS [   0.800s] ( 11/234) spt::coordinator_image_e2e the_running_coordinator_reports_its_compiled_image_and_no_impostor_can
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:28.0195105Z         PASS [   8.505s] ( 12/234) spt::daemon_refresh_e2e daemon_refresh_cycles_brain_while_hosted_endpoint_survives
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:40.9102015Z         PASS [  12.891s] ( 13/234) spt::dummy_harness_e2e endpoint_run_attach_awaits_online_before_attaching
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:47.1869262Z         PASS [   6.277s] ( 14/234) spt::dummy_harness_e2e endpoint_run_brings_up_a_long_lived_dummy_harness_and_rc_attaches
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:47.3151445Z         PASS [   0.128s] ( 15/234) spt::endpoint_autostart_e2e poll_ignores_the_skip_and_fail_replay_outcomes
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:47.5912827Z         PASS [   0.276s] ( 16/234) spt::endpoint_autostart_e2e poll_rejects_a_line_torn_before_the_startup_default_tail
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:57.2456936Z         PASS [   9.654s] ( 17/234) spt::endpoint_autostart_e2e saved_endpoint_replays_on_daemon_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:50:57.2667512Z         PASS [   0.021s] ( 18/234) spt::endpoint_autostart_e2e torn_read_yields_no_replay_line_rather_than_a_promoted_fragment
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:51:02.6337801Z         PASS [   5.367s] ( 19/234) spt::endpoint_teardown_authority_e2e shutdown_reaps_the_hosted_subtree_it_reports_suspending
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:51:17.2263071Z         PASS [  14.592s] ( 20/234) spt::endpoint_teardown_authority_e2e stop_reaps_the_hosted_subtree_and_run_recovers_the_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:51:20.9474748Z         PASS [   3.721s] ( 21/234) spt::engine_room_bringup_e2e a_bringup_on_a_multi_subnet_node_leaves_the_room_a_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:01.7936926Z         PASS [  40.846s] ( 22/234) spt::engine_room_bringup_e2e a_bringup_whose_attach_never_arrived_leaves_no_grant_anywhere
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:08.2257287Z         PASS [   6.432s] ( 23/234) spt::engine_room_bringup_e2e a_brought_up_engine_room_is_served_the_in_core_role_and_has_no_writer
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:11.5325339Z         PASS [   3.307s] ( 24/234) spt::engine_room_bringup_e2e a_brought_up_engine_room_registers_no_relay_address_for_tcp_to_reach
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:24.8371542Z         PASS [  13.305s] ( 25/234) spt::engine_room_bringup_e2e a_cleanly_offline_engine_room_is_still_brought_up_by_its_own_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:24.8500533Z         PASS [   0.013s] ( 26/234) spt::engine_room_bringup_e2e a_complete_ladder_with_no_expiry_is_green
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:24.8620232Z         PASS [   0.012s] ( 27/234) spt::engine_room_bringup_e2e a_loud_launch_failure_is_candidate_a_from_either_witness
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:24.8731139Z         PASS [   0.011s] ( 28/234) spt::engine_room_bringup_e2e a_pty_create_that_never_completed_is_candidate_c
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:24.8837157Z         PASS [   0.011s] ( 29/234) spt::engine_room_bringup_e2e a_row_that_existed_and_then_did_not_is_candidate_d_not_late
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:24.8937613Z         PASS [   0.010s] ( 30/234) spt::engine_room_bringup_e2e an_expiry_with_no_stamps_behind_it_is_unreadable_never_candidate_b
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:28.2263714Z         PASS [   3.332s] ( 31/234) spt::engine_room_bringup_e2e er_bringup_from_the_operators_invocation_spawns_the_session
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:32.6925619Z         PASS [   4.466s] ( 32/234) spt::engine_room_bringup_e2e er_bringup_launch_phases_reach_the_sink
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:32.8348614Z         PASS [   0.142s] ( 33/234) spt::engine_room_bringup_e2e every_verdict_names_the_last_phase_each_side_reached
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:41.7279331Z         PASS [   8.893s] ( 34/234) spt::er_brief_once_per_session_e2e a_second_seat_on_a_running_engine_room_is_not_re_briefed
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:41.8296616Z         PASS [   0.102s] ( 35/234) spt::er_brief_once_per_session_e2e controller_release_barrier_rejects_a_latched_seat
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:52:56.0325711Z         PASS [  14.203s] ( 36/234) spt::er_briefing_presentation_e2e er_briefing_presentation_measurements
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:53:27.4852034Z         PASS [  31.453s] ( 37/234) spt::er_briefing_presented_e2e the_engine_room_briefing_is_presented_before_the_first_actionable_turn
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:53:35.5999211Z         PASS [   8.115s] ( 38/234) spt::er_briefing_session_scoped_e2e a_new_session_never_delivers_an_older_sessions_briefing
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:53:43.7649914Z         PASS [   8.165s] ( 39/234) spt::er_sequestered_cwd_e2e engine_room_launches_sequestered_and_nothing_is_written_into_it
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:53:47.9216408Z         PASS [   4.157s] ( 40/234) spt::gateway_owner_shell_e2e gateway_typed_owner_owns_a_shell_on_every_path_keyed_on_id
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:53:53.7825393Z         PASS [   5.861s] ( 41/234) spt::idle_edge_drain_e2e spool_while_active_then_idle_fires_injection
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:03.4726008Z         PASS [   9.690s] ( 42/234) spt::idle_edge_seal_e2e idle_seals_the_latest_turn_with_a_stable_seq_and_no_further_prompt
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:10.0260769Z         PASS [   6.553s] ( 43/234) spt::job_escape_e2e win::cold_start_daemon_escapes_kill_on_close_job_via_wmi
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:15.2210409Z         PASS [   5.195s] ( 44/234) spt::job_escape_e2e win::wmi_daemon_run_has_no_conhost_window
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:30.2674305Z         PASS [  15.046s] ( 45/234) spt::knock_approve_not_hostage_e2e an_approval_stands_and_exits_the_same_whether_or_not_its_wire_legs_arrive
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:39.5627796Z         PASS [   9.295s] ( 46/234) spt::knock_mutual_cross_node_e2e a_cross_node_redemption_opens_the_presenters_own_side_and_only_asks_for_the_minters
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:47.1956005Z         PASS [   7.633s] ( 47/234) spt::live_adapt_translation_swap_e2e adapter_apply_for_foreign_adapter_leaves_live_endpoint_untouched
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:54:56.9450967Z         PASS [   9.749s] ( 48/234) spt::live_adapt_translation_swap_e2e adapter_apply_swaps_composite_profile_endpoint_matched_on_parent
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:03.5393441Z         PASS [   6.594s] ( 49/234) spt::live_adapt_translation_swap_e2e adapter_apply_swaps_locked_translation_binary_without_restarting_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:10.0503648Z         PASS [   6.511s] ( 50/234) spt::live_adapt_translation_swap_e2e adapter_apply_with_no_matching_session_still_swaps
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:24.5068177Z         PASS [  14.456s] ( 51/234) spt::livehost_bootgate_e2e cold_start_does_not_revive_a_sessionless_online_latched_perch
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:28.2047383Z         PASS [   3.698s] ( 52/234) spt::multi_subnet_bringup_e2e fresh_unbound_is_attachable_before_bind
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:34.2655202Z         PASS [   6.061s] ( 53/234) spt::multi_subnet_bringup_e2e multi_subnet_refuses_without_subnet_then_homes_and_binds
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:38.7428015Z         PASS [   4.477s] ( 54/234) spt::multi_subnet_bringup_e2e single_subnet_control_auto_homes
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:40.6305757Z         PASS [   1.888s] ( 55/234) spt::n1_compat brain_accepts_old_and_new_broker_argv
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:40.9150276Z         PASS [   0.284s] ( 56/234) spt::n1_pairing new_brain_serves_against_old_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:41.2141797Z         PASS [   0.299s] ( 57/234) spt::oneliner_e2e at_logon_task_launches_daemon_in_background_not_foreground
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:41.4626188Z         PASS [   0.248s] ( 58/234) spt::oneliner_e2e install_script_against_staged_release
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:41.7604096Z         PASS [   0.297s] ( 59/234) spt::projindex_reader_e2e daemon_failure_panel_reads_pre_redirect_capture_and_persistent_sink
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:55:53.1931969Z         PASS [  11.433s] ( 60/234) spt::projindex_reader_e2e readers_answer_from_daemon_maintained_index_with_zero_git
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:56:30.1001552Z         PASS [  36.907s] ( 61/234) spt::projindex_writer_e2e writer_cold_warm_and_event_invalidation_against_live_daemon
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:56:40.3410594Z         PASS [  10.241s] ( 62/234) spt::psyche_download_e2e psyche_download_emits_brief_with_pending_then_self_clears
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:56:46.0851611Z         PASS [   5.744s] ( 63/234) spt::rc_attach_truth harness_only_refuses_truthfully_pre_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:56:50.2972821Z         PASS [   4.212s] ( 64/234) spt::rc_attach_truth offline_row_over_live_session_attaches
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:56:54.9268646Z         PASS [   4.629s] ( 65/234) spt::rc_attach_truth offline_row_with_no_session_refuses
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:57:03.3445439Z         PASS [   8.418s] ( 66/234) spt::rc_attach_truth rc_owned_display_carries_no_pump_diagnostics
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:57:14.8391044Z         PASS [  11.494s] ( 67/234) spt::rc_attach_truth resume_never_bound_reads_unbound_and_attaches
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:57:22.5786242Z         PASS [   7.739s] ( 68/234) spt::rc_attach_truth zombie_claim_refuses_never_attaches
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:22.5889221Z         SLOW [> 60.000s] (───────) spt::resident_service_e2e a_declared_service_rises_with_the_daemon_and_reaches_the_cli
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4639030Z         FAIL [  71.881s] ( 69/234) spt::resident_service_e2e a_declared_service_rises_with_the_daemon_and_reaches_the_cli
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4639717Z   stdout ───
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4639788Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4639843Z     running 1 test
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4640201Z     test a_declared_service_rises_with_the_daemon_and_reaches_the_cli has been running for over 60 seconds
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4640718Z     test a_declared_service_rises_with_the_daemon_and_reaches_the_cli ... FAILED
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4640982Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4641052Z     failures:
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4641182Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4641235Z     failures:
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4641460Z         a_declared_service_rises_with_the_daemon_and_reaches_the_cli
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4641631Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4641795Z     test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 71.86s
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4642026Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4642126Z   stderr ───
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4642323Z     REAP[resident/daemon]: observed pid=56040 started_at=134334034429309269
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4642610Z     REAP[resident/brain]: observed pid=42716 started_at=134334034429779993
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4642886Z     REAP[resident/boot]: observed pid=53100 started_at=134334034435011272
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4643157Z     REAP[resident/rel]: observed pid=25012 started_at=134334034452837363
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4644041Z     === resident-service int: daemon_up=true boot_alive=true boot_pid=Some(53100) rel_started=true rel_pid=Some(25012) broker_survived=true rel_online=true dir_online=true survived_teardown=true spooled=[(1, "cli@HFENDULEAM", "<EVENT type=\"msg\" from=\"cli@HFENDULEAM\" msg-id=\"XCSNVGXA\">a supervised service reporting in</EVENT>")] ===
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4645085Z     --- add (no daemon) ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4645256Z     ADAPTER_ADD:svcboot:Harness:Copy (registered)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4645668Z     ADAPTER_SERVICE_PENDING:svcboot: service declared, but the daemon is not running — it starts at the next daemon boot
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4646228Z     ADAPTER_WEB_PENDING: serving registry reconciliation failed: The system cannot find the file specified. (os error 2); retry at the next daemon start
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4646683Z     ADAPTER_INSTALL_SKIP: no [update] avenue (manifest-only adapter)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4646855Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4646915Z     --- add (live daemon) ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4647082Z     ADAPTER_ADD:relshell:Shell:Pointer (registered)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4647276Z     ADAPTER_SERVICE:relshell: started
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4647428Z     ADAPTER_INSTALL_OK
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4647509Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4647569Z     --- mock-send-result ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4647710Z     exit=0
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4648991Z     ACCESS_STORE_MINTED C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\identity\trust\access.json — no access store was present at first load in this process, so an EMPTY baseline was written (everything open that the chain leaves open). If this node had access rules, they are GONE: the store was removed while the daemon was down, and this mint replaced it. Re-apply them (`spt endpoint access ...`); a restart cannot tell a wipe from a first boot.
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4650294Z     QUEUED:inbox
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4650367Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4650420Z     --- mock-env ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4650561Z     SPT_SERVICE_OPTION=svcboot
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4650926Z     SPT_SERVICE_DIR=C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\services\svcboot
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4651384Z     SPT_BIN=C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4651770Z     SPT_HOME=C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4657452Z     PATH=C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\build\aws-lc-sys-7ae14d7816993bf3\out;C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\build\blake3-8c848f37c32b4045\out;C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\build\libsqlite3-sys-e62ae5c8058acaaa\out;C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\build\ring-59f09540a268c44d\out;C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\deps;C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug;C:\Users\decid\.rustup\toolchains\1.96.0-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Program Files\PowerShell\7;C:\Program Files\Volta\;C:\Windows\System32\AMD;C:\Program Files\PowerShell\7;C:\Program Files\Eclipse Adoptium\jdk-17.0.19.10-hotspot\bin;C:\Program Files\PlasticSCM5\server;C:\Program Files\PlasticSCM5\client;C:\Program Files\Python312\Scripts\;C:\Program Files\Python312\;C:\Program Files\Eclipse Adoptium\jre-8.0.392.8-hotspot\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\dotnet\;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\NVIDIA app\NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\USBip;C:\Program Files\PowerToys\DSCModules\;C:\Program Files\GitHub CLI\;C:\dev\flutter\bin;C:\Program Files\Tailscale\;C:\Program Files\CMake\bin;C:\Program Files\Arduino CLI\;C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.2 mpacbti-rel1\bin;C:\Program Files\PowerShell\7\;C:\Users\decid\AppData\Local\Volta\bin;C:\Users\decid\AppData\Local\Programs\traceable-reqs;C:\Users\decid\.cargo\bin;C:\Users\decid\scoop\apps\mpv\current;C:\Users\decid\scoop\shims;C:\Users\decid\AppData\Local\Microsoft\WindowsApps;C:\Users\decid\AppData\Local\GitHubDesktop\bin;C:\Users\decid\.dotnet\tools;C:\Users\decid\AppData\Local\Microsoft\WindowsApps;C:\Users\decid\AppData\Local\Microsoft\WinGet\Links;C:\Users\decid\AppData\Local\Microsoft\WinGet\Packages\ggml.llamacpp_Microsoft.Winget.Source_8wekyb3d8bbwe;C:\Users\decid\.fly\bin;C:\Users\decid\AppData\Local\spt-core\bin;C:\Users\decid\.bun\bin;C:\Users\decid\.local\bin;C:\Users\decid\.rustup\toolchains\1.96.0-x86_64-pc-windows-msvc\bin
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4663018Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4663082Z     --- spawn rel ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4663313Z     SHELL_SPAWNED:relshell-0 owner=doyle pid=54124 status=offline (online at bind)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4663516Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4663568Z     --- spawn dir ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4663780Z     SHELL_SPAWNED:dirshell-0 owner=doyle pid=28084 status=offline (online at bind)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664032Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664084Z     --- teardown ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664234Z     SHELL_TORNDOWN:relshell-0 (slot + alias freed)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664360Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664418Z     --- daemon stderr ---
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664564Z     === broker stderr (pre-redirect) ===
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4664677Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4665217Z     === daemon stderr sink ===
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4665467Z     === spt broker stderr — generation 0 — pid 56040 ===
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4665799Z     ELEVATED_DAEMON: no unelevated identity to drop to — serving with the elevated token
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4666163Z     NODE_KEY_FAIL: identity unavailable — broker runs net-less, no retry
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4666677Z     PERCH_CENSUS: 2 perch dir(s) — 2 occupied, 0 reapable, 0 refused (spool), 0 refused (empty); report only, nothing removed (see: spt endpoint gc)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4667129Z     DOCS_SERVER_UP: http://localhost:49168/hfenduleam/docs/
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4667346Z     SERVICE_BOOT:svcboot: Started
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4667595Z     === spt brain stderr — generation 0 — pid 42716 ===
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4667961Z     BRAIN_UP: connected to broker spt-daemon-broker-673f2b896a11ac9b.sock (pid 42716, generation 0, start-reason cold)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4668451Z     CONN_LIFECYCLE: conn=1 role=brain wall_ms=1788929843003 mono_ms=38 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4668782Z     BRAIN_PHASE:announce done in 0ms
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4668954Z     BRAIN_PHASE:resume done in 0ms
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4669384Z     SERVICE_STARTED:svcboot: pid 53100 (C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\srcs\svcboot\svcmock.exe)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4670139Z     BRAIN_PHASE:ready written in 1678ms (exe-hash 1677ms, computed=true) path C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\brain.ready
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4670777Z     CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788929844684 mono_ms=1719 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4671331Z     CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788929844684 mono_ms=1720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4671885Z     CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788929844691 mono_ms=1727 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4672434Z     CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788929844691 mono_ms=1727 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4673112Z     SERVICE_STARTED:relshell: pid 25012 (C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\srcs\relshell\svcmock.exe)
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4673572Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4674052Z     REAP[resident/boot]: pid=53100 started_at=134334034435011272 exe=C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\srcs\svcboot\svcmock.exe verdict=KILLED
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4675528Z     REAP[resident/boot]: pid=53100 kill status=exit code: 0 stdout="SUCCESS: The process with PID 53100 (child process of PID 56040) has been terminated." stderr=""
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4676654Z     REAP[resident/rel]: pid=25012 started_at=134334034452837363 exe=C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\.tmpAHRrrZ\srcs\relshell\svcmock.exe verdict=KILLED
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4677938Z     REAP[resident/rel]: pid=25012 kill status=exit code: 0 stdout="SUCCESS: The process with PID 25012 (child process of PID 56040) has been terminated." stderr=""
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4678964Z     REAP[resident/brain]: pid=42716 started_at=134334034429779993 exe=C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe verdict=KILLED
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4680320Z     REAP[resident/brain]: pid=42716 kill status=exit code: 0 stdout="SUCCESS: The process with PID 50480 (child process of PID 42716) has been terminated.\r\nSUCCESS: The process with PID 42716 (child process of PID 56040) has been terminated." stderr=""
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4682315Z     === resident-service teardown: verdicts=[("resident/boot", Killed), ("resident/rel", Killed), ("resident/brain", Killed)] population=Population { survivors: [(25596, "C:\\actions-runner\\_work\\_temp\\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\\.tmpAHRrrZ\\srcs\\svcboot\\svcmock.exe")], unreadable: [], scope_lost: [] } ===
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4683798Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4684242Z     thread 'a_declared_service_rises_with_the_daemon_and_reaches_the_cli' (56444) panicked at crates\spt\tests\resident_service_e2e.rs:670:5:
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4685875Z     teardown LEAKED — these processes outlived the test that started them, and no per-pid check could name them: [(25596, "C:\\actions-runner\\_work\\_temp\\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63\\.tmpAHRrrZ\\srcs\\svcboot\\svcmock.exe")]
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4688154Z       settle: went_clean=false after 60.6070532s of a 60s budget — went_clean=false at the full budget is a leak that never drained; a wait far SHORTER than the budget with survivors still listed means they appeared after the sweep read clean, which is a different defect from termination still being in flight
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4689541Z     note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:34.4689886Z 
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:42.1881205Z         PASS [   7.724s] ( 70/234) spt::resume_no_control_steal_e2e brain_respawn_keeps_every_session_controller_and_still_promotes
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:50.2533697Z         PASS [   8.065s] ( 71/234) spt::resume_template_e2e endpoint_run_resume_selects_resume_template_in_recorded_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:58:55.6740435Z         PASS [   5.421s] ( 72/234) spt::run_no_dup_session_e2e run_over_live_endpoint_never_mints_a_second_session
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:59:00.4283155Z         PASS [   4.754s] ( 73/234) spt::trial_drain_drive_e2e trial_candidate_self_drives_the_reap_of_a_black_holed_old_gen_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:59:01.1299270Z         PASS [   0.701s] ( 74/234) spt::twohost_cli gated_cli_role_a
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:59:01.1528804Z         PASS [   0.023s] ( 75/234) spt::twohost_cli gated_cli_role_b
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:59:31.3807900Z         PASS [  30.228s] ( 76/234) spt::wake_resume_bind_e2e wake_on_a_suspended_agent_resumes_binds_online_and_rehosts
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T04:59:47.4032403Z         PASS [  16.022s] ( 77/234) spt::webserve_attachment_e2e an_attachment_is_snapshot_served_fetched_back_and_named_by_its_message
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:13.7201114Z         PASS [  26.317s] ( 78/234) spt::webserve_cross_node_e2e a_peers_url_is_served_by_its_owner_through_the_local_listener
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:14.2193376Z         PASS [   0.499s] ( 79/234) spt-daemon::attach attach_registers_remote_drive_detection
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:14.3923531Z         PASS [   0.173s] ( 80/234) spt-daemon::attach attach_survives_target_brain_restart_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:14.4834804Z         PASS [   0.091s] ( 81/234) spt-daemon::attach broker_spawns_the_pty_child_in_the_requested_cwd
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:14.5629252Z         PASS [   0.079s] ( 82/234) spt-daemon::attach controller_restart_with_viewer_no_displace_and_viewer_survives
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:14.6271831Z         PASS [   0.064s] ( 83/234) spt-daemon::attach controller_viewer_matrix_and_loud_take
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:14.9315338Z         PASS [   0.304s] ( 84/234) spt-daemon::attach handoff_seeds_resume_cursor_and_resubscribes_for_resume
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:15.0378336Z         PASS [   0.106s] ( 85/234) spt-daemon::attach local_attach_via_loopback_conn_rides_the_same_pump
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:16.1666061Z         PASS [   1.129s] ( 86/234) spt-daemon::attach loopback_attach_to_a_prepopulated_ring_delivers_without_deadlock
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:16.4798317Z         PASS [   0.313s] ( 87/234) spt-daemon::attach loopback_self_dial_is_refused_local_uses_fallback_transport
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:16.5261852Z         PASS [   0.046s] ( 88/234) spt-daemon::attach re_serve_resets_resume_cursor_after_a_pre_attached_consume
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:16.6739508Z         PASS [   0.148s] ( 89/234) spt-daemon::attach remote_attach_drives_a_real_pty_cross_daemon
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:16.7848320Z         PASS [   0.111s] ( 90/234) spt-daemon::attach resize_is_controller_exclusive
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:17.1084433Z         PASS [   0.324s] ( 91/234) spt-daemon::attach same_origin_re_subscribe_does_not_displace
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:17.2494331Z         PASS [   0.141s] ( 92/234) spt-daemon::attach spt_hosted_bringup_then_cross_node_attach_drives_the_pty
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:17.6351495Z         PASS [   0.386s] ( 93/234) spt-daemon::attach wedged_viewer_does_not_stall_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:29.0086565Z         PASS [  11.373s] ( 94/234) spt-daemon::brain_resume_conn_deadlock daemon_cursor_only_resume_keeps_heartbeat_live_respawn_interleave
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:45.2449010Z         PASS [  16.236s] ( 95/234) spt-daemon::brain_resume_conn_deadlock daemon_cursor_only_resume_keeps_heartbeat_live_steady_state
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:49.2549182Z         PASS [   4.010s] ( 96/234) spt-daemon::brain_resume_conn_deadlock daemon_resume_leaves_zero_brain_subscribers
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:51.2891288Z         PASS [   2.034s] ( 97/234) spt-daemon::brain_swap brain_only_update_swaps_logic_with_zero_endpoint_interruption
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:53.0483962Z         PASS [   1.759s] ( 98/234) spt-daemon::broker ack_false_input_suppresses_applied_frame
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:00:56.1985210Z         PASS [   3.150s] ( 99/234) spt-daemon::broker broker_hosts_pty_child_streams_output_and_accepts_input
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:00.1867858Z         PASS [   3.988s] (100/234) spt-daemon::broker controller_writer_reorder_consumer_view_stays_monotonic_and_session_live
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:02.0019757Z         PASS [   1.814s] (101/234) spt-daemon::broker dead_session_subscribe_does_not_hang
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:03.9511434Z         PASS [   1.949s] (102/234) spt-daemon::broker endpoint_keyed_inject_without_binary_spools_not_pty
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:05.6778395Z         PASS [   1.727s] (103/234) spt-daemon::broker exactly_once_preserved_on_no_ack_path
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:07.9460490Z         PASS [   2.268s] (104/234) spt-daemon::broker spawn_env_reaches_child
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:09.6726058Z         PASS [   1.726s] (105/234) spt-daemon::broker wall_b_endpoint_run_env_then_send_spools
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:09.6885613Z         PASS [   0.016s] (106/234) spt-daemon::budget measure_dormant_seat_budget
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:11.2412950Z         PASS [   1.553s] (107/234) spt-daemon::conn_blackhole_lifecycle blackholed_controller_lifecycle_five_invariants
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:14.7561495Z         PASS [   3.515s] (108/234) spt-daemon::controller_lease equal_lease_replay_stays_silent_and_never_self_displaces
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:16.3642797Z         PASS [   1.608s] (109/234) spt-daemon::controller_lease revoke_terminates_a_wedged_incumbent_plain_control
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:18.1318342Z         PASS [   1.767s] (110/234) spt-daemon::controller_lease revoke_terminates_a_wedged_incumbent_take
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:18.8451654Z         PASS [   0.713s] (111/234) spt-daemon::controller_lease same_node_distinct_lease_take_displaces_loudly_and_completes_the_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:20.5402456Z         PASS [   1.695s] (112/234) spt-daemon::controller_lease same_node_newer_gen_plain_control_supersedes_loudly_and_completes_the_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:21.9203156Z         PASS [   1.380s] (113/234) spt-daemon::controller_lease stale_lease_input_and_resize_mutate_nothing_and_shell_injection_lands
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:50.7965673Z         PASS [  28.876s] (114/234) spt-daemon::daemon_e2e daemon_hosts_lifecycle_and_survives_brain_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:53.0879185Z         PASS [   2.291s] (115/234) spt-daemon::daemon_lifecycle_real_brain real_brain_process_hosts_the_psyche_for_an_online_live_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:54.2862168Z         PASS [   1.198s] (116/234) spt-daemon::digest harness_hosted_digest_projects_and_pushes_deltas
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:54.3149930Z         PASS [   0.029s] (117/234) spt-daemon::dispatch classify_routes_a_node_label_feed_to_registry
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:54.6441808Z         PASS [   0.329s] (118/234) spt-daemon::dispatch dispatcher_applies_a_notif_feed_undriven
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:55.3521203Z         PASS [   0.708s] (119/234) spt-daemon::dispatch dispatcher_funnels_wan_messages_undriven
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:55.5545774Z         PASS [   0.202s] (120/234) spt-daemon::dispatch dispatcher_resolves_attach_by_endpoint_and_refuses_a_stale_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:56.2830537Z         PASS [   0.728s] (121/234) spt-daemon::dispatch dispatcher_serves_a_cross_node_shell_link
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:56.4685836Z         PASS [   0.186s] (122/234) spt-daemon::dispatch dispatcher_serves_a_remote_drive_attach_undriven
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:01:56.9571265Z         PASS [   0.488s] (123/234) spt-daemon::dispatch dispatcher_serves_a_subnet_serve_probe
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:04.4090644Z         PASS [   7.452s] (124/234) spt-daemon::dispatch dispatcher_serves_a_sync_pull_undriven
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:04.5584204Z         PASS [   0.149s] (125/234) spt-daemon::dispatch dispatcher_serves_an_update_pull_undriven
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:05.2723275Z         PASS [   0.714s] (126/234) spt-daemon::dispatch dispatcher_surfaces_a_remote_won_notif_at_the_winning_node
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:05.5035716Z         PASS [   0.231s] (127/234) spt-daemon::dispatch dispatcher_survives_an_unknown_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:06.3542826Z         PASS [   0.851s] (128/234) spt-daemon::driven_by_selfheal gap_a_live_session_controller_by_is_ambiguous_so_reconcile_must_not_clear
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:06.7341689Z         PASS [   0.380s] (129/234) spt-daemon::driven_by_selfheal gap_b_sessionless_perch_reconcile_offlines_and_clears_driven_by
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:06.9289808Z         PASS [   0.195s] (130/234) spt-daemon::endpoint_lifecycle an_inherited_stamp_from_a_dead_relay_converges_while_a_dead_binder_row_stays_online
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:07.0336447Z         PASS [   0.105s] (131/234) spt-daemon::endpoint_lifecycle dead_pid_hybrid_row_does_not_survive_reconcile
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:07.5122546Z         PASS [   0.478s] (132/234) spt-daemon::endpoint_lifecycle dead_relay_converges_while_its_live_sibling_still_delivers
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:07.7492538Z         PASS [   0.237s] (133/234) spt-daemon::endpoint_lifecycle definitive_death_normalizes_and_next_reconcile_emits_no_wake_resume
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:08.9211503Z         PASS [   1.172s] (134/234) spt-daemon::endpoint_lifecycle poll_vs_reap_interleave_converges_to_cleared_stamps
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:09.4870173Z         PASS [   0.566s] (135/234) spt-daemon::endpoint_lifecycle raw_viewport_close_frees_the_controller_full_chain_across_broker_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:09.8535901Z         PASS [   0.366s] (136/234) spt-daemon::endpoint_survival daemon_restart_reruns_a_previously_online_orphaned_endpoint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:10.4069189Z         PASS [   0.553s] (137/234) spt-daemon::endpoint_survival daemon_restart_resumes_a_ready_agent_controllable_orphan
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:10.4465757Z         PASS [   0.040s] (138/234) spt-daemon::endpoint_survival reconcile_leaves_a_legitimate_live_pid_ready_listener_online
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:10.5305965Z         PASS [   0.084s] (139/234) spt-daemon::endpoint_survival reconcile_terminally_offlines_a_sessionless_ready_agent_controllable_hybrid
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:12.1690768Z         PASS [   1.638s] (140/234) spt-daemon::exit_every_reap every_completed_reap_reaches_the_attached_terminal_as_an_exit
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:14.0727970Z         PASS [   1.904s] (141/234) spt-daemon::handoff brain_restart_survives_gaplessly_with_fresh_gen_start
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:14.2110388Z         PASS [   0.138s] (142/234) spt-daemon::idempotent pty_writes_are_exactly_once_across_brain_crashes
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:18.9045011Z         PASS [   4.693s] (143/234) spt-daemon::inject_control_wedge a_backed_up_controller_does_not_wedge_the_session
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:23.3978690Z         PASS [   4.493s] (144/234) spt-daemon::inject_control_wedge a_journaled_input_wedge_does_not_starve_a_concurrent_rc_attach
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:29.1616630Z         PASS [   5.764s] (145/234) spt-daemon::inject_control_wedge c1_miss_once_preserves_binary_and_next_inject_delivers
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:31.7735452Z         PASS [   2.612s] (146/234) spt-daemon::inject_control_wedge c1_strike_fault_stamps_perch_and_bounded_respawns_then_gives_up
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:44.5230499Z         PASS [  12.749s] (147/234) spt-daemon::inject_control_wedge g1_choreography_happy_path_payload_reaches_pty_and_controller_keeps_control
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:48.2850755Z         PASS [   3.762s] (148/234) spt-daemon::inject_control_wedge g2_no_commit_deadline_faults_binary_and_does_not_wedge_controller_input
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:51.9787480Z         PASS [   3.694s] (149/234) spt-daemon::inject_control_wedge g3_content_free_ping_never_duplicates_operator_keystrokes_into_binary
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:53.7090989Z         PASS [   1.730s] (150/234) spt-daemon::inject_control_wedge g4_translation_child_is_reaped_no_zombie_after_session_down
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:56.6975960Z         PASS [   2.988s] (151/234) spt-daemon::inject_control_wedge g5_active_endpoint_spools_deferred_and_is_not_injected
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:02:57.8704002Z         PASS [   1.173s] (152/234) spt-daemon::inject_control_wedge g6_faulted_inflight_envelope_is_respooled_not_lost
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:11.4512687Z         PASS [  13.581s] (153/234) spt-daemon::inject_control_wedge g7_native_injects_mid_active_bypassing_the_idle_gate
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:13.4520544Z         PASS [   2.001s] (154/234) spt-daemon::inject_control_wedge large_endpoint_inject_to_a_no_binary_session_spools_promptly_without_wedging
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:17.2990842Z         PASS [   3.847s] (155/234) spt-daemon::inject_control_wedge p0_paste_wedge_parked_write_does_not_starve_attach_or_wedge_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:17.7923028Z         PASS [   0.493s] (156/234) spt-daemon::inject_control_wedge parked_message_to_already_idle_endpoint_is_delivered_without_a_poke
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:18.5948592Z         PASS [   0.802s] (157/234) spt-daemon::inject_control_wedge w5_a1_locally_driven_session_reports_controller_by_none
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:23.4647350Z         PASS [   4.870s] (158/234) spt-daemon::inject_control_wedge w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:24.0156118Z         PASS [   0.551s] (159/234) spt-daemon::inject_control_wedge w5a_bigmultiline_inject_arrives_byte_complete_across_a_loop
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:25.6877189Z         PASS [   1.672s] (160/234) spt-daemon::inject_control_wedge w5a_forced_echo_miss_redrives_once_then_loud_spools
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:38.4074460Z         PASS [  12.720s] (161/234) spt-daemon::inject_control_wedge wan_arrival_to_idle_spt_hosted_injects_with_no_hook_poll
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:41.3407384Z         PASS [   2.933s] (162/234) spt-daemon::input_ack_deadlock input_flood_through_serve_attach_does_not_deadlock_broker
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:48.0143205Z         PASS [   6.673s] (163/234) spt-daemon::mesh_recovery a_dead_roster_address_does_not_strand_the_peer_from_discovery
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:48.3557796Z         PASS [   0.341s] (164/234) spt-daemon::mesh_recovery a_frozen_self_row_heals_at_boot_and_readvertises_the_live_address
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:49.0990144Z         PASS [   0.743s] (165/234) spt-daemon::mesh_recovery health_degrades_during_all_peer_failure_and_recovers_on_real_progress
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:52.4198314Z         PASS [   3.321s] (166/234) spt-daemon::mesh_recovery poison_cache_row_is_repaired_from_the_roster_at_startup
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:03:58.6873341Z         PASS [   6.267s] (167/234) spt-daemon::mesh_recovery roster_route_survives_a_transient_dial_failure_with_discovery_disabled
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:01.6521740Z         PASS [   2.965s] (168/234) spt-daemon::net_worker_starve dead_peer_dial_burst_vs_net_runtime_canary
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:04.4864625Z         PASS [   2.834s] (169/234) spt-daemon::net_worker_starve unreachable_peer_dial_burst_vs_net_runtime_canary
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:07.7865241Z         PASS [   3.300s] (170/234) spt-daemon::redispatch finished_historical_attach_neither_takes_nor_clears_current_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:10.4659542Z         PASS [   2.679s] (171/234) spt-daemon::redispatch finished_pending_sync_request_still_serves_across_generation_start
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:13.0284476Z         PASS [   2.562s] (172/234) spt-daemon::redispatch finished_unretired_attach_is_skipped_and_drained_not_replayed
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:14.5306202Z         PASS [   1.502s] (173/234) spt-daemon::redispatch opener_evicted_active_stream_resumes_after_dispatcher_restart
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:17.2751099Z         PASS [   2.744s] (174/234) spt-daemon::redispatch transient_worker_start_failure_recovers_via_claim_retry
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:20.7229453Z         PASS [   3.448s] (175/234) spt-daemon::redispatch_stall old_broker_unknown_verb_answer_falls_back_to_the_peek_and_serves_real_traffic
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:25.6453494Z         PASS [   4.922s] (176/234) spt-daemon::redispatch_stall opener_transient_is_bounded_requeue_never_a_peek_subscriber
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:28.1539987Z         PASS [   2.509s] (177/234) spt-daemon::redispatch_stall poisoned_subscriber_cancels_the_paired_forwarding_leg_then_recovery_serves
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:37.8839814Z         PASS [   9.730s] (178/234) spt-daemon::redispatch_stall seat_blocked_failure_trips_the_breaker_and_the_stream_recovers
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:40.4882156Z         PASS [   2.604s] (179/234) spt-daemon::redispatch_stall stale_unfinished_attach_replay_neither_takes_nor_clears_the_replacement_controller
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:43.2931845Z         PASS [   2.805s] (180/234) spt-daemon::redispatch_stall wedged_subscriber_never_stalls_the_producer_and_recovery_replays_gapless
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:43.5315884Z         PASS [   0.238s] (181/234) spt-daemon::registry_lifecycle multichunk_feed_applies_with_exactly_one_snapshot_write
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:04:53.4228814Z         PASS [   9.891s] (182/234) spt-daemon::registry_lifecycle oneway_rounds_plateau_rows_seats_and_a_refresh_replays_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:07.6252761Z         PASS [  14.202s] (183/234) spt-daemon::registry_lifecycle poisoned_registry_replay_strikes_out_terminal_while_fresh_feeds_serve
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:08.2609444Z         PASS [   0.636s] (184/234) spt-daemon::render_lifecycle final_output_frame_precedes_exit_through_the_production_path
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:12.8320325Z         PASS [   4.571s] (185/234) spt-daemon::resize_geometry_epoch a_real_conpty_grow_repaints_cell_for_cell_like_an_independent_authority
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:17.0477375Z         PASS [   4.216s] (186/234) spt-daemon::resize_geometry_epoch a_real_conpty_shrink_repaints_cell_for_cell_like_an_independent_authority
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:25.6401767Z         PASS [   8.592s] (187/234) spt-daemon::resize_presentation_barrier a_controller_resuming_across_the_transition_gets_the_repaint_never_raw
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:32.9045690Z         PASS [   7.264s] (188/234) spt-daemon::resize_presentation_barrier a_live_controller_and_viewer_across_a_shrink_see_one_sync_frame_never_mixed_geometry
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:44.0731664Z         PASS [  11.169s] (189/234) spt-daemon::restart_replay_lifetime a_raw_dead_connection_bound_opener_is_not_re_served_by_the_next_generation
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:47.1117339Z         PASS [   3.039s] (190/234) spt-daemon::resume cold_start_resumes_all_sessions_from_the_broker_cursor
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:52.2578770Z         PASS [   5.146s] (191/234) spt-daemon::resume resume_below_ring_floor_clamps_forward_without_gap_error
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:55.5090582Z         PASS [   3.251s] (192/234) spt-daemon::resume resume_mode_brain_spawning_new_sessions_delivers_each
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:57.4406102Z         PASS [   1.931s] (193/234) spt-daemon::shellchan hung_shell_stalls_no_other_owner
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:58.3507462Z         PASS [   0.910s] (194/234) spt-daemon::shellchan stdin_receipt_delivers_spooled_frames_exactly_once
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:05:59.0388873Z         PASS [   0.688s] (195/234) spt-daemon::spawn_truth concurrent_fresh_race_yields_one_created_one_conflict
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:06:00.4098067Z         PASS [   1.371s] (196/234) spt-daemon::spawn_truth fresh_create_over_offline_raw_active_stale_ledger_creates
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:06:02.3304127Z         PASS [   1.921s] (197/234) spt-daemon::spawn_truth fresh_over_live_is_a_typed_conflict_and_touches_nothing
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:06:05.7928315Z         PASS [   3.462s] (198/234) spt-daemon::spawn_truth mixed_fresh_resume_race_never_two_children
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:06:05.8244967Z         PASS [   0.032s] (199/234) spt-daemon::spawn_truth n1_broker_unknown_kind_fails_loud_never_created
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:06:11.7833387Z         PASS [   5.959s] (200/234) spt-daemon::spawn_truth windows_run_never_refuses_over_a_dead_root_the_broker_holds_a_handle_to
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:06:14.0038067Z         PASS [   2.220s] (201/234) spt-daemon::spawn_truth zombie_client_tree_is_reaped_and_run_succeeds_honestly
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:14.2697921Z         SLOW [> 60.000s] (───────) spt-daemon::transport_death_eof transport_death_without_a_fin_surfaces_eof_to_the_serving_worker
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:21.5878399Z         PASS [  67.584s] (202/234) spt-daemon::transport_death_eof transport_death_without_a_fin_surfaces_eof_to_the_serving_worker
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.4147828Z         PASS [   2.827s] (203/234) spt-daemon::two_origin_spanning digest_span_supersedes_a_replayed_generation
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.8626764Z         PASS [   0.448s] (204/234) spt-daemon::two_origin_spanning one_source_two_consumers_spans_and_merges
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.8782887Z         PASS [   0.016s] (205/234) spt-daemon::twohost b2_attacher_child
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.8917814Z         PASS [   0.013s] (206/234) spt-daemon::twohost two_host_ladder_role_a
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.9062604Z         PASS [   0.014s] (207/234) spt-daemon::twohost two_host_ladder_role_b
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.9256780Z         PASS [   0.019s] (208/234) spt-daemon::twohost_web two_host_web_deny_role_a
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.9380023Z         PASS [   0.012s] (209/234) spt-daemon::twohost_web two_host_web_fetch_role_a
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.9517742Z         PASS [   0.014s] (210/234) spt-daemon::twohost_web two_host_web_helper_role_a
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.9640796Z         PASS [   0.012s] (211/234) spt-daemon::twohost_web two_host_web_range_role_a
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:24.9766056Z         PASS [   0.012s] (212/234) spt-daemon::twohost_web two_host_web_role_b
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:30.2807771Z         PASS [   5.304s] (213/234) spt-term::capture_vehicle_fidelity the_replay_vehicle_is_cell_transparent_with_dnar
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:36.3610909Z         PASS [   6.080s] (214/234) spt-term::capture_vehicle_fidelity the_stock_console_vehicle_manufactures_the_field_string
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:36.6705739Z         PASS [   0.309s] (215/234) spt-term::dsr conpty_output_not_withheld_under_the_drain
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:36.7137734Z         PASS [   0.043s] (216/234) spt-term::dsr drain_forwards_child_output
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:37.0555370Z         PASS [   0.342s] (217/234) spt-term::inject ctrl_c_interrupts_the_child
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:37.3870915Z         PASS [   0.331s] (218/234) spt-term::inject send_line_reaches_child_and_preserves_order
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:37.4108283Z         PASS [   0.024s] (219/234) spt-term::rc_console_newline_presentation a_bare_lf_is_an_index_in_a_spec_vt
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:40.7144000Z         PASS [   3.303s] (220/234) spt-term::rc_console_newline_presentation rc_console_mode_today_column_resets_a_bare_lf
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:45.2706874Z         PASS [   4.556s] (221/234) spt-term::rc_console_newline_presentation rc_console_mode_with_dnar_presents_what_the_emitter_addressed
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:45.5410680Z         PASS [   0.270s] (222/234) spt-term::resize_console_mode_integrity a_surface_resize_does_not_alter_the_hosted_console_input_mode
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:45.5527921Z         PASS [   0.012s] (223/234) spt-term::resize_console_mode_integrity the_probe_report_parses_out_of_a_re_rendered_stream
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:45.7393288Z         PASS [   0.186s] (224/234) spt-term::resize_console_mode_integrity the_rig_detects_a_seeded_console_input_mode_change
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:46.4121884Z         PASS [   0.673s] (225/234) spt-term::resize_console_mode_integrity typed_bytes_do_not_echo_back_as_output_after_a_resize
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:46.5005113Z         PASS [   0.088s] (226/234) spt-term::screengrid_width_oracle combining_mark_zero_cell_survives_the_repaint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:46.5397510Z         PASS [   0.039s] (227/234) spt-term::screengrid_width_oracle cup_overwrite_after_wide_glyphs_lands_on_the_same_cells
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:46.5523690Z         PASS [   0.013s] (228/234) spt-term::screengrid_width_oracle el_cleared_overflow_row_stays_blank_after_repaint
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:46.5635144Z         PASS [   0.011s] (229/234) spt-term::screengrid_width_oracle ich_dch_erase_across_a_wide_half_leave_no_orphans
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:46.5750518Z         PASS [   0.011s] (230/234) spt-term::screengrid_width_oracle wide_glyph_at_the_margin_fits_exactly_or_wraps_whole
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:47.6215632Z         PASS [   1.046s] (231/234) spt-term::stream bounded_backpressure_stalls_an_unconsumed_reader
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:47.9869739Z         PASS [   0.365s] (232/234) spt-term::stream delivers_every_value_under_resize
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3138596Z         PASS [   0.327s] (233/234) spt-term::surface resize_under_load_does_not_hang_or_panic
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3554454Z         PASS [   0.041s] (234/234) spt-term::winspawn pty_spawns_a_cmd_script_via_cmd_wrap
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3555346Z ────────────
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3556113Z      Summary [1164.007s] 234 tests run: 233 passed (1 slow), 1 failed, 0 skipped
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3556773Z         FAIL [  71.881s] ( 69/234) spt::resident_service_e2e a_declared_service_rises_with_the_daemon_and_reaches_the_cli
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3614920Z error: test run failed
test (self-hosted, Windows, hfenduleam)	Test — Phase B (heavy class, serialized, on a now-quiet box) — windows	2026-09-09T05:07:48.3956194Z ##[error]Process completed with exit code 1.
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	﻿2026-09-09T05:07:48.4232422Z ##[group]Run $floorBytes = 32GB
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4232667Z [36;1m$floorBytes = 32GB[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4232853Z [36;1m$drive = (Get-Item $env:GITHUB_WORKSPACE).PSDrive[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4233064Z [36;1m$freeBytes = [int64]$drive.Free[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4233295Z [36;1m$verdict = if ($freeBytes -lt $floorBytes) { "RED" } else { "PASS" }[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4233751Z [36;1mWrite-Host "FLOOR_END job=test runner=Windows free_bytes=$freeBytes floor_bytes=$floorBytes verdict=$verdict sample=INSTANT"[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4234113Z [36;1mif ($freeBytes -lt $floorBytes) {[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4234399Z [36;1m  Write-Error "RESOURCE=disk drive=$($drive.Root) free_bytes=$freeBytes floor_bytes=$floorBytes"[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4234758Z [36;1m  exit 1[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4241983Z [36;1m}[0m
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4246371Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4246593Z env:
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4246723Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4246917Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4247092Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4250543Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4254432Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4254842Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4255283Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.4255550Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:07:48.6967620Z FLOOR_END job=test runner=Windows free_bytes=87339024384 floor_bytes=34359738368 verdict=PASS sample=INSTANT
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	﻿2026-09-09T05:07:48.7819579Z ##[group]Run .github/ci/reap-census.ps1 -Phase end
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7820019Z [36;1m.github/ci/reap-census.ps1 -Phase end[0m
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7826223Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7826568Z env:
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7826767Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7827041Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7827297Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7833220Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7839584Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7840201Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7840784Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:48.7841213Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1078951Z CI-CENSUS scope roots:
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1089071Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1090297Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\target
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1091495Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1092303Z   root: C:\actions-runner\_work\_temp
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1093213Z   root: C:\Users\decid\spt-n1-oldbroker
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1554274Z CI-REAP: pre-reap state
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1793932Z CI-CENSUS phase=pre-reap box_procs=617 box_handles=266999 family_total=15 family_handles=2824 scoped=4 unscoped=11 unreadable_path=0
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1852258Z   SCOPED   pid=2092    handles=268    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1855231Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1856453Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1857565Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1858504Z   SCOPED   pid=23816   handles=268    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1859714Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1860865Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1862579Z   FOREIGN  pid=47332   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1863026Z   FOREIGN  pid=48232   handles=694    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1863887Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1864855Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1865579Z   FOREIGN  pid=51992   handles=174    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1866406Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1867249Z   SCOPED   pid=58396   handles=135    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1868666Z   SCOPED   pid=60020   handles=135    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:49.1895163Z CI-REAP: settling 5s so cleanly-exiting daemons are not counted as leaks
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2337977Z CI-CENSUS phase=post-settle box_procs=618 box_handles=267342 family_total=16 family_handles=2852 scoped=4 unscoped=12 unreadable_path=0
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2342045Z   SCOPED   pid=2092    handles=267    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2343389Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2344633Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2346243Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2347578Z   SCOPED   pid=23816   handles=268    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2348707Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2350231Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2351591Z   FOREIGN  pid=44744   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2352817Z   FOREIGN  pid=47332   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2354063Z   FOREIGN  pid=48232   handles=695    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2355570Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2357410Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2359122Z   FOREIGN  pid=51992   handles=174    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2360931Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2362652Z   SCOPED   pid=58396   handles=135    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2364405Z   SCOPED   pid=60020   handles=135    spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2428908Z   REAP  pid=2092 spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2441907Z   REAP  pid=23816 spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:54.2453450Z   REAP  pid=58396 spt C:\actions-runner\_work\spt-bs-core\spt-bs-core\target\debug\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7793407Z CI-CENSUS phase=end box_procs=612 box_handles=266334 family_total=11 family_handles=2028 scoped=0 unscoped=11 unreadable_path=0
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7796497Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7797831Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7799364Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7800691Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7802110Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7803434Z   FOREIGN  pid=47332   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7804820Z   FOREIGN  pid=48232   handles=694    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7806161Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7807652Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7809041Z   FOREIGN  pid=51992   handles=184    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7810346Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
test (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:07:55.7814956Z CI-REAP summary: killed=3 kill_failed=0 scoped_survivors=0 observed_scoped=0 unreadable_path=0
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	﻿2026-09-09T05:07:55.9494731Z ##[group]Run .github/ci/test-temp-sandbox.ps1 -Phase cleanup
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9495090Z [36;1m.github/ci/test-temp-sandbox.ps1 -Phase cleanup[0m
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9499700Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9499954Z env:
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9500099Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9500365Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9500623Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9504107Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9508282Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9508873Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9509427Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:55.9509852Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:07:56.3192668Z CI-TMP cleanup: removed C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63 on attempt 1/5
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	﻿2026-09-09T05:07:56.5460882Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5463199Z ##[group]Run actions/upload-artifact@v4
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5463448Z with:
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5463636Z   name: bench-ledger-test-Windows
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5463888Z   path: bench-ledger/
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5464108Z   if-no-files-found: warn
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5464330Z   retention-days: 30
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5464544Z   compression-level: 6
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5464743Z   overwrite: false
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5464926Z   include-hidden-files: false
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5465131Z env:
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5465253Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5465427Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5465606Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5470009Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5475598Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5476021Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5476392Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-51295907809c4d67a5d97524399d0b63
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:56.5476658Z ##[endgroup]
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.5182827Z (node:35220) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.5183296Z (Use `node --trace-deprecation ...` to show where the warning was created)
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.5216216Z With the provided path, there will be 1 file uploaded
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.5219016Z Artifact name is valid!
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.5220395Z Root directory input is valid!
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.9170859Z Beginning upload of artifact content to blob storage
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:57.9287937Z (node:35220) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.2121181Z Uploaded bytes 304
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.2824208Z Finished uploading artifact content to blob storage!
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.2826567Z SHA256 digest of uploaded artifact zip is ce2c8bfefe790a1397562ec49f8359cd7c5d63a648de26c47daddbc2b78ed102
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.2827200Z Finalizing artifact upload
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.5746220Z Artifact bench-ledger-test-Windows.zip successfully finalized. Artifact ID 10089262824
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.5746872Z Artifact bench-ledger-test-Windows has been successfully uploaded! Final size is 304 bytes. Artifact ID is 10089262824
test (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:07:58.5755758Z Artifact download URL: https://github.com/BigscreenVR/spt-bs-core/actions/runs/34310511612/artifacts/10089262824
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	﻿2026-09-09T05:07:58.7811914Z Post job cleanup.
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.0132618Z [command]"C:\Program Files\Git\cmd\git.exe" version
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.1801134Z git version 2.43.0.windows.1
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.1874829Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\85fcf5bb-ee24-4afa-b031-fadc075c409f\.gitconfig'
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.1902179Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\85fcf5bb-ee24-4afa-b031-fadc075c409f' before making global git config changes
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.1903512Z Adding repository directory to the temporary git global config as a safe directory
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.1920788Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.5188772Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:07:59.5506335Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:08:05.6792555Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:08:05.7063636Z http.https://github.com/.extraheader
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:08:05.7087122Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all http.https://github.com/.extraheader
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:08:05.7400806Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:08:06.9703762Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
test (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:08:06.9987381Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
test (self-hosted, Windows, hfenduleam)	Complete job	﻿2026-09-09T05:08:07.7601697Z Cleaning up orphan processes
test (self-hosted, Windows, hfenduleam)	Complete job	2026-09-09T05:08:07.8383713Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (self-hosted, Linux, kitsubito)	Set up job	﻿2026-09-09T04:19:55.5595050Z Current runner version: '2.337.0'
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5600321Z Runner name: 'kitsubito'
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5600817Z Runner group name: 'Default'
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5601424Z Machine name: 'KITSUBITO'
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5604569Z ##[group]GITHUB_TOKEN Permissions
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5606338Z Actions: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5606748Z ArtifactMetadata: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5607156Z Attestations: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5607604Z Checks: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5608004Z CodeQuality: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5608371Z Contents: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5608734Z CopilotRequests: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5609300Z Deployments: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5609664Z Discussions: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5610023Z Drives: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5610356Z Issues: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5610701Z Metadata: read
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5611053Z Models: read
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5611401Z Packages: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5611749Z Pages: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5612101Z PullRequests: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5612697Z RepositoryProjects: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5613093Z SecurityEvents: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5613464Z Statuses: write
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5613836Z VulnerabilityAlerts: read
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5614224Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5615921Z Secret source: Actions
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.5616598Z Prepare workflow directory
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.6002137Z Prepare all required actions
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.6054097Z Getting action download info
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:55.9706935Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:56.2612058Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02)
test (self-hosted, Linux, kitsubito)	Set up job	2026-09-09T04:19:56.7158926Z Complete job name: test (self-hosted, Linux, kitsubito)
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	﻿2026-09-09T04:19:56.8094685Z ##[group]Run pkill -9 -f 'yes FLOOD' || true
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8095362Z [36;1mpkill -9 -f 'yes FLOOD' || true[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8095925Z [36;1mfor p in $(pgrep -x 'spt|notify-shell' || true); do[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8096567Z [36;1m  exe=$(readlink -f "/proc/$p/exe" 2>/dev/null || true)[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8097103Z [36;1m  case "$exe" in[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8097623Z [36;1m    "$GITHUB_WORKSPACE"/*) kill -9 "$p" 2>/dev/null || true ;;[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8098168Z [36;1m  esac[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8098525Z [36;1mdone[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8098872Z [36;1mexit 0[0m
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8114952Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8115748Z env:
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8116153Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8116630Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8117097Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8124726Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Reap stray flood orphans + workspace daemons (pre-test contention guard)	2026-09-09T04:19:56.8132843Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	﻿2026-09-09T04:19:56.8938683Z ##[group]Run actions/checkout@v5
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8939412Z with:
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8939798Z   repository: BigscreenVR/spt-bs-core
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8942680Z   token: ***
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8943046Z   ssh-strict: true
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8943414Z   ssh-user: git
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8943785Z   persist-credentials: true
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8944199Z   clean: true
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8944588Z   sparse-checkout-cone-mode: true
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8945040Z   fetch-depth: 1
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8945408Z   fetch-tags: false
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8945800Z   show-progress: true
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8946209Z   lfs: false
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8946580Z   submodules: false
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8946959Z   set-safe-directory: true
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8947388Z   allow-unsafe-pr-checkout: false
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8947832Z env:
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8948194Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8948657Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8949210Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8956788Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.8965035Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9734457Z Syncing repository: BigscreenVR/spt-bs-core
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9736016Z ##[group]Getting Git version info
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9736719Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core'
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9737697Z [command]/usr/bin/git version
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9738259Z git version 2.43.0
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9739648Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9747146Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/297aab88-4aeb-407e-a626-6b021c7366c0/.gitconfig'
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9755145Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/297aab88-4aeb-407e-a626-6b021c7366c0' before making global git config changes
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9756404Z Adding repository directory to the temporary git global config as a safe directory
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9757576Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9810212Z [command]/usr/bin/git config --local --get remote.origin.url
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9828668Z https://github.com/BigscreenVR/spt-bs-core
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9838031Z ##[group]Removing previously created refs, to avoid conflicts
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9840368Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9857758Z refs/heads/golden/webserve-272-r3
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9863740Z [command]/usr/bin/git checkout --detach
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9932151Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9967498Z [command]/usr/bin/git branch --delete --force golden/webserve-272-r3
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:56.9999474Z Deleted branch golden/webserve-272-r3 (was f6110c2a1).
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0155641Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0159211Z [command]/usr/bin/git submodule status
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0353989Z ##[group]Cleaning the repository
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0357467Z [command]/usr/bin/git clean -ffdx
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0390072Z Removing traceable-reqs
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0398413Z [command]/usr/bin/git reset --hard HEAD
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0469579Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0475508Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0476775Z ##[group]Disabling automatic garbage collection
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0479930Z [command]/usr/bin/git config --local gc.auto 0
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0501064Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0502201Z ##[group]Setting up auth
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0506429Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0532066Z [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' || :"
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0726586Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0752811Z [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' || :"
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0937893Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.0962723Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.1149646Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.1179926Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.1180701Z ##[group]Fetching the repository
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.1186292Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d:refs/remotes/origin/golden/webserve-272-r3
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5239968Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5242338Z ##[group]Determining the checkout info
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5244488Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5246097Z [command]/usr/bin/git sparse-checkout disable
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5287809Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5313668Z ##[group]Checking out the ref
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5316254Z [command]/usr/bin/git checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5388024Z Switched to a new branch 'golden/webserve-272-r3'
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5389965Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5397472Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5441008Z [command]/usr/bin/git log -1 --format=%H
test (self-hosted, Linux, kitsubito)	Run actions/checkout@v5	2026-09-09T04:19:57.5470648Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	﻿2026-09-09T04:19:57.5645084Z ##[group]Run set -euo pipefail
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5646014Z [36;1mset -euo pipefail[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5647115Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5648407Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5650311Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5651666Z [36;1mverdict=PASS[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5652678Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5654581Z [36;1mprintf 'FLOOR_START job=test runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5656348Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5657497Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5659530Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5661434Z [36;1m  exit 1[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5662111Z [36;1mfi[0m
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5676348Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5677469Z env:
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5678160Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5679215Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5680135Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5698236Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5716777Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	DISK start floor (Linux)	2026-09-09T04:19:57.5803345Z FLOOR_START job=test runner=Linux free_bytes=226327232512 floor_bytes=34359738368 verdict=PASS sample=INSTANT
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	﻿2026-09-09T04:19:57.5861145Z ##[group]Run echo 'RUSTFLAGS=-C link-arg=-fuse-ld=mold' >> "$GITHUB_ENV"
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5862686Z [36;1mecho 'RUSTFLAGS=-C link-arg=-fuse-ld=mold' >> "$GITHUB_ENV"[0m
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5876284Z shell: /usr/bin/bash -e {0}
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5877061Z env:
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5877747Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5878692Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5879756Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5896332Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Use mold linker (Linux)	2026-09-09T04:19:57.5913582Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	﻿2026-09-09T04:19:57.6017637Z ##[group]Run set -euo pipefail
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6018506Z [36;1mset -euo pipefail[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6019693Z [36;1m# No `| head` anywhere here: under `set -o pipefail` a producer that is[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6021306Z [36;1m# SIGPIPEd by an early-exiting head surfaces as exit 141 and reds a step whose[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6022977Z [36;1m# only job is to print. First-line trimming is parameter expansion instead.[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6024387Z [36;1mcargo_v=$(cargo --version); cargo_v=${cargo_v%%$'\n'*}[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6025706Z [36;1mrustc_v=$(rustc --version); rustc_v=${rustc_v%%$'\n'*}[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6027069Z [36;1mclippy_v=$(cargo clippy --version); clippy_v=${clippy_v%%$'\n'*}[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6028679Z [36;1mactive=$(rustup show active-toolchain 2>/dev/null || true); active=${active%%$'\n'*}[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6030234Z [36;1m[ -n "$active" ] || active="(no rustup on PATH)"[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6031661Z [36;1mprintf 'TOOLCHAIN leg=linux runner=%s active=%s\n' "${RUNNER_NAME:-unknown}" "$active"[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6033149Z [36;1mprintf 'TOOLCHAIN leg=linux %s\n' "$cargo_v"[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6034232Z [36;1mprintf 'TOOLCHAIN leg=linux %s\n' "$rustc_v"[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6035452Z [36;1mprintf 'TOOLCHAIN leg=linux clippy: %s\n' "$clippy_v"[0m
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6048927Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6050051Z env:
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6050720Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6051621Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6052575Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6069200Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6086303Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6087146Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6682777Z TOOLCHAIN leg=linux runner=kitsubito active=1.96.0-x86_64-unknown-linux-gnu (overridden by '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/rust-toolchain.toml')
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6685576Z TOOLCHAIN leg=linux cargo 1.96.0 (30a34c682 2026-05-25)
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6686859Z TOOLCHAIN leg=linux rustc 1.96.0 (ac68faa20 2026-05-25)
test (self-hosted, Linux, kitsubito)	Toolchain versions (Linux)	2026-09-09T04:19:57.6688105Z TOOLCHAIN leg=linux clippy: clippy 0.1.96 (ac68faa20c 2026-05-25)
test (self-hosted, Linux, kitsubito)	Process census (job start)	﻿2026-09-09T04:19:57.6758271Z ##[group]Run bash .github/ci/reap-census.sh start
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6759726Z [36;1mbash .github/ci/reap-census.sh start[0m
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6775336Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6776351Z env:
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6776997Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6777861Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6778699Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6793592Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6808940Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6809827Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6860827Z CI-CENSUS scope roots:
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6862011Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6863671Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6865570Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6867092Z   root: /home/reavus/actions-runner/_work/_temp
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6868007Z   root: /home/reavus/spt-n1-oldbroker
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:57.6907886Z CI-CENSUS self-check OK: walked 371 /proc entries, exe resolution live
test (self-hosted, Linux, kitsubito)	Process census (job start)	2026-09-09T04:19:59.1092550Z CI-CENSUS phase=start box_procs=371 box_fds=8736 family_total=0 scoped=0 unscoped=0 unreadable_path=0 flood_orphans=0
test (self-hosted, Linux, kitsubito)	Census predicate selftest	﻿2026-09-09T04:19:59.1164105Z ##[group]Run bash .github/ci/reap-census-selftest.sh
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1164515Z [36;1mbash .github/ci/reap-census-selftest.sh[0m
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1177364Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1177702Z env:
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1177923Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1178200Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1178459Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1182710Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1187094Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1187361Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1244582Z == membership is decided on the exe basename, not on comm ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1245126Z   ok   is_family translate_proof_fixture
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1245479Z   ok   is_family post_step_fixture
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1245802Z   ok   is_family dispatch_fixture
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1246160Z   ok   is_family spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1246423Z   ok   is_family owl
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1246696Z   ok   is_family notify-shell
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1247018Z   ok   is_family mock-session
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1247326Z   ok   is_family mock-shell
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1247621Z   ok   is_family gh_fixture
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1247974Z   ok   is_family git_fixture
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1248280Z   ok   NOT is_family spt-daemon
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1248595Z   ok   NOT is_family sp
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1248924Z   ok   NOT is_family notify
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1249314Z   ok   NOT is_family 
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1249687Z == the deleted-exe suffix comes off before membership is tested ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1257335Z   ok   exe_family_name strips the deleted suffix -> [mock-session]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1266608Z   ok   exe_family_name strips it for the 23-char D2 name too -> [translate_proof_fixture]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1275896Z   ok   exe_family_name is a no-op on a live path -> [spt]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1280336Z   ok   strip_deleted leaves a scope-testable path -> [/ci/workspace/target/debug/spt]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1288869Z   ok   is_family spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1293558Z   ok   in_scope /ci/workspace/target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1302170Z   ok   exe_family_name does not maul a path containing 'deleted' -> [spt]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1302892Z == comm fallback exists for VISIBILITY only, and is truncation-aware ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1303245Z   ok   comm_is_family translate_proof
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1303521Z   ok   comm_is_family post_step_fixtu
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1304013Z   ok   comm_is_family dispatch_fixtur
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1304333Z   ok   comm_is_family spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1304685Z   ok   NOT comm_is_family translate_proof_fixture
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1305047Z   ok   NOT comm_is_family bash
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1305334Z   ok   NOT comm_is_family 
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1305643Z == hard exclusions outrank the scope roots ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1306053Z   ok   is_excluded /ci/workspace/target/debug/spt-core/bin/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1306453Z   ok   is_excluded /ci/workspace/target/debug/owl
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1306835Z   ok   is_excluded /home/x/.local/spt-core/bin/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1307212Z   ok   is_excluded /home/reavus/.local/bin/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1307567Z   ok   is_excluded /ci/workspace/.local/bin/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1307952Z   ok   NOT is_excluded /ci/workspace/target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1308361Z == scope: only this run's own build roots are eligible ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1308749Z   ok   in_scope /ci/workspace/target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1309186Z   ok   in_scope /ci/cargo-target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1309620Z   ok   in_scope /ci/workspace/.adapter-notify/target/debug/notify-shell
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1310066Z   ok   in_scope /ci/runner-temp/staged/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1310462Z   ok   in_scope /ci/home/spt-n1-oldbroker/target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1310881Z   ok   NOT in_scope /home/decid/.local/spt-core/bin/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1311286Z   ok   NOT in_scope /some/other/checkout/target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1311645Z   ok   NOT in_scope 
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1311979Z   ok   NOT in_scope /ci/workspace-other/target/debug/spt
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1312406Z == unreadable family paths refuse a clean survivor verdict ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1314124Z   ok   a fully readable empty census may report zero survivors -> [0]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1318456Z   ok   an unreadable family path prevents zero from masquerading as proof -> [UNPROVEN]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1322849Z   ok   unreadability outranks even a nonzero observed count -> [UNPROVEN]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1323239Z == flood count is a single clean token ==
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1609892Z   ok   flood_count is a single token: [0]
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1610193Z 
test (self-hosted, Linux, kitsubito)	Census predicate selftest	2026-09-09T04:19:59.1610354Z reap-census selftest: OK
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	﻿2026-09-09T04:19:59.1644025Z ##[group]Run bash .github/ci/ci-notify-selftest.sh
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1644475Z [36;1mbash .github/ci/ci-notify-selftest.sh[0m
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1656958Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1657283Z env:
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1657501Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1657772Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1658035Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1662267Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1666831Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1667088Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1726610Z   ok   all-success -> SUCCESS                                     SUCCESS
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1727191Z   ok   all-success lists nothing failing                          <empty>
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1727706Z   ok   all-success lists nothing cancelled                        <empty>
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1728274Z   ok   single-failure -> FAILURE                                  FAILURE
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1728773Z   ok   single-failure names the job                               test(failure)
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1729374Z   ok   all-cancelled -> CANCELLED                                 CANCELLED
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1729850Z   ok   all-cancelled lists nothing failing                        <empty>
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1730373Z   ok   failure+cancelled -> FAILURE (precedence)                  FAILURE
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1730912Z   ok   failure+cancelled still names the failure                  test(failure)
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1731498Z   ok   failure+cancelled keeps siblings as context                n1-gate, twohost-a, twohost-b
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1732070Z   ok   one-cancelled -> CANCELLED                                 CANCELLED
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1732551Z   ok   docs-only skips -> SUCCESS                                 SUCCESS
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1733044Z   ok   skipped alongside cancelled -> CANCELLED                   CANCELLED
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1733536Z   ok   skipped alongside failure -> FAILURE                       FAILURE
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1733993Z   ok   no jobs ran -> SUCCESS                                     SUCCESS
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1743800Z   ok   CANCELLED body avoids the word FAILURE                     absent
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1744272Z   ok   CANCELLED body opens with its own class                    yes
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1744673Z   ok   CANCELLED body lists the cancelled jobs                    yes
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1754303Z   ok   FAILURE body DOES contain the word FAILURE                 contains
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1754764Z   ok   FAILURE body names the failing job                         yes
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1755142Z   ok   FAILURE body carries cancelled context                     yes
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1763316Z   ok   SUCCESS body carries neither list                          yes
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1782265Z   ok   LIB flag refuses execution (exit 2)                        2
test (self-hosted, Linux, kitsubito)	CI notifier verdict selftest	2026-09-09T04:19:59.1782787Z ci-notify-selftest: 23/23 assertions passed
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	﻿2026-09-09T04:19:59.1815877Z ##[group]Run bash .github/ci/release-version-assert-selftest.sh
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1816317Z [36;1mbash .github/ci/release-version-assert-selftest.sh[0m
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1828651Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1829096Z env:
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1829319Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1829591Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1829853Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1843823Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1848416Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.1848679Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2091787Z   ok   tag matches binary -> pass                   rc=0
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2265922Z   ok   prerelease tag matches                       rc=0
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2446637Z   ok   bare version, no name prefix                 rc=0
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2577643Z   ok   stale binary (unbumped) -> fail              rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2702344Z   ok   stale binary names both values               rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2830219Z   ok   stale binary names the fix                   rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.2955561Z   ok   binary ahead of tag -> fail                  rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.3073947Z   ok   missing artifact -> fail                     rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.3153263Z   ok   empty asset list -> fail                     rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.3269981Z   ok   narrowed asset list is announced             rc=0
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.3366095Z   ok   unrunnable binary -> named failure           rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.3412758Z   ok   no tag -> refuse                             rc=1
test (self-hosted, Linux, kitsubito)	Release version-assert selftest	2026-09-09T04:19:59.3413230Z release-version-assert-selftest: 12/12 assertions passed
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	﻿2026-09-09T04:19:59.3452107Z ##[group]Run bash .github/ci/test-temp-sandbox.sh setup
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3452517Z [36;1mbash .github/ci/test-temp-sandbox.sh setup[0m
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3467187Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3467592Z env:
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3467858Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3468144Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3468406Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3472674Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3477247Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3477515Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Create run-scoped test temp sandbox (Linux)	2026-09-09T04:19:59.3528000Z CI-TMP setup: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	﻿2026-09-09T04:19:59.3558757Z ##[group]Run # Cross-package consumers cannot express Cargo artifact dependencies.
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3559400Z [36;1m# Cross-package consumers cannot express Cargo artifact dependencies.[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3559877Z [36;1m# Keep each required helper explicit so binedge-check can prove the edge.[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3560279Z [36;1mcargo build -p mock-adapter --bin mock-session[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3560604Z [36;1mcargo build -p mock-adapter --bin mock-shell[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3560933Z [36;1mcargo build -p mock-adapter --bin capture-player[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3561285Z [36;1mcargo build -p mock-adapter --bin console-mode-probe[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3561633Z [36;1mcargo build -p spt-daemon --bin service_fixture[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3561929Z [36;1mcargo build --workspace[0m
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3573367Z shell: /usr/bin/bash -e {0}
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3573629Z env:
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3573849Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3574121Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3574417Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3578575Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3583129Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3583527Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3583990Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3584433Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3584871Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.3585372Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.4930007Z    Compiling version_check v0.9.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.4930468Z    Compiling typenum v1.20.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.4930847Z    Compiling subtle v2.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.4931218Z    Compiling cfg-if v1.0.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.4931570Z    Compiling cpufeatures v0.2.17
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:19:59.6026051Z    Compiling generic-array v0.14.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.1680140Z    Compiling block-buffer v0.10.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.1680842Z    Compiling crypto-common v0.1.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.2156721Z    Compiling digest v0.10.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.2931440Z    Compiling sha2 v0.10.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.2931935Z    Compiling hmac v0.12.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.4756500Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.6565669Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.28s
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.7592789Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:00.9919507Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.31s
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.0977326Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.2440795Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.23s
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.3482099Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.4890194Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.22s
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7348265Z    Compiling proc-macro2 v1.0.106
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7348847Z    Compiling quote v1.0.45
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7349381Z    Compiling unicode-ident v1.0.24
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7349739Z    Compiling libc v0.2.186
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7349992Z    Compiling serde_core v1.0.228
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7350306Z    Compiling serde v1.0.228
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7350799Z    Compiling typenum v1.20.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7351166Z    Compiling pin-project-lite v0.2.17
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7351474Z    Compiling portable-atomic v1.13.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7351743Z    Compiling subtle v2.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7351981Z    Compiling memchr v2.8.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7352243Z    Compiling critical-section v1.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7374351Z    Compiling futures-core v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7404003Z    Compiling bytes v1.11.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7691690Z    Compiling smallvec v1.15.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.7692441Z    Compiling log v0.4.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.8020590Z    Compiling shlex v2.0.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.8585402Z    Compiling semver v1.0.28
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.8697038Z    Compiling find-msvc-tools v0.1.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.8782374Z    Compiling itoa v1.0.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:01.9269352Z    Compiling stable_deref_trait v1.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0073361Z    Compiling equivalent v1.0.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0161119Z    Compiling slab v0.4.12
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0426464Z    Compiling cc v1.2.63
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0549860Z    Compiling futures-sink v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0710698Z    Compiling futures-io v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0775605Z    Compiling futures-task v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.0894410Z    Compiling rand_core v0.10.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.1030929Z    Compiling hashbrown v0.17.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.1388383Z    Compiling futures-channel v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.1498074Z    Compiling rustc_version v0.4.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2090900Z    Compiling autocfg v1.5.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2301231Z    Compiling fnv v1.0.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2302188Z    Compiling getrandom v0.4.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2584766Z    Compiling const-oid v0.9.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2681018Z    Compiling scopeguard v1.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2781090Z    Compiling cfg_aliases v0.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.2950533Z    Compiling writeable v0.6.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.3330907Z    Compiling lock_api v0.4.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.3332303Z    Compiling rustversion v1.0.22
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.3912389Z    Compiling litemap v0.8.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.4481085Z    Compiling utf8_iter v1.0.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.4630802Z    Compiling libm v0.2.16
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.4760500Z    Compiling icu_normalizer_data v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.5086608Z    Compiling icu_properties_data v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.6320974Z    Compiling percent-encoding v2.3.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.6400855Z    Compiling bitflags v2.12.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.6985976Z    Compiling num-traits v0.2.19
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.7278880Z    Compiling http v1.4.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.7280125Z    Compiling zerocopy v0.8.50
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.8729240Z    Compiling thiserror v2.0.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.8980926Z    Compiling cpufeatures v0.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.9020571Z    Compiling form_urlencoded v1.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.9271207Z    Compiling indexmap v2.14.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.9842384Z    Compiling spin v0.9.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:02.9901308Z    Compiling untrusted v0.9.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.0427709Z    Compiling strsim v0.11.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.0724767Z    Compiling syn v2.0.117
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.0928015Z    Compiling generic-array v0.14.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.1113147Z    Compiling hybrid-array v0.4.12
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.1244860Z    Compiling ident_case v1.0.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.1996521Z    Compiling unicode-segmentation v1.13.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.2380840Z    Compiling rustls v0.23.40
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.2432607Z    Compiling unicode-xid v0.2.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.2460382Z    Compiling anyhow v1.0.102
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.3412983Z    Compiling const-oid v0.10.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.3850538Z    Compiling atomic-waker v1.1.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.3851587Z    Compiling httparse v1.10.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.4740151Z    Compiling curve25519-dalek v4.1.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.5642130Z    Compiling ahash v0.8.12
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.6993390Z    Compiling crypto-common v0.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.7080490Z    Compiling block-buffer v0.12.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.7240727Z    Compiling inout v0.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.7310239Z    Compiling convert_case v0.10.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.7953846Z    Compiling http-body v1.0.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.8368604Z    Compiling crypto-common v0.1.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.8545451Z    Compiling block-buffer v0.10.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.8741242Z    Compiling paste v1.0.15
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.8820815Z    Compiling powerfmt v0.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.9333048Z    Compiling base64ct v1.8.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.9680799Z    Compiling digest v0.10.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:03.9860562Z    Compiling ring v0.17.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.0559536Z    Compiling deranged v0.5.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.1484168Z    Compiling try-lock v0.2.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.2008868Z    Compiling socket2 v0.6.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.2280637Z    Compiling getrandom v0.2.17
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.2400544Z    Compiling mio v1.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.3120621Z    Compiling pem-rfc7468 v1.0.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.3174719Z    Compiling sha2 v0.10.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.3892425Z    Compiling rand_core v0.6.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.4450507Z    Compiling uuid v1.23.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.5071862Z    Compiling cipher v0.5.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.5267093Z    Compiling tower-service v0.3.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.5799702Z    Compiling fastrand v2.4.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.5897153Z    Compiling vcpkg v0.2.15
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.6582815Z    Compiling signature v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.7150582Z    Compiling tinyvec_macros v0.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.7557472Z    Compiling num-conv v0.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.7879624Z    Compiling chacha20 v0.10.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.7980893Z    Compiling data-encoding v2.11.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.8070875Z    Compiling base64 v0.22.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.8141130Z    Compiling time-core v0.1.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.9249506Z    Compiling parking_lot_core v0.9.12
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.9390699Z    Compiling pkg-config v0.3.33
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.9689528Z    Compiling zmij v1.0.21
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.9803880Z    Compiling num-integer v0.1.47
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:04.9991045Z    Compiling tinyvec v1.11.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.0235180Z    Compiling spt-procident v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-procident)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.0571308Z    Compiling rand v0.10.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.0990944Z    Compiling want v0.3.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.2497177Z    Compiling inout v0.1.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.2783514Z    Compiling vergen-lib v9.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.3051299Z    Compiling n0-future v0.3.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.3100839Z    Compiling serde_json v1.0.150
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.3613744Z    Compiling diatomic-waker v0.2.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.4094262Z    Compiling heck v0.5.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.4200881Z    Compiling crossbeam-utils v0.8.21
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.4288924Z    Compiling spin v0.10.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.4782168Z    Compiling cordyceps v0.3.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.4923179Z    Compiling num-bigint-dig v0.8.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.5087690Z    Compiling parking v2.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.5292180Z    Compiling httpdate v1.0.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.5382499Z    Compiling winnow v1.0.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.6111835Z    Compiling libsqlite3-sys v0.30.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.6211056Z    Compiling futures-lite v2.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.6375234Z    Compiling netlink-packet-core v0.8.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.6562022Z    Compiling cipher v0.4.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.6629151Z    Compiling num-iter v0.1.46
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.6890864Z    Compiling spt-poolguard v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-poolguard)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.7561954Z    Compiling ed25519 v2.2.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.8262275Z    Compiling futures-buffered v0.2.13
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.8450705Z    Compiling digest v0.11.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.8930548Z    Compiling universal-hash v0.5.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.9197208Z    Compiling vergen-lib v0.1.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.9524065Z    Compiling vergen v9.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.9902635Z    Compiling lazy_static v1.5.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:05.9983842Z    Compiling curve25519-dalek v5.0.0-pre.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0119604Z    Compiling heapless v0.7.17
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0311843Z    Compiling aho-corasick v1.1.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0419814Z    Compiling noq-udp v0.10.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0594411Z    Compiling sync_wrapper v1.0.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0700585Z    Compiling toml_datetime v1.1.1+spec-1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0784771Z    Compiling byteorder v1.5.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.0941166Z    Compiling regex-syntax v0.8.10
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.1430801Z    Compiling either v1.16.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.2260727Z    Compiling opaque-debug v0.3.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.2799822Z    Compiling polyval v0.6.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.2868607Z    Compiling hash32 v0.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.3531463Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.3557662Z    Compiling parking_lot v0.12.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.4072629Z    Compiling vergen-gitcl v1.0.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.4211498Z    Compiling fallible-iterator v0.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.4770349Z    Compiling fallible-streaming-iterator v0.1.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.5276445Z    Compiling signature v3.0.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.6424866Z    Compiling num_threads v0.1.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.6470659Z    Compiling tower-layer v0.3.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.6773927Z    Compiling ghash v0.5.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.6824442Z    Compiling sha2 v0.11.0-rc.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.7510588Z    Compiling time v0.3.47
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.7670829Z    Compiling aes v0.8.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.7979753Z    Compiling ctr v0.9.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.8387947Z    Compiling fs2 v0.4.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.9897299Z    Compiling aead v0.5.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:06.9901074Z    Compiling http-body-util v0.1.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.0560779Z    Compiling toml_parser v1.1.2+spec-1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.1120799Z    Compiling openssl-probe v0.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.1760365Z    Compiling arrayvec v0.7.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.2510847Z    Compiling crossbeam-epoch v0.9.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.3016499Z    Compiling aes-gcm v0.10.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.3970674Z    Compiling crossbeam-channel v0.5.15
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.4042765Z    Compiling netlink-packet-route v0.29.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.4678439Z    Compiling blake3 v1.8.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.4751143Z    Compiling memoffset v0.6.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.5377424Z    Compiling acto v0.8.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.6671216Z    Compiling toml_edit v0.25.12+spec-1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.6894474Z    Compiling netwatch v0.16.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.7238548Z    Compiling noq v0.18.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.7612000Z    Compiling thiserror v1.0.69
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.9230570Z    Compiling ryu v1.0.23
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.9350928Z    Compiling lru-slab v0.1.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:07.9617396Z    Compiling xml-rs v0.8.28
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.0449725Z    Compiling ppv-lite86 v0.2.21
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.0519562Z    Compiling ref-cast v1.0.25
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.0921068Z    Compiling identity-hash v0.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.1456058Z    Compiling synstructure v0.13.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.1869750Z    Compiling darling_core v0.20.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.2476957Z    Compiling tagptr v0.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.3409218Z    Compiling rustc-hash v2.1.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.3622998Z    Compiling allocator-api2 v0.2.21
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.3990744Z    Compiling sorted-index-buffer v0.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.4391030Z    Compiling mac-addr v0.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.4891065Z    Compiling rand_chacha v0.3.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.5211264Z    Compiling proc-macro-crate v3.5.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.5571401Z    Compiling foldhash v0.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.6636564Z    Compiling regex-automata v0.4.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.7819754Z    Compiling rand v0.8.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.8412224Z    Compiling xmltree v0.10.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.8949780Z    Compiling hashbrown v0.16.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:08.9513823Z    Compiling serde_derive_internals v0.29.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.1480806Z    Compiling netlink-packet-route v0.30.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.2740595Z    Compiling ioctl-rs v0.1.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.3829660Z    Compiling termios v0.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.4200856Z    Compiling serial-core v0.4.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.4454597Z    Compiling simple-dns v0.9.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.5340744Z    Compiling arrayref v0.3.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.5910778Z    Compiling smol_str v0.1.24
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.6120637Z    Compiling constant_time_eq v0.4.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.6659548Z    Compiling toml_write v0.1.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.7120748Z    Compiling winnow v0.7.15
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.7896961Z    Compiling sha1_smol v1.0.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.8121814Z    Compiling simdutf8 v0.1.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.8234300Z    Compiling resolv-conf v0.7.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:09.9280893Z    Compiling lru v0.16.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.0144116Z    Compiling serial-unix v0.4.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.0982832Z    Compiling serde_bytes v0.11.19
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.1060521Z    Compiling hmac v0.12.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.1068156Z    Compiling seize v0.5.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.1330608Z    Compiling serde_derive v1.0.228
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.2266735Z    Compiling zeroize_derive v1.4.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.2492359Z    Compiling tokio-macros v2.7.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.2810362Z    Compiling zerofrom-derive v0.1.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.3400766Z    Compiling futures-macro v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.3981911Z    Compiling yoke-derive v0.8.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.4820749Z    Compiling zerovec-derive v0.11.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.5915674Z    Compiling displaydoc v0.2.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.6230804Z    Compiling tracing-attributes v0.1.31
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.8620726Z    Compiling zeroize v1.8.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:10.9620810Z    Compiling tokio v1.52.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.0414213Z    Compiling rustls-pki-types v1.14.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.3110622Z    Compiling futures-util v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.3337042Z    Compiling curve25519-dalek-derive v0.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.7215582Z    Compiling zerofrom v0.1.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.7700847Z    Compiling thiserror-impl v2.0.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.8305098Z    Compiling rustls-webpki v0.103.13
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.8416094Z    Compiling darling_macro v0.20.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.8479329Z    Compiling derive_more-impl v2.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.8971181Z    Compiling yoke v0.8.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:11.9728738Z    Compiling der v0.7.10
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.1398076Z    Compiling zerovec v0.11.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.1606778Z    Compiling zerotrie v0.2.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.2592767Z    Compiling darling v0.20.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.3450980Z    Compiling derive_builder_core v0.20.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.3801173Z    Compiling spez v0.1.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.4121157Z    Compiling n0-error-macros v0.1.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.7121213Z    Compiling der v0.8.0-rc.10
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:12.9440967Z    Compiling tinystr v0.8.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.1720329Z    Compiling icu_locale_core v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.3882594Z    Compiling potential_utf v0.1.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.4830961Z    Compiling n0-error v0.1.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.5569272Z    Compiling icu_collections v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.5704272Z    Compiling spki v0.7.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.6251130Z    Compiling derive_builder_macro v0.20.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.7454913Z    Compiling pin-project-internal v1.1.13
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.8594562Z    Compiling pkcs8 v0.10.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.9167211Z    Compiling derive_builder v0.20.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:13.9571197Z    Compiling ed25519-dalek v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.0290807Z    Compiling pkcs1 v0.7.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.1300921Z    Compiling spki v0.8.0-rc.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.2968668Z    Compiling pkcs8 v0.11.0-rc.10
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.4440906Z    Compiling icu_provider v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.4921122Z    Compiling spt-proto v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-proto)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.6363997Z    Compiling cobs v0.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.7720867Z    Compiling icu_normalizer v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.8071667Z    Compiling icu_properties v2.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:14.8277385Z    Compiling futures-executor v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.0095822Z    Compiling regex v1.12.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.0202752Z    Compiling futures v0.3.32
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.0521709Z    Compiling postcard-derive v0.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.0910967Z    Compiling data-encoding-macro-internal v0.1.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.1820757Z    Compiling pin-project v1.1.13
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.2392277Z    Compiling rustls-native-certs v0.8.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.3320453Z    Compiling ipnet v2.12.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.6479217Z    Compiling rsa v0.9.10
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.7117876Z    Compiling ed25519 v3.0.0-rc.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.7457632Z    Compiling prefix-trie v0.8.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.8370624Z    Compiling data-encoding-macro v0.1.20
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:15.8920619Z    Compiling enum-assoc v1.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.0999080Z    Compiling once_cell v1.21.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.1057428Z    Compiling iroh-metrics-derive v0.4.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.1375764Z    Compiling strum_macros v0.28.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.2411230Z    Compiling async-trait v0.1.89
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.2757633Z    Compiling derive_more v2.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.3791849Z    Compiling tracing-core v0.1.36
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.4335270Z    Compiling idna_adapter v1.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.5600677Z    Compiling idna v1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.6027405Z    Compiling postcard v1.1.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.6029710Z    Compiling num_enum_derive v0.7.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.6416600Z    Compiling moka v0.12.15
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.6517726Z    Compiling iroh-relay v0.98.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.6979288Z    Compiling hashbrown v0.14.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.8410725Z    Compiling toml_datetime v0.6.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:16.9100982Z    Compiling tracing v0.1.44
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.0851673Z    Compiling tokio-util v0.7.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.1301303Z    Compiling url v2.5.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.2350840Z    Compiling netlink-sys v0.8.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.4520558Z    Compiling ed25519-dalek v3.0.0-pre.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.4970511Z    Compiling hashlink v0.9.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.5521156Z    Compiling tower v0.5.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.5646084Z    Compiling netlink-proto v0.12.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.6110986Z    Compiling num_enum v0.7.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.7150423Z    Compiling netdev v0.42.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.7379161Z    Compiling iroh-metrics v0.38.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.7435948Z    Compiling serde_spanned v0.6.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.7643957Z    Compiling thiserror-impl v1.0.69
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.8694171Z    Compiling ref-cast-impl v1.0.25
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.8745671Z    Compiling toml_edit v0.22.27
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.8884891Z    Compiling hickory-proto v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.9073278Z    Compiling rusqlite v0.32.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:17.9392766Z    Compiling attohttpc v0.30.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:18.2140682Z    Compiling h2 v0.4.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:18.4728044Z    Compiling n0-watcher v0.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:18.4841218Z    Compiling tower-http v0.6.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:18.5551722Z    Compiling tokio-stream v0.1.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:18.7091128Z    Compiling iroh-base v0.98.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:18.8870788Z    Compiling strum v0.28.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.0110834Z    Compiling webpki-roots v1.0.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.0300416Z    Compiling schemars_derive v1.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.0460954Z    Compiling iroh v0.98.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.2051095Z    Compiling bitflags v1.3.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.2775893Z    Compiling iroh-dns v0.98.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.2960864Z    Compiling dyn-clone v1.0.20
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.3284637Z    Compiling cmov v0.5.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.3831954Z    Compiling pin-utils v0.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.4480837Z    Compiling nix v0.25.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.4550599Z    Compiling filedescriptor v0.8.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.5401031Z    Compiling backon v1.6.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.5900955Z    Compiling ctutils v0.4.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.6400004Z    Compiling papaya v0.2.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.6709512Z    Compiling hkdf v0.12.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.6876581Z    Compiling serial v0.4.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.7520804Z    Compiling vte_generate_state_changes v0.1.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.7740621Z    Compiling utf8parse v0.2.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.7903220Z    Compiling shell-words v1.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.8141108Z    Compiling downcast-rs v1.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.8287442Z    Compiling spake2 v0.4.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.8406989Z    Compiling sha1 v0.10.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.8628526Z    Compiling doctest-file v1.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:19.8881227Z    Compiling unicode-width v0.2.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:20.0085039Z    Compiling vte v0.13.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:20.2725288Z    Compiling interprocess v2.4.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:20.2973609Z    Compiling toml v0.8.23
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:20.4950928Z    Compiling schemars v1.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:20.7062017Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:21.1599219Z    Compiling tokio-rustls v0.26.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:21.1720860Z    Compiling rustls-platform-verifier v0.7.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:21.1820565Z    Compiling noq-proto v0.17.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:21.5060906Z    Compiling tokio-websockets v0.13.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:22.7881607Z    Compiling portable-pty v0.8.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:22.9758650Z    Compiling hyper v1.10.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:22.9759521Z    Compiling hickory-net v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:23.9088590Z    Compiling hyper-util v0.1.20
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:23.9231972Z    Compiling hickory-resolver v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:24.8159099Z    Compiling hyper-rustls v0.27.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:24.8159726Z    Compiling igd-next v0.17.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:24.9687726Z    Compiling reqwest v0.13.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:25.1333796Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:25.3700466Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:25.3701951Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:25.6317715Z    Compiling portmapper v0.16.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:28.3277811Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:38.0944690Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:39.9212557Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.2551709Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.74s
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5348057Z    Compiling bitflags v2.12.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5348435Z    Compiling jobserver v0.1.34
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5348711Z    Compiling mio v1.2.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5351073Z    Compiling strsim v0.11.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5445494Z    Compiling dunce v1.0.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5520382Z    Compiling fs_extra v1.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5521063Z    Compiling unicode-segmentation v1.13.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5521556Z    Compiling aws-lc-rs v1.17.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5597254Z    Compiling rustls v0.23.40
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5670675Z    Compiling fastrand v2.4.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5741212Z    Compiling either v1.16.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.5800848Z    Compiling spt-poolguard v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-poolguard)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.6011230Z    Compiling rustix v1.1.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.6011892Z    Compiling linux-raw-sys v0.12.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.6012325Z    Compiling errno v0.3.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.6117732Z    Compiling signal-hook v0.3.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.6190831Z    Compiling rustix v0.38.44
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.6859401Z    Compiling netlink-packet-route v0.29.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.7537383Z    Compiling cc v1.2.63
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.7616822Z    Compiling darling_core v0.20.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.7782988Z    Compiling futures-lite v2.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.8081411Z    Compiling prefix-trie v0.8.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.8251425Z    Compiling simple-dns v0.9.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.8307479Z    Compiling netlink-packet-route v0.30.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.8940605Z    Compiling signal-hook-registry v1.4.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.9262944Z    Compiling darling_core v0.23.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:51.9434178Z    Compiling tokio v1.52.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.0352145Z    Compiling anstyle-parse v1.0.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.0814276Z    Compiling convert_case v0.10.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.2240020Z    Compiling colorchoice v1.0.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.2400783Z    Compiling foldhash v0.1.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.2538126Z    Compiling instability v0.3.12
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.3047874Z    Compiling linux-raw-sys v0.4.15
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.4041486Z    Compiling anstyle v1.0.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.4219726Z    Compiling anstyle-query v1.1.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.4302367Z    Compiling derive_more-impl v2.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.4885114Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.5020880Z    Compiling is_terminal_polyfill v1.70.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.5693699Z    Compiling hickory-proto v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.5951302Z    Compiling anstream v1.0.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.6242525Z    Compiling signal-hook-mio v0.2.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.6555869Z    Compiling hashbrown v0.15.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.7455494Z    Compiling itertools v0.13.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.8018176Z    Compiling strum_macros v0.26.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.8241195Z    Compiling castaway v0.2.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.9100695Z    Compiling clap_lex v1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:52.9990458Z    Compiling indoc v2.0.7
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.1600881Z    Compiling cmake v0.1.58
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.4142395Z    Compiling static_assertions v1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.4322397Z    Compiling unicode-width v0.1.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.4700455Z    Compiling compact_str v0.8.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.6061232Z    Compiling lru v0.12.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.7260968Z    Compiling crossterm v0.28.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.7773012Z    Compiling clap_derive v4.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.8700750Z    Compiling cassowary v0.3.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:53.9140779Z    Compiling aws-lc-sys v0.41.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.3210623Z    Compiling ring v0.17.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.4128555Z    Compiling libsqlite3-sys v0.30.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.6120633Z    Compiling blake3 v1.8.5
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.6635955Z    Compiling unicode-truncate v1.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.8191010Z    Compiling terminal_size v0.4.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.9700635Z    Compiling darling_macro v0.20.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:54.9800622Z    Compiling clap_builder v4.6.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.1328547Z    Compiling strum v0.26.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.2587295Z    Compiling darling v0.20.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.2645445Z    Compiling iana-time-zone v0.1.65
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.3201327Z    Compiling derive_builder_core v0.20.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.3652070Z    Compiling nucleo-matcher v0.3.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.3735198Z    Compiling darling_macro v0.23.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.5190645Z    Compiling chrono v0.4.45
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.5674721Z    Compiling qrcode v0.14.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:55.6565974Z    Compiling darling v0.23.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.1678173Z    Compiling tempfile v3.27.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.2975172Z    Compiling ratatui v0.29.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.4821249Z    Compiling spt-test-support v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-test-support)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.6369437Z    Compiling derive_builder_macro v0.20.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.6467097Z    Compiling derive_more v2.1.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.7081852Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.8366922Z    Compiling iroh-base v0.98.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:56.9070851Z    Compiling derive_builder v0.20.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.0040878Z    Compiling vergen-lib v9.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.0105925Z    Compiling vergen-lib v0.1.6
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.3239989Z    Compiling tokio-util v0.7.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.3390505Z    Compiling netlink-sys v0.8.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.3435703Z    Compiling vergen v9.1.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.3678216Z    Compiling tower v0.5.3
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.4058378Z    Compiling vergen-gitcl v1.0.8
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.5541484Z    Compiling netlink-proto v0.12.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.6217579Z    Compiling acto v0.8.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.6371500Z    Compiling backon v1.6.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.7475022Z    Compiling clap v4.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.8900767Z    Compiling netdev v0.42.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:57.9964717Z    Compiling iroh-relay v0.98.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.0355628Z    Compiling tower-http v0.6.11
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.2456591Z    Compiling h2 v0.4.14
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.2885022Z    Compiling n0-future v0.3.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.3531613Z    Compiling tokio-stream v0.1.18
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.3992692Z    Compiling n0-watcher v0.6.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.5370948Z    Compiling iroh-dns v0.98.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.6685437Z    Compiling netwatch v0.16.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:20:58.7997791Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:02.6567163Z    Compiling hyper v1.10.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:03.9263336Z    Compiling rusqlite v0.32.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:03.9773946Z    Compiling hyper-util v0.1.20
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:04.8100776Z    Compiling igd-next v0.17.1
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:05.3228755Z    Compiling portmapper v0.16.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:06.9775529Z    Compiling rustls-webpki v0.103.13
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:08.2228679Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:08.3848708Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:08.3849924Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:09.7247436Z    Compiling tokio-rustls v0.26.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:09.7248012Z    Compiling noq-proto v0.17.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:09.7248302Z    Compiling rustls-platform-verifier v0.7.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:09.9119483Z    Compiling hyper-rustls v0.27.9
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:09.9120211Z    Compiling hickory-net v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:09.9120687Z    Compiling tokio-websockets v0.13.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:10.0987286Z    Compiling reqwest v0.13.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:10.5705642Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:11.3074881Z    Compiling hickory-resolver v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:13.4299255Z    Compiling noq v0.18.0
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:16.8779042Z    Compiling iroh v0.98.2
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:24.0151430Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:25.8100059Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:37.0399647Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:37.0439482Z    Compiling xtask v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/xtask)
test (self-hosted, Linux, kitsubito)	Build workspace fixture binaries	2026-09-09T04:21:44.9465915Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.65s
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	﻿2026-09-09T04:21:45.1134345Z ##[group]Run bash .github/bench/wrap.sh test-phase-a -- cargo nextest run --workspace --no-fail-fast -E "not ( $HEAVY )"
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1136026Z [36;1mbash .github/bench/wrap.sh test-phase-a -- cargo nextest run --workspace --no-fail-fast -E "not ( $HEAVY )"[0m
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1946498Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1947046Z env:
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1947378Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1947825Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1948230Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1954593Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1961257Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1961780Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1962454Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1963059Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1963674Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1964161Z   NEXTEST_PROFILE: default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:45.1964453Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:47.9592225Z    Compiling ppv-lite86 v0.2.21
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:47.9879694Z    Compiling bytemuck v1.25.2
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:47.9917051Z    Compiling spt-poolguard v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-poolguard)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:47.9918058Z    Compiling spt-test-support v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-test-support)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:47.9918825Z    Compiling spt-proto v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-proto)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:47.9921848Z    Compiling spt-procident v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-procident)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:48.0860495Z    Compiling rgb v0.8.53
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:48.1890161Z    Compiling rand_chacha v0.3.1
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:48.3245944Z    Compiling avt v0.18.0
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:48.3333719Z    Compiling rand v0.8.7
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:48.7178235Z    Compiling num-bigint-dig v0.8.6
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:49.2596845Z    Compiling rsa v0.9.10
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:49.4952197Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:52.7908856Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:52.9547289Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:52.9548206Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:52.9549206Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:55.0926122Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:56.5330900Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:21:57.7381877Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:22:12.3924279Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:23:10.4826694Z    Compiling xtask v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/xtask)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:38.7286680Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 51s
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9389644Z ────────────
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9391821Z  Nextest run ID 39ca3710-2d44-49f5-b040-565db82b9793 with nextest profile: default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9395251Z     Starting 3325 tests across 137 binaries (1 test and 89 binaries skipped)
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9649466Z         PASS [   0.006s] (   1/3325) mock-adapter::bin/capture-player tests::parses_a_well_formed_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9652673Z         PASS [   0.007s] (   2/3325) mock-adapter::bin/capture-player tests::refuses_a_length_mismatch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9655679Z         PASS [   0.008s] (   3/3325) spt::bounded_output_e2e sibling_fixture_packages_match_their_cargo_owners
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9658801Z         PASS [   0.008s] (   4/3325) spt::bounded_output_e2e missing_sibling_fixture_fails_before_a_product_timeout
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9664639Z         PASS [   0.017s] (   5/3325) mock-adapter::manifest_valid mock_declares_commune_signoff_as_filedrops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9665626Z         PASS [   0.017s] (   6/3325) mock-adapter::manifest_valid mock_manifest_parses_and_validates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9668111Z         PASS [   0.017s] (   7/3325) mock-adapter::manifest_valid mock_has_no_claude_code_conventions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9671425Z         PASS [   0.010s] (   8/3325) spt::cli_stack_smoke a_nonzero_code_chosen_by_our_code_arrives_by_return
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9712156Z         PASS [   0.021s] (   9/3325) spt::cli_stack_smoke the_debug_binary_renders_its_own_help_and_lists_its_commands
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:39.9730770Z         PASS [   0.023s] (  10/3325) spt::cli_stack_smoke the_debug_binary_answers_version_which_costs_nothing_but_the_tree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:40.0377488Z         PASS [   0.096s] (  11/3325) spt::access_positional_allow_e2e the_positional_allow_honors_its_surfaces_and_still_answers_to_the_acknowledgment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:40.2654006Z         PASS [   0.324s] (  12/3325) spt::bind_adapter_profile_persist_e2e bind_over_created_profile_endpoint_preserves_the_profile
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:40.4390207Z         PASS [   0.498s] (  13/3325) spt::active_only_never_relay_e2e cross_node_active_only_stays_local_only_never_wan
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:40.5818721Z         PASS [   0.610s] (  14/3325) spt::broker_stop_endpoint_deny_e2e an_endpoint_context_cannot_stop_the_broker_by_any_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:41.0046857Z         PASS [   1.060s] (  15/3325) spt::boundary_ready_strand_e2e boundary_restamps_ready_after_soft_session_end
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:41.0771882Z         PASS [   1.039s] (  16/3325) spt::daemon_stop_convoy_e2e stop_under_an_api_storm_stays_down_then_start_brings_up_exactly_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:41.1616214Z         PASS [   1.214s] (  17/3325) spt::boundary_events_e2e boundaries_reach_the_poll_as_ordered_edges_and_are_not_replayed_to_a_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:41.2045898Z         PASS [   1.263s] (  18/3325) spt::access_precise_allow_e2e the_precise_allow_leaves_the_posture_alone_and_says_when_its_rule_changes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:41.3242297Z         PASS [   1.345s] (  19/3325) spt::create_bind_rest_active_e2e a_fresh_bind_after_a_real_stop_comes_up_active_without_a_wake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:41.5239696Z         PASS [   1.536s] (  20/3325) spt::composite_e2e bare_update_applies_core_then_updates_adapter_in_one_invocation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.0575228Z         PASS [   1.056s] (  21/3325) spt::fork_surface_e2e a_forged_requester_node_cannot_buy_a_fork
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.0890747Z         PASS [   1.012s] (  22/3325) spt::fork_surface_e2e a_refused_fork_creates_nothing_and_answers_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.1205661Z         PASS [   0.803s] (  23/3325) spt::hide_new_remote_rows_e2e hide_new_keeps_our_own_endpoint_hidden_and_leaves_other_nodes_rows_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.3310073Z         PASS [   1.176s] (  24/3325) spt::fork_surface_e2e an_admitted_fork_produces_a_whole_endpoint_and_leaves_the_source_intact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.7397185Z         PASS [   2.780s] (  25/3325) spt::contract_e2e mock_adapter_drives_the_full_contract
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.7495316Z         PASS [   2.771s] (  26/3325) spt::contract_e2e seed_then_listen_binds_and_relays
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.7633299Z         PASS [   1.265s] (  27/3325) spt::human_redeem_msg_code_e2e a_bare_terminal_redeeming_an_acknowledgmentless_msg_code_reaches_a_decision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:42.8283670Z         PASS [   2.859s] (  28/3325) spt::contract_e2e cold_api_call_autostarts_daemon_and_handoff_is_in_memory
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:43.1726620Z         PASS [   3.035s] (  29/3325) spt::bounded_output_e2e timeout_reaps_the_child_and_preserves_partial_output
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:43.1742285Z         PASS [   2.564s] (  30/3325) spt::drive_e2e drive_channel_slot_through_the_real_socket
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:43.1772080Z         PASS [   0.692s] (  31/3325) spt::io_events_poll_e2e a_fresh_session_seeds_over_real_history_and_then_sees_only_what_follows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:44.0187007Z         PASS [   1.270s] (  32/3325) spt::io_events_undriven_kinds_e2e a_failed_commune_ingest_polls_back_as_its_own_kind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:44.3331064Z         PASS [   1.588s] (  33/3325) spt::io_events_undriven_kinds_e2e a_consumed_commune_reaches_the_log_and_polls_back
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:45.4679876Z         PASS [   3.378s] (  34/3325) spt::intra_node_degrade a_degraded_store_suspends_local_enforcement_and_says_so_loudly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:45.4990205Z         PASS [   3.441s] (  35/3325) spt::install_firewall_wiring_e2e placing_the_binder_reports_what_it_did_about_the_rule
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:45.8860923Z         PASS [   1.557s] (  36/3325) spt::json_emit json_flag_emits_parseable_json_for_read_status_subset
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:45.9511053Z         PASS [   5.683s] (  37/3325) spt::docs_bundle_e2e docs_land_on_apply_and_docs_failure_never_touches_the_binary_outcome
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:45.9610606Z         PASS [   0.460s] (  38/3325) spt::list_json_liveness_parity_e2e json_reconciles_self_owned_gateway_to_local_liveness
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:45.9801073Z         PASS [   0.511s] (  39/3325) spt::knock_notfound_refuses_e2e a_knock_at_a_target_that_exists_nowhere_refuses_and_writes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.0089318Z         PASS [   4.802s] (  40/3325) spt::gateway_e2e gateway_binds_and_is_the_user_backed_origin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.0191976Z         PASS [   2.994s] (  41/3325) spt::io_events_undriven_kinds_e2e the_send_edge_polls_back_as_msg_out_on_the_sender
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.0800615Z         PASS [   3.100s] (  42/3325) spt::io_events_undriven_kinds_e2e the_delivery_edge_polls_back_as_msg_in_on_the_receiver
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.1370361Z         PASS [   4.014s] (  43/3325) spt::intra_node_self a_rule_naming_this_nodes_own_id_governs_traffic_authored_on_this_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.1590757Z         PASS [   3.153s] (  44/3325) spt::io_events_undriven_kinds_e2e the_one_short_id_names_the_message_on_both_edges
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.1869484Z         PASS [   0.026s] (  45/3325) spt::notify_shell_e2e notify_shell_renders_a_commanded_toast
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.2136324Z         PASS [   5.654s] (  46/3325) spt::er_inbound_local a_local_send_meets_the_engine_rooms_inbound_lock_on_every_authoring_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.2660732Z         PASS [   0.128s] (  47/3325) spt::nested_resolution_e2e nested_id_homes_under_parent_without_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.3210473Z         PASS [   0.359s] (  48/3325) spt::live_bind_firsthost_e2e live_bind_marks_online_and_brain_reconcile_hosts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.3569385Z         PASS [   0.336s] (  49/3325) spt::midturn_span_e2e a_bare_seal_marker_is_refused_in_a_span_and_mints_at_the_close
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.4180498Z         PASS [   6.475s] (  50/3325) spt::adapter_post_step adapter_update_runs_post_step_unconditionally_and_arbitrates_notice
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.4670460Z         PASS [   3.705s] (  51/3325) spt::io_events_undriven_kinds_e2e a_notification_filtered_by_the_relay_publishes_no_msg_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.4800293Z         PASS [   0.063s] (  52/3325) spt::reaper_guard a_creation_time_that_moved_reads_as_a_recycled_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5029650Z         PASS [   3.683s] (  53/3325) spt::io_events_undriven_kinds_e2e relay_backlog_and_live_deliveries_stamp_once_even_after_hook_poll
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5092148Z         PASS [   0.042s] (  54/3325) spt::reaper_guard a_live_pid_running_a_foreign_image_is_refused_and_survives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5221846Z         PASS [   0.014s] (  55/3325) spt::reaper_guard the_test_harness_and_its_ancestors_are_never_targets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5300046Z         PASS [   0.042s] (  56/3325) spt::reaper_guard a_stale_daemon_pid_breadcrumb_is_never_killed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5340118Z         PASS [   0.008s] (  57/3325) spt::release_verify_e2e published_release_verifies_against_embedded_anchor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5470386Z         PASS [   0.046s] (  58/3325) spt::reaper_guard the_same_pid_is_killed_when_the_expected_image_matches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.5860930Z         PASS [   0.227s] (  59/3325) spt::ready_resume_ledger_e2e ready_bind_ledgers_and_reconcile_hosts_no_psyche
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.6002158Z         PASS [   0.714s] (  60/3325) spt::listen_seed_retry_e2e no_seed_session_binds_via_session_id_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.6391916Z         PASS [   0.373s] (  61/3325) spt::psyche_sid_custody_e2e psyche_sid_survives_parent_boundary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.7109404Z         PASS [   0.737s] (  62/3325) spt::listen_seed_retry_e2e seed_survives_prebind_refusal_and_retry_binds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.7510363Z         PASS [   0.673s] (  63/3325) spt::midturn_span_e2e a_mid_span_rides_busy_as_agent_output_and_the_close_carries_no_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.7686055Z         PASS [   0.789s] (  64/3325) spt::live_firsthost_e2e live_listen_marks_online_and_brain_reconcile_hosts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:46.8891389Z         PASS [   0.706s] (  65/3325) spt::now_signal_delta_e2e the_first_poll_renders_a_no_perch_dispatch_and_the_second_poll_says_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.0969511Z         PASS [   0.544s] (  66/3325) spt::seal_shortform_e2e a_seal_marker_mints_off_the_hook_path_and_records_the_ceremonys_own_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.1065248Z         PASS [   0.520s] (  67/3325) spt::send_stamp_agent_id_e2e shelled_send_stamps_endpoint_id_from_env
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.1627150Z         PASS [   0.473s] (  68/3325) spt::shell_hints_e2e shell_hints_reach_the_now_signal_in_both_arms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.2930289Z         PASS [   0.523s] (  69/3325) spt::shell_relink_force_e2e force_stops_a_running_binary_then_relinks_it_under_the_same_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.4940271Z         PASS [   0.334s] (  70/3325) spt::translate_proof translate_proof_dir_override_proofs_unregistered_install
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.6780329Z         PASS [   1.465s] (  71/3325) spt::poll_envelope_e2e api_poll_emits_whole_self_delimiting_events
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.8070743Z         PASS [   1.487s] (  72/3325) spt::quickstart_e2e published_messaging_quickstart_runs_as_written
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.9070768Z         PASS [   1.154s] (  73/3325) spt::shell_perch_dir_e2e spawned_binary_resolves_a_landed_file_via_perch_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:47.9750487Z         PASS [   1.375s] (  74/3325) spt::shell_actgate_e2e act_gate_blocks_command_until_class_scoped_grant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0036027Z         PASS [   0.029s] (  75/3325) spt::bin/spt accessview::tests::a_pinned_open_renders_apart_from_a_default_open
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0159851Z         PASS [   3.995s] (  76/3325) spt::io_state_payload_e2e a_payload_carrying_state_call_spools_a_durable_io_frame
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0340617Z         PASS [   0.024s] (  77/3325) spt::bin/spt accessview::tests::node_roster_lists_node_scope_entities_and_mode_exceptions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0342269Z         PASS [   0.028s] (  78/3325) spt::bin/spt accessview::tests::drill_matches_only_its_own_kind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0557205Z         PASS [   0.376s] (  79/3325) spt::whoami_identity_e2e whoami_answers_identity_on_a_multi_perch_home_with_zero_git
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0620588Z         PASS [   0.029s] (  80/3325) spt::bin/spt accessview::tests::target_roster_groups_types_and_counts_rules
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0839477Z         PASS [   0.024s] (  81/3325) spt::bin/spt api::auth::tests::an_unverifiable_live_owner_never_grants_a_repin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.0940276Z         PASS [   2.086s] (  82/3325) spt::live_resolve_e2e listen_without_adapter_resolves_from_host_binaries
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1140572Z         PASS [   0.082s] (  83/3325) spt::bin/spt api::auth::tests::a_recycled_owner_pid_no_longer_blocks_the_dead_owner_rescue
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1360731Z         PASS [   0.074s] (  84/3325) spt::bin/spt api::auth::tests::dead_owner_repin_refused_when_sid_is_a_psyche_custody_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1520452Z         PASS [   0.071s] (  85/3325) spt::bin/spt api::auth::tests::dead_owner_repin_refused_when_sid_owns_another_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1587274Z         PASS [   0.062s] (  86/3325) spt::bin/spt api::auth::tests::dead_owner_repin_still_rescues_a_non_custody_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1679460Z         PASS [   0.032s] (  87/3325) spt::bin/spt api::auth::tests::mints_distinct_nonempty_tokens
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1752274Z         PASS [   0.025s] (  88/3325) spt::bin/spt api::auth::tests::missing_endpoint_is_no_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1820424Z         PASS [   0.277s] (  89/3325) spt::worker_visibility_e2e flat_worker_hidden_by_default_revealed_by_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1860775Z         PASS [   1.084s] (  90/3325) spt::shortform_dispatch_e2e a_live_tag_dispatches_only_when_the_manifest_declares_compliance
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1900506Z         PASS [   0.076s] (  91/3325) spt::bin/spt api::auth::tests::live_owner_mismatch_still_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.1940207Z         PASS [   0.036s] (  92/3325) spt::bin/spt api::auth::tests::no_proof_is_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2029712Z         PASS [   0.025s] (  93/3325) spt::bin/spt api::auth::tests::session_id_proof_authenticates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2060342Z         PASS [   1.675s] (  94/3325) spt::ring_blocks_e2e ring_waits_through_a_spooled_send_and_prints_the_late_reply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2130401Z         PASS [   0.024s] (  95/3325) spt::bin/spt api::auth::tests::worker_missing_is_no_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2190355Z         PASS [   0.034s] (  96/3325) spt::bin/spt api::auth::tests::token_auth_path_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2262504Z         PASS [   0.057s] (  97/3325) spt::bin/spt api::auth::tests::pinned_to_dead_sid_mismatched_poll_repins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2399337Z         PASS [   0.430s] (  98/3325) spt::worker_lifecycle_e2e worker_start_mints_on_stdout_and_stop_authenticates_by_parent_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2441791Z         PASS [   0.051s] (  99/3325) spt::bin/spt api::auth::tests::token_proof_authenticates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2480225Z         PASS [   0.022s] ( 100/3325) spt::bin/spt api::delivery::tests::a_bare_marker_is_refused_mid_turn_and_mints_at_the_close
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2520437Z         PASS [   0.049s] ( 101/3325) spt::bin/spt api::auth::tests::worker_parent_current_sid_authenticates_after_rotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2580118Z         PASS [   0.047s] ( 102/3325) spt::bin/spt api::auth::tests::worker_stored_sid_authenticates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2649824Z         PASS [   0.048s] ( 103/3325) spt::bin/spt api::auth::tests::worker_wrong_sid_and_token_only_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2652959Z         PASS [   0.019s] ( 104/3325) spt::bin/spt api::delivery::tests::a_mid_flag_that_cannot_mean_anything_is_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2720258Z         PASS [   0.021s] ( 105/3325) spt::bin/spt api::delivery::tests::a_no_perch_verdict_records_as_absence_not_as_refusal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2800376Z         PASS [   0.025s] ( 106/3325) spt::bin/spt api::delivery::tests::a_pair_still_mints_mid_turn_and_a_trailing_marker_does_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2860377Z         PASS [   0.029s] ( 107/3325) spt::bin/spt api::delivery::tests::a_mid_span_is_agent_output_on_the_busy_arm
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2900195Z         PASS [   0.056s] ( 108/3325) spt::bin/spt api::auth::tests::wrong_token_and_wrong_session_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.2970321Z         PASS [   0.023s] ( 109/3325) spt::bin/spt api::delivery::tests::a_payloadless_call_emits_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3030210Z         PASS [   0.031s] ( 110/3325) spt::bin/spt api::delivery::tests::a_payload_with_no_live_marker_launches_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3070133Z         PASS [   0.022s] ( 111/3325) spt::bin/spt api::delivery::tests::both_payload_sources_refuse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3110072Z         PASS [   0.024s] ( 112/3325) spt::bin/spt api::delivery::tests::both_io_edges_take_the_id_from_the_same_envelope_attribute
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3161731Z         PASS [   0.027s] ( 113/3325) spt::bin/spt api::delivery::tests::each_pair_launches_its_own_mint_in_author_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3232579Z         PASS [   0.037s] ( 114/3325) spt::bin/spt api::delivery::tests::an_undated_state_is_dated_by_a_non_edge_report
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3290229Z         PASS [   0.027s] ( 115/3325) spt::bin/spt api::delivery::tests::echo_gate_explicit_toggle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3350887Z         PASS [   0.049s] ( 116/3325) spt::bin/spt api::delivery::tests::a_repeated_idle_report_still_does_not_move_the_flip_instant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3400569Z         PASS [   0.026s] ( 117/3325) spt::bin/spt api::delivery::tests::every_verdict_answers_the_exit_code_it_always_did
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3499423Z         PASS [   0.030s] ( 118/3325) spt::bin/spt api::delivery::tests::inject_all_pty_falls_back_to_hook
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3559216Z         PASS [   0.045s] ( 119/3325) spt::bin/spt api::delivery::tests::idle_busy_transitions_manage_sentinels
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3590128Z         PASS [   0.033s] ( 120/3325) spt::bin/spt api::delivery::tests::inject_resolution_drops_pty_defaults_hook
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3690274Z         PASS [   0.042s] ( 121/3325) spt::bin/spt api::delivery::tests::idle_no_gate_does_not_arm_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3762447Z         PASS [   0.042s] ( 122/3325) spt::bin/spt api::delivery::tests::no_payload_source_resolves_to_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3831883Z         PASS [   0.027s] ( 123/3325) spt::bin/spt api::delivery::tests::payload_carrying_calls_map_to_their_kinds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3870119Z         PASS [   0.029s] ( 124/3325) spt::bin/spt api::delivery::tests::payload_file_is_read_and_a_bad_path_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.3888757Z         PASS [   8.415s] ( 125/3325) spt::contract_e2e live_agent_lifecycle_e2e
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.4084139Z         PASS [   1.318s] ( 126/3325) spt::shell_stale_online_e2e force_killed_shell_lists_offline_and_relinks_under_the_same_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.4250374Z         PASS [   8.483s] ( 127/3325) spt::bootstrap_verb_e2e downloaded_binary_self_installs_and_speaks_gh_channel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.4292253Z         PASS [   0.017s] ( 128/3325) spt::bin/spt api::delivery::tests::repeated_idle_without_a_busy_emits_every_time
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.4392678Z         PASS [   0.104s] ( 129/3325) spt::bin/spt api::delivery::tests::only_a_real_state_edge_stamps_the_transition_instant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.4650942Z         PASS [   0.026s] ( 130/3325) spt::bin/spt api::engineroom::tests::a_bring_up_the_broker_started_answers_the_gate_before_its_row_exists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.4940293Z         PASS [   1.855s] ( 131/3325) spt::shell_e2e mock_shell_binary_drives_the_full_link
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5040416Z         PASS [   0.012s] ( 132/3325) spt::bin/spt api::engineroom::tests::a_pin_is_not_a_clear
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5180498Z         PASS [   0.013s] ( 133/3325) spt::bin/spt api::engineroom::tests::a_refresh_adopts_only_a_real_divergence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5332011Z         PASS [   0.015s] ( 134/3325) spt::bin/spt api::engineroom::tests::an_admin_code_verifies_across_the_ceremony_window_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5479790Z         PASS [   0.009s] ( 135/3325) spt::bin/spt api::engineroom::tests::another_endpoints_traffic_never_answers_the_engine_rooms_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5598104Z         PASS [   0.252s] ( 136/3325) spt::bin/spt api::delivery::tests::idle_drain_peek_returns_non_deferred_rows_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5660218Z         PASS [   0.018s] ( 137/3325) spt::bin/spt api::engineroom::tests::ordinary_perch_minting_never_probes_the_engine_room
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5680031Z         PASS [   0.013s] ( 138/3325) spt::bin/spt api::engineroom::tests::subnet_authority_is_the_empowerment_not_the_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5769330Z         PASS [   0.013s] ( 139/3325) spt::bin/spt api::engineroom::tests::the_gate_admits_only_the_reserved_id_provisioned_and_authenticated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.5966946Z         PASS [   0.336s] ( 140/3325) spt::bin/spt api::delivery::tests::an_arriving_message_carrying_a_live_tag_dispatches_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.6004607Z         PASS [   0.028s] ( 141/3325) spt::bin/spt api::engineroom::tests::the_perch_minting_verbs_admit_the_reserved_id_only_as_a_completion
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.6100614Z         PASS [   0.173s] ( 142/3325) spt::bin/spt api::delivery::tests::the_outbound_edge_publishes_msg_out_and_cannot_fail_the_send
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.6120949Z         PASS [   0.032s] ( 143/3325) spt::bin/spt api::engineroom::tests::the_surface_mode_verb_refuses_a_caller_that_is_not_the_engine_room
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.6192442Z         PASS [   0.021s] ( 144/3325) spt::bin/spt api::engineroom::tests::the_unset_echo_names_what_governs_next
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.6260023Z         PASS [   0.020s] ( 145/3325) spt::bin/spt api::engineroom::tests::the_written_node_mode_is_the_one_the_chain_reads
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7450404Z         PASS [   0.027s] ( 146/3325) spt::bin/spt api::engineroom::tests::the_surface_mode_verb_refuses_an_unminted_surface_and_writes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7453928Z         PASS [   0.018s] ( 147/3325) spt::bin/spt api::ioevents::tests::a_boundary_row_is_served_while_an_unknown_kind_is_still_ignored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7504829Z         PASS [   0.249s] ( 148/3325) spt::bin/spt api::delivery::tests::poll_only_drains_when_hook_method_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7570671Z         PASS [   0.412s] ( 149/3325) spt::bin/spt api::delivery::tests::a_held_row_owes_no_msg_in_and_a_delivered_one_owes_exactly_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7632596Z         PASS [   0.024s] ( 150/3325) spt::bin/spt api::ioevents::tests::a_limited_poll_declares_the_cap_and_drops_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7699362Z         PASS [   0.281s] ( 151/3325) spt::bin/spt api::delivery::tests::poll_drains_non_deferred_by_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7770273Z         PASS [   0.031s] ( 152/3325) spt::bin/spt api::ioevents::tests::a_fresh_sessions_first_poll_is_empty_and_the_next_is_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7839387Z         PASS [   0.026s] ( 153/3325) spt::bin/spt api::ioevents::tests::an_explicit_after_cursor_wins_and_seeds_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7870980Z         PASS [   0.028s] ( 154/3325) spt::bin/spt api::ioevents::tests::a_poll_never_carries_tool_use
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7891116Z         PASS [   0.036s] ( 155/3325) spt::bin/spt api::ioevents::tests::a_session_cursor_above_head_recovers_for_the_next_event
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.7951514Z         PASS [   0.316s] ( 156/3325) spt::bin/spt api::delivery::tests::poll_drain_holds_deferred_while_resting_and_releases_once_on_wake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8021253Z         PASS [   0.031s] ( 157/3325) spt::bin/spt api::ioevents::tests::an_oversized_cursor_reports_the_true_head
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8119278Z         PASS [   0.023s] ( 158/3325) spt::bin/spt api::ioevents::tests::an_unknown_kind_is_ignored_not_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8159295Z         PASS [   0.026s] ( 159/3325) spt::bin/spt api::ioevents::tests::the_json_envelope_survives_the_quiet_poll
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8161968Z         PASS [   0.020s] ( 160/3325) spt::bin/spt api::nowsignal::tests::a_datum_cannot_break_out_of_its_line
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8165117Z         PASS [   0.034s] ( 161/3325) spt::bin/spt api::ioevents::tests::the_cursor_clears_rows_the_vocabulary_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8200854Z         PASS [   0.032s] ( 162/3325) spt::bin/spt api::nowsignal::tests::a_changed_state_reports_again_under_the_same_subject
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8230781Z         PASS [   0.035s] ( 163/3325) spt::bin/spt api::ioevents::tests::the_poll_carries_the_span_marker_only_when_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8260945Z         PASS [   0.024s] ( 164/3325) spt::bin/spt api::nowsignal::tests::a_locally_quoted_path_registers_nothing_and_says_so
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8263733Z         PASS [   0.022s] ( 165/3325) spt::bin/spt api::nowsignal::tests::a_malformed_spec_degrades_to_the_default_picture
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8299554Z         PASS [   0.022s] ( 166/3325) spt::bin/spt api::nowsignal::tests::a_new_session_has_seen_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8329636Z         PASS [   0.023s] ( 167/3325) spt::bin/spt api::nowsignal::tests::a_poll_where_every_category_is_empty_renders_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8359936Z         PASS [   0.022s] ( 168/3325) spt::bin/spt api::nowsignal::tests::a_spec_selects_from_the_closed_vocabulary_and_ignores_the_rest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8449356Z         PASS [   0.024s] ( 169/3325) spt::bin/spt api::nowsignal::tests::a_relative_quoted_path_is_not_honored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8452137Z         PASS [   0.019s] ( 170/3325) spt::bin/spt api::nowsignal::tests::an_unanswered_lan_status_renders_nothing_rather_than_the_last_line_it_saw
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8479761Z         PASS [   0.026s] ( 171/3325) spt::bin/spt api::nowsignal::tests::a_quoted_path_that_exists_and_is_anchored_is_honored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8490002Z         PASS [   0.026s] ( 172/3325) spt::bin/spt api::nowsignal::tests::a_second_poll_with_nothing_new_emits_nothing_and_the_first_was_not_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8530139Z         PASS [   0.021s] ( 173/3325) spt::bin/spt api::nowsignal::tests::a_subnet_join_line_names_the_node_and_labels_a_bare_pubkey
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8560168Z         PASS [   0.038s] ( 174/3325) spt::bin/spt api::nowsignal::tests::a_quoted_path_that_does_not_exist_is_not_honored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8599810Z         PASS [   0.031s] ( 175/3325) spt::bin/spt api::nowsignal::tests::edge_transitions_seed_on_the_first_poll_and_report_on_the_second
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8610586Z         PASS [   0.368s] ( 176/3325) spt::bin/spt api::delivery::tests::poll_drain_suppresses_idle_only_which_reaches_the_relay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8641449Z         PASS [   0.021s] ( 177/3325) spt::bin/spt api::nowsignal::tests::relative_time_is_readable_and_never_negative
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8679815Z         PASS [   0.023s] ( 178/3325) spt::bin/spt api::nowsignal::tests::every_category_round_trips_through_its_own_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8709931Z         PASS [   0.025s] ( 179/3325) spt::bin/spt api::nowsignal::tests::lan_exposed_stands_for_the_whole_window_and_is_gone_after_stop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8749934Z         PASS [   0.034s] ( 180/3325) spt::bin/spt api::nowsignal::tests::the_attachment_trigger_emits_the_senders_own_link_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8753125Z         PASS [   0.036s] ( 181/3325) spt::bin/spt api::nowsignal::tests::quoted_paths_are_deduplicated_and_capped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8790000Z         PASS [   0.027s] ( 182/3325) spt::bin/spt api::nowsignal::tests::the_composer_nests_live_categories_under_one_root_in_render_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8829923Z         PASS [   0.034s] ( 183/3325) spt::bin/spt api::nowsignal::tests::suppression_wins_over_selection_when_a_spec_says_both
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8860463Z         PASS [   0.030s] ( 184/3325) spt::bin/spt api::nowsignal::tests::updates_tells_a_session_once_and_again_when_a_version_moves
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8862221Z         PASS [   0.032s] ( 185/3325) spt::bin/spt api::nowsignal::tests::the_seal_brief_is_two_sentences_told_once_and_names_the_real_verify_verb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8863483Z         PASS [   0.402s] ( 186/3325) spt::bin/spt api::delivery::tests::poll_drain_validates_notify_copies_against_their_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8899683Z         PASS [   0.026s] ( 187/3325) spt::bin/spt api::reporting::tests::boundary_missing_perch_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8900923Z         PASS [   0.331s] ( 188/3325) spt::bin/spt api::engineroom::tests::a_non_engine_room_attempt_never_touches_the_empower_ledger
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8903738Z         PASS [   0.038s] ( 189/3325) spt::bin/spt api::reporting::tests::boundary_refuses_rotating_onto_a_psyche_custody_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8906658Z         PASS [   0.432s] ( 190/3325) spt::bin/spt api::delivery::tests::the_dispatch_loop_never_waits_for_the_ceremony_it_launches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8913311Z         PASS [   0.023s] ( 191/3325) spt::bin/spt api::reporting::tests::capability_lists_hostable_types
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.8915550Z         PASS [   0.157s] ( 192/3325) spt::bin/spt api::reporting::tests::a_non_engine_room_boundary_never_moves_the_seats_empowerment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9058241Z         PASS [   0.171s] ( 193/3325) spt::bin/spt api::reporting::tests::a_boundary_lands_one_funnel_row_per_edge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9092798Z         PASS [   0.144s] ( 194/3325) spt::bin/spt api::reporting::tests::boundary_rebinds_keeping_anchor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9120362Z         PASS [   0.168s] ( 195/3325) spt::bin/spt api::reporting::tests::a_repeat_of_the_current_session_publishes_no_second_edge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9160551Z         PASS [   0.034s] ( 196/3325) spt::bin/spt api::reporting::tests::digest_entry_validates_and_appends_to_digest_log
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9219644Z         PASS [   0.186s] ( 197/3325) spt::bin/spt api::reporting::tests::a_boundary_owes_an_echo_keyed_to_the_departing_session
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9250177Z         PASS [   0.175s] ( 198/3325) spt::bin/spt api::reporting::tests::boundary_appends_to_the_session_ledger
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9290003Z         PASS [   0.179s] ( 199/3325) spt::bin/spt api::reporting::tests::an_unknown_mode_publishes_the_coerced_token_not_the_caller_word
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9350637Z         PASS [   0.187s] ( 200/3325) spt::bin/spt api::reporting::tests::a_rotated_away_session_id_cannot_resurrect_a_dropped_empowerment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9382113Z         PASS [   0.041s] ( 201/3325) spt::bin/spt api::reporting::tests::driven_by_reads_daemon_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9436088Z         PASS [   0.021s] ( 202/3325) spt::bin/spt api::reporting::tests::endpoint_info_json_always_carries_an_activity_word
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9530415Z         PASS [   0.025s] ( 203/3325) spt::bin/spt api::reporting::tests::endpoint_info_attached_node_self_attributes_own_node_driver
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9549853Z         PASS [   0.027s] ( 204/3325) spt::bin/spt api::reporting::tests::endpoint_info_attached_node_from_honest_stamps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9636025Z         PASS [   0.038s] ( 205/3325) spt::bin/spt api::reporting::tests::endpoint_info_activity_word_tracks_the_idle_sentinel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9670008Z         PASS [   0.029s] ( 206/3325) spt::bin/spt api::reporting::tests::env_aliases_resolved_from_manifest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9733296Z         PASS [   0.026s] ( 207/3325) spt::bin/spt api::reporting::tests::filedrops_are_fixed_named_files
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9829536Z         PASS [   2.437s] ( 208/3325) spt::ring_blocks_e2e ring_no_reply_reports_the_wait_in_the_callers_unit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9899435Z         PASS [   0.026s] ( 209/3325) spt::bin/spt api::reporting::tests::hint_once_per_session_one_per_message
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9902247Z         PASS [   0.028s] ( 210/3325) spt::bin/spt api::reporting::tests::misplaced_drop_is_still_found_once_the_anchor_is_correct
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:48.9970051Z         PASS [   0.035s] ( 211/3325) spt::bin/spt api::reporting::tests::harness_hint_seen_keys_survive_the_shell_qualification
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0029862Z         PASS [   0.033s] ( 212/3325) spt::bin/spt api::reporting::tests::history_log_appends
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0099976Z         PASS [   0.030s] ( 213/3325) spt::bin/spt api::reporting::tests::presence_records_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0189269Z         PASS [   0.058s] ( 214/3325) spt::bin/spt api::reporting::tests::endpoint_info_reports_and_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0200496Z         PASS [   0.157s] ( 215/3325) spt::bin/spt api::reporting::tests::boundary_with_a_fresh_sid_is_unaffected_by_the_squat_guard
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0280256Z         PASS [   0.022s] ( 216/3325) spt::bin/spt api::reporting::tests::shell_hint_teaser_names_the_verb_and_the_full_arm_still_fires_after_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0340119Z         PASS [   0.025s] ( 217/3325) spt::bin/spt api::seal::tests::describe_refuses_unknown_and_malformed_distinctly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0380041Z         PASS [   0.017s] ( 218/3325) spt::bin/spt api::seal::tests::describe_renders_exactly_the_record_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0441536Z         PASS [   0.034s] ( 219/3325) spt::bin/spt api::reporting::tests::two_shell_adapters_with_identical_hint_text_do_not_silence_each_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0474438Z         PASS [   0.020s] ( 220/3325) spt::bin/spt api::seal::tests::minter_names_a_node_only_when_the_prefix_is_unambiguous
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0540203Z         PASS [   0.022s] ( 221/3325) spt::bin/spt api::seal::tests::minted_at_degrades_to_raw_millis_when_it_cannot_be_placed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0579891Z         PASS [   0.022s] ( 222/3325) spt::bin/spt api::seal::tests::verify_also_tests_the_mint_trimmed_candidate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0650819Z         PASS [   0.018s] ( 223/3325) spt::bin/spt api::seal::tests::verify_exit_zero_iff_bound_across_all_arms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0720167Z         PASS [   0.088s] ( 224/3325) spt::bin/spt api::reporting::tests::session_end_erase_wipes_childless_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0761631Z         PASS [   0.128s] ( 225/3325) spt::bin/spt api::reporting::tests::erase_unregisters_regardless_of_liveness
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0802519Z         PASS [   0.093s] ( 226/3325) spt::bin/spt api::reporting::tests::session_end_soft_preserves_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0861044Z         PASS [   0.028s] ( 227/3325) spt::bin/spt api::tests::adapter_is_optional
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.0930300Z         PASS [   0.034s] ( 228/3325) spt::bin/spt api::startup::tests::a_dead_binder_pid_proves_nothing_and_never_drops_the_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1000193Z         PASS [   0.021s] ( 229/3325) spt::bin/spt api::tests::ctx_manifest_override_wins_when_manifest_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1067040Z         PASS [   0.105s] ( 230/3325) spt::bin/spt api::reporting::tests::soft_end_preserves_a_live_listeners_address
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1110283Z         PASS [   0.023s] ( 231/3325) spt::bin/spt api::startup::tests::a_dead_relays_capability_stamp_is_not_resurrected_by_a_listener_rebind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1163694Z         PASS [   0.034s] ( 232/3325) spt::bin/spt api::tests::ctx_manifest_unregistered_no_manifest_is_none_not_fatal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1228892Z         PASS [   0.039s] ( 233/3325) spt::bin/spt api::tests::ctx_manifest_resolves_from_registry_when_manifest_absent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1261474Z         PASS [   0.033s] ( 234/3325) spt::bin/spt api::tests::load_manifest_resolves_composite_adapter_option
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1264123Z         PASS [   0.033s] ( 235/3325) spt::bin/spt api::tests::state_value_is_validated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1267857Z         PASS [   0.130s] ( 236/3325) spt::bin/spt api::reporting::tests::soft_end_still_cleans_a_dead_listeners_address
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1270931Z         PASS [   0.058s] ( 237/3325) spt::bin/spt api::tests::surface_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1330116Z         PASS [   0.051s] ( 238/3325) spt::bin/spt api::worker::tests::cascade_guard_tracks_live_children
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1421189Z         PASS [   0.380s] ( 239/3325) spt::bin/spt api::reporting::tests::boundary_injects_deferred_shell_context
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1543084Z         PASS [   0.065s] ( 240/3325) spt::bin/spt api::worker::tests::guard_clears_only_when_all_children_stopped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1571471Z         PASS [   0.029s] ( 241/3325) spt::bin/spt attach::tests::a_missing_or_directory_attachment_refuses_by_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1640194Z         PASS [   0.052s] ( 242/3325) spt::bin/spt api::worker::tests::worker_start_nests_under_parent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1668296Z         PASS [   0.064s] ( 243/3325) spt::bin/spt api::worker::tests::worker_start_mints_id_stores_parent_sid_and_metadata
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1730359Z         PASS [   0.198s] ( 244/3325) spt::bin/spt api::reporting::tests::session_end_erase_refused_with_live_children
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1785956Z         PASS [   0.023s] ( 245/3325) spt::bin/spt attach::tests::the_attachments_attr_is_absent_when_nothing_is_attached
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1869124Z         PASS [   0.050s] ( 246/3325) spt::bin/spt api::worker::tests::worker_start_registration_sid_falls_back_to_presented
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1919830Z         PASS [   0.023s] ( 247/3325) spt::bin/spt authseam::tests::refusals_lead_with_the_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.1992142Z         PASS [   0.023s] ( 248/3325) spt::bin/spt authseam::tests::stub_refuses_every_question_by_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2030101Z         PASS [   0.024s] ( 249/3325) spt::bin/spt cli::lifecycle_verb_decisions::remembered_defaults_prefer_the_newest_row_field_by_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2111875Z         PASS [   0.026s] ( 250/3325) spt::bin/spt authseam::tests::hex_encoding_is_lowercase_and_exact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2181884Z         PASS [   0.027s] ( 251/3325) spt::bin/spt cli::lifecycle_verb_decisions::the_adapter_precedence_is_flag_then_endpoint_then_a_sole_installed_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2219924Z         PASS [   0.231s] ( 252/3325) spt::bin/spt api::reporting::tests::session_end_erase_reaps_stale_worker_then_proceeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2280054Z         PASS [   0.396s] ( 253/3325) spt::bin/spt api::reporting::tests::boundary_resurfaces_undismissed_notifs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2350151Z         PASS [   0.031s] ( 254/3325) spt::bin/spt cli::lifecycle_verb_decisions::the_go_ladder_takes_the_ratified_rung
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2409884Z         PASS [   0.027s] ( 255/3325) spt::bin/spt cli::reserved_id_tests::endpoint_run_refuses_the_reserved_id_and_saves_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2479234Z         PASS [   0.021s] ( 256/3325) spt::bin/spt cli::run_home_tests::order_by_mru_orders_guidance
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2511330Z         PASS [   0.030s] ( 257/3325) spt::bin/spt cli::resume_resolution_tests::resume_never_feeds_a_provisional
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2609214Z         PASS [   0.031s] ( 258/3325) spt::bin/spt cli::retired_verb_pre_scan::the_pre_scan_reads_the_verb_position_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2639930Z         PASS [   0.038s] ( 259/3325) spt::bin/spt cli::reserved_id_tests::the_lifecycle_verbs_refuse_their_preconditions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2701721Z         PASS [   0.025s] ( 260/3325) spt::bin/spt cli::run_on_live_tests::run_on_live_never_duplicates_and_create_conflicts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2759870Z         PASS [   0.027s] ( 261/3325) spt::bin/spt cli::run_home_tests::run_home_resolution_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2837608Z         PASS [   0.041s] ( 262/3325) spt::bin/spt cli::retired_verb_pre_scan::the_retired_verb_refuses_with_a_pointer_a_generic_error_cannot_fake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2910733Z         PASS [   0.031s] ( 263/3325) spt::bin/spt cli::tests::a_composite_judges_floors_against_the_staged_core_not_the_running_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.2980830Z         PASS [   0.026s] ( 264/3325) spt::bin/spt cli::tests::a_composite_subject_is_refused_while_a_bare_id_still_builds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3040530Z         PASS [   0.026s] ( 265/3325) spt::bin/spt cli::tests::a_mint_captures_its_declared_mode_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3191338Z         PASS [   0.022s] ( 266/3325) spt::bin/spt cli::tests::a_notfound_lands_locally_only_when_the_target_is_an_endpoint_here
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3309688Z         PASS [   0.030s] ( 267/3325) spt::bin/spt cli::tests::a_node_subject_resolves_by_hex_by_self_or_by_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3316307Z         PASS [   0.030s] ( 268/3325) spt::bin/spt cli::tests::a_non_attributable_bake_needs_the_acknowledgment_and_keeps_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3390887Z         PASS [   0.026s] ( 269/3325) spt::bin/spt cli::tests::a_refusal_never_masks_a_failure_in_either_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3431270Z         PASS [   0.048s] ( 270/3325) spt::bin/spt cli::tests::a_minted_sealed_code_is_the_one_that_opens_to_its_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3520918Z         PASS [   0.034s] ( 271/3325) spt::bin/spt cli::tests::a_one_way_approval_hands_over_a_reverse_command_that_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3589477Z         PASS [   0.031s] ( 272/3325) spt::bin/spt cli::tests::a_real_endpoint_named_like_a_retired_verb_is_still_viewable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3590935Z         PASS [   0.014s] ( 273/3325) spt::bin/spt cli::tests::a_remote_send_receive_claims_only_what_it_can_deliver
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3650032Z         PASS [   0.109s] ( 274/3325) spt::bin/spt cli::reserved_id_tests::rename_into_the_reserved_id_is_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3710050Z         PASS [   0.038s] ( 275/3325) spt::bin/spt cli::tests::a_refused_adapter_is_not_reported_as_a_failure
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3770484Z         PASS [   0.026s] ( 276/3325) spt::bin/spt cli::tests::a_reply_carried_request_is_not_stamped_as_a_first_order_knock
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3862387Z         PASS [   0.032s] ( 277/3325) spt::bin/spt cli::tests::a_retired_flag_names_what_replaced_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3900528Z         PASS [   0.089s] ( 278/3325) spt::bin/spt cli::tests::a_local_hit_never_asks_the_broker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.3970363Z         PASS [   0.046s] ( 279/3325) spt::bin/spt cli::tests::a_refused_apply_class_answers_refused_not_failed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4040324Z         PASS [   0.024s] ( 280/3325) spt::bin/spt cli::tests::a_row_without_a_node_says_so_and_one_with_a_node_shows_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4080120Z         PASS [   0.041s] ( 281/3325) spt::bin/spt cli::tests::a_retired_access_subcommand_refuses_by_name_and_says_the_working_form
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4140025Z         PASS [   2.418s] ( 282/3325) spt::shell_sleepwake_e2e sleep_wake_cycle_drives_from_both_ends
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4200028Z         PASS [   0.032s] ( 283/3325) spt::bin/spt cli::tests::a_sealed_dispatch_answer_carries_the_minted_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4239869Z         PASS [   0.032s] ( 284/3325) spt::bin/spt cli::tests::a_rule_describes_itself_in_plain_words
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4299986Z         PASS [   0.230s] ( 285/3325) spt::bin/spt api::worker::tests::worker_poll_holds_deferred_while_resting
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4360485Z         PASS [   0.026s] ( 286/3325) spt::bin/spt cli::tests::a_staged_release_with_no_product_version_degrades_and_says_which
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4399933Z         PASS [   0.033s] ( 287/3325) spt::bin/spt cli::tests::a_sender_rule_on_a_non_attributable_surface_is_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4459919Z         PASS [   0.037s] ( 288/3325) spt::bin/spt cli::tests::a_subcommand_name_beats_the_bare_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4520111Z         PASS [   0.042s] ( 289/3325) spt::bin/spt cli::tests::a_status_row_reads_held_over_running_and_carries_its_evidence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4579841Z         PASS [   0.038s] ( 290/3325) spt::bin/spt cli::tests::a_subnet_fork_grant_names_the_members_that_cannot_resolve
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4639897Z         PASS [   0.041s] ( 291/3325) spt::bin/spt cli::tests::a_subject_with_no_origin_gets_a_named_absence_and_never_an_inert_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4699792Z         PASS [   0.027s] ( 292/3325) spt::bin/spt cli::tests::adapter_names_comma_list_parses_and_refuses_empties
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4759991Z         PASS [   0.035s] ( 293/3325) spt::bin/spt cli::tests::adapter_name_validation_flags_every_unknown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4819896Z         PASS [   0.053s] ( 294/3325) spt::bin/spt cli::tests::adapter_has_live_endpoint_detects_matching_live_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4880151Z         PASS [   0.295s] ( 295/3325) spt::bin/spt api::startup::tests::a_listener_over_a_dead_pty_is_not_offlined_by_the_liveness_reconcile
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4919725Z         PASS [   0.058s] ( 296/3325) spt::bin/spt cli::tests::access_subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.4980017Z         PASS [   0.037s] ( 297/3325) spt::bin/spt cli::tests::adapter_profile_verbs_local_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5060235Z         PASS [   0.062s] ( 298/3325) spt::bin/spt cli::tests::adapter_add_transport_flags_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5061311Z         PASS [   0.060s] ( 299/3325) spt::bin/spt cli::tests::adapter_has_live_endpoint_false_for_other_or_dead
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5160096Z         PASS [   0.077s] ( 300/3325) spt::bin/spt cli::tests::adapter_digest_proof_fills_session_id_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5220048Z         PASS [   0.017s] ( 301/3325) spt::bin/spt cli::tests::adapter_update_notice_absent_when_no_message
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5277110Z         PASS [   0.023s] ( 302/3325) spt::bin/spt cli::tests::adapter_update_notice_renders_declared_message_markdown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5279486Z         PASS [   0.049s] ( 303/3325) spt::bin/spt cli::tests::adapter_string_verbs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5350348Z         PASS [   0.040s] ( 304/3325) spt::bin/spt cli::tests::adapter_update_install_dir_is_registered_source_dir_not_repo_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5400321Z         PASS [   0.331s] ( 305/3325) spt::bin/spt api::worker::tests::worker_poll_drains_spool
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5460245Z         PASS [   0.107s] ( 306/3325) spt::bin/spt cli::tests::adapter_digest_proof_gates_on_drops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5530595Z         PASS [   0.032s] ( 307/3325) spt::bin/spt cli::tests::adapter_update_summary_and_exit_aggregate_isolated_failures
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5590683Z         PASS [   0.035s] ( 308/3325) spt::bin/spt cli::tests::adapter_use_sets_and_clears_pointer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5660067Z         PASS [   0.059s] ( 309/3325) spt::bin/spt cli::tests::adapter_translate_proof_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5700036Z         PASS [   0.073s] ( 310/3325) spt::bin/spt cli::tests::adapter_subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5790206Z         PASS [   0.027s] ( 311/3325) spt::bin/spt cli::tests::all_hidden_this_node_suppresses_no_perches_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5880292Z         PASS [   0.035s] ( 312/3325) spt::bin/spt cli::tests::agent_ground_describes_itself_exactly_as_the_ceremony_always_did
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5910030Z         PASS [   0.037s] ( 313/3325) spt::bin/spt cli::tests::adapter_version_surfaces_declared_adapter_version
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5949888Z         PASS [   0.021s] ( 314/3325) spt::bin/spt cli::tests::an_empty_stored_surface_list_still_means_every_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.5979822Z         PASS [   0.040s] ( 315/3325) spt::bin/spt cli::tests::adapter_version_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6009880Z         PASS [   0.029s] ( 316/3325) spt::bin/spt cli::tests::already_applied_message_reads_up_to_date_no_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6032187Z         PASS [   0.025s] ( 317/3325) spt::bin/spt cli::tests::an_approval_binds_the_subject_the_knocks_origin_implies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6069799Z         PASS [   0.083s] ( 318/3325) spt::bin/spt api::startup::tests::a_live_owner_whose_birth_matches_still_refuses_the_bind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6099768Z         PASS [   0.035s] ( 319/3325) spt::bin/spt cli::tests::an_addressed_target_is_local_only_when_its_node_half_names_this_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6129819Z         PASS [   0.023s] ( 320/3325) spt::bin/spt cli::tests::an_omitted_subnet_seals_to_every_membership_and_a_named_one_must_be_held
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6159704Z         PASS [   0.027s] ( 321/3325) spt::bin/spt cli::tests::an_excluded_knock_is_neither_a_landing_nor_a_wire_refusal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6189668Z         PASS [   0.040s] ( 322/3325) spt::bin/spt cli::tests::an_empty_unlisted_set_renders_no_heading_at_all
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6219721Z         PASS [   0.030s] ( 323/3325) spt::bin/spt cli::tests::any_single_evidence_source_is_enough_and_only_nothing_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6259918Z         PASS [   0.033s] ( 324/3325) spt::bin/spt cli::tests::an_undelivered_receipt_reports_only_the_receipt
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6279856Z         PASS [   0.181s] ( 325/3325) spt::bin/spt cli::tests::a_wedged_probe_costs_one_ceiling_and_reads_unknown_not_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6319795Z         PASS [   0.040s] ( 326/3325) spt::bin/spt cli::tests::answering_verbs_declare_no_directionality
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6359940Z         PASS [   0.019s] ( 327/3325) spt::bin/spt cli::tests::applied_message_renders_semver_or_counter_fallback_and_states_applied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6397008Z         PASS [   0.044s] ( 328/3325) spt::bin/spt cli::tests::api_adapter_flag_is_group_level_not_post_subcommand
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6399532Z         PASS [   0.042s] ( 329/3325) spt::bin/spt cli::tests::api_listen_accepts_session_id_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6459831Z         PASS [   0.046s] ( 330/3325) spt::bin/spt cli::tests::applied_message_appends_restart_required_notice
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6460876Z         PASS [   0.035s] ( 331/3325) spt::bin/spt cli::tests::attachment_flags_repeat_and_ttl_requires_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6509781Z         PASS [   0.027s] ( 332/3325) spt::bin/spt cli::tests::bare_tty_guard
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6539746Z         PASS [   0.041s] ( 333/3325) spt::bin/spt cli::tests::bare_spt_parses_to_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6569840Z         PASS [   0.029s] ( 334/3325) spt::bin/spt cli::tests::both_role_readers_serve_the_core_value_and_ignore_a_planted_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6610176Z         PASS [   0.075s] ( 335/3325) spt::bin/spt api::startup::tests::a_recycled_owner_pid_no_longer_refuses_the_bind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6640123Z         PASS [   0.034s] ( 336/3325) spt::bin/spt cli::tests::both_knock_answer_surfaces_take_a_monic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6679667Z         PASS [   0.053s] ( 337/3325) spt::bin/spt cli::tests::apply_user_msg_gate_local_origination
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6709635Z         PASS [   0.024s] ( 338/3325) spt::bin/spt cli::tests::classify_fetch_reject_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6739701Z         PASS [   0.026s] ( 339/3325) spt::bin/spt cli::tests::broker_image_line_reports_without_warning_or_remedy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6776066Z         PASS [   0.015s] ( 340/3325) spt::bin/spt cli::tests::composite_plans_core_first_and_core_only_skips_adapters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6809887Z         PASS [   0.052s] ( 341/3325) spt::bin/spt cli::tests::bare_update_parses_composite_flags
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6839765Z         PASS [   0.028s] ( 342/3325) spt::bin/spt cli::tests::classify_flat_archive_never_misfires
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6840750Z         PASS [   0.025s] ( 343/3325) spt::bin/spt cli::tests::classify_multiplatform_captures_only_known_triples
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6883565Z         PASS [   0.028s] ( 344/3325) spt::bin/spt cli::tests::cli_send_stamps_cli_at_node_origin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6919748Z         PASS [   0.085s] ( 345/3325) spt::bin/spt cli::tests::apply_release_crc_swap_only_swaps_changed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6929749Z         PASS [   0.024s] ( 346/3325) spt::bin/spt cli::tests::coordinator_image_line_is_the_only_stale_warning
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6959525Z         PASS [   0.024s] ( 347/3325) spt::bin/spt cli::tests::create_existing_name_is_usage_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.6989570Z         PASS [   0.026s] ( 348/3325) spt::bin/spt cli::tests::create_mode_is_never_preselected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7030103Z         PASS [   0.039s] ( 349/3325) spt::bin/spt cli::tests::connection_lines_net_less_hides_stale_heartbeat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7049677Z         PASS [   0.028s] ( 350/3325) spt::bin/spt cli::tests::create_mints_two_distinct_keys_and_records_the_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7085598Z         PASS [   0.133s] ( 351/3325) spt::bin/spt cli::tests::an_engine_room_reset_wipes_records_but_never_deletes_the_engine_room
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7109632Z         PASS [   0.037s] ( 352/3325) spt::bin/spt cli::tests::create_new_existing_name_is_usage_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7159753Z         PASS [   0.032s] ( 353/3325) spt::bin/spt cli::tests::create_not_elevated_refuses_without_saving
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7160878Z         PASS [   0.021s] ( 354/3325) spt::bin/spt cli::tests::cross_node_after_filters_a_sealed_turn_exactly_like_the_local_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7199744Z         PASS [   0.023s] ( 355/3325) spt::bin/spt cli::tests::daemonless_apply_message_points_at_finish_or_start
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7229480Z         PASS [   0.026s] ( 356/3325) spt::bin/spt cli::tests::daemon_refresh_verb_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7255146Z         PASS [   0.031s] ( 357/3325) spt::bin/spt cli::tests::daemon_offline_hint_only_when_down
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7300344Z         PASS [   0.024s] ( 358/3325) spt::bin/spt cli::tests::deferred_elevation_gate_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7309701Z         PASS [   0.029s] ( 359/3325) spt::bin/spt cli::tests::digest_flag_defaults
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7339641Z         PASS [   0.026s] ( 360/3325) spt::bin/spt cli::tests::digest_human_path_keeps_the_stderr_trailer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7369494Z         PASS [   0.036s] ( 361/3325) spt::bin/spt cli::tests::digest_cursor_flags_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7379514Z         PASS [   0.076s] ( 362/3325) spt::bin/spt cli::tests::create_new_mints_shows_and_requests_save
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7419570Z         PASS [   0.021s] ( 363/3325) spt::bin/spt cli::tests::empty_store_no_flag_guides_to_pair_or_create
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7439595Z         PASS [   0.029s] ( 364/3325) spt::bin/spt cli::tests::digest_json_predates_path_still_carries_version
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7459798Z         PASS [   0.034s] ( 365/3325) spt::bin/spt cli::tests::digest_json_carries_version_and_leaves_stderr_clean
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7489561Z         PASS [   0.076s] ( 366/3325) spt::bin/spt cli::tests::create_prints_joining_material_when_elevated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7529759Z         PASS [   0.068s] ( 367/3325) spt::bin/spt cli::tests::daemon_subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7559790Z         PASS [   0.025s] ( 368/3325) spt::bin/spt cli::tests::endpoint_caller_is_denied_and_a_human_caller_is_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7589766Z         PASS [   0.126s] ( 369/3325) spt::bin/spt api::startup::tests::a_recycled_relay_pid_is_fixed_too_so_the_role_gate_is_not_carrying_this
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7619641Z         PASS [   0.034s] ( 370/3325) spt::bin/spt cli::tests::endpoint_row_json_endpoint_type_is_additive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7649494Z         PASS [   0.037s] ( 371/3325) spt::bin/spt cli::tests::endpoint_role_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7679675Z         PASS [   0.021s] ( 372/3325) spt::bin/spt cli::tests::escalation_choice_parses_fail_closed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7709658Z         PASS [   0.022s] ( 373/3325) spt::bin/spt cli::tests::engine_room_purge_resets_under_elevation_and_refuses_without_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7739510Z         PASS [   0.031s] ( 374/3325) spt::bin/spt cli::tests::engine_room_ceremony_decision_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7779699Z         PASS [   0.027s] ( 375/3325) spt::bin/spt cli::tests::every_mint_persist_site_asks_the_shared_probe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7799546Z         PASS [   0.022s] ( 376/3325) spt::bin/spt cli::tests::every_send_outcome_is_answered_by_exactly_one_renderer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7829705Z         PASS [   0.129s] ( 377/3325) spt::bin/spt cli::tests::create_provisions_the_admin_key_and_show_code_never_does
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7836161Z         PASS [   0.037s] ( 378/3325) spt::bin/spt cli::tests::every_retired_access_token_still_reaches_the_positional
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7889942Z         PASS [   0.080s] ( 379/3325) spt::bin/spt cli::tests::endpoint_subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7919704Z         PASS [   0.051s] ( 380/3325) spt::bin/spt cli::tests::extract_legacy_flat_stays_flat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7949658Z         PASS [   0.021s] ( 381/3325) spt::bin/spt cli::tests::fetch_reject_action_apply_decision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7963743Z         PASS [   0.074s] ( 382/3325) spt::bin/spt cli::tests::every_read_status_command_accepts_the_global_json_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.7999745Z         PASS [   0.026s] ( 383/3325) spt::bin/spt cli::tests::filter_after_excludes_at_or_below_cursor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8029779Z         PASS [   0.051s] ( 384/3325) spt::bin/spt cli::tests::extract_multiplatform_places_shared_root_and_flattens_my_triple
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8089641Z         PASS [   0.119s] ( 385/3325) spt::bin/spt cli::tests::endpoint_stop_marks_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8109819Z         PASS [   0.027s] ( 386/3325) spt::bin/spt cli::tests::finish_message_states_fully_live_no_manual_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8140221Z         PASS [   0.029s] ( 387/3325) spt::bin/spt cli::tests::filter_after_predates_window_returns_full
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8170387Z         PASS [   0.072s] ( 388/3325) spt::bin/spt cli::tests::extract_multiplatform_missing_my_triple_is_typed_rejection
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8210116Z         PASS [   0.027s] ( 389/3325) spt::bin/spt cli::tests::gh_download_command_no_tag_omits_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8219684Z         PASS [   0.109s] ( 390/3325) spt::bin/spt cli::tests::every_node_subcommand_parses_identically_under_the_daemon_alias
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8249737Z         PASS [   0.023s] ( 391/3325) spt::bin/spt cli::tests::gh_release_version_compare_decision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8360111Z         PASS [   0.024s] ( 392/3325) spt::bin/spt cli::tests::gh_failure_classes_render_os_correct_hints
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8381293Z         PASS [   0.027s] ( 393/3325) spt::bin/spt cli::tests::gh_version_command_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8419949Z         PASS [   0.038s] ( 394/3325) spt::bin/spt cli::tests::gh_download_command_with_tag_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8479992Z         PASS [   0.031s] ( 395/3325) spt::bin/spt cli::tests::inbound_json_speaks_in_the_two_states_the_human_view_is_silent_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8520154Z         PASS [   0.038s] ( 396/3325) spt::bin/spt cli::tests::help_groups_cover_every_command
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8549972Z         PASS [   0.145s] ( 397/3325) spt::bin/spt cli::tests::every_node_flag_teaches_all_three_spellings
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8579851Z         PASS [   0.029s] ( 398/3325) spt::bin/spt cli::tests::inbound_verdict_rides_the_json_in_every_state_including_ok
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8609640Z         PASS [   0.046s] ( 399/3325) spt::bin/spt cli::tests::how_to_topics_cover_ready_and_send
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8669977Z         PASS [   0.034s] ( 400/3325) spt::bin/spt cli::tests::install_place_is_idempotent_and_path_block_detected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8699637Z         PASS [   0.063s] ( 401/3325) spt::bin/spt cli::tests::grant_subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8729685Z         PASS [   0.170s] ( 402/3325) spt::bin/spt api::startup::tests::api_bind_admits_the_reserved_id_only_as_a_bring_ups_completion
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8759702Z         PASS [   0.031s] ( 403/3325) spt::bin/spt cli::tests::instance_rows_project_column
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8789565Z         PASS [   0.032s] ( 404/3325) spt::bin/spt cli::tests::instance_rows_palette_and_align
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8849793Z         PASS [   0.038s] ( 405/3325) spt::bin/spt cli::tests::install_platform_check_gates_stamp_and_host_arch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8879586Z         PASS [   0.037s] ( 406/3325) spt::bin/spt cli::tests::invalid_usage_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8928367Z         PASS [   0.028s] ( 407/3325) spt::bin/spt cli::tests::join_gate_refuses_without_confirmed_elevation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.8939750Z         PASS [   0.026s] ( 408/3325) spt::bin/spt cli::tests::json_activity_words_come_from_the_shared_vocabulary_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9005460Z         PASS [   0.032s] ( 409/3325) spt::bin/spt cli::tests::json_activity_key_is_local_only_and_skips_when_unknown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9020526Z         PASS [   0.099s] ( 410/3325) spt::bin/spt cli::tests::hot_path_flat_and_moved_verbs_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9049891Z         PASS [   0.032s] ( 411/3325) spt::bin/spt cli::tests::json_project_field_skip_if_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9130131Z         PASS [   0.039s] ( 412/3325) spt::bin/spt cli::tests::json_payload_rides_as_attr_alongside_body
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9220494Z         PASS [   0.033s] ( 413/3325) spt::bin/spt cli::tests::knock_surfaces_speaks_the_tables_vocabulary_and_refuses_the_rest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9250324Z         PASS [   0.045s] ( 414/3325) spt::bin/spt cli::tests::json_drop_dir_is_local_only_and_skips_when_unknown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9275609Z         PASS [   0.034s] ( 415/3325) spt::bin/spt cli::tests::malformed_tuple_flags_refuse_with_a_usable_diagnostic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9308385Z         PASS [   0.036s] ( 416/3325) spt::bin/spt cli::tests::local_dtos_carry_host_error_and_omit_it_when_clean
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9309977Z         PASS [   0.030s] ( 417/3325) spt::bin/spt cli::tests::no_stage_degrades_to_the_running_core_and_is_its_own_diagnosis
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9380245Z         PASS [   0.032s] ( 418/3325) spt::bin/spt cli::tests::no_redeem_surface_claims_a_reverse_the_minting_side_could_not_open
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9449810Z         PASS [   0.026s] ( 419/3325) spt::bin/spt cli::tests::node_group_discards_self_and_skips_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9469922Z         PASS [   0.025s] ( 420/3325) spt::bin/spt cli::tests::node_group_same_id_two_nodes_two_groups
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9499629Z         PASS [   0.287s] ( 421/3325) spt::bin/spt cli::tests::endpoint_role_overwrite_is_the_sole_writer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9539882Z         PASS [   0.033s] ( 422/3325) spt::bin/spt cli::tests::node_group_freshest_epoch_wins_and_unions_subnets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9599964Z         PASS [   0.040s] ( 423/3325) spt::bin/spt cli::tests::new_code_carries_the_acknowledgment_and_the_subnet_through_the_router
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9629707Z         PASS [   0.023s] ( 424/3325) spt::bin/spt cli::tests::node_status_rows_denominator_counts_routable_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9689829Z         PASS [   0.063s] ( 425/3325) spt::bin/spt cli::tests::multi_subnet_refuses_without_flag_then_resolves_with_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9719722Z         PASS [   0.027s] ( 426/3325) spt::bin/spt cli::tests::node_rows_disambiguate_only_on_label_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9749679Z         PASS [   0.022s] ( 427/3325) spt::bin/spt cli::tests::not_elevated_refuses_without_leaking_code_or_saving
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9779595Z         PASS [   0.032s] ( 428/3325) spt::bin/spt cli::tests::node_level_label_names_an_endpointless_peer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9809524Z         PASS [   0.032s] ( 429/3325) spt::bin/spt cli::tests::node_grouped_render_structure_and_palette
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9839694Z         PASS [   0.031s] ( 430/3325) spt::bin/spt cli::tests::node_status_rows_settle_cheap_signals_probe_only_stale
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9929916Z         PASS [   0.034s] ( 431/3325) spt::bin/spt cli::tests::notify_subnet_resolution_home_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:49.9989631Z         PASS [   0.100s] ( 432/3325) spt::bin/spt cli::tests::monic_verbs_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0050006Z         PASS [   0.023s] ( 433/3325) spt::bin/spt cli::tests::only_a_bake_that_can_admit_the_whole_node_demands_the_acknowledgment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0109666Z         PASS [   0.024s] ( 434/3325) spt::bin/spt cli::tests::only_the_send_side_defaults_to_msg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0169781Z         PASS [   0.029s] ( 435/3325) spt::bin/spt cli::tests::only_a_multi_subnet_mint_warns_about_older_readers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0179617Z         PASS [   0.024s] ( 436/3325) spt::bin/spt cli::tests::origin_asset_urls_latest_and_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0240087Z         PASS [   0.032s] ( 437/3325) spt::bin/spt cli::tests::only_rows_with_a_node_are_asked_and_answers_land_on_their_own_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0289999Z         PASS [   0.037s] ( 438/3325) spt::bin/spt cli::tests::only_restart_runs_a_leg_after_the_isolated_adapters_leg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0360128Z         PASS [   0.032s] ( 439/3325) spt::bin/spt cli::tests::own_nested_section_renders_under_this_node_without_moving_the_total
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0400463Z         PASS [   0.024s] ( 440/3325) spt::bin/spt cli::tests::peer_health_line_names_the_stage_and_stays_silent_when_idle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0519680Z         PASS [   0.025s] ( 441/3325) spt::bin/spt cli::tests::peer_health_line_names_absent_peers_as_their_own_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0521318Z         PASS [   0.026s] ( 442/3325) spt::bin/spt cli::tests::poll_until_ready_fastpath_timeout_and_later_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0560151Z         PASS [   0.036s] ( 443/3325) spt::bin/spt cli::tests::pair_namespace_is_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0562546Z         PASS [   0.027s] ( 444/3325) spt::bin/spt cli::tests::post_step_notice_arbitration
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0565136Z         PASS [   0.036s] ( 445/3325) spt::bin/spt cli::tests::prune_candidates_resolve_never_guess
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0566442Z         PASS [   0.043s] ( 446/3325) spt::bin/spt cli::tests::project_index_line_states_health_not_presence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0647760Z         PASS [   0.101s] ( 447/3325) spt::bin/spt cli::tests::notify_surface_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0648745Z         PASS [   0.039s] ( 448/3325) spt::bin/spt cli::tests::psyche_companion_is_named_without_a_status
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0709972Z         PASS [   0.092s] ( 449/3325) spt::bin/spt cli::tests::probe_all_cap_batches_into_windows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0769755Z         PASS [   0.039s] ( 450/3325) spt::bin/spt cli::tests::registered_github_home_detects_active_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.0809833Z         PASS [   0.044s] ( 451/3325) spt::bin/spt cli::tests::purge_offline_gate_and_self_guard
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1020247Z         PASS [   0.026s] ( 452/3325) spt::bin/spt cli::tests::remote_cell_project_ref_from_gossiped_recent_projects
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1170199Z         PASS [   0.047s] ( 453/3325) spt::bin/spt cli::tests::release_archive_extracts_to_a_registrable_root
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1199754Z         PASS [   0.038s] ( 454/3325) spt::bin/spt cli::tests::requesting_verbs_force_an_explicit_directionality
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1290240Z         PASS [   0.027s] ( 455/3325) spt::bin/spt cli::tests::resolve_proof_target_override_reads_on_disk
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1460213Z         PASS [   0.025s] ( 456/3325) spt::bin/spt cli::tests::resolve_transport_explicit_never_probes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1509931Z         PASS [   0.031s] ( 457/3325) spt::bin/spt cli::tests::resolve_transport_auto_follows_probe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1560236Z         PASS [   0.024s] ( 458/3325) spt::bin/spt cli::tests::rest_filter_hides_suspended_shows_all_and_corrupt_always
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1689953Z         PASS [   0.019s] ( 459/3325) spt::bin/spt cli::tests::rest_filter_total_disclosure_and_corrupt_annotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1750112Z         PASS [   0.028s] ( 460/3325) spt::bin/spt cli::tests::rest_filter_status_first_ordering
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1839864Z         PASS [   0.026s] ( 461/3325) spt::bin/spt cli::tests::restart_plans_lethal_leg_last
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1869779Z         PASS [   0.018s] ( 462/3325) spt::bin/spt cli::tests::ring_no_reply_arms_report_the_wait_in_the_callers_unit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.1961283Z         PASS [   0.015s] ( 463/3325) spt::bin/spt cli::tests::ring_timeout_parses_bare_as_minutes_and_honors_suffixes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2060064Z         PASS [   0.165s] ( 464/3325) spt::bin/spt cli::tests::purge_force_asks_before_it_tears_anything_down
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2119894Z         PASS [   0.205s] ( 465/3325) spt::bin/spt cli::tests::probe_all_timeout_settles_false_without_stalling_batch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2179789Z         PASS [   0.035s] ( 466/3325) spt::bin/spt cli::tests::ring_timeout_defaults
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2239655Z         PASS [   0.024s] ( 467/3325) spt::bin/spt cli::tests::self_pin_annotates_host_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2279837Z         PASS [   0.030s] ( 468/3325) spt::bin/spt cli::tests::self_endpoint_line_reports_the_live_relay_or_says_there_is_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2389927Z         PASS [   0.029s] ( 469/3325) spt::bin/spt cli::tests::self_pin_annotates_psyche_host_failure
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2419766Z         PASS [   0.043s] ( 470/3325) spt::bin/spt cli::tests::sealed_send_composes_the_ceremony_buffer_with_the_seal_attr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2469923Z         PASS [   0.022s] ( 471/3325) spt::bin/spt cli::tests::self_pin_annotates_translation_fault
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2509821Z         PASS [   0.259s] ( 472/3325) spt::bin/spt cli::tests::probe_all_runs_concurrently_in_input_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2579859Z         PASS [   0.030s] ( 473/3325) spt::bin/spt cli::tests::self_pin_includes_description_when_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2630156Z         PASS [   0.022s] ( 474/3325) spt::bin/spt cli::tests::self_pin_names_the_registered_drop_dir_only_when_known
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2689898Z         PASS [   0.077s] ( 475/3325) spt::bin/spt cli::tests::run_bounded_yields_value_or_timeout_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2839910Z         PASS [   0.046s] ( 476/3325) spt::bin/spt cli::tests::send_reply_to_flag_is_removed_and_target_required
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2909653Z         PASS [   0.045s] ( 477/3325) spt::bin/spt cli::tests::send_user_msg_flag_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.2958375Z         PASS [   0.031s] ( 478/3325) spt::bin/spt cli::tests::shell_hint_teaser_verb_is_a_real_command
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.3330148Z         PASS [   0.072s] ( 479/3325) spt::bin/spt cli::tests::shell_owner_exclusivity_negatives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.3490104Z         PASS [   0.346s] ( 480/3325) spt::bin/spt cli::tests::public_help_carries_no_internal_codes_at_any_ruled_site
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.3710315Z         PASS [   1.383s] ( 481/3325) spt::bin/spt api::seal::tests::fido2_signature_arm_bounds_refuses_and_describes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.3810482Z         PASS [   0.049s] ( 482/3325) spt::bin/spt cli::tests::shell_spawn_profiled_option_resolves_and_shares_cap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.3940241Z         PASS [   0.043s] ( 483/3325) spt::bin/spt cli::tests::shell_subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.4320004Z         PASS [   0.060s] ( 484/3325) spt::bin/spt cli::tests::show_code_prints_reprovisioning_material
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.4439927Z         PASS [   0.151s] ( 485/3325) spt::bin/spt cli::tests::shell_spawn_cap_and_over_cap_gates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.4980062Z         PASS [   0.068s] ( 486/3325) spt::bin/spt cli::tests::shutdown_on_a_harness_hosted_endpoint_claims_no_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.5040051Z         PASS [   0.057s] ( 487/3325) spt::bin/spt cli::tests::single_subnet_auto_selects_and_code_matches_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.5340147Z         PASS [   0.030s] ( 488/3325) spt::bin/spt cli::tests::stage_then_swap_failed_fetch_preserves_install
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.5519841Z         PASS [   0.809s] ( 489/3325) spt::bin/spt cli::tests::fork_forks_homes_and_deletes_exactly_the_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.5879879Z         PASS [   0.325s] ( 490/3325) spt::bin/spt cli::tests::shell_relink_relaunches_offline_instances_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6029934Z         PASS [   0.073s] ( 491/3325) spt::bin/spt cli::tests::staged_floor_admits_when_core_meets_floor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6163060Z         PASS [   0.025s] ( 492/3325) spt::bin/spt cli::tests::stall_evict_line_surfaces_only_a_real_tally
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6229884Z         PASS [   0.237s] ( 493/3325) spt::bin/spt cli::tests::shutdown_and_stop_share_the_postcondition_and_differ_only_in_ceremony
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6259811Z         PASS [   0.068s] ( 494/3325) spt::bin/spt cli::tests::staged_floor_refuses_above_floor_and_leaves_dest_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6319602Z         PASS [   0.586s] ( 495/3325) spt::bin/spt cli::tests::purge_removes_every_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6349750Z         PASS [   0.023s] ( 496/3325) spt::bin/spt cli::tests::stop_guard_refuses_live_sessions_without_force
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6439846Z         PASS [   0.025s] ( 497/3325) spt::bin/spt cli::tests::subnet_mode_lines_state_declared_captured_and_pending
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6500005Z         PASS [   0.023s] ( 498/3325) spt::bin/spt cli::tests::subnet_status_renders_rows_and_hints_never_secrets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6559845Z         PASS [   0.254s] ( 499/3325) spt::bin/spt cli::tests::shutdown_on_a_broker_hosted_endpoint_stamps_after_the_reap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6589822Z         PASS [   0.025s] ( 500/3325) spt::bin/spt cli::tests::subnets_joined_banner_renders_rows_and_divider
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6730277Z         PASS [   0.028s] ( 501/3325) spt::bin/spt cli::tests::subprocess_detail_prefers_stderr_then_stdout
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6799764Z         PASS [   0.034s] ( 502/3325) spt::bin/spt cli::tests::the_bare_form_refuses_rather_than_guessing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6829565Z         PASS [   0.034s] ( 503/3325) spt::bin/spt cli::tests::the_bare_form_is_the_send_form
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6849658Z         PASS [   0.067s] ( 504/3325) spt::bin/spt cli::tests::subcommands_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.6879719Z         PASS [   0.032s] ( 505/3325) spt::bin/spt cli::tests::the_bare_node_verb_defaults_to_the_status_view_under_both_spellings
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7030042Z         PASS [   0.022s] ( 506/3325) spt::bin/spt cli::tests::the_conjunction_notice_names_the_whitelist_its_seat_and_the_posture
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7044960Z         PASS [   0.025s] ( 507/3325) spt::bin/spt cli::tests::the_conjunction_notice_fires_per_missing_half_and_stays_silent_when_both_hold
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7099865Z         PASS [   0.034s] ( 508/3325) spt::bin/spt cli::tests::the_bare_status_view_states_the_mode_facts_for_every_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7219742Z         PASS [   0.101s] ( 509/3325) spt::bin/spt cli::tests::subnet_arg_shapes_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7310009Z         PASS [   0.026s] ( 510/3325) spt::bin/spt cli::tests::the_denial_names_the_blast_radius_and_a_cure_that_fits_its_ground
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7429934Z         PASS [   0.060s] ( 511/3325) spt::bin/spt cli::tests::the_create_ceremony_names_the_heal_for_an_older_minter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7459500Z         PASS [   0.244s] ( 512/3325) spt::bin/spt cli::tests::spt_hosted_no_relay_detection
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7550357Z         PASS [   0.052s] ( 513/3325) spt::bin/spt cli::tests::the_cross_node_mutual_refusal_is_gone_from_every_surface_that_carried_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7619876Z         PASS [   0.024s] ( 514/3325) spt::bin/spt cli::tests::the_engine_room_role_speaks_the_cli_vocabulary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7679817Z         PASS [   0.084s] ( 515/3325) spt::bin/spt cli::tests::the_briefing_prescribes_only_verbs_the_grammar_has
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7830094Z         PASS [   0.063s] ( 516/3325) spt::bin/spt cli::tests::the_engine_room_role_prescribes_only_verbs_the_grammar_has
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7859643Z         PASS [   0.500s] ( 517/3325) spt::bin/spt cli::tests::shell_spawn_approval_floor_gates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7889624Z         PASS [   0.030s] ( 518/3325) spt::bin/spt cli::tests::the_fork_pair_consequence_follows_the_chain_verdict_not_the_rule_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7919492Z         PASS [   0.034s] ( 519/3325) spt::bin/spt cli::tests::the_fold_is_total_and_classes_by_value
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7949668Z         PASS [   0.028s] ( 520/3325) spt::bin/spt cli::tests::the_gc_render_says_what_it_refused_and_what_it_would_delete
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.7956945Z         PASS [   0.088s] ( 521/3325) spt::bin/spt cli::tests::the_deprecation_note_renders_on_both_spellings_of_the_node_verb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8140034Z         PASS [   0.026s] ( 522/3325) spt::bin/spt cli::tests::the_kept_monic_suggestion_is_a_command_that_keeps_its_promise
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8210067Z         PASS [   0.034s] ( 523/3325) spt::bin/spt cli::tests::the_inert_notice_speaks_only_for_the_operators_own_precise_allow
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8279977Z         PASS [   0.039s] ( 524/3325) spt::bin/spt cli::tests::the_inert_grant_verdict_follows_the_chain_not_the_endpoints_posture
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8330161Z         PASS [   0.043s] ( 525/3325) spt::bin/spt cli::tests::the_human_and_json_legs_agree_on_every_unlisted_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8339760Z         PASS [   0.033s] ( 526/3325) spt::bin/spt cli::tests::the_knock_prescription_names_the_fork_pair_only_where_it_is_needed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8387096Z         PASS [   0.034s] ( 527/3325) spt::bin/spt cli::tests::the_legacy_allow_echo_says_discover_is_untouched_and_scopes_both_levers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8429853Z         PASS [   0.089s] ( 528/3325) spt::bin/spt cli::tests::the_flagless_access_listing_is_wired_distinctly_from_its_subcommands
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8459622Z         PASS [   0.021s] ( 529/3325) spt::bin/spt cli::tests::the_mint_probe_answers_only_for_a_fresh_mint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8506726Z         PASS [   0.107s] ( 530/3325) spt::bin/spt cli::tests::the_evidence_census_reads_each_local_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8539910Z         PASS [   0.034s] ( 531/3325) spt::bin/spt cli::tests::the_locked_claim_carries_its_caveat_in_the_same_emission
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8570261Z         PASS [   0.022s] ( 532/3325) spt::bin/spt cli::tests::the_positional_spelling_cannot_step_around_the_admit_node_acknowledgment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8630278Z         PASS [   0.034s] ( 533/3325) spt::bin/spt cli::tests::the_positional_allow_spelling_carries_its_flags_into_the_rule
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8689912Z         PASS [   3.375s] ( 534/3325) spt::tunnel_e2e shell_tunnel_round_trips_opaque_bytes_through_the_real_surfaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8720114Z         PASS [   0.028s] ( 535/3325) spt::bin/spt cli::tests::the_presenters_three_renderings_stay_three_things
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8780809Z         PASS [   0.027s] ( 536/3325) spt::bin/spt cli::tests::the_remote_knock_refusals_render_as_prose
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8789630Z         PASS [   0.016s] ( 537/3325) spt::bin/spt cli::tests::the_role_carries_the_ratified_skeletons_own_tier_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8850079Z         PASS [   0.026s] ( 538/3325) spt::bin/spt cli::tests::the_rendered_peer_fraction_counts_one_population_across_a_subnet_leave
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8939951Z         PASS [   0.038s] ( 539/3325) spt::bin/spt cli::tests::the_rendered_section_is_the_composers_output
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.8962647Z         PASS [   0.024s] ( 540/3325) spt::bin/spt cli::tests::the_roster_json_carries_the_derived_open_by_default_list
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9040405Z         PASS [   1.074s] ( 541/3325) spt::bin/spt api::startup::tests::api_listen_admits_the_reserved_id_only_as_a_bring_ups_completion
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9089958Z         PASS [   0.659s] ( 542/3325) spt::bin/spt cli::tests::shell_channels_relay_sensory_and_text_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9200412Z         PASS [   0.025s] ( 543/3325) spt::bin/spt cli::tests::the_sweep_distinguishes_refused_from_failed_and_from_applied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9239813Z         PASS [   0.027s] ( 544/3325) spt::bin/spt cli::tests::the_three_landings_render_distinct_lines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9420140Z         PASS [   0.037s] ( 545/3325) spt::bin/spt cli::tests::the_three_send_outcomes_owe_three_different_receipts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9449664Z         PASS [   0.023s] ( 546/3325) spt::bin/spt cli::tests::the_tuple_flags_build_the_rule_they_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9540203Z         PASS [   0.127s] ( 547/3325) spt::bin/spt cli::tests::the_peek_and_the_record_cannot_disagree_about_which_core_they_judged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9579805Z         PASS [   0.144s] ( 548/3325) spt::bin/spt cli::tests::the_local_and_wire_arms_write_one_identical_grant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9730236Z         PASS [   0.025s] ( 549/3325) spt::bin/spt cli::tests::the_unlisted_footer_explainer_lines_are_not_rendered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9790269Z         PASS [   0.107s] ( 550/3325) spt::bin/spt cli::tests::the_seat_and_the_acknowledgment_are_the_mints_and_both_arms_refuse_alike
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9830298Z         PASS [   0.100s] ( 551/3325) spt::bin/spt cli::tests::the_skeleton_walks_the_er_surface_verb_and_the_unamended_cell_does_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9860537Z         PASS [   0.103s] ( 552/3325) spt::bin/spt cli::tests::the_sited_help_names_every_kind_and_says_what_evaluates_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9930073Z         PASS [   0.030s] ( 553/3325) spt::bin/spt cli::tests::the_unlisted_listing_drops_an_excluded_peer_and_keeps_the_rest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:50.9989972Z         PASS [   0.058s] ( 554/3325) spt::bin/spt cli::tests::the_unamended_skeleton_ellipsis_panics_the_walk
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0050137Z         PASS [   0.025s] ( 555/3325) spt::bin/spt cli::tests::trust_mutation_gate_refuses_without_confirmed_elevation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0079710Z         PASS [   0.029s] ( 556/3325) spt::bin/spt cli::tests::this_node_group_merges_roster_with_unbound_truth
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0170231Z         PASS [   0.057s] ( 557/3325) spt::bin/spt cli::tests::the_unspooled_remedy_prescribes_a_verb_the_grammar_has
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0209695Z         PASS [   0.050s] ( 558/3325) spt::bin/spt cli::tests::the_visible_alias_reaches_the_root_listing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0239555Z         PASS [   0.024s] ( 559/3325) spt::bin/spt cli::tests::unknown_elevation_falls_back
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0300018Z         PASS [   0.047s] ( 560/3325) spt::bin/spt cli::tests::trust_warning_verbs_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0450183Z         PASS [   0.035s] ( 561/3325) spt::bin/spt cli::tests::unknown_named_subnet_is_usage_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0461039Z         PASS [   0.036s] ( 562/3325) spt::bin/spt cli::tests::unparseable_staged_metadata_degrades_as_its_own_condition
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0499736Z         PASS [   0.032s] ( 563/3325) spt::bin/spt cli::tests::update_adapters_verb_parses_with_optional_names
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0570332Z         PASS [   0.144s] ( 564/3325) spt::bin/spt api::startup::tests::bind_assigns_home_and_revive_preserves_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0640157Z         PASS [   0.033s] ( 565/3325) spt::bin/spt cli::tests::what_the_listing_prescribes_is_what_the_approve_path_honors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0690797Z         PASS [   0.034s] ( 566/3325) spt::bin/spt cli::tests::whoami_parses_as_the_identity_verb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0760002Z         PASS [   0.044s] ( 567/3325) spt::bin/spt cli::tests::update_fetch_apply_flag_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0819923Z         PASS [   0.024s] ( 568/3325) spt::bin/spt cli::tests::within_a_class_the_first_code_survives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0849760Z         PASS [   0.154s] ( 569/3325) spt::bin/spt cli::tests::the_trigger_section_rides_its_sited_verb_and_no_sibling
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0879717Z         PASS [   0.028s] ( 570/3325) spt::bin/spt elevation::tests::already_elevated_short_circuits_on_every_os
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0909671Z         PASS [   0.110s] ( 571/3325) spt::bin/spt cli::tests::the_widening_remedy_is_sited_with_its_flag_not_in_the_shared_section
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0964483Z         PASS [   0.025s] ( 572/3325) spt::bin/spt elevation::tests::current_returns_a_determinate_level_on_supported_platforms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.0999898Z         PASS [   0.030s] ( 573/3325) spt::bin/spt elevation::tests::gate_shows_only_when_confirmed_elevated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1029814Z         PASS [   0.031s] ( 574/3325) spt::bin/spt elevation::tests::fallback_message_names_authenticator_app_and_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1059639Z         PASS [   0.271s] ( 575/3325) spt::bin/spt cli::tests::the_monic_command_path_treats_a_husk_as_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1089682Z         PASS [   0.034s] ( 576/3325) spt::bin/spt elevation::tests::launcher_argv_is_absolute_exe_plus_verbatim_args
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1119664Z         PASS [   0.026s] ( 577/3325) spt::bin/spt elevation::tests::launchers_never_shell_interpolate_a_crafted_arg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1149639Z         PASS [   0.023s] ( 578/3325) spt::bin/spt elevation::tests::print_hint_floor_uses_absolute_path_each_os
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1179667Z         PASS [   0.023s] ( 579/3325) spt::bin/spt elevation::tests::unix_path_order_tty_then_pkexec_then_terminal_then_hint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1209708Z         PASS [   0.072s] ( 580/3325) spt::bin/spt cli::verb_surface_route_table::every_bringup_door_routes_where_it_says
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1239637Z         PASS [   0.025s] ( 581/3325) spt::bin/spt elevation::tests::windows_uac_only_interactive_other_always_prints
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1269624Z         PASS [   0.025s] ( 582/3325) spt::bin/spt fetchverb::tests::a_full_url_and_the_shorthand_name_the_same_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1299639Z         PASS [   0.016s] ( 583/3325) spt::bin/spt fetchverb::tests::the_exit_codes_separate_refused_from_failed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1329649Z         PASS [   0.079s] ( 584/3325) spt::bin/spt cli::verb_surface_route_table::the_exclusions_are_real_refusals
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1359621Z         PASS [   0.021s] ( 585/3325) spt::bin/spt helpfmt::tests::bold_styles_with_color_and_strips_without
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1419774Z         PASS [   0.085s] ( 586/3325) spt::bin/spt api::startup::tests::bind_gateway_earns_no_online_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1449669Z         PASS [   0.023s] ( 587/3325) spt::bin/spt helpfmt::tests::atx_header_at_line_start_strips_and_bolds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1509756Z         PASS [   0.258s] ( 588/3325) spt::bin/spt cli::tests::the_surface_section_rides_the_ruled_sites_and_no_others
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1539691Z         PASS [   0.045s] ( 589/3325) spt::bin/spt fetchverb::tests::an_interrupted_write_leaves_no_partial_at_dest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1569559Z         PASS [   0.022s] ( 590/3325) spt::bin/spt helpfmt::tests::dual_contract_token_survives_strip_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1629795Z         PASS [   0.022s] ( 591/3325) spt::bin/spt helpfmt::tests::empty_and_unmatched_markers_stay_literal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1651031Z         PASS [   0.042s] ( 592/3325) spt::bin/spt fetchverb::tests::the_default_dest_is_the_decoded_final_segment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1689945Z         PASS [   0.033s] ( 593/3325) spt::bin/spt helpfmt::tests::code_styles_with_color_and_strips_without
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1720768Z         PASS [   0.030s] ( 594/3325) spt::bin/spt helpfmt::tests::color_enabled_truth_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1759820Z         PASS [   0.029s] ( 595/3325) spt::bin/spt helpfmt::tests::dual_contract_token_unstyled_while_prose_styles_on_color
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1771483Z         PASS [   0.027s] ( 596/3325) spt::bin/spt helpfmt::tests::link_becomes_its_text
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1809701Z         PASS [   0.028s] ( 597/3325) spt::bin/spt helpfmt::tests::marker_never_spans_a_hard_break
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1839727Z         PASS [   0.025s] ( 598/3325) spt::bin/spt helpfmt::tests::multibyte_text_survives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1869873Z         PASS [   0.028s] ( 599/3325) spt::bin/spt helpfmt::tests::nested_code_inside_bold_styles_both
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1899787Z         PASS [   0.033s] ( 600/3325) spt::bin/spt helpfmt::tests::marker_spans_a_clap_soft_wrap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1929864Z         PASS [   0.023s] ( 601/3325) spt::bin/spt monicverb::tests::add_refuses_to_replace_and_update_refuses_to_invent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1959709Z         PASS [   0.029s] ( 602/3325) spt::bin/spt helpfmt::tests::plain_text_is_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1960633Z         PASS [   0.024s] ( 603/3325) spt::bin/spt monicverb::tests::no_monic_verb_is_elevation_gated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1961573Z         PASS [   0.029s] ( 604/3325) spt::bin/spt helpfmt::tests::resolve_console_color_strips_when_vt_unavailable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1962554Z         PASS [   0.031s] ( 605/3325) spt::bin/spt helpfmt::tests::preexisting_ansi_is_passed_through_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1963524Z         PASS [   0.026s] ( 606/3325) spt::bin/spt msgverb::tests::the_rendered_body_is_the_message_not_the_envelope
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1964473Z         PASS [   0.026s] ( 607/3325) spt::bin/spt picker::data::tests::disambiguate_project_ids_cases
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.1965364Z         PASS [   0.029s] ( 608/3325) spt::bin/spt picker::data::tests::driven_by_display_renders_name_not_hex
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2019941Z         PASS [   0.023s] ( 609/3325) spt::bin/spt picker::data::tests::indexed_projection_full_w2shaped_and_absent_legs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2079966Z         PASS [   0.021s] ( 610/3325) spt::bin/spt picker::data::tests::project_refs_from_sessions_excludes_owlery_and_dedups_newest_first
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2109818Z         PASS [   0.019s] ( 611/3325) spt::bin/spt picker::data::tests::project_refs_from_unions_fresh_origin_and_store_branches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2139618Z         PASS [   0.029s] ( 612/3325) spt::bin/spt picker::data::tests::non_drivable_predicate_covers_worker_and_psyche
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2169570Z         PASS [   0.036s] ( 613/3325) spt::bin/spt picker::data::tests::own_node_tab_label_falls_back_to_keyprefix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2259935Z         PASS [   0.027s] ( 614/3325) spt::bin/spt picker::data::tests::reconcile_overrides_subnet_with_local_roster
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2289534Z         PASS [   0.056s] ( 615/3325) spt::bin/spt picker::data::tests::home_subnet_options_is_mru_ordered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2318599Z         PASS [   0.028s] ( 616/3325) spt::bin/spt picker::data::tests::remote_picker_renders_suspended_dead_perch_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2349782Z         PASS [   0.023s] ( 617/3325) spt::bin/spt picker::data::tests::resume_rows_derive_per_row_project_and_drop_owlery_sessions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2381245Z         PASS [   0.024s] ( 618/3325) spt::bin/spt picker::data::tests::resume_rows_title_from_index_cwd_map_with_pure_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2409575Z         PASS [   0.020s] ( 619/3325) spt::bin/spt picker::data::tests::row_status_drives_unbound_display
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2419522Z         PASS [   0.035s] ( 620/3325) spt::bin/spt picker::data::tests::remote_rows_render_full_palette_parity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2469669Z         PASS [   0.017s] ( 621/3325) spt::bin/spt picker::model::tests::build_project_choices_head_here_rest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2509604Z         PASS [   0.019s] ( 622/3325) spt::bin/spt picker::model::tests::back_unwinds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2539582Z         PASS [   0.020s] ( 623/3325) spt::bin/spt picker::model::tests::category_labels_render_display_forms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2589593Z         PASS [   0.023s] ( 624/3325) spt::bin/spt picker::model::tests::category_ring_wraps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2629699Z         PASS [   0.039s] ( 625/3325) spt::bin/spt picker::data::tests::shared_machine_is_one_group_with_unioned_subnets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2649646Z         PASS [   0.033s] ( 626/3325) spt::bin/spt picker::model::tests::adapter_tree_nests_profiles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2689711Z         PASS [   0.024s] ( 627/3325) spt::bin/spt picker::model::tests::change_adapter_picks_and_returns_to_confirm
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2729663Z         PASS [   0.102s] ( 628/3325) spt::bin/spt picker::data::tests::gather_renders_live_unbound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2739671Z         PASS [   0.026s] ( 629/3325) spt::bin/spt picker::model::tests::confirm_local_offline_unchanged_by_wake_split
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2749512Z         PASS [   0.029s] ( 630/3325) spt::bin/spt picker::model::tests::choose_project_outcome_bakes_cwd_and_diverts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2769604Z         PASS [   0.024s] ( 631/3325) spt::bin/spt picker::model::tests::confirm_options_remote_suspended_is_wake_not_start
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2814405Z         PASS [   0.110s] ( 632/3325) spt::bin/spt picker::data::tests::gather_endpoints_projects_from_seeded_index_with_zero_git
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2849807Z         PASS [   0.025s] ( 633/3325) spt::bin/spt picker::model::tests::confirm_options_status_dependent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2879954Z         PASS [   0.022s] ( 634/3325) spt::bin/spt picker::model::tests::confirm_terminal_wake_carries_raw_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2920141Z         PASS [   0.023s] ( 635/3325) spt::bin/spt picker::model::tests::create_new_multisubnet_inserts_home_layer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2949725Z         PASS [   0.034s] ( 636/3325) spt::bin/spt picker::model::tests::confirm_terminal_routes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2960299Z         PASS [   0.023s] ( 637/3325) spt::bin/spt picker::model::tests::create_outcome_bakes_run
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2989675Z         PASS [   0.117s] ( 638/3325) spt::bin/spt picker::data::tests::picker_excludes_flat_worker_and_psyche
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2990598Z         PASS [   0.025s] ( 639/3325) spt::bin/spt picker::model::tests::cursor_clamps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.2991408Z         PASS [   0.024s] ( 640/3325) spt::bin/spt picker::model::tests::display_mapping_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3029603Z         PASS [   0.026s] ( 641/3325) spt::bin/spt picker::model::tests::display_status_four_state_type_gated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3069673Z         PASS [   0.023s] ( 642/3325) spt::bin/spt picker::model::tests::empty_scope_opens_create
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3089673Z         PASS [   0.023s] ( 643/3325) spt::bin/spt picker::model::tests::ep_display_glyph_and_square_palette
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3114292Z         PASS [   0.030s] ( 644/3325) spt::bin/spt picker::model::tests::display_status_unbound_is_hollow_and_attachable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3170071Z         PASS [   0.028s] ( 645/3325) spt::bin/spt picker::model::tests::esc_backs_out_of_home_layer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3219679Z         PASS [   0.027s] ( 646/3325) spt::bin/spt picker::model::tests::filter_narrows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3229610Z         PASS [   0.021s] ( 647/3325) spt::bin/spt picker::model::tests::prefill_jumps_to_create
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3270103Z         PASS [   0.026s] ( 648/3325) spt::bin/spt picker::model::tests::launch_keys_live_only_on_launch_capable_highlights
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3299702Z         PASS [   0.027s] ( 649/3325) spt::bin/spt picker::model::tests::home_selection_bakes_into_run_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3339947Z         PASS [   0.033s] ( 650/3325) spt::bin/spt picker::model::tests::from_resource_row_maps_gossiped_adapter_projects_controlled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3399859Z         PASS [   0.034s] ( 651/3325) spt::bin/spt picker::model::tests::kind_routes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3459975Z         PASS [   0.024s] ( 652/3325) spt::bin/spt picker::model::tests::purge_confirm_yields_outcome_and_backs_out
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3519958Z         PASS [   0.028s] ( 653/3325) spt::bin/spt picker::model::tests::project_filter_keys_on_slug_while_tab_renders_display
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3579723Z         PASS [   0.025s] ( 654/3325) spt::bin/spt picker::model::tests::purge_shortcut_gates_to_offline_local
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3619754Z         PASS [   0.024s] ( 655/3325) spt::bin/spt picker::model::tests::reenter_create_keeps_or_clears_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3679859Z         PASS [   0.019s] ( 656/3325) spt::bin/spt picker::model::tests::resume_outcome_bakes_session
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3699709Z         PASS [   0.029s] ( 657/3325) spt::bin/spt picker::model::tests::remove_endpoint_drops_row_and_clamps_cursor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3759807Z         PASS [   0.034s] ( 658/3325) spt::bin/spt picker::model::tests::resume_outcome_adapter_follows_recorded_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3819841Z         PASS [   0.022s] ( 659/3325) spt::bin/spt picker::model::tests::visible_partitions_and_sorts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3872204Z         PASS [   0.025s] ( 660/3325) spt::bin/spt picker::model::tests::single_subnet_skips_home_layer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3939919Z         PASS [   0.025s] ( 661/3325) spt::bin/spt picker::model::tests::suspended_is_distinct_from_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.3990027Z         PASS [   0.031s] ( 662/3325) spt::bin/spt picker::model::tests::should_offer_project_choice_fire_conditions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4059877Z         PASS [   0.034s] ( 663/3325) spt::bin/spt picker::model::tests::resume_title_render
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4129918Z         PASS [   0.025s] ( 664/3325) spt::bin/spt picker::model::tests::the_picker_refuses_the_reserved_id_as_it_is_typed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4199804Z         PASS [   0.021s] ( 665/3325) spt::bin/spt picker::shortcut::tests::basename_is_parameterized
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4259691Z         PASS [   0.024s] ( 666/3325) spt::bin/spt picker::shortcut::tests::the_body_is_the_ladder_verb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4309734Z         PASS [   0.023s] ( 667/3325) spt::bin/spt picker::tests::backspace_stays_char_delete_in_text_contexts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4373251Z         PASS [   0.038s] ( 668/3325) spt::bin/spt picker::shortcut::tests::sentinel_detection_spans_both_generations
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4419758Z         PASS [   0.026s] ( 669/3325) spt::bin/spt picker::tests::purge_outcomes_convert_to_flash_lines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4449772Z         PASS [   0.030s] ( 670/3325) spt::bin/spt picker::shortcut::tests::write_create_update_regenerate_refuse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4510090Z         PASS [   0.034s] ( 671/3325) spt::bin/spt picker::view::tests::change_adapter_screen_renders_tree_and_apply_legend
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4569924Z         PASS [   0.037s] ( 672/3325) spt::bin/spt picker::tests::backspace_backs_out_screens_like_esc
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4599880Z         PASS [   0.039s] ( 673/3325) spt::bin/spt picker::view::tests::adapter_tree_buffer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4653518Z         PASS [   0.037s] ( 674/3325) spt::bin/spt picker::view::tests::choose_project_buffer_keeps_confirm_panel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4730173Z         PASS [   0.044s] ( 675/3325) spt::bin/spt picker::tests::purge_transition_reconstructs_the_complete_screen_after_external_mutation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4771438Z         PASS [   0.037s] ( 676/3325) spt::bin/spt picker::view::tests::confirm_fork_and_shortcut_labels_are_dir_relative
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4839876Z         PASS [   0.042s] ( 677/3325) spt::bin/spt picker::view::tests::create_home_lists_subnets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4900002Z         PASS [   0.031s] ( 678/3325) spt::bin/spt picker::view::tests::pick_empty_category_hint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.4959755Z         PASS [   0.037s] ( 679/3325) spt::bin/spt picker::view::tests::kind_buffer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5019976Z         PASS [   0.050s] ( 680/3325) spt::bin/spt picker::view::tests::confirm_panel_history_renders_display_not_slug
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5084069Z         PASS [   0.047s] ( 681/3325) spt::bin/spt picker::view::tests::pick_buffer_has_squares_and_description
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5159967Z         PASS [   0.058s] ( 682/3325) spt::bin/spt picker::view::tests::every_picker_list_view_keeps_its_caret_on_screen
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5191124Z         PASS [   0.070s] ( 683/3325) spt::bin/spt picker::view::tests::confirm_buffer_options
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5219690Z         PASS [   0.029s] ( 684/3325) spt::bin/spt picker::view::tests::resume_buffer_keeps_confirm_panel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5249726Z         PASS [   0.030s] ( 685/3325) spt::bin/spt picker::view::tests::resume_buffer_lists_sessions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5289936Z         PASS [   0.030s] ( 686/3325) spt::bin/spt rc::tests::a_bringable_target_reaches_bring_up_with_the_offline_row_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5309748Z         PASS [   0.024s] ( 687/3325) spt::bin/spt rc::tests::a_refusal_names_the_targets_own_entry_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5339726Z         PASS [   0.027s] ( 688/3325) spt::bin/spt rc::tests::a_sealed_dispatch_overlay_names_the_destination
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5369700Z         PASS [   0.029s] ( 689/3325) spt::bin/spt rc::tests::attach_gate_routes_on_session_truth_not_the_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5379655Z         PASS [   0.047s] ( 690/3325) spt::bin/spt picker::view::tests::the_caret_row_accounts_for_the_group_headers_above_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5409612Z         PASS [   0.016s] ( 691/3325) spt::bin/spt rc::tests::bringable_is_the_engine_room_addressed_plainly_with_a_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5429655Z         PASS [   0.044s] ( 692/3325) spt::bin/spt rc::tests::attach_against_stopped_daemon_never_spawns_and_exits_loud
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5469757Z         PASS [   0.025s] ( 693/3325) spt::bin/spt rc::tests::bringup_prompt_names_the_node_and_the_home_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5499586Z         PASS [   0.038s] ( 694/3325) spt::bin/spt rc::tests::attach_offline_endpoint_short_circuits_clean
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5529659Z         PASS [   0.104s] ( 695/3325) spt::bin/spt picker::view::tests::footer_hints_h_s_only_when_launch_keys_live
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5559762Z         PASS [   0.022s] ( 696/3325) spt::bin/spt rc::tests::ceremony_keys_fold_through_the_shared_kernel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5589578Z         PASS [   0.022s] ( 697/3325) spt::bin/spt rc::tests::detach_keybind_semantics
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5618275Z         PASS [   0.023s] ( 698/3325) spt::bin/spt rc::tests::classify_read_err_eof_is_graceful_not_fatal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5660010Z         PASS [   0.035s] ( 699/3325) spt::bin/spt rc::tests::canonical_wire_id_strips_qualifiers_to_the_bare_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5689796Z         PASS [   0.079s] ( 700/3325) spt::bin/spt picker::view::tests::the_caret_stays_on_screen_when_the_list_outruns_the_viewport
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5719793Z         PASS [   0.023s] ( 701/3325) spt::bin/spt rc::tests::display_guard_postlude_exactly_once_and_inactive_silent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5737623Z         PASS [   0.023s] ( 702/3325) spt::bin/spt rc::tests::driver_phrase_names_own_node_plainly_but_remote_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5779964Z         PASS [   0.025s] ( 703/3325) spt::bin/spt rc::tests::driver_of_record_reports_no_driver_for_an_offline_record_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5789574Z         PASS [   0.021s] ( 704/3325) spt::bin/spt rc::tests::first_event_stall_decision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5839688Z         PASS [   0.024s] ( 705/3325) spt::bin/spt rc::tests::fold_code_key_prompt_rules
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5881566Z         PASS [   0.039s] ( 706/3325) spt::bin/spt rc::tests::detach_prefix_spans_chunks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5912171Z         PASS [   0.022s] ( 707/3325) spt::bin/spt rc::tests::harness_only_row_matches_online_seatless_live_agents_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.5980056Z         PASS [   0.027s] ( 708/3325) spt::bin/spt rc::tests::give_up_copy_names_daemon_down_vs_generic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6039867Z         PASS [   0.024s] ( 709/3325) spt::bin/spt rc::tests::identity_line_format
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6099830Z         PASS [   0.022s] ( 710/3325) spt::bin/spt rc::tests::mouse_mode_decset_scan_tracks_enable_and_sgr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6159738Z         PASS [   0.025s] ( 711/3325) spt::bin/spt rc::tests::op_minter_distinct_and_monotonic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6220022Z         PASS [   0.026s] ( 712/3325) spt::bin/spt rc::tests::mouse_mode_decset_scan_survives_split_across_chunks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6277092Z         PASS [   0.025s] ( 713/3325) spt::bin/spt rc::tests::pre_broker_busy_guidance_fires_for_any_driver_not_just_remote
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6336140Z         PASS [   0.025s] ( 714/3325) spt::bin/spt rc::tests::pump_status_emit_sequence_over_write_sink
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6390149Z         PASS [   0.037s] ( 715/3325) spt::bin/spt rc::tests::over_surface_content_scrolls_and_never_shrinks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6455473Z         PASS [   0.023s] ( 716/3325) spt::bin/spt rc::tests::reassert_scanner_survives_split_across_chunks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6519744Z         PASS [   0.024s] ( 717/3325) spt::bin/spt rc::tests::reconnect_banner_clears_and_centers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6579898Z         PASS [   0.038s] ( 718/3325) spt::bin/spt rc::tests::public_attach_failure_maps_deadline_class_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6640005Z         PASS [   0.024s] ( 719/3325) spt::bin/spt rc::tests::reconnect_banner_shows_the_countdown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6669812Z         PASS [   0.024s] ( 720/3325) spt::bin/spt rc::tests::reconnect_remaining_secs_counts_down_ceil
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6729966Z         PASS [   0.034s] ( 721/3325) spt::bin/spt rc::tests::reassert_scanner_triggers_only_on_region_destroyers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6789830Z         PASS [   0.023s] ( 722/3325) spt::bin/spt rc::tests::reconnect_window_expiry_decision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6819597Z         PASS [   0.022s] ( 723/3325) spt::bin/spt rc::tests::status_assert_reserves_row1_then_repaints
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6872121Z         PASS [   0.031s] ( 724/3325) spt::bin/spt rc::tests::serve_eof_severed_vs_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6932107Z         PASS [   0.023s] ( 725/3325) spt::bin/spt rc::tests::status_repaint_exact_bytes_and_right_align
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.6999799Z         PASS [   0.023s] ( 726/3325) spt::bin/spt rc::tests::status_restore_exact_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7059805Z         PASS [   0.036s] ( 727/3325) spt::bin/spt rc::tests::status_row_marker_is_disabled_by_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7116668Z         PASS [   0.025s] ( 728/3325) spt::bin/spt rc::tests::teardown_matrix_postlude_precedes_prose_across_every_final_class
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7187597Z         PASS [   0.032s] ( 729/3325) spt::bin/spt rc::tests::status_update_size_repoints_geometry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7229813Z         PASS [   0.033s] ( 730/3325) spt::bin/spt rc::tests::submit_is_not_gated_on_scroll_position
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7309979Z         PASS [   0.022s] ( 731/3325) spt::bin/spt rc::tests::the_fido2_offer_stands_only_for_the_enrolled_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7369073Z         PASS [   0.030s] ( 732/3325) spt::bin/spt rc::tests::the_ceremony_overlay_shows_the_content_verbatim_and_names_the_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7410278Z         PASS [   0.024s] ( 733/3325) spt::bin/spt rc::tests::the_client_refuses_engine_room_viewports_and_qualified_targets_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7480113Z         PASS [   0.023s] ( 734/3325) spt::bin/spt rc::tests::the_prompt_row_hints_e_only_while_the_offer_stands
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7504513Z         PASS [   0.027s] ( 735/3325) spt::bin/spt roster::tests::ambiguity_is_scoped_to_the_nearest_ancestor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7570128Z         PASS [   0.025s] ( 736/3325) spt::bin/spt roster::tests::an_ambiguous_ancestor_resolves_to_none_in_either_candidate_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7640011Z         PASS [   0.029s] ( 737/3325) spt::bin/spt roster::tests::detect_self_id_endpoint_id_leg_is_label_only_and_perch_gated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7669988Z         PASS [   0.030s] ( 738/3325) spt::bin/spt roster::tests::detect_self_resolves_spt_hosted_perch_via_parent_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7730018Z         PASS [   0.040s] ( 739/3325) spt::bin/spt roster::tests::detect_self_by_ancestry_resolves_a_live_ancestor_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7789749Z         PASS [   0.248s] ( 740/3325) spt::bin/spt picker::view::tests::pick_status_line_four_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7831717Z         PASS [   0.041s] ( 741/3325) spt::bin/spt roster::tests::detect_self_by_ancestry_none_when_no_ancestor_owns_a_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7900294Z         PASS [   0.019s] ( 742/3325) spt::bin/spt roster::tests::enumerate_yields_offline_corrupt_row_for_unparseable_info
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.7960287Z         PASS [   0.154s] ( 743/3325) spt::bin/spt rc::tests::establish_attach_reuses_the_probes_carried_pump_conn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8009923Z         PASS [   0.046s] ( 744/3325) spt::bin/spt roster::tests::detect_self_id_resolves_identity_with_zero_git_spawns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8080214Z         PASS [   0.026s] ( 745/3325) spt::bin/spt roster::tests::match_self_by_ancestry_disambiguates_and_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8160400Z         PASS [   0.022s] ( 746/3325) spt::bin/spt sealverb::tests::mint_content_trims_like_send_and_refuses_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8210126Z         PASS [   0.042s] ( 747/3325) spt::bin/spt roster::tests::list_all_perch_dirs_enumerates_nested_psyche_for_self_resolution
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8239715Z         PASS [   0.023s] ( 748/3325) spt::bin/spt sealverb::tests::enroll_outcome_exit_zero_iff_admitted_and_details_ride_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8289821Z         PASS [   0.025s] ( 749/3325) spt::bin/spt roster::tests::the_ambiguity_diagnostic_names_every_tied_id_and_the_shared_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8349822Z         PASS [   0.030s] ( 750/3325) spt::bin/spt roster::tests::one_perch_matching_on_both_its_pids_still_resolves
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8409681Z         PASS [   0.032s] ( 751/3325) spt::bin/spt sealverb::tests::binding_subnet_rule_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8469891Z         PASS [   0.023s] ( 752/3325) spt::bin/spt sealverb::tests::mint_outcome_exit_zero_iff_admitted_and_details_ride_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8529987Z         PASS [   0.023s] ( 753/3325) spt::bin/spt sealverb::tests::sealed_dispatch_refusals_send_nothing_by_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8590087Z         PASS [   0.046s] ( 754/3325) spt::bin/spt roster::tests::parent_pid_candidates_stay_ancestry_gated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8650115Z         PASS [   0.026s] ( 755/3325) spt::bin/spt serveverb::tests::a_narrowed_entry_renders_its_audience_beside_ttl_and_origin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8710109Z         PASS [   0.029s] ( 756/3325) spt::bin/spt teardown::tests::an_unconfirmed_row_over_a_dead_root_is_stale_not_a_survivor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8769861Z         PASS [   0.031s] ( 757/3325) spt::bin/spt sealverb::tests::shared_pick_is_input_order_independent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8830021Z         PASS [   0.024s] ( 758/3325) spt::bin/spt teardown::tests::timeout_refuses_the_stamp_and_names_the_survivor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8889986Z         PASS [   0.577s] ( 759/3325) spt::bin/spt api::startup::tests::bind_listen_control_detach_keeps_the_earned_hosting_authority
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8950078Z         PASS [   0.038s] ( 760/3325) spt::bin/spt serveverb::tests::lexical_parent_paths_identify_the_same_reference
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.8989760Z         PASS [   0.098s] ( 761/3325) spt::bin/spt roster::tests::enumerate_nested_keeps_a_child_whose_name_has_no_kind_suffix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9039780Z         PASS [   0.033s] ( 762/3325) spt::bin/spt teardown::tests::topology_gate_is_controllable_true_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9099634Z         PASS [   0.032s] ( 763/3325) spt::bin/spt tests::broken_pipe_panic_classifier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9159853Z         PASS [   0.037s] ( 764/3325) spt::bin/spt tests::the_sized_stack_wrapper_maps_a_panic_to_the_main_thread_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9219988Z         PASS [   0.034s] ( 765/3325) spt::bin/spt trustwarnverb::tests::a_refusal_names_the_verb_the_endpoint_and_the_reason
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9279890Z         PASS [   0.032s] ( 766/3325) spt::bin/spt trustwarnverb::tests::the_gate_keys_on_whether_the_verb_writes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9339980Z         PASS [   0.029s] ( 767/3325) spt::bin/spt unlisted::tests::a_receipt_proven_cross_node_knock_renders_its_answer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9399977Z         PASS [   0.040s] ( 768/3325) spt::bin/spt trustwarnverb::tests::showing_the_warning_is_never_elevation_gated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9459853Z         PASS [   0.075s] ( 769/3325) spt::bin/spt teardown::tests::a_zombie_root_is_provably_gone_not_a_survivor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9519786Z         PASS [   0.022s] ( 770/3325) spt::bin/spt unlisted::tests::a_rule_only_row_has_no_node_to_route_to
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9579931Z         PASS [   0.040s] ( 771/3325) spt::bin/spt trustwarnverb::tests::writing_an_override_requires_confirmed_elevation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9615151Z         PASS [   0.024s] ( 772/3325) spt::bin/spt unlisted::tests::an_exclusion_outranks_the_strongest_evidence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9679947Z         PASS [   0.033s] ( 773/3325) spt::bin/spt unlisted::tests::an_exclusion_and_an_unheard_of_id_are_different_refusals
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9729812Z         PASS [   0.024s] ( 774/3325) spt::bin/spt unlisted::tests::an_inbound_knock_is_never_read_as_our_own_outbound_act
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9789858Z         PASS [   0.023s] ( 775/3325) spt::bin/spt unlisted::tests::contact_evidence_outside_the_window_produces_no_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9849856Z         PASS [   0.084s] ( 776/3325) spt::bin/spt teardown::tests::liveness_proof_needs_a_real_snapshot_and_finds_this_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9910047Z         PASS [   0.033s] ( 777/3325) spt::bin/spt unlisted::tests::an_unproven_cross_node_knock_says_no_answer_while_a_same_node_one_says_approved
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:51.9969875Z         PASS [   0.031s] ( 778/3325) spt::bin/spt unlisted::tests::listed_local_and_excluded_rows_are_dropped_and_the_rest_survive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0029654Z         PASS [   0.031s] ( 779/3325) spt::bin/spt unlisted::tests::no_cross_node_silence_is_ever_read_as_an_answer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0089848Z         PASS [   0.032s] ( 780/3325) spt::bin/spt unlisted::tests::no_evidence_phrase_claims_liveness
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0150112Z         PASS [   0.029s] ( 781/3325) spt::bin/spt unlisted::tests::no_knock_evidence_phrase_claims_liveness
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0210050Z         PASS [   0.020s] ( 782/3325) spt::bin/spt unlisted::tests::the_relative_stamp_is_coarse_and_has_no_zero_forms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0249795Z         PASS [   0.021s] ( 783/3325) spt::bin/spt unlisted::tests::the_route_refuses_an_excluded_id_and_admits_a_non_excluded_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0309819Z         PASS [   0.019s] ( 784/3325) spt::bin/spt unlisted::tests::the_strongest_provenance_labels_the_row_and_a_weaker_one_supplies_the_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0359801Z         PASS [   0.031s] ( 785/3325) spt::bin/spt unlisted::tests::rule_evidence_carries_no_node_and_contact_evidence_does
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0419950Z         PASS [   0.029s] ( 786/3325) spt-daemon access::tests::a_fork_grant_admits_fork_and_nothing_else_admits_fork
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0479874Z         PASS [   0.026s] ( 787/3325) spt-daemon access::tests::corrupt_store_degrades_closed_but_replies_survive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0539845Z         PASS [   0.028s] ( 788/3325) spt-daemon access::tests::a_sender_endpoint_rule_does_not_admit_a_fork
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0599786Z         PASS [   0.024s] ( 789/3325) spt-daemon access::tests::gate_feeds_the_proven_sender_endpoint_tier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0659801Z         PASS [   0.024s] ( 790/3325) spt-daemon access::tests::gate_decision_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0719615Z         PASS [   0.024s] ( 791/3325) spt-daemon access::tests::gate_is_per_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0779784Z         PASS [   0.024s] ( 792/3325) spt-daemon access::tests::reply_passes_where_unsolicited_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0819569Z         PASS [   0.032s] ( 793/3325) spt-daemon access::tests::discover_gate_discloses_per_viewer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0879733Z         PASS [   0.031s] ( 794/3325) spt-daemon access::tests::discover_gate_withholds_everything_while_degraded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0929943Z         PASS [   0.021s] ( 795/3325) spt-daemon access::tests::the_decision_helpers_split_pass_from_refusal_for_every_reason
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.0989840Z         PASS [   0.028s] ( 796/3325) spt-daemon access::tests::the_engine_room_refuses_even_this_nodes_own_unsolicited_inbound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1049713Z         PASS [   0.041s] ( 797/3325) spt-daemon access::tests::same_node_always_passes_without_minting
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1109985Z         PASS [   0.028s] ( 798/3325) spt-daemon access::tests::the_inbound_lock_answers_replies_only_and_only_while_controlled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1169852Z         PASS [   0.024s] ( 799/3325) spt-daemon activity::tests::a_state_change_owes_a_push_both_directions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1229958Z         PASS [   0.031s] ( 800/3325) spt-daemon access::tests::the_inbound_lock_is_reached_through_the_sender_stamped_entry_point
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1289854Z         PASS [   0.035s] ( 801/3325) spt-daemon access::tests::the_trust_warning_fires_only_for_an_entry_admitted_stranger
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1349874Z         PASS [   0.031s] ( 802/3325) spt-daemon access::tests::the_wire_origin_stamp_reaches_the_chain
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1409803Z         PASS [   0.030s] ( 803/3325) spt-daemon activity::tests::a_token_change_with_an_identical_state_owes_a_push
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1449986Z         PASS [   0.141s] ( 804/3325) spt::bin/spt api::startup::tests::bind_live_agent_over_prior_ready_agent_earns_online_on_controllable_with_preserved_type
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1499715Z         PASS [   0.022s] ( 805/3325) spt-daemon activity::tests::an_identical_observation_pushes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1559720Z         PASS [   0.049s] ( 806/3325) spt-daemon access::tests::the_pass_reason_names_which_arm_admitted_the_interaction
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1619673Z         PASS [   0.032s] ( 807/3325) spt-daemon activity::tests::an_owner_with_no_linked_shell_is_not_observed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1679693Z         PASS [   0.025s] ( 808/3325) spt-daemon activity::tests::observe_links_sees_only_online_shells_holding_a_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1739570Z         PASS [   0.034s] ( 809/3325) spt-daemon activity::tests::an_unseen_link_owes_a_push
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1799741Z         PASS [   0.032s] ( 810/3325) spt-daemon activity::tests::an_unstamped_owner_observes_undated_and_stays_silent_across_sweeps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1859691Z         PASS [   0.024s] ( 811/3325) spt-daemon activity::tests::remember_forgets_a_vanished_link_so_its_return_re_pushes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1919565Z         PASS [   0.035s] ( 812/3325) spt-daemon activity::tests::observe_links_on_an_absent_owlery_is_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.1979673Z         PASS [   0.075s] ( 813/3325) spt-daemon access::tests::the_engine_room_is_disclosed_only_to_the_viewers_it_chose
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2029506Z         PASS [   0.032s] ( 814/3325) spt-daemon activity::tests::the_diff_is_per_link_not_per_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2069795Z         PASS [   0.028s] ( 815/3325) spt-daemon activity::tests::the_flip_marker_is_idempotent_to_drop_and_taken_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2070945Z         PASS [   0.024s] ( 816/3325) spt-daemon adapter_update::tests::delegated_attested_delegates_command
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2071918Z         PASS [   0.026s] ( 817/3325) spt-daemon adapter_update::tests::file_pull_without_payload_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2072868Z         PASS [   0.032s] ( 818/3325) spt-daemon adapter_update::tests::delegated_unattested_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2073887Z         PASS [   0.026s] ( 819/3325) spt-daemon adapter_update::tests::gh_release_is_managed_cli_side_not_in_pure_plan
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2074975Z         PASS [   0.025s] ( 820/3325) spt-daemon answerop::tests::a_receipt_fires_only_from_the_node_the_knock_was_sent_to
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2076497Z         PASS [   0.048s] ( 821/3325) spt-daemon adapter_update::tests::file_pull_tampered_bytes_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2077464Z         PASS [   0.048s] ( 822/3325) spt-daemon adapter_update::tests::file_pull_verified_against_adapter_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2078389Z         PASS [   0.059s] ( 823/3325) spt-daemon adapter_update::tests::file_pull_wrong_key_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2079420Z         PASS [   0.022s] ( 824/3325) spt-daemon answerop::tests::an_unknown_outcome_token_acts_on_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2080369Z         PASS [   0.061s] ( 825/3325) spt-daemon adapter_update::tests::ripple_conducts_each_adapter_in_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2081603Z         PASS [   0.060s] ( 826/3325) spt-daemon adapter_update::tests::ripple_registered_uses_the_registered_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2082726Z         PASS [   0.023s] ( 827/3325) spt-daemon attach::tests::the_engine_room_has_no_viewport_and_takes_its_controls_from_home
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2129640Z         PASS [   0.036s] ( 828/3325) spt-daemon attach::tests::viewer_and_driving_intents_gate_on_different_surfaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2189586Z         PASS [   0.026s] ( 829/3325) spt-daemon attachment::tests::a_session_that_ended_is_forgotten_latch_and_all
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2249720Z         PASS [   0.028s] ( 830/3325) spt-daemon attachment::tests::a_relink_re_emits_current_state_as_a_link_push
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2309875Z         PASS [   0.023s] ( 831/3325) spt-daemon attachment::tests::an_endpoint_that_never_went_away_is_never_told_someone_returned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2369820Z         PASS [   0.025s] ( 832/3325) spt-daemon attachment::tests::a_vanished_link_is_forgotten_and_reads_as_new_when_it_returns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2429857Z         PASS [   0.026s] ( 833/3325) spt-daemon attachment::tests::a_viewer_arriving_on_a_standing_link_names_the_changed_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2470271Z         PASS [   0.020s] ( 834/3325) spt-daemon attachment::tests::an_unchanged_link_and_attachment_owes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2549955Z         PASS [   0.021s] ( 835/3325) spt-daemon attachment::tests::an_unseen_link_owes_a_link_push_with_no_changed_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2599888Z         PASS [   0.021s] ( 836/3325) spt-daemon attachment::tests::every_link_of_one_owner_gets_its_own_push
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2659592Z         PASS [   0.030s] ( 837/3325) spt-daemon attachment::tests::away_fires_once_after_five_unattached_minutes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2699684Z         PASS [   0.142s] ( 838/3325) spt::bin/spt api::startup::tests::bind_records_cwd_so_picker_can_group_by_project
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2759684Z         PASS [   0.029s] ( 839/3325) spt-daemon attachment::tests::return_fires_only_after_away_and_any_attachment_ends_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2799612Z         PASS [   0.029s] ( 840/3325) spt-daemon attachment::tests::the_away_text_is_the_tickets_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2819539Z         PASS [   0.024s] ( 841/3325) spt-daemon attachment::tests::the_changed_node_hint_decision_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2859570Z         PASS [   0.125s] ( 842/3325) spt-daemon answerop::tests::a_denial_disarms_but_only_when_it_is_proven
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2879727Z         PASS [   0.027s] ( 843/3325) spt-daemon autostart::tests::empty_config_is_a_pure_noop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2899671Z         PASS [   0.029s] ( 844/3325) spt-daemon autostart::tests::launched_token_is_one_complete_newline_terminated_write
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2929710Z         PASS [   0.030s] ( 845/3325) spt-daemon autostart::tests::launched_token_short_write_still_delivers_complete_text_in_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2959683Z         PASS [   0.035s] ( 846/3325) spt-daemon autostart::tests::unresolved_adapter_loud_skips_before_any_launch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2960941Z         PASS [   0.037s] ( 847/3325) spt::bin/spt api::startup::tests::bind_refuses_a_session_id_that_squats_a_psyche_custody_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.2999685Z         PASS [   0.025s] ( 848/3325) spt-daemon brain::tests::an_old_broker_wire_without_the_sync_key_keeps_every_legacy_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3039846Z         PASS [   0.046s] ( 849/3325) spt-daemon brain::tests::a_flagged_sync_frame_baselines_forward_never_backward_on_both_paths
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3069724Z         PASS [   0.027s] ( 850/3325) spt-daemon brain::tests::controller_resume_from_floor_refetches_after_a_gap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3099577Z         PASS [   0.035s] ( 851/3325) spt-daemon brain::tests::cold_brain_still_rejects_a_forward_output_gap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3129678Z         PASS [   0.031s] ( 852/3325) spt-daemon brain::tests::peer_reply_deadline_caps_below_carrier_deadline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3159685Z         PASS [   0.026s] ( 853/3325) spt-daemon brain::tests::reclassify_peer_reply_maps_timeout_off_poison
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3189699Z         PASS [   0.032s] ( 854/3325) spt-daemon brain::tests::skip_to_live_accepts_a_forward_seq_jump_via_snap_above
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3210076Z         PASS [   0.021s] ( 855/3325) spt-daemon brainproc::tests::appended_padding_flips_exe_hash
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3249563Z         PASS [   0.023s] ( 856/3325) spt-daemon brainproc::tests::backoff_doubles_on_fast_death_resets_when_healthy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3280414Z         PASS [   0.028s] ( 857/3325) spt-daemon brain::tests::viewer_snap_attach_accepts_a_forward_output_gap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3309399Z         PASS [   0.024s] ( 858/3325) spt-daemon brainproc::tests::bytes_gate_truth_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3329709Z         PASS [   0.027s] ( 859/3325) spt-daemon brainproc::tests::brain_child_args_carry_generation_and_reason
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3359548Z         PASS [   0.027s] ( 860/3325) spt-daemon brainproc::tests::consumer_gate_spawns_once_when_net_enabled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3379627Z         PASS [   0.026s] ( 861/3325) spt-daemon brainproc::tests::planned_restart_respawns_with_update_reason
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3409712Z         PASS [   0.019s] ( 862/3325) spt-daemon brainproc::tests::ready_but_wrong_bytes_rolls_back_never_promotes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3439649Z         PASS [   0.016s] ( 863/3325) spt-daemon brainproc::tests::ready_generation_at_reads_file_and_absent_is_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3469580Z         PASS [   0.019s] ( 864/3325) spt-daemon brainproc::tests::ready_exe_hash_parses_and_is_n1_readable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3470554Z         PASS [   0.011s] ( 865/3325) spt-daemon brainproc::tests::ready_generation_parses_stamp_and_fails_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3508324Z         PASS [   0.010s] ( 866/3325) spt-daemon brainproc::tests::rollback_running_version_is_prior_not_n_minus_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3559521Z         PASS [   0.032s] ( 867/3325) spt-daemon brainproc::tests::ready_with_matching_bytes_promotes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3569680Z         PASS [   0.019s] ( 868/3325) spt-daemon brainproc::tests::rolled_back_record_spawns_rollback_binary_on_a_fresh_supervisor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3599628Z         PASS [   0.026s] ( 869/3325) spt-daemon brainproc::tests::select_brain_exe_prefers_canonical_over_per_spawn_current_exe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3629543Z         PASS [   0.164s] ( 870/3325) spt::bin/spt api::startup::tests::bind_with_type_establishes_a_gateway_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3669663Z         PASS [   0.317s] ( 871/3325) spt-daemon answerop::tests::an_approval_notifies_a_plain_knocker_with_no_pre_authorization
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3689702Z         PASS [   0.043s] ( 872/3325) spt::bin/spt api::startup::tests::bind_with_unrelated_sid_is_unaffected_by_the_squat_guard
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3729515Z         PASS [   0.065s] ( 873/3325) spt-daemon brainproc::tests::start_reason_arg_round_trips_and_is_lenient
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3749622Z         PASS [   0.364s] ( 874/3325) spt-daemon answerop::tests::a_receipt_for_a_knock_we_never_sent_notifies_nobody
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3789658Z         PASS [   0.039s] ( 875/3325) spt::bin/spt api::startup::tests::empty_session_seed_refusal_spends_the_seed_no_restore
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3809693Z         PASS [   0.385s] ( 876/3325) spt-daemon answerop::tests::a_receipt_from_the_wrong_answerer_or_a_replayed_one_acts_on_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3849570Z         PASS [   0.231s] ( 877/3325) spt-daemon brainproc::tests::clear_before_spawn_defeats_exact_generation_stale_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3869608Z         PASS [   0.221s] ( 878/3325) spt-daemon brainproc::tests::ready_but_old_gen_never_drains_does_not_promote_rolls_back
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3899484Z         PASS [   0.043s] ( 879/3325) spt::bin/spt api::startup::tests::empty_session_seed_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3919553Z         PASS [   0.248s] ( 880/3325) spt-daemon brainproc::tests::ready_candidate_promotes_once_old_gen_drains
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.3920524Z         PASS [   0.033s] ( 881/3325) spt-daemon codec::tests::back_to_back_frames_decode_independently
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.4460158Z         PASS [   0.072s] ( 882/3325) spt-daemon codec::tests::frame_round_trips_through_buffer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.4820414Z         PASS [   0.034s] ( 883/3325) spt-daemon codec::tests::oversized_prefix_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.4859801Z         PASS [   0.265s] ( 884/3325) spt-daemon brainproc::tests::supervisor_owns_generation_and_stamps_start_reason
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.4970013Z         PASS [   0.256s] ( 885/3325) spt-daemon brainproc::tests::supervisor_respawns_brain_until_stopped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5030021Z         PASS [   0.181s] ( 886/3325) spt::bin/spt api::startup::tests::establish_stamps_controllable_by_hosting_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5110024Z         PASS [   0.029s] ( 887/3325) spt-daemon config::tests::crash_grace_is_config_driven
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5189982Z         PASS [   0.235s] ( 888/3325) spt-daemon brainproc::tests::trial_kills_alive_never_ready_candidate_before_rollback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5270196Z         PASS [   0.042s] ( 889/3325) spt-daemon config::tests::auto_suspend_knob_is_opt_in_default_off
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5279531Z         PASS [   0.027s] ( 890/3325) spt-daemon config::tests::detached_subnets_knob_defaults_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5329870Z         PASS [   0.239s] ( 891/3325) spt-daemon brainproc::tests::trial_promotes_on_ready_then_supervises_the_accepted_binary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5339630Z         PASS [   0.032s] ( 892/3325) spt::bin/spt api::startup::tests::fresh_bind_over_dead_life_needs_both_terminal_and_a_new_session
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5379714Z         PASS [   0.027s] ( 893/3325) spt-daemon config::tests::full_auto_update_is_gated_by_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5520041Z         PASS [   0.031s] ( 894/3325) spt-daemon config::tests::malformed_file_degrades_to_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5584450Z         PASS [   0.035s] ( 895/3325) spt-daemon config::tests::pulse_period_is_config_driven
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5639708Z         PASS [   0.037s] ( 896/3325) spt-daemon config::tests::missing_file_is_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5669758Z         PASS [   0.027s] ( 897/3325) spt-daemon config::tests::remove_startup_endpoint_takes_one_entry_and_reports_whether_there_was_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5699515Z         PASS [   0.035s] ( 898/3325) spt-daemon config::tests::relay_choice_is_config_driven
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5840935Z         PASS [   0.025s] ( 899/3325) spt-daemon config::tests::startup_endpoints_roundtrip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5860144Z         PASS [   0.027s] ( 900/3325) spt-daemon config::tests::upsert_startup_endpoint_appends_then_replaces_preserving_other_knobs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5969894Z         PASS [   0.045s] ( 901/3325) spt-daemon config::tests::save_load_roundtrip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.5999740Z         PASS [   0.027s] ( 902/3325) spt-daemon conn::tests::organic_write_failure_still_poisons_and_is_not_the_timeout_class
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6029639Z         PASS [   0.031s] ( 903/3325) spt-daemon conn::tests::conn_ids_are_unique_and_labels_stay_bounded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6049859Z         PASS [   0.445s] ( 904/3325) spt-daemon brainproc::tests::stale_generation_minus_one_ready_never_promotes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6171079Z         PASS [   0.031s] ( 905/3325) spt-daemon consent::tests::decide_honors_full_auto_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6209979Z         PASS [   0.037s] ( 906/3325) spt-daemon conn::tests::retirement_token_splits_deadline_from_organic_with_attribution_parity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6269682Z         PASS [   0.027s] ( 907/3325) spt-daemon crc_swap::tests::apply_rollback_never_strands
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6389901Z         PASS [   0.043s] ( 908/3325) spt-daemon consent::tests::no_live_session_resolves_to_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6419658Z         PASS [   0.039s] ( 909/3325) spt-daemon crc_swap::tests::apply_swaps_changed_creates_new_untouched_identical
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6459748Z         PASS [   0.030s] ( 910/3325) spt-daemon crc_swap::tests::crash_recovery_missing_target_keeps_last_good_old
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6509783Z         PASS [   0.028s] ( 911/3325) spt-daemon crc_swap::tests::displace_picks_fresh_old_name_and_gc_sweeps_stale
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6640150Z         PASS [   0.025s] ( 912/3325) spt-daemon crc_swap::tests::plan_recurses_nested_dirs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6659554Z         PASS [   0.025s] ( 913/3325) spt-daemon crc_swap::tests::plan_selects_only_changed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6699678Z         PASS [   0.024s] ( 914/3325) spt-daemon crc_swap::tests::swap_error_carries_op_and_paths
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.6959934Z         PASS [   0.098s] ( 915/3325) spt-daemon consent::tests::resolves_most_recently_active_live_session
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7013350Z         PASS [   0.030s] ( 916/3325) spt-daemon daemon::tests::an_ordinary_teardown_announces_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7049738Z         PASS [   0.051s] ( 917/3325) spt-daemon daemon::tests::a_scrubbed_variable_never_reaches_the_child
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7129823Z         PASS [   0.046s] ( 918/3325) spt-daemon daemon::tests::an_already_reaped_group_is_quiet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7189971Z         PASS [   0.021s] ( 919/3325) spt-daemon daemon::tests::ensure_declines_only_against_a_standing_operator_stop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7249930Z         PASS [   0.190s] ( 920/3325) spt::bin/spt api::startup::tests::fresh_create_over_a_stopped_life_reads_active_with_no_wake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7309885Z         PASS [   0.027s] ( 921/3325) spt-daemon daemon::tests::implicit_ensure_declines_without_clearing_the_inhibit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7379888Z         PASS [   0.017s] ( 922/3325) spt-daemon daemon::tests::null_std_handles_only_on_a_pipe_stderr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7425352Z         PASS [   0.024s] ( 923/3325) spt-daemon daemon::tests::net_retry_backoff_doubles_then_caps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7549976Z         PASS [   0.052s] ( 924/3325) spt-daemon daemon::tests::is_running_tracks_the_seed_channel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7608554Z         PASS [   0.021s] ( 925/3325) spt-daemon daemon::tests::the_refusal_line_names_the_remedy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7619581Z         PASS [   0.021s] ( 926/3325) spt-daemon daemon::tests::the_tree_loss_line_names_the_loss_not_the_syscall
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7739899Z         PASS [   0.021s] ( 927/3325) spt-daemon deadline::tests::advance_after_fire_steps_one_grid_normally_and_collapses_a_stall
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7789757Z         PASS [   0.019s] ( 928/3325) spt-daemon deadline::tests::corrupt_file_degrades_to_fresh
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7849827Z         PASS [   0.027s] ( 929/3325) spt-daemon deadline::tests::cold_and_crash_write_fresh_anchor_at_now
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.7909809Z         PASS [   0.479s] ( 930/3325) spt-daemon brainproc::tests::trial_rolls_back_after_budget_of_pre_ready_exits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8049732Z         PASS [   0.031s] ( 931/3325) spt-daemon deadline::tests::distinct_keys_do_not_cross_clobber
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8089673Z         PASS [   0.186s] ( 932/3325) spt-daemon crc_swap::tests::mapped_old_does_not_brick_apply_displaces_aside
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8139717Z         PASS [   0.086s] ( 933/3325) spt-daemon daemon::tests::spawn_env_additions_reach_the_child_and_keep_the_inherited_environment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8149718Z         PASS [   0.032s] ( 934/3325) spt-daemon deadline::tests::next_fire_on_grid_returns_now_and_advances_strictly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8199630Z         PASS [   0.038s] ( 935/3325) spt-daemon deadline::tests::next_fire_between_grid_points_rounds_up
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8219730Z         PASS [   0.039s] ( 936/3325) spt-daemon deadline::tests::next_fire_long_jump_collapses_missed_ticks_to_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8349854Z         PASS [   0.020s] ( 937/3325) spt-daemon deadline::tests::zero_interval_degrades_to_config_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8379724Z         PASS [   0.112s] ( 938/3325) spt::bin/spt api::startup::tests::fresh_create_with_no_prior_carries_no_rest_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8409599Z         PASS [   0.029s] ( 939/3325) spt-daemon deadline::tests::one_shot_fires_at_or_after_target_and_never_resets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8410602Z         PASS [   0.024s] ( 940/3325) spt-daemon deadline::tests::update_with_no_file_falls_back_fresh
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8449587Z         PASS [   0.035s] ( 941/3325) spt-daemon deadline::tests::next_fire_saturates_when_now_precedes_anchor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8469688Z         PASS [   0.034s] ( 942/3325) spt-daemon deadline::tests::update_keeps_anchor_and_refreshes_interval
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8532104Z         PASS [   0.185s] ( 943/3325) spt-daemon daemon::tests::a_tree_teardown_reaches_a_grandchild_the_service_spawned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8599901Z         PASS [   0.039s] ( 944/3325) spt-daemon deelevate::tests::election_resolves_real_users_never_root
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8629581Z         PASS [   0.021s] ( 945/3325) spt-daemon deelevate::tests::plan_spawn_deelevates_only_with_a_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8659563Z         PASS [   0.024s] ( 946/3325) spt-daemon deelevate::tests::env_overlay_keeps_explicit_spt_home_alive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8689569Z         PASS [   0.020s] ( 947/3325) spt-daemon digest::tests::common_prefix_len_finds_the_unchanged_head
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8719488Z         PASS [   0.028s] ( 948/3325) spt-daemon deelevate::tests::sudo_invoker_derivation_is_strict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8749611Z         PASS [   0.030s] ( 949/3325) spt::bin/spt api::startup::tests::listen_never_asserts_hosting_topology_and_bind_still_does
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8779507Z         PASS [   0.023s] ( 950/3325) spt-daemon digest::tests::log_less_two_origin_merge_interleaves_by_ts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8839703Z         PASS [   0.018s] ( 951/3325) spt-daemon digest::tests::supersede_collapses_cross_generation_replay_to_newest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8869505Z         PASS [   0.026s] ( 952/3325) spt-daemon digest::tests::projects_empty_for_a_sourceless_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8899464Z         PASS [   0.026s] ( 953/3325) spt-daemon digest::tests::merge_by_ts_interleaves_context
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8929524Z         PASS [   0.029s] ( 954/3325) spt-daemon digest::tests::projects_a_log_less_endpoint_from_digest_log
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8959415Z         PASS [   0.028s] ( 955/3325) spt-daemon digest::tests::resolve_config_precedence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.8989487Z         PASS [   0.016s] ( 956/3325) spt-daemon digest::tests::supersede_is_noop_on_disjoint_sessions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9019630Z         PASS [   0.031s] ( 957/3325) spt::bin/spt api::startup::tests::listen_online_gate_refuses_capability_only_online
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9109929Z         PASS [   0.027s] ( 958/3325) spt-daemon digest::tests::supersede_keeps_within_generation_repeats
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9139532Z         PASS [   0.025s] ( 959/3325) spt-daemon digesthub::tests::render_is_glanceable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9199753Z         PASS [   0.027s] ( 960/3325) spt-daemon digesthub::tests::project_and_publish_stores_latest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9229654Z         PASS [   0.026s] ( 961/3325) spt-daemon digesthub::tests::publish_delta_is_tail_then_full_refresh
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9259506Z         PASS [   0.031s] ( 962/3325) spt-daemon digesthub::tests::dropped_subscriber_is_pruned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9289599Z         PASS [   0.025s] ( 963/3325) spt::bin/spt api::startup::tests::listen_orphan_exit_line_names_self_and_parent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9319620Z         PASS [   0.039s] ( 964/3325) spt-daemon digest::tests::supersede_trims_divider_around_emptied_middle_generation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9379626Z         PASS [   0.027s] ( 965/3325) spt-daemon digesthub::tests::subscribe_returns_current_base
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9409876Z         PASS [   0.026s] ( 966/3325) spt-daemon dispatch::tests::a_fork_record_is_never_read_as_a_message_and_an_old_daemon_drops_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9439626Z         PASS [   0.023s] ( 967/3325) spt-daemon dispatch::tests::a_receipt_is_never_read_as_a_message_and_never_as_a_knock
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9469806Z         PASS [   0.027s] ( 968/3325) spt-daemon dispatch::tests::a_presence_record_classifies_as_its_own_family_and_never_as_a_message
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9529805Z         PASS [   0.029s] ( 969/3325) spt-daemon dispatch::tests::a_knock_record_routes_here_and_drops_cleanly_on_an_n1_daemon
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9589854Z         PASS [   5.660s] ( 970/3325) spt::translate_proof translate_proof_drives_the_real_translation_binary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9609863Z         PASS [   0.028s] ( 971/3325) spt-daemon dispatch::tests::a_redemption_is_dropped_by_an_old_daemon_where_a_knock_field_would_have_been_accepted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9619856Z         PASS [   0.106s] ( 972/3325) spt-daemon digest::tests::extractor_spans_sessions_with_a_boundary_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9680259Z         PASS [   0.023s] ( 973/3325) spt-daemon dispatch::tests::a_serve_for_request_opens_the_web_family_and_a_newer_kind_drops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9720148Z         PASS [   0.027s] ( 974/3325) spt-daemon dispatch::tests::a_web_request_is_never_read_as_a_message_and_a_newer_kind_drops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9779802Z         PASS [   0.020s] ( 975/3325) spt-daemon dispatch::tests::classifies_every_family_by_first_line_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9839961Z         PASS [   0.021s] ( 976/3325) spt-daemon dispatch::tests::breaker_trips_with_doubling_capped_window_and_resets_on_progress
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9899707Z         PASS [   0.022s] ( 977/3325) spt-daemon dispatch::tests::cold_enumeration_claims_at_most_the_pool_bound_per_poll
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9929746Z         PASS [   0.026s] ( 978/3325) spt-daemon dispatch::tests::classify_failure_seat_blocked_is_exactly_the_three_discipline_strings
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9959562Z         PASS [   0.027s] ( 979/3325) spt-daemon dispatch::tests::digest_pull_and_rest_never_read_as_each_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:52.9979594Z         PASS [   0.023s] ( 980/3325) spt-daemon dispatch::tests::dispatch_event_carries_the_complete_key_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0039701Z         PASS [   0.019s] ( 981/3325) spt-daemon dispatch::tests::finished_is_terminal_for_attach_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0079701Z         PASS [   0.024s] ( 982/3325) spt-daemon dispatch::tests::each_presence_word_has_exactly_one_authority
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0099626Z         PASS [   0.025s] ( 983/3325) spt-daemon dispatch::tests::feed_accumulator_commits_per_bound_never_per_chunk
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0139645Z         PASS [   0.020s] ( 984/3325) spt-daemon dispatch::tests::line_endpoint_resolves_each_family_identity_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0159606Z         PASS [   0.080s] ( 985/3325) spt::bin/spt api::startup::tests::live_perch_under_other_session_conflicts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0199703Z         PASS [   0.020s] ( 986/3325) spt-daemon dispatch::tests::only_the_old_broker_unknown_verb_answer_falls_back_to_the_peek
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0249916Z         PASS [   0.026s] ( 987/3325) spt-daemon dispatch::tests::oneway_seatblocked_strikes_out_terminal_while_request_reply_paces_forever
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0289697Z         PASS [   0.074s] ( 988/3325) spt-daemon dispatch::tests::an_unadmitted_asker_is_refused_at_this_nodes_own_seam
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0319767Z         PASS [   0.026s] ( 989/3325) spt-daemon dispatch::tests::seal_record_classifies_to_its_own_family_never_wanmsg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0350031Z         PASS [   0.023s] ( 990/3325) spt-daemon dispatch::tests::the_family_census_knows_about_the_answer_receipt
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0420224Z         PASS [   0.026s] ( 991/3325) spt-daemon dispatch::tests::seat_blocked_requeues_budget_free_paced_by_the_breaker_window
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0479917Z         PASS [   0.030s] ( 992/3325) spt-daemon dispatch::tests::the_family_census_is_bijective_with_the_enum
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0550056Z         PASS [   0.023s] ( 993/3325) spt-daemon docshost::tests::docs_url_encodes_the_canonical_node_prefix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0609877Z         PASS [   0.041s] ( 994/3325) spt::bin/spt api::startup::tests::missing_seed_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0669827Z         PASS [   0.028s] ( 995/3325) spt-daemon dispatch::tests::unknown_shapes_refuse_classification
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0719751Z         PASS [   0.028s] ( 996/3325) spt-daemon docshost::tests::content_types_cover_the_bundle_classes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0760027Z         PASS [   0.030s] ( 997/3325) spt-daemon dispatch::tests::transient_failure_requeues_bounded_and_terminal_never_reenters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0819643Z         PASS [   0.027s] ( 998/3325) spt-daemon docshost::tests::port_resolution_env_config_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0859884Z         PASS [   0.047s] ( 999/3325) spt-daemon dispatch::tests::the_receiver_decides_origin_and_flood_not_the_sender
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0909875Z         PASS [   0.017s] (1000/3325) spt-daemon drivehub::tests::a_following_op_is_served_when_nothing_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.0969796Z         PASS [   0.019s] (1001/3325) spt-daemon drivehub::tests::a_foreign_owlery_is_refused_pre_ack_under_its_own_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1039797Z         PASS [   0.020s] (1002/3325) spt-daemon docshost::tests::sanitizer_admits_pages_and_rejects_escapes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1130225Z         PASS [   0.019s] (1003/3325) spt-daemon drivehub::tests::activity_and_drive_never_clobber_each_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1159877Z         PASS [   0.039s] (1004/3325) spt-daemon docshost::tests::rig_ephemeral_docs_port_retires_a_configured_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1320349Z         PASS [   0.026s] (1005/3325) spt-daemon drivehub::tests::an_attach_frame_from_a_dead_link_generation_is_evicted_never_served
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1419997Z         PASS [   0.033s] (1006/3325) spt-daemon drivehub::tests::activity_take_is_latest_wins_and_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1540106Z         PASS [   0.053s] (1007/3325) spt::bin/spt api::startup::tests::no_seed_is_the_fallback_trigger_then_sid_binds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1579700Z         PASS [   0.032s] (1008/3325) spt-daemon drivehub::tests::clear_evicts_both_classes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1609770Z         PASS [   0.033s] (1009/3325) spt-daemon drivehub::tests::an_unknown_op_hangs_up_instead_of_being_swallowed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1670165Z         PASS [   0.033s] (1010/3325) spt-daemon drivehub::tests::clear_evicts_the_slot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1730000Z         PASS [   0.033s] (1011/3325) spt-daemon drivehub::tests::dead_generation_activity_frame_is_never_served
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1789933Z         PASS [   0.028s] (1012/3325) spt-daemon drivehub::tests::dead_generation_frame_is_never_served
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1843583Z         PASS [   0.031s] (1013/3325) spt-daemon drivehub::tests::drive_result_activity_key_is_additive_on_the_wire
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.1940266Z         PASS [   0.110s] (1014/3325) spt-daemon dispatch::tests::the_relay_observation_is_a_real_connect_and_a_gone_listener_never_reads_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2010072Z         PASS [   0.027s] (1015/3325) spt-daemon drivehub::tests::only_a_pre_ack_refusal_permits_a_second_spawn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2049621Z         PASS [   0.024s] (1016/3325) spt-daemon drivehub::tests::take_is_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2139912Z         PASS [   0.032s] (1017/3325) spt-daemon drivehub::tests::slots_are_per_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2189907Z         PASS [   0.038s] (1018/3325) spt::bin/spt api::startup::tests::only_an_unverified_refusal_names_its_escape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2299905Z         PASS [   0.026s] (1019/3325) spt-daemon drivehub::tests::the_launch_reply_shapes_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2360019Z         PASS [   0.025s] (1020/3325) spt-daemon drivehub::tests::the_three_ephemeral_classes_never_clobber_each_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2419686Z         PASS [   0.034s] (1021/3325) spt-daemon drivehub::tests::write_is_latest_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2479884Z         PASS [   0.030s] (1022/3325) spt-daemon effect::tests::apply_once_does_not_hold_the_journal_lock_across_effect
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2600019Z         PASS [   0.222s] (1023/3325) spt-daemon dispatch::tests::a_served_probe_leaves_the_targets_spool_and_inbox_byte_identical
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2659986Z         PASS [   0.027s] (1024/3325) spt::bin/spt api::startup::tests::only_gone_changes_the_conflict_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2759988Z         PASS [   0.041s] (1025/3325) spt-daemon effect::tests::applied_set_survives_reopen
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2849947Z         PASS [   0.011s] (1026/3325) spt-daemon effect::tests::minter_tag_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.2969992Z         PASS [   0.032s] (1027/3325) spt-daemon effect::tests::failed_effect_is_not_recorded_applied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3069854Z         PASS [   0.025s] (1028/3325) spt-daemon effect::tests::marker_is_single_source_and_frozen
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3099723Z         PASS [   0.025s] (1029/3325) spt-daemon effect::tests::only_pty_writes_are_ephemeral
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3159925Z         PASS [   0.021s] (1030/3325) spt-daemon effect::tests::open_creates_missing_parent_dirs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3280140Z         PASS [   0.027s] (1031/3325) spt::bin/spt api::startup::tests::parent_watchdog_triggers_exit_on_a_dead_parent_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3379959Z         PASS [   0.023s] (1032/3325) spt-daemon effect::tests::recover_is_migration_free
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3440071Z         PASS [   0.033s] (1033/3325) spt-daemon effect::tests::ptywrite_skips_the_durable_journal_write_while_netsend_persists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3469674Z         PASS [   0.029s] (1034/3325) spt-daemon effect::tests::second_apply_for_same_key_is_deduped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3499558Z         PASS [   0.045s] (1035/3325) spt-daemon effect::tests::poisoned_journal_lock_still_applies_subsequent_ops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3529742Z         PASS [   0.087s] (1036/3325) spt-daemon effect::tests::each_named_minter_namespaces_its_ops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3559595Z         PASS [   0.023s] (1037/3325) spt-daemon effect::tests::with_tracing_retry_no_retry_on_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3589565Z         PASS [   0.029s] (1038/3325) spt-daemon effect::tests::with_tracing_retry_passes_through_other_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3619802Z         PASS [   0.052s] (1039/3325) spt-daemon effect::tests::shellchan_and_rc_same_session_dont_collide
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3649647Z         PASS [   0.022s] (1040/3325) spt-daemon effect::tests::with_tracing_retry_terminal_is_public_language
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3689950Z         PASS [   0.025s] (1041/3325) spt-daemon effect::tests::with_tracing_retry_retries_once_on_no_longer_held
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3719618Z         PASS [   0.022s] (1042/3325) spt-daemon failedaddr::tests::a_null_address_records_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3779982Z         PASS [   0.029s] (1043/3325) spt-daemon failedaddr::tests::a_successful_dial_clears_the_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3830084Z         PASS [   0.020s] (1044/3325) spt-daemon firewall::tests::a_deny_line_naming_the_port_does_not_admit_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3870030Z         PASS [   0.022s] (1045/3325) spt-daemon failedaddr::tests::connecting_to_a_peer_clears_only_that_peers_records
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.3949983Z         PASS [   0.026s] (1046/3325) spt-daemon failedaddr::tests::an_expired_record_stops_matching_and_is_swept
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4021671Z         PASS [   0.021s] (1047/3325) spt-daemon failedaddr::tests::matches_the_exact_address_and_no_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4022877Z         PASS [   0.037s] (1048/3325) spt-daemon firewall::tests::a_disabled_manager_does_not_shadow_the_backend
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4049619Z         PASS [   0.131s] (1049/3325) spt-daemon effect::tests::gauntlet_is_exactly_once_across_brain_crashes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4119951Z         PASS [   0.020s] (1050/3325) spt-daemon firewall::tests::any_rule_of_the_name_admitting_the_binder_passes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4121076Z         PASS [   0.021s] (1051/3325) spt-daemon firewall::tests::active_but_unreadable_is_unverified_not_a_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4122221Z         PASS [   0.023s] (1052/3325) spt-daemon firewall::tests::a_reconcile_never_reaches_a_rule_it_was_not_asked_about
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4123219Z         PASS [   0.032s] (1053/3325) spt-daemon firewall::tests::a_live_manager_outranks_its_backend
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4124144Z         PASS [   0.030s] (1054/3325) spt-daemon firewall::tests::active_ufw_is_decided_against_the_bound_port
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4125502Z         PASS [   0.021s] (1055/3325) spt-daemon firewall::tests::no_active_firewall_reads_unknown_and_inactive_ones_are_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4126584Z         PASS [   0.019s] (1056/3325) spt-daemon firewall::tests::rule_for_another_binary_is_a_mismatch_not_a_pass
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4127672Z         PASS [   0.021s] (1057/3325) spt-daemon firewall::tests::the_reconcile_decides_create_repoint_nothing_and_cannot_elevate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4128812Z         PASS [   0.024s] (1058/3325) spt-daemon firewall::tests::rule_for_the_binder_passes_regardless_of_case_or_separators
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4130238Z         PASS [   0.031s] (1059/3325) spt-daemon firewall::tests::unanswerable_probes_read_unknown_and_no_rule_reads_missing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4131245Z         PASS [   0.133s] (1060/3325) spt::bin/spt api::startup::tests::post_spawn_bind_establishes_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4132166Z         PASS [   0.023s] (1061/3325) spt-daemon frame::tests::handshake_accepts_newer_brain_on_older_broker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4133034Z         PASS [   0.023s] (1062/3325) spt-daemon frame::tests::handshake_rejects_below_floor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4133960Z         PASS [   0.031s] (1063/3325) spt-daemon frame::tests::envelope_with_unknown_trailing_field_decodes_on_older_peer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4134909Z         PASS [   0.020s] (1064/3325) spt-daemon frame::tests::handshake_rejects_role_mismatch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4135887Z         PASS [   0.039s] (1065/3325) spt-daemon forkop::tests::forking_into_the_reserved_id_is_refused_before_the_mind_is_copied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4136882Z         PASS [   0.030s] (1066/3325) spt-daemon frame::tests::unknown_kind_is_not_a_decode_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4137739Z         PASS [   0.029s] (1067/3325) spt-daemon grants::tests::escalation_answers_apply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4169597Z         PASS [   0.022s] (1068/3325) spt-daemon grants::tests::escalation_ask_body_roundtrip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4199456Z         PASS [   0.024s] (1069/3325) spt-daemon grants::tests::preconsent_flags_author_grants
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4229586Z         PASS [   0.020s] (1070/3325) spt-daemon grants::tests::reserved_capabilities_refuse_even_when_granted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4259469Z         PASS [   0.034s] (1071/3325) spt-daemon grants::tests::no_session_escalates_with_none_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4289443Z         PASS [   0.026s] (1072/3325) spt-daemon grants::tests::ungranted_escalates_granted_allows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4319522Z         PASS [   0.022s] (1073/3325) spt-daemon harnesshost::tests::node_missing_reference_fails_loud
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4349475Z         PASS [   0.026s] (1074/3325) spt-daemon harnesshost::tests::mint_session_id_is_fresh_hex
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4379606Z         PASS [   0.030s] (1075/3325) spt-daemon harnesshost::tests::node_key_fills_advertised_label_in_session_template
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4409680Z         PASS [   0.026s] (1076/3325) spt-daemon harnesshost::tests::prepare_fails_closed_on_wrong_kind_missing_role_and_bad_template
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4439586Z         PASS [   0.025s] (1077/3325) spt-daemon harnesshost::tests::prepare_fills_env_inject_values_with_substitution
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4480484Z         PASS [   0.013s] (1078/3325) spt-daemon harnesshost::tests::prepare_selects_resume_template_on_resume_else_self
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4521567Z         PASS [   0.026s] (1079/3325) spt-daemon harnesshost::tests::prepare_fills_id_and_session_into_self_command
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4571669Z         PASS [   0.023s] (1080/3325) spt-daemon harnesshost::tests::prepare_resume_falls_back_to_self_when_no_resume_role
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4620032Z         PASS [   0.027s] (1081/3325) spt-daemon harnesshost::tests::provisional_session_id_recognizes_own_mint_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4649750Z         PASS [   0.021s] (1082/3325) spt-daemon harnesshost::tests::translation_binary_resolves_against_install_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4669125Z         PASS [   0.037s] (1083/3325) spt-daemon harnesshost::tests::prepare_threads_translation_binary_when_declared
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4689720Z         PASS [   0.024s] (1084/3325) spt-daemon iobus::tests::a_boundary_frame_carries_no_body_even_if_the_event_does
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4729975Z         PASS [   0.016s] (1085/3325) spt-daemon iobus::tests::io_frame_carries_kind_seq_and_truncation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4749651Z         PASS [   0.105s] (1086/3325) spt::bin/spt api::startup::tests::prebind_refusal_restores_the_seed_for_retry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4779844Z         PASS [   0.028s] (1087/3325) spt-daemon iobus::tests::a_failing_sink_never_suppresses_a_later_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4809600Z         PASS [   0.018s] (1088/3325) spt-daemon iobus::tests::io_frame_carries_the_mid_marker_only_when_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4810876Z         PASS [   0.026s] (1089/3325) spt-daemon iobus::tests::publish_fans_out_to_every_sink
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4811721Z         PASS [   0.028s] (1090/3325) spt-daemon iobus::tests::publishing_to_an_empty_bus_is_a_no_op
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4812667Z         PASS [   0.330s] (1091/3325) spt-daemon drivehub::tests::the_pre_ack_causes_are_three_distinct_diagnostics
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4813665Z         PASS [   0.020s] (1092/3325) spt-daemon iobus::tests::the_event_carries_its_span_marker_to_the_frame
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4814636Z         PASS [   0.023s] (1093/3325) spt-daemon iobus::tests::the_event_keeps_the_full_payload_the_frame_bounds_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4815640Z         PASS [   0.027s] (1094/3325) spt::bin/spt api::startup::tests::read_env_measured_capture_replaces_prior_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4816637Z         PASS [   0.020s] (1095/3325) spt-daemon knocknotif::tests::hidden_addressee_is_not_a_candidate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4839595Z         PASS [   0.025s] (1096/3325) spt-daemon knocknotif::tests::correlation_subnet_beats_first_visible
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4878054Z         PASS [   0.030s] (1097/3325) spt-daemon iobus::tests::the_frame_class_follows_the_kind_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4899896Z         PASS [   0.036s] (1098/3325) spt-daemon knocknotif::tests::courtesy_subnet_is_a_member_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4939899Z         PASS [   0.018s] (1099/3325) spt-daemon lanhost::tests::off_until_started_and_a_stop_with_nothing_to_stop_is_not_an_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4972270Z         PASS [   0.018s] (1100/3325) spt-daemon lanhost::tests::router_admits_three_routes_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.4989782Z         PASS [   0.019s] (1101/3325) spt-daemon lanhost::tests::port_resolution_and_rig_posture
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.5055277Z         PASS [   0.048s] (1102/3325) spt-daemon lanhost::tests::install_page_bakes_the_asked_for_triples_hex
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.5174891Z         PASS [   1.540s] (1103/3325) spt-daemon autostart::tests::a_persisted_reserved_id_default_is_never_replayed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.5330149Z         PASS [   0.043s] (1104/3325) spt-daemon lanhost::tests::the_production_entry_names_the_builtin_release_roots_and_the_t0_exe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.5570041Z         PASS [   0.053s] (1105/3325) spt-daemon lifecycle::tests::a_seeded_ingest_fault_survives_a_turn_success_after_a_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.5710005Z         PASS [   0.084s] (1106/3325) spt-daemon lanhost::tests::set_gate_admits_the_applied_set_and_names_each_refusal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6084412Z         PASS [   0.038s] (1107/3325) spt-daemon lifecycle::tests::base_keys_carries_single_subnet_no_home
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6220085Z         PASS [   0.104s] (1108/3325) spt-daemon lifecycle::tests::a_slotless_stamp_seeds_nothing_and_an_unknown_slot_is_ignored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6250190Z         PASS [   0.068s] (1109/3325) spt-daemon lifecycle::tests::any_kind_success_clears_timeouts_but_only_its_own_hard_counter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6290023Z         PASS [   0.236s] (1110/3325) spt-daemon inject::tests::shared_inject_leg_detects_spt_hosted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6390290Z         PASS [   0.314s] (1111/3325) spt-daemon grants::tests::escalation_notif_fires_to_most_recent_and_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6710381Z         PASS [   0.214s] (1112/3325) spt::bin/spt api::startup::tests::rebind_same_session_ok
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6781791Z         PASS [   0.054s] (1113/3325) spt-daemon lifecycle::tests::custody_survives_parent_boundary_and_reseed_clears
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.6835696Z         PASS [   0.294s] (1114/3325) spt-daemon inject::tests::has_parked_idle_spool_gates_on_idle_hosted_and_pending
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.7630095Z         PASS [   0.230s] (1115/3325) spt-daemon lifecycle::tests::an_ingest_consumes_the_standing_expectation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8390152Z         PASS [   0.216s] (1116/3325) spt-daemon lifecycle::tests::crash_signoff_tears_down_when_still_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8479978Z         PASS [   0.178s] (1117/3325) spt::bin/spt api::startup::tests::revive_preserves_prior_rest_state_and_dormant_anchor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8600776Z         PASS [   0.023s] (1118/3325) spt-daemon lifecycle::tests::event_turn_bound_follows_the_role_not_the_pulse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8669911Z         PASS [   0.252s] (1119/3325) spt-daemon lifecycle::tests::crash_signoff_spares_recovered_self
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8755006Z         PASS [   0.383s] (1120/3325) spt-daemon lifecycle::tests::a_declared_psyche_role_that_fails_still_strikes_and_stamps_no_absence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8839897Z         PASS [   0.023s] (1121/3325) spt-daemon lifecycle::tests::first_turn_psyche_context_is_never_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.8939985Z         PASS [   0.033s] (1122/3325) spt-daemon lifecycle::tests::harness_owner_gone_anchors_on_parent_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9059426Z         PASS [   0.264s] (1123/3325) spt-daemon lifecycle::tests::echo_fire_runs_child_in_endpoint_cwd_and_routes_brief
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9121876Z         PASS [   0.028s] (1124/3325) spt-daemon lifecycle::tests::manifest_cell_refresh_swaps_manifest_and_runtime
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9213512Z         PASS [   0.027s] (1125/3325) spt-daemon lifecycle::tests::node_key_fills_advertised_label_in_lifecycle_base_keys
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9239702Z         PASS [   0.020s] (1126/3325) spt-daemon lifecycle::tests::only_a_consumed_commune_owes_an_event
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9350171Z         PASS [   0.254s] (1127/3325) spt-daemon lifecycle::tests::echo_never_overwrites_an_authored_commune_drop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9450028Z         PASS [   0.019s] (1128/3325) spt-daemon lifecycle::tests::outcome_classifies_by_type_never_by_message
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9479786Z         PASS [   0.268s] (1129/3325) spt-daemon lifecycle::tests::echo_fires_without_a_recorded_endpoint_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9539718Z         PASS [   0.032s] (1130/3325) spt-daemon lifecycle::tests::orphan_watch_honors_stop_for_live_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9589856Z         PASS [   0.022s] (1131/3325) spt-daemon lifecycle::tests::outcome_names_its_leg_and_turn_failure_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9629788Z         PASS [   0.467s] (1132/3325) spt-daemon lifecycle::tests::a_manifest_without_the_psyche_role_skips_strike_free_and_says_so
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9631100Z         PASS [   0.019s] (1133/3325) spt-daemon lifecycle::tests::psyche_context_file_continue_is_zero_bytes_fresh_is_nonempty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9689997Z         PASS [   0.088s] (1134/3325) spt-daemon lifecycle::tests::ingest_hard_failures_stamp_even_while_turns_succeed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9709797Z         PASS [   0.022s] (1135/3325) spt-daemon lifecycle::tests::psyche_turn_keys_carry_custody_sids_and_context_file_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9759896Z         PASS [   0.022s] (1136/3325) spt-daemon lifecycle::tests::psyche_turn_strikes_exhausted_boundary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:53.9992155Z         PASS [   0.236s] (1137/3325) spt-daemon lifecycle::tests::empty_sweep_yields_no_outcome_while_a_real_ingest_yields_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0029716Z         PASS [   0.373s] (1138/3325) spt-daemon lifecycle::tests::declaring_the_role_clears_a_stored_absence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0039709Z         PASS [   0.156s] (1139/3325) spt::bin/spt api::startup::tests::revive_without_cwd_preserves_prior_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0187521Z         PASS [   0.056s] (1140/3325) spt-daemon lifecycle::tests::pulse_loop_is_config_paced_and_killable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0209689Z         PASS [   0.059s] (1141/3325) spt-daemon lifecycle::tests::pulse_loop_does_not_write_anchor_per_fire
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0220955Z         PASS [   0.052s] (1142/3325) spt-daemon lifecycle::tests::pulse_recency_and_auto_suspend_follow_resting_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0249566Z         PASS [   0.025s] (1143/3325) spt-daemon lifecycle::tests::reload_fires_on_disk_change
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0344739Z         PASS [   0.061s] (1144/3325) spt-daemon lifecycle::tests::pulse_loop_update_preserves_phase_crash_rebases
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0407408Z         PASS [   0.022s] (1145/3325) spt-daemon lifecycle::tests::reload_noop_without_install_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0440866Z         PASS [   0.040s] (1146/3325) spt::bin/spt api::startup::tests::seed_bind_records_seed_captured_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0481067Z         PASS [   0.027s] (1147/3325) spt-daemon lifecycle::tests::reload_keeps_last_good_on_unparseable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0489627Z         PASS [   0.024s] (1148/3325) spt-daemon lifecycle::tests::resolve_endpoint_drop_dir_cases
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0549711Z         PASS [   0.029s] (1149/3325) spt-daemon lifecycle::tests::reload_noop_when_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0700499Z         PASS [   0.020s] (1150/3325) spt-daemon lifecycle::tests::session_not_found_discriminates_reseed_from_strike
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0701712Z         PASS [   0.019s] (1151/3325) spt-daemon lifecycle::tests::spt_internal_decision_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0739839Z         PASS [   0.112s] (1152/3325) spt-daemon lifecycle::tests::psyche_turn_threads_parent_read_env_into_spawn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0769767Z         PASS [   0.030s] (1153/3325) spt::bin/spt api::startup::tests::seed_fail_eof_gives_actionable_stale_broker_hint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0939993Z         PASS [   0.024s] (1154/3325) spt-daemon lifecycle::tests::the_emitted_kinds_are_the_vocabularys_own
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.0969708Z         PASS [   0.020s] (1155/3325) spt::bin/spt api::startup::tests::seed_restorable_spends_dead_seeds_restores_recoverable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.1280401Z         PASS [   0.033s] (1156/3325) spt::bin/spt api::startup::tests::session_id_fallback_binds_live_perch_from_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.1319878Z         PASS [   0.060s] (1157/3325) spt-daemon lifecycle::tests::the_expectation_is_recorded_before_the_spawn_not_after
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.1630190Z         PASS [   0.035s] (1158/3325) spt::bin/spt api::startup::tests::session_id_fallback_refuses_a_psyche_custody_sid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.1770228Z         PASS [   0.201s] (1159/3325) spt-daemon lifecycle::tests::pulse_tick_ingests_drop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.1890145Z         PASS [   0.026s] (1160/3325) spt::bin/spt api::startup::tests::session_id_fallback_refuses_empty_sid_and_dead_anchor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.1919994Z         PASS [   0.062s] (1161/3325) spt-daemon lifecycle::tests::turn_budget_stamps_on_exhaustion_and_clears_on_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2010036Z         PASS [   0.130s] (1162/3325) spt-daemon lifecycle::tests::thrash_budget_trips_on_a_synthetic_failure_loop_without_touching_status
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2040142Z         PASS [   0.110s] (1163/3325) spt-daemon lifecycle::tests::timeout_budget_is_ten_deep_not_three
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2100067Z         PASS [   0.293s] (1164/3325) spt-daemon lifecycle::tests::orphan_watch_fires_on_dead_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2370374Z         PASS [   0.029s] (1165/3325) spt-daemon linkhost::tests::per_capability_act_gate_blocks_until_class_scoped_grant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2440346Z         PASS [   0.055s] (1166/3325) spt::bin/spt api::startup::tests::stale_seed_refusal_spends_the_seed_no_restore
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2510357Z         PASS [   0.056s] (1167/3325) spt-daemon linkhost::tests::force_on_an_offline_instance_is_the_plain_relink
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2760110Z         PASS [   0.250s] (1168/3325) spt-daemon lifecycle::tests::rest_edge_echo_success_clears_stale_psyche_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2940022Z         PASS [   0.046s] (1169/3325) spt::bin/spt api::startup::tests::stale_seed_with_dead_anchor_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.2999677Z         PASS [   0.250s] (1170/3325) spt-daemon lifecycle::tests::role_less_manifest_ticks_strike_free
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.3239948Z         PASS [   0.124s] (1171/3325) spt-daemon linkhost::tests::force_refuses_an_ephemeral_instance_and_moves_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.3459926Z         PASS [   0.057s] (1172/3325) spt::bin/spt api::startup::tests::successful_bind_consumes_the_seed_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.3769959Z         PASS [   0.080s] (1173/3325) spt-daemon linkhost::tests::run_action_honors_the_force_arg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4139984Z         PASS [   0.237s] (1174/3325) spt-daemon linkhost::tests::cmd_wakes_a_stale_online_persistent_instance
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4199693Z         PASS [   0.187s] (1175/3325) spt-daemon linkhost::tests::prepare_drive_is_live_or_drop_and_never_spools
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4299945Z         PASS [   0.429s] (1176/3325) spt-daemon lifecycle::tests::relative_commune_dir_resolves_against_endpoint_cwd_and_fills_project_branch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4449794Z         PASS [   0.015s] (1177/3325) spt-daemon machineid::tests::machine_id_hash_resolves_and_is_stable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4479634Z         PASS [   0.242s] (1178/3325) spt-daemon linkhost::tests::gateway_typed_owner_resolves_and_drives_keyed_on_id_not_type
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4509653Z         PASS [   0.025s] (1179/3325) spt-daemon machineid::tests::hash_is_domain_separated_and_stable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4559744Z         PASS [   0.180s] (1180/3325) spt-daemon linkhost::tests::run_action_drive_drops_offline_without_wake_or_spool
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4619803Z         PASS [   0.215s] (1181/3325) spt-daemon linkhost::tests::relink_refuses_a_live_instance_but_recovers_a_stale_online_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4679831Z         PASS [   5.219s] (1182/3325) spt::bin/spt cli::tests::a_remote_fork_refuses_delete_source_whole_rather_than_trimming_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4780071Z         PASS [   0.030s] (1183/3325) spt-daemon msg::tests::bytes_round_trip_through_payload
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4809703Z         PASS [   0.029s] (1184/3325) spt-daemon msg::tests::endpoint_injected_envelope_carries_delivered_and_spool_hint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4869830Z         PASS [   0.027s] (1185/3325) spt-daemon msg::tests::endpoint_input_frames_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4903839Z         PASS [   5.108s] (1186/3325) spt::bin/spt cli::tests::adapter_translate_proof_gates_on_commit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4929670Z         PASS [   0.025s] (1187/3325) spt-daemon msg::tests::evicted_envelope_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.4969718Z         PASS [   0.022s] (1188/3325) spt-daemon msg::tests::input_req_absent_ack_defaults_true_n_minus_1_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5004135Z         PASS [   0.168s] (1189/3325) spt-daemon linkhost::tests::run_action_refuses_gated_op_without_spooling
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5039553Z         PASS [   0.021s] (1190/3325) spt-daemon msg::tests::spawn_req_tolerates_unknown_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5049581Z         PASS [   0.022s] (1191/3325) spt-daemon msg::tests::presence_event_round_trips_and_tolerates_future_kind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5079467Z         PASS [   0.030s] (1192/3325) spt-daemon msg::tests::output_envelope_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5129654Z         PASS [   0.031s] (1193/3325) spt-daemon msg::tests::net_frames_round_trip_and_tolerate_unknown_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5159564Z         PASS [   0.039s] (1194/3325) spt-daemon msg::tests::input_req_ack_false_round_trips_faithfully
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5199834Z         PASS [   0.093s] (1195/3325) spt-daemon linkhost::tests::survivor_probe_separates_our_binary_from_a_recycled_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5259866Z         PASS [   0.040s] (1196/3325) spt-daemon msg::tests::output_sync_flag_defaults_absent_and_skips_when_false
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5309603Z         PASS [   0.025s] (1197/3325) spt-daemon msg::tests::two_phase_join_wire_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5369947Z         PASS [   0.036s] (1198/3325) spt-daemon msg::tests::stream_lifetime_is_additive_and_defaults_durable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5429875Z         PASS [   0.029s] (1199/3325) spt-daemon nethost::tests::begin_attach_refuses_only_while_a_poisoned_prior_still_drains
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5489621Z         PASS [   0.033s] (1200/3325) spt-daemon msg::tests::wire_decodes_old_shape_to_legacy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5610113Z         PASS [   0.034s] (1201/3325) spt-daemon nethost::tests::attach_replay_never_interleaves_with_concurrent_live_appends
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5669918Z         PASS [   0.041s] (1202/3325) spt-daemon nethost::tests::append_halts_at_first_failed_write_removes_the_seat_and_cancels_the_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5700540Z         PASS [   0.031s] (1203/3325) spt-daemon nethost::tests::displaced_writer_failure_never_cancels_the_successor_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5730185Z         PASS [   0.029s] (1204/3325) spt-daemon nethost::tests::finish_halts_and_removes_a_poisoned_seat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5800580Z         PASS [   0.029s] (1205/3325) spt-daemon nethost::tests::home_relay_reads_a_real_serialized_endpoint_addr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5839987Z         PASS [   0.529s] (1206/3325) spt-daemon lifecycle::tests::rest_event_fires_echo_once_and_wake_resurfaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5859927Z         PASS [   0.226s] (1207/3325) spt::bin/spt api::startup::tests::the_escape_the_refusal_names_actually_clears_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5879855Z         PASS [   0.065s] (1208/3325) spt-daemon nethost::tests::dispatch_stream_infos_excludes_local_and_retired_rows_server_side
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5934167Z         PASS [   0.031s] (1209/3325) spt-daemon nethost::tests::next_seq_counts_appends_not_logical_chunks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5949898Z         PASS [   0.206s] (1210/3325) spt-daemon linkhost::tests::run_action_relinks_drives_and_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.5999584Z         PASS [   0.057s] (1211/3325) spt-daemon nethost::tests::host_binds_endpoint_to_node_identity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6000911Z         PASS [   0.024s] (1212/3325) spt-daemon nethost::tests::opener_capture_gives_up_bounded_on_a_newline_less_stream
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6029863Z         PASS [   0.024s] (1213/3325) spt::bin/spt api::startup::tests::the_pid_role_is_stamped_from_the_entry_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6084829Z         PASS [   0.022s] (1214/3325) spt-daemon nethost::tests::opener_pins_first_line_across_full_ring_roll
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6099749Z         PASS [   0.012s] (1215/3325) spt-daemon nethost::tests::retentive_log_is_lossless_ordered_while_ordinary_log_overwrites
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6148652Z         PASS [   0.066s] (1216/3325) spt-daemon nethost::tests::op_maps_are_minter_namespaced
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6189960Z         PASS [   0.080s] (1217/3325) spt-daemon nethost::tests::loopback_conn_is_a_reused_singleton_that_cross_wires_a_stream_pair
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6300256Z         PASS [   0.045s] (1218/3325) spt-daemon nethost::tests::presence_log_mirrors_the_seat_discipline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6339963Z         PASS [   0.049s] (1219/3325) spt-daemon nethost::tests::overflow_detaches_without_lease_cancel_and_the_brain_resumes_from_cursor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6369782Z         PASS [   0.069s] (1220/3325) spt-daemon nethost::tests::open_class_routes_to_the_opener_row_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6579959Z         PASS [   0.062s] (1221/3325) spt::bin/spt api::startup::tests::valid_seed_binds_live_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6680160Z         PASS [   0.067s] (1222/3325) spt-daemon nethost::tests::retire_sweep_dismisses_the_seat_and_terminal_retire_drops_the_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6712943Z         PASS [   0.077s] (1223/3325) spt-daemon nethost::tests::retire_hides_the_row_while_active_rows_stay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6740344Z         PASS [   0.056s] (1224/3325) spt-daemon nethost::tests::send_stream_refuses_on_a_canceled_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6810061Z         PASS [   0.070s] (1225/3325) spt-daemon nethost::tests::retired_row_still_flushes_a_late_reply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.6960021Z         PASS [   0.067s] (1226/3325) spt-daemon nethost::tests::unsubscribe_releases_only_the_callers_seat_joins_writer_and_is_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.7180230Z         PASS [   0.211s] (1227/3325) spt-daemon nethost::tests::bounded_block_on_cuts_a_never_completing_op_with_an_ordinary_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.7579901Z         PASS [   0.140s] (1228/3325) spt-daemon nethost::tests::two_hosts_dial_over_loopback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.7950041Z         PASS [   0.287s] (1229/3325) spt-daemon nethost::tests::conn_close_sweeps_its_stream_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.7989793Z         PASS [   0.165s] (1230/3325) spt-daemon notif::tests::a_notify_opens_no_reply_window_under_its_display_label
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.9420145Z         PASS [   0.266s] (1231/3325) spt-daemon notif::tests::expired_row_is_auto_dismissed_at_boundary_not_surfaced
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.9489782Z         PASS [   0.280s] (1232/3325) spt-daemon notif::tests::an_absent_addressee_yields_no_target_rather_than_the_mra_winner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.9759963Z         PASS [   0.276s] (1233/3325) spt-daemon notif::tests::first_fire_declines_an_already_expired_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:54.9909903Z         PASS [   0.319s] (1234/3325) spt-daemon notif::tests::consent_decision_produces_notif_only_when_gated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.0390028Z         PASS [   0.047s] (1235/3325) spt-daemon notif::tests::notif_command_renders_all_keys_and_is_opt_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.0769990Z         PASS [   0.280s] (1236/3325) spt-daemon notif::tests::hidden_endpoint_boundary_surfaces_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.0809652Z         PASS [   0.363s] (1237/3325) spt-daemon notif::tests::first_fire_reaches_most_recent_visible_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.0899822Z         PASS [   0.461s] (1238/3325) spt-daemon notif::tests::a_boundary_surfaces_an_addressed_row_only_at_its_addressee
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.0959661Z         PASS [   0.148s] (1239/3325) spt-daemon notif::tests::no_live_endpoint_is_a_typed_no_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1029905Z         PASS [   0.345s] (1240/3325) spt-daemon notif::tests::first_fire_redirects_to_a_fresher_remote_winner_unmarked
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1169855Z         PASS [   0.020s] (1241/3325) spt-daemon notifgate::tests::an_unvalidatable_notify_passes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1229854Z         PASS [   0.327s] (1242/3325) spt-daemon notif::tests::first_fire_rides_the_quiet_window_not_the_live_stream
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1259614Z         PASS [   0.023s] (1243/3325) spt-daemon notifgate::tests::distinct_notifs_both_deliver
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1409983Z         PASS [   0.025s] (1244/3325) spt-daemon notifgate::tests::retain_preserves_order_of_the_survivors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1439687Z         PASS [   0.021s] (1245/3325) spt-daemon notifgate::tests::the_validity_gate_decision_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.1890226Z         PASS [   0.108s] (1246/3325) spt-daemon notif::tests::shell_notif_templates_render_for_attached_instances_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.2759911Z         PASS [   0.335s] (1247/3325) spt-daemon notif::tests::hidden_endpoint_is_never_the_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.2889809Z         PASS [   0.618s] (1248/3325) spt-daemon notif::tests::an_addressed_row_fires_at_its_addressee_and_nowhere_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.2969672Z         PASS [   0.324s] (1249/3325) spt-daemon notif::tests::node_scoped_first_fire_ignores_a_fresher_remote_winner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3089612Z         PASS [   0.021s] (1250/3325) spt-daemon pairhost::tests::a_re_postured_subnet_advises_and_never_applies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3299743Z         PASS [   0.020s] (1251/3325) spt-daemon pairhost::tests::joiner_clock_render_shows_step_offset_and_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3519736Z         PASS [   0.022s] (1252/3325) spt-daemon pairhost::tests::meet_failure_detail_concise_vs_verbose
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3719770Z         PASS [   0.228s] (1253/3325) spt-daemon notifsync::tests::node_scoped_rows_are_excluded_from_the_feed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3749604Z         PASS [   0.021s] (1254/3325) spt-daemon pairhost::tests::meet_final_retry_failing_surrenders_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3789668Z         PASS [   0.249s] (1255/3325) spt-daemon notifsync::tests::concurrent_dismiss_and_surface_commute_across_the_feed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3929793Z         PASS [   0.017s] (1256/3325) spt-daemon pairhost::tests::wire_errors_classify_for_the_guided_ux
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.3959602Z         PASS [   0.025s] (1257/3325) spt-daemon pairhost::tests::meet_retries_once_after_refresh_on_exhaustion
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4020003Z         PASS [   0.255s] (1258/3325) spt-daemon notifsync::tests::feed_converges_two_stores_and_dismiss_replicates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4079757Z         PASS [   0.023s] (1259/3325) spt-daemon pairhost::tests::the_advisory_says_nothing_was_applied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4150743Z         PASS [   0.019s] (1260/3325) spt-daemon presence::tests::snapshot_loading_degrades_on_junk
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4179794Z         PASS [   0.122s] (1261/3325) spt-daemon pairhost::tests::an_advisory_records_the_sighting_and_still_applies_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4275798Z         PASS [   0.238s] (1262/3325) spt-daemon notifsync::tests::non_member_subnet_record_never_materializes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4349762Z         PASS [   0.042s] (1263/3325) spt-daemon presence::tests::mra_degrades_to_local_and_skips_noise_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4379612Z         PASS [   0.041s] (1264/3325) spt-daemon presence::tests::mra_joins_local_and_gossiped_legs_under_one_max
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4499807Z         PASS [   0.051s] (1265/3325) spt-daemon presence::tests::subnet_scope_gates_both_legs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4529721Z         PASS [   0.032s] (1266/3325) spt-daemon projwriter::tests::cold_construct_spawns_no_git_and_first_cycle_publishes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4619997Z         PASS [   0.034s] (1267/3325) spt-daemon projwriter::tests::corrupt_index_is_repaired_and_counted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.4950180Z         PASS [   0.218s] (1268/3325) spt-daemon notifsync::tests::untrusted_and_cross_subnet_origins_are_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.5150052Z         PASS [   0.080s] (1269/3325) spt-daemon projwriter::tests::cwd_invalidation_evicts_shared_cache_entry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.5510123Z         PASS [   0.460s] (1270/3325) spt-daemon notif::tests::suppression_window_holds_cross_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.5664775Z         PASS [   0.528s] (1271/3325) spt-daemon notif::tests::resurface_delivers_undismissed_with_gates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.5719908Z         PASS [   0.023s] (1272/3325) spt-daemon propagate::tests::classifier_maps_every_status_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.5811524Z         PASS [   0.504s] (1273/3325) spt-daemon notif::tests::rollback_notif_is_loud_and_resurfaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.5959866Z         PASS [   0.145s] (1274/3325) spt-daemon projwriter::tests::ordinary_commit_is_noop_config_change_rederives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.6630012Z         PASS [   1.120s] (1275/3325) spt-daemon nethost::tests::loopback_tunnel_backpressures_without_loss
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.7049903Z         PASS [   0.257s] (1276/3325) spt-daemon projwriter::tests::failed_cycle_preserves_last_known_good
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.7199936Z         PASS [   0.281s] (1277/3325) spt-daemon projwriter::tests::endpoint_events_patch_rows_and_drop_purged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.7349901Z         PASS [   0.240s] (1278/3325) spt-daemon projwriter::tests::warm_start_unchanged_generation_scans_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8072740Z         PASS [   0.241s] (1279/3325) spt-daemon psyrelay::tests::empty_and_oversize_bodies_drop_typed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8259824Z         PASS [   0.230s] (1280/3325) spt-daemon psyrelay::tests::null_stdout_driver_fails_the_guard
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8319902Z         PASS [   0.022s] (1281/3325) spt-daemon pump::health::tests::a_failing_peer_whose_node_the_registry_reports_offline_reads_absent_not_degraded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8471311Z         PASS [   0.022s] (1282/3325) spt-daemon pump::health::tests::a_non_target_connection_never_counts_and_disconnects_mirror_the_conn_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8509621Z         PASS [   0.266s] (1283/3325) spt-daemon psyrelay::tests::notify_without_live_endpoint_is_pending
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8539771Z         PASS [   0.023s] (1284/3325) spt-daemon pump::health::tests::a_subnet_leave_re_derives_the_live_count_without_disconnecting_anybody
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8719965Z         PASS [   0.025s] (1285/3325) spt-daemon pump::health::tests::degraded_on_all_peer_failure_healthy_only_on_real_progress
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8749971Z         PASS [   0.026s] (1286/3325) spt-daemon pump::health::tests::a_target_leaving_the_roster_drops_its_failure_and_can_return_the_node_to_green
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8789789Z         PASS [   0.020s] (1287/3325) spt-daemon pump::health::tests::five_of_seven_failing_behind_two_live_peers_is_degraded_partial_never_healthy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8879772Z         PASS [   0.372s] (1288/3325) spt-daemon projwriter::tests::writer_thread_debounces_burst_into_one_cycle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8969814Z         PASS [   0.022s] (1289/3325) spt-daemon pump::health::tests::one_unaccounted_failing_peer_holds_the_degraded_partial_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.8999819Z         PASS [   0.023s] (1290/3325) spt-daemon pump::health::tests::one_peer_reconnecting_narrows_the_verdict_without_restarting_the_incident_clock
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9016551Z         PASS [   0.025s] (1291/3325) spt-daemon pump::health::tests::health_file_roundtrip_and_degrade
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9059565Z         PASS [   0.334s] (1292/3325) spt-daemon psyrelay::tests::notify_reaches_own_user_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9109990Z         PASS [   0.024s] (1293/3325) spt-daemon pump::health::tests::peers_absent_replaces_only_a_degraded_verdict_and_never_outlives_its_target
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9179685Z         PASS [   0.020s] (1294/3325) spt-daemon pump::health::tests::stage_parses_from_attributed_reasons
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9209837Z         PASS [   0.025s] (1295/3325) spt-daemon pump::health::tests::registry_admit_stamp_survives_restart_rounds_and_never_regresses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9230744Z         PASS [   0.024s] (1296/3325) spt-daemon pump::health::tests::stale_gossip_forces_the_conservative_read_even_with_every_node_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9269483Z         PASS [   0.263s] (1297/3325) spt-daemon psyrelay::tests::prose_only_relays_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9280711Z         PASS [   0.022s] (1298/3325) spt-daemon pump::registry::tests::disclosable_lines_keeps_the_per_subnet_filter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9449958Z         PASS [   0.023s] (1299/3325) spt-daemon pump::registry::tests::legacy_allow_surfaces_shape_discloses_advert_to_third_party
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9494517Z         PASS [   0.035s] (1300/3325) spt-daemon pump::registry::tests::disclosable_lines_pushes_the_engine_room_only_to_its_chosen_viewer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9520694Z         PASS [   0.023s] (1301/3325) spt-daemon pump::registry::tests::poll_wake_takes_the_advertise_marker_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9569891Z         PASS [   0.033s] (1302/3325) spt-daemon pump::registry::tests::discover_gate_filters_the_advert_push_per_viewer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9599549Z         PASS [   0.540s] (1303/3325) spt-daemon projwriter::tests::batched_complexity_counters_hold
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9689868Z         PASS [   0.022s] (1304/3325) spt-daemon pump::update::tests::the_retire_predicate_keeps_ahead_and_unparseable_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9719746Z         PASS [   0.025s] (1305/3325) spt-daemon pump::update::tests::advertised_version_finds_dotted_tokens_and_refuses_counter_shapes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9759662Z         PASS [   0.254s] (1306/3325) spt-daemon psyrelay::tests::reply_without_target_is_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9760727Z         PASS [   0.026s] (1307/3325) spt-daemon pump::update::tests::version_ge_compares_dotted_versions_and_rejects_garbage
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9805582Z         PASS [   0.026s] (1308/3325) spt-daemon reap::tests::reap_without_enroll_is_noop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9909893Z         PASS [   0.023s] (1309/3325) spt-daemon reconcile::tests::active_node_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9940052Z         PASS [   0.022s] (1310/3325) spt-daemon reconcile::tests::double_active_tiebreaks_deterministically
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9969685Z         PASS [   0.045s] (1311/3325) spt-daemon reap::tests::group_reaps_enrolled_child_and_grandchild
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:55.9999090Z         PASS [   0.027s] (1312/3325) spt-daemon reconcile::tests::fallback_lowest_non_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.0039652Z         PASS [   0.025s] (1313/3325) spt-daemon reconcile::tests::no_rows_reconciles_locally
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.0460156Z         PASS [   0.124s] (1314/3325) spt-daemon pump::registry::tests::fire_due_rotations_rotates_due_and_leaves_pending
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.0610001Z         PASS [   0.356s] (1315/3325) spt-daemon psyrelay::tests::reply_relays_to_inbound_sender
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.0859912Z         PASS [   0.158s] (1316/3325) spt-daemon pump::registry::tests::pre_round_sweeps_and_refreshes_adverts_each_round
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1110228Z         PASS [   0.115s] (1317/3325) spt-daemon redeemop::tests::a_node_code_answers_under_the_engine_rooms_seat_where_an_endpoint_code_cannot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1149787Z         PASS [   0.122s] (1318/3325) spt-daemon redeemop::tests::a_mint_armed_record_writes_no_rule_where_the_duplicate_would_show
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1239706Z         PASS [   0.124s] (1319/3325) spt-daemon redeemop::tests::a_policy_refusal_says_nothing_and_leaves_the_code_unspent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1359993Z         PASS [   0.024s] (1320/3325) spt-daemon redeemop::tests::every_cause_of_refusal_emits_the_identical_line_and_names_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1659818Z         PASS [   0.042s] (1321/3325) spt-daemon registryhost::tests::admitted_feeds_stamp_the_heard_map
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1729898Z         PASS [   0.113s] (1322/3325) spt-daemon redeemop::tests::a_wire_redemption_binds_the_stamped_redeemer_and_never_the_claimed_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.1989999Z         PASS [   0.216s] (1323/3325) spt-daemon redeemop::tests::a_bare_terminal_presenter_binds_the_narrow_human_subject
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2019761Z         PASS [   0.116s] (1324/3325) spt-daemon redeemop::tests::an_attributable_surface_binds_the_sender_and_a_non_attributable_one_binds_the_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2109656Z         PASS [   0.038s] (1325/3325) spt-daemon registryhost::tests::advertised_status_ignores_host_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2199918Z         PASS [   0.752s] (1326/3325) spt-daemon projwriter::tests::parity_full_ordered_list_vs_legacy_oracle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2319771Z         PASS [   0.497s] (1327/3325) spt-daemon psyrelay::tests::spoofed_routing_is_stripped_and_restamped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2320890Z         PASS [   0.067s] (1328/3325) spt-daemon registryhost::tests::advertise_local_stamps_the_node_label
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2369770Z         PASS [   0.102s] (1329/3325) spt-daemon registryhost::tests::advertise_local_scans_and_respects_visibility
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2540022Z         PASS [   0.021s] (1330/3325) spt-daemon registryhost::tests::apply_feed_flips_only_on_observed_transition_to_active
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2599863Z         PASS [   0.025s] (1331/3325) spt-daemon registryhost::tests::apply_feed_batch_writes_snapshots_once_with_per_kind_semantics_parity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2629587Z         PASS [   0.025s] (1332/3325) spt-daemon registryhost::tests::apply_feed_gates_and_merges_under_the_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2649871Z         PASS [   0.066s] (1333/3325) spt-daemon registryhost::tests::advertised_status_splits_unbound_warm_from_cold_suspended
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2830104Z         PASS [   0.020s] (1334/3325) spt-daemon registryhost::tests::evict_silent_peers_drops_unheard_rows_and_rewrites_snapshots
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2859569Z         PASS [   0.031s] (1335/3325) spt-daemon registryhost::tests::apply_node_labels_gates_and_merges
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.2899715Z         PASS [   0.027s] (1336/3325) spt-daemon registryhost::tests::evict_aged_offline_rows_reaps_ghosts_and_rewrites_snapshots
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3020012Z         PASS [   0.099s] (1337/3325) spt-daemon registryhost::tests::advertisement_carries_both_authored_blurb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3049749Z         PASS [   0.314s] (1338/3325) spt-daemon redeemop::tests::a_foreign_presentation_of_a_spent_code_still_gets_the_one_refusal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3089681Z         PASS [   0.092s] (1339/3325) spt-daemon registryhost::tests::advertisement_follows_resting_transitions_epoch_bumped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3139780Z         PASS [   0.022s] (1340/3325) spt-daemon registryhost::tests::gossip_controller_node_covers_any_controller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3141054Z         PASS [   0.309s] (1341/3325) spt-daemon redeemop::tests::a_repeat_of_the_same_exchange_echoes_redeemed_and_writes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3179769Z         PASS [   0.021s] (1342/3325) spt-daemon registryhost::tests::recent_projects_cap_fires_on_output_length_not_scanned_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3239976Z         PASS [   0.058s] (1343/3325) spt-daemon registryhost::tests::erased_perch_is_advertised_offline_not_left_active
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3269693Z         PASS [   0.106s] (1344/3325) spt-daemon registryhost::tests::advertisement_carries_the_presence_datum
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3299822Z         PASS [   0.215s] (1345/3325) spt-daemon redeemop::tests::the_minters_arming_comes_back_as_a_request_and_opens_nothing_here
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3349631Z         PASS [   0.028s] (1346/3325) spt-daemon registryhost::tests::recent_projects_derive_once_per_distinct_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3373176Z         PASS [   0.031s] (1347/3325) spt-daemon registryhost::tests::repair_evict_tombstones_roster_snapshot_and_notices
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3409772Z         PASS [   0.053s] (1348/3325) spt-daemon registryhost::tests::evict_silent_peers_never_touches_own_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3421304Z         PASS [   0.033s] (1349/3325) spt-daemon registryhost::tests::superseded_requires_label_and_machine_id_under_other_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3540117Z         PASS [   0.022s] (1350/3325) spt-daemon relcache::tests::applied_state_two_phase_round_trips_and_degrades
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3589832Z         PASS [   0.015s] (1351/3325) spt-daemon relcache::tests::single_platform_stamp_is_explicit_and_cleared_on_restage
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3624617Z         PASS [   0.312s] (1352/3325) spt-daemon redeemop::tests::a_wire_redemption_addresses_its_courtesy_to_the_minter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3669720Z         PASS [   0.023s] (1353/3325) spt-daemon relcache::tests::partial_update_set_can_serve_held_platform_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3679660Z         PASS [   0.029s] (1354/3325) spt-daemon relcache::tests::docs_bundle_stages_loads_and_clears_independently
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3778374Z         PASS [   0.022s] (1355/3325) spt-daemon relcache::tests::stage_round_trips_and_restage_replaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3814874Z         PASS [   0.020s] (1356/3325) spt-daemon relcache::tests::torn_or_corrupt_stage_offers_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3859767Z         PASS [   0.064s] (1357/3325) spt-daemon registryhost::tests::with_epoch_is_the_one_canonical_counter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3889592Z         PASS [   0.023s] (1358/3325) spt-daemon relcache::tests::update_set_round_trips_and_loads_by_platform
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3963761Z         PASS [   0.022s] (1359/3325) spt-daemon release::tests::current_platform_is_registered_or_unknown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.3979542Z         PASS [   0.021s] (1360/3325) spt-daemon release::tests::docs_entry_is_additive_and_verifies_exact_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4127607Z         PASS [   0.045s] (1361/3325) spt-daemon release::tests::builtin_keys_merge_and_revoke_under_file_overlay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4149577Z         PASS [   0.054s] (1362/3325) spt-daemon release::tests::artifact_digest_mismatch_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4189492Z         PASS [   0.021s] (1363/3325) spt-daemon release::tests::known_triples_project_the_registry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4219458Z         PASS [   0.023s] (1364/3325) spt-daemon release::tests::hex_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4249741Z         PASS [   0.110s] (1365/3325) spt-daemon registryhost::tests::the_engine_room_is_absent_from_the_advertisement_until_it_chooses_a_viewer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4291714Z         PASS [   0.055s] (1366/3325) spt-daemon release::tests::channel_mismatch_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4321071Z         PASS [   1.774s] (1367/3325) spt::bin/spt rc::tests::attach_viewport_reconnects_across_a_broker_bounce
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4340167Z         PASS [   0.052s] (1368/3325) spt-daemon release::tests::expired_metadata_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4399928Z         PASS [   0.133s] (1369/3325) spt-daemon registryhost::tests::recent_projects_for_dedups_newest_first_excludes_spt_internal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4400944Z         PASS [   0.028s] (1370/3325) spt-daemon release::tests::musl_platform_registered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4439621Z         PASS [   0.021s] (1371/3325) spt-daemon release::tests::revoked_key_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4469684Z         PASS [   0.022s] (1372/3325) spt-daemon release::tests::production_policy_loads_fail_closed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4499614Z         PASS [   0.023s] (1373/3325) spt-daemon release::tests::shipped_builtin_table_is_well_formed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4559641Z         PASS [   0.022s] (1374/3325) spt::bin/spt rc::tests::broker_host_child
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4799860Z         PASS [   0.043s] (1375/3325) spt-daemon release::tests::update_set_artifact_mismatch_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4829718Z         PASS [   0.042s] (1376/3325) spt-daemon release::tests::update_set_tampering_breaks_whole_set_signature
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4889632Z         PASS [   0.059s] (1377/3325) spt-daemon release::tests::tampered_metadata_fails_signature
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4949738Z         PASS [   0.059s] (1378/3325) spt-daemon release::tests::untrusted_key_is_unknown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.4979613Z         PASS [   0.049s] (1379/3325) spt-daemon release::tests::update_set_verifies_and_selects_platform_artifact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5069823Z         PASS [   0.060s] (1380/3325) spt-daemon release::tests::update_set_missing_platform_is_typed_rejection
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5129708Z         PASS [   0.066s] (1381/3325) spt-daemon release::tests::update_set_channel_and_rollback_gates_hold
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5189642Z         PASS [   0.093s] (1382/3325) spt-daemon release::tests::non_monotonic_version_is_rollback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5279668Z         PASS [   0.022s] (1383/3325) spt-daemon resting::tests::apply_event_miss_message_is_single_sourced
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5399885Z         PASS [   0.054s] (1384/3325) spt-daemon release::tests::valid_release_verifies_and_artifact_matches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5460059Z         PASS [   0.046s] (1385/3325) spt-daemon resting::tests::apply_event_echo_failure_is_loud_but_state_persists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5489731Z         PASS [   0.034s] (1386/3325) spt-daemon resting::tests::apply_event_no_spurious_echo_on_cold_void_suspend
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5579979Z         PASS [   0.022s] (1387/3325) spt-daemon resting::tests::auto_suspend_counts_from_dormancy_onset_and_is_opt_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5639823Z         PASS [   0.038s] (1388/3325) spt-daemon resting::tests::apply_event_wakes_a_cold_void_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5641020Z         PASS [   0.056s] (1389/3325) spt-daemon resting::tests::apply_event_fires_echo_once_per_rest_edge_and_wake_on_wake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5700233Z         PASS [   0.022s] (1390/3325) spt-daemon resting::tests::freshness_pull_marker_is_taken_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5729718Z         PASS [   0.079s] (1391/3325) spt-daemon resting::tests::apply_event_auto_suspends_under_the_resolved_chain
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5759532Z         PASS [   0.030s] (1392/3325) spt-daemon resting::tests::effective_rest_state_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5819839Z         PASS [   0.088s] (1393/3325) spt-daemon release::tests::verify_detached_signs_raw_artifact_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5849683Z         PASS [   0.027s] (1394/3325) spt-daemon resting::tests::knob_chain_resolves_global_node_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5879676Z         PASS [   0.013s] (1395/3325) spt-daemon rollback_compat::tests::pre_ready_durable_files_are_additive_and_n1_readable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5919751Z         PASS [   0.262s] (1396/3325) spt-daemon relay::tests::run_honors_stop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5977644Z         PASS [   0.022s] (1397/3325) spt-daemon resting::tests::transition_table_matches_the_context_model
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.5989702Z         PASS [   0.013s] (1398/3325) spt-daemon sealsync::tests::emit_carries_only_the_named_subnets_records
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6009773Z         PASS [   0.063s] (1399/3325) spt-daemon resting::tests::deferred_held_keys_on_the_durable_rest_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6019686Z         PASS [   0.033s] (1400/3325) spt-daemon resting::tests::route_rest_event_contract_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6130270Z         PASS [   0.021s] (1401/3325) spt-daemon sealsync::tests::enrollment_gate_arms_drop_fail_closed_and_collision_keeps_existing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6146749Z         PASS [   0.024s] (1402/3325) spt-daemon sealsync::tests::enrollment_feed_converges_scoped_and_replay_noops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6179763Z         PASS [   0.303s] (1403/3325) spt-daemon relay::tests::relay_backlog_never_drains_active_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6189755Z         PASS [   0.051s] (1404/3325) spt-daemon resting::tests::suspend_with_broker_liveness_hint_edges_instead_of_no_edge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6229768Z         PASS [   0.022s] (1405/3325) spt-daemon sealsync::tests::feed_converges_two_stores_and_replay_noops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6259728Z         PASS [   0.019s] (1406/3325) spt-daemon sealsync::tests::non_member_subnet_record_never_materializes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6285269Z         PASS [   0.023s] (1407/3325) spt-daemon sealsync::tests::trusted_collision_is_dropped_with_existing_kept
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6329785Z         PASS [   0.067s] (1408/3325) spt-daemon resting::tests::rest_record_round_trips_with_anchor_discipline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6379980Z         PASS [   0.024s] (1409/3325) spt-daemon sealsync::tests::untrusted_and_cross_subnet_origins_are_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6419687Z         PASS [   0.025s] (1410/3325) spt-daemon sealsync::tests::unscoped_record_is_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6480178Z         PASS [   0.330s] (1411/3325) spt-daemon relay::tests::respawn_loses_no_spooled_message
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6579940Z         PASS [   0.024s] (1412/3325) spt-daemon seedproofx::grace_tests::grade_truth_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6589639Z         PASS [   0.019s] (1413/3325) spt-daemon seedproofx::grace_tests::seed_never_appears_in_roster_gossip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6619813Z         PASS [   0.024s] (1414/3325) spt-daemon seedproofx::grace_tests::seedxfer_frame_round_trips_and_rejects_malformed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6659723Z         PASS [   0.041s] (1415/3325) spt-daemon seedmap::tests::take_absent_is_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6710089Z         PASS [   0.049s] (1416/3325) spt-daemon seedmap::tests::request_stop_barrier_holds_until_no_listener
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6737461Z         PASS [   0.051s] (1417/3325) spt-daemon seedmap::tests::put_then_take_consumes_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6749925Z         PASS [   0.051s] (1418/3325) spt-daemon seedmap::tests::stop_op_acks_then_serve_returns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6788407Z         PASS [   0.027s] (1419/3325) spt-daemon seedproofx::roster_tests::admin_seed_rides_as_prefixed_sibling_and_routes_to_its_own_seam
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6809884Z         PASS [   0.022s] (1420/3325) spt-daemon seedproofx::roster_tests::empty_roster_frame_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6849837Z         PASS [   0.022s] (1421/3325) spt-daemon seedproofx::roster_tests::malformed_roster_frame_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6869677Z         PASS [   0.063s] (1422/3325) spt-daemon seedmap::tests::put_refreshes_existing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6910077Z         PASS [   0.146s] (1423/3325) spt-daemon resting::tests::daemon_rest_event_arms_gate_at_rest_edge_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.6935899Z         PASS [   0.032s] (1424/3325) spt-daemon seedproofx::roster_tests::reconcile_fills_absent_keeps_observed_and_skips_self
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7030203Z         PASS [   0.026s] (1425/3325) spt-daemon seedproofx::roster_tests::reconcile_replaces_a_suspect_row_with_the_validated_roster_address
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7050622Z         PASS [   0.022s] (1426/3325) spt-daemon servehost::tests::a_lan_status_writes_nothing_and_does_not_run_the_set_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7069843Z         PASS [   0.029s] (1427/3325) spt-daemon seedproofx::roster_tests::reconcile_refuses_to_reinstall_the_address_that_just_failed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7070969Z         PASS [   0.027s] (1428/3325) spt-daemon seedproofx::roster_tests::roster_frame_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7072013Z         PASS [   0.035s] (1429/3325) spt-daemon seedproofx::roster_tests::reconcile_refuses_mismatch_and_repairs_invalid_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7073082Z         PASS [   0.159s] (1430/3325) spt-daemon resting::tests::rest_edges_cascade_shells_with_divergence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7105762Z         PASS [   0.031s] (1431/3325) spt-daemon servehost::tests::a_quoted_directory_registers_as_a_narrowed_directory_entry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7180899Z         PASS [   0.020s] (1432/3325) spt-daemon service::tests::plan_start_prefers_service_then_spawn_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7209794Z         PASS [   0.020s] (1433/3325) spt-daemon service::tests::plan_stop_routes_managed_then_ipc_then_noop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7239835Z         PASS [   0.023s] (1434/3325) spt-daemon serveprobe::tests::is_serving_subnet_honors_membership_and_detach
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7279712Z         PASS [   0.027s] (1435/3325) spt-daemon service::tests::run_refused_only_when_windows_and_vanishing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7319939Z         PASS [   0.032s] (1436/3325) spt-daemon service::tests::service_ignored_under_spt_home_override
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7369834Z         PASS [   0.054s] (1437/3325) spt-daemon servehost::tests::concurrent_requests_publish_distinct_entries_without_lost_updates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7419807Z         PASS [   0.028s] (1438/3325) spt-daemon service::tests::stale_bare_logon_action_classification
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7489892Z         PASS [   0.025s] (1439/3325) spt-daemon service::tests::systemd_unit_path_follows_xdg_then_home
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7509691Z         PASS [   0.041s] (1440/3325) spt-daemon servehost::tests::removal_persists_and_does_not_delete_reference_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7570304Z         PASS [   0.020s] (1441/3325) spt-daemon servicehost::tests::a_healthy_run_resets_the_fast_exit_counter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7639818Z         PASS [   0.040s] (1442/3325) spt-daemon servicehost::tests::a_bind_service_defers_at_boot_and_starts_at_its_bind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7680187Z         PASS [   0.022s] (1443/3325) spt-daemon servicehost::tests::a_newer_daemons_status_row_degrades_instead_of_failing_the_whole_reply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7719817Z         PASS [   0.030s] (1444/3325) spt-daemon servicehost::tests::a_service_that_exits_instantly_latches_and_stops_relaunching
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7813795Z         PASS [   0.024s] (1445/3325) spt-daemon servicehost::tests::a_soft_deregistered_adapters_service_never_starts_in_the_first_place
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.7880013Z         PASS [   0.050s] (1446/3325) spt-daemon servicehost::tests::a_path_verified_orphan_is_reaped_and_confirmed_by_a_post_kill_read
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8099802Z         PASS [   0.028s] (1447/3325) spt-daemon servicehost::tests::a_status_read_mints_no_hold_flag_for_the_option_it_reports
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8209889Z         PASS [   0.140s] (1448/3325) spt-daemon servehost::tests::adapter_lifecycle_has_one_root_and_retains_output_and_live_assignments
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8359901Z         PASS [   0.100s] (1449/3325) spt-daemon servicehost::tests::a_service_that_exits_on_the_stop_marker_quiesces_cooperatively
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8419736Z         PASS [   0.109s] (1450/3325) spt-daemon servicehost::tests::a_latched_option_reports_the_captured_evidence_behind_its_latch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8479650Z         PASS [   0.083s] (1451/3325) spt-daemon servicehost::tests::a_startup_fault_carries_what_the_service_said_before_it_died
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8629887Z         PASS [   0.021s] (1452/3325) spt-daemon servicehost::tests::adapter_dir_substitutes_as_one_argv_element_even_with_spaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8719896Z         PASS [   0.081s] (1453/3325) spt-daemon servicehost::tests::a_stood_down_supervisors_latch_outlives_its_thread_and_suppresses_the_next_sweep
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.8929947Z         PASS [   0.173s] (1454/3325) spt-daemon servicehost::tests::a_boot_service_starts_once_and_the_next_sweep_reads_already_running
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9049826Z         PASS [   0.057s] (1455/3325) spt-daemon servicehost::tests::an_adapter_scoped_sweep_neither_starts_nor_stops_another_adapters_service
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9104703Z         PASS [   0.041s] (1456/3325) spt-daemon servicehost::tests::an_orphan_pid_running_a_different_image_is_never_killed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9149839Z         PASS [   0.049s] (1457/3325) spt-daemon servicehost::tests::an_exit_under_an_engaged_hold_stands_down_quiesced_instead_of_latching
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9319983Z         PASS [   0.021s] (1458/3325) spt-daemon servicehost::tests::consecutive_fast_exits_latch_startup_fault_early
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9369663Z         PASS [   0.025s] (1459/3325) spt-daemon servicehost::tests::backoff_doubles_and_saturates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9399721Z         PASS [   0.042s] (1460/3325) spt-daemon servicehost::tests::an_orphan_whose_image_cannot_be_verified_is_reported_not_killed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9429707Z         PASS [   0.035s] (1461/3325) spt-daemon servicehost::tests::an_unknown_op_closes_the_connection_instead_of_wedging_the_caller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9549785Z         PASS [   0.020s] (1462/3325) spt-daemon servicehost::tests::hold_outranks_everything
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9579620Z         PASS [   0.022s] (1463/3325) spt-daemon servicehost::tests::empty_and_dead_orphan_records_read_apart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9609552Z         PASS [   0.021s] (1464/3325) spt-daemon servicehost::tests::only_an_unconfirmed_kill_blocks_the_swap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9710118Z         PASS [   0.038s] (1465/3325) spt-daemon servicehost::tests::ensure_supervised_is_one_instance_per_option_and_refuses_an_unclear_sweep
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9749767Z         PASS [   0.020s] (1466/3325) spt-daemon servicehost::tests::only_the_three_ruled_opportunities_clear_the_latch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9799871Z         PASS [   0.156s] (1467/3325) spt-daemon servicehost::tests::a_supervised_option_no_longer_declared_still_appears_as_undeclared
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9839905Z         PASS [   0.023s] (1468/3325) spt-daemon servicehost::tests::quiesce_engages_the_hold_before_placing_the_stop_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9869898Z         PASS [   0.022s] (1469/3325) spt-daemon servicehost::tests::quiesce_raises_the_hold_before_it_can_place_any_stop_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9929824Z         PASS [   0.021s] (1470/3325) spt-daemon servicehost::tests::slow_crashes_latch_the_ordinary_give_up_not_startup_fault
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:56.9959890Z         PASS [   0.020s] (1471/3325) spt-daemon servicehost::tests::start_trigger_decides_which_opportunities_start_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0050015Z         PASS [   0.021s] (1472/3325) spt-daemon servicehost::tests::the_advisory_line_is_read_bounded_and_never_dressed_up_when_absent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0079715Z         PASS [   0.194s] (1473/3325) spt-daemon servicehost::tests::a_stop_kills_the_child_and_re_reads_liveness_after_the_kill
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0170004Z         PASS [   0.020s] (1474/3325) spt-daemon servicehost::tests::the_service_command_resolves_its_program_through_the_install_dir_helper
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0230180Z         PASS [   0.277s] (1475/3325) spt-daemon servicehost::tests::a_service_that_ignores_the_stop_marker_is_force_killed_and_confirmed_dead
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0270014Z         PASS [   0.021s] (1476/3325) spt-daemon servicehost::tests::the_service_spawn_scrubs_the_session_identity_env
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0360210Z         PASS [   0.026s] (1477/3325) spt-daemon servicehost::tests::the_projection_scopes_to_one_adapter_and_keeps_deregistered_declarations
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0389784Z         PASS [   0.022s] (1478/3325) spt-daemon servicehost::tests::the_spawn_environment_carries_the_cli_capability
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0429667Z         PASS [   0.353s] (1479/3325) spt-daemon servehost::tests::a_reap_shaped_pass_cannot_clobber_a_concurrent_add
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0449786Z         PASS [   0.022s] (1480/3325) spt-daemon servicehost::tests::the_spawn_environment_carries_the_per_option_identity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0570103Z         PASS [   0.028s] (1481/3325) spt-daemon shellchan::tests::activity_frame_parses_back_through_the_public_decoder
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0629840Z         PASS [   0.030s] (1482/3325) spt-daemon shellchan::tests::activity_frame_shape_is_the_published_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0679874Z         PASS [   0.025s] (1483/3325) spt-daemon shellchan::tests::boundary_frame_parses_back_through_the_public_decoder
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0790004Z         PASS [   0.059s] (1484/3325) spt-daemon servicehost::tests::the_status_op_reports_over_the_wire_and_starts_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0809767Z         PASS [   0.026s] (1485/3325) spt-daemon shellchan::tests::boundary_frame_shape_is_the_published_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0859666Z         PASS [   0.021s] (1486/3325) spt-daemon shellchan::tests::drive_frame_shape_mirrors_sensory
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.0959795Z         PASS [   0.033s] (1487/3325) spt-daemon shellchan::tests::frames_compose_and_stamp_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1069764Z         PASS [   0.023s] (1488/3325) spt-daemon shellchan::tests::vocab_check_bounds_ops_and_args
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1129632Z         PASS [   0.031s] (1489/3325) spt-daemon shellchan::tests::sensory_text_file_frames_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1260135Z         PASS [   0.400s] (1490/3325) spt-daemon servicehost::tests::a_held_option_is_refused_by_a_clearing_sweep_and_starts_only_when_the_hold_releases
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1309922Z         PASS [   0.292s] (1491/3325) spt-daemon servicehost::tests::a_supervisor_whose_declaration_is_gone_is_torn_down_by_the_next_sweep
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1349755Z         PASS [   0.035s] (1492/3325) spt-daemon shelldisc::tests::discover_across_joins_other_node_subnet_adapters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1489944Z         PASS [   0.165s] (1493/3325) spt-daemon servicehost::tests::the_projection_reports_a_live_supervisor_with_its_declaration_and_advisory
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1549910Z         PASS [   0.023s] (1494/3325) spt-daemon shellhost::tests::a_daemon_that_launches_is_the_only_launcher
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1610012Z         PASS [   0.026s] (1495/3325) spt-daemon shellhost::tests::a_late_ack_loser_adopts_the_winner_instead_of_spawning
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1679851Z         PASS [   0.058s] (1496/3325) spt-daemon shelldisc::tests::discovery_lists_a_dead_pid_instance_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1739861Z         PASS [   0.039s] (1497/3325) spt-daemon shelldisc::tests::shell_context_renders_sections_and_empties_to_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1769617Z         PASS [   0.025s] (1498/3325) spt-daemon shellhost::tests::a_post_ack_failure_never_spawns_again
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1789756Z         PASS [   0.021s] (1499/3325) spt-daemon shellhost::tests::a_post_ack_silence_is_indeterminate_not_failure
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1859856Z         PASS [   0.025s] (1500/3325) spt-daemon shellhost::tests::a_pre_ack_refusal_falls_back_in_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1919901Z         PASS [   0.024s] (1501/3325) spt-daemon shellhost::tests::a_spawn_template_resolves_its_program_and_adapter_dir_against_the_install_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.1979714Z         PASS [   0.024s] (1502/3325) spt-daemon shellhost::tests::an_unserved_socket_is_a_pre_ack_refusal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2009648Z         PASS [   0.087s] (1503/3325) spt-daemon shelldisc::tests::discovery_own_plus_broadcast_gated_instantiable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2039596Z         PASS [   0.028s] (1504/3325) spt-daemon shellhost::tests::an_answered_refusal_never_consults_the_arbiter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2320059Z         PASS [   0.032s] (1505/3325) spt-daemon shellhost::tests::gateway_typed_owner_spawns_and_owns_a_shell
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2339677Z         PASS [   0.155s] (1506/3325) spt-daemon shellchan::tests::restamp_carries_pending_rows_across_rotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2369600Z         PASS [   0.259s] (1507/3325) spt-daemon servicehost::tests::the_hold_outlives_the_force_killed_supervision_it_ended
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2409790Z         PASS [   0.043s] (1508/3325) spt-daemon shellhost::tests::close_shell_ephemeral_tears_down_and_frees_the_slot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2590160Z         PASS [   0.022s] (1509/3325) spt-daemon shellhost::tests::kill_verdict_fires_only_on_a_proven_own_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2759862Z         PASS [   0.043s] (1510/3325) spt-daemon shellhost::tests::kill_shell_at_still_kills_a_pre_stamp_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2879804Z         PASS [   0.030s] (1511/3325) spt-daemon shellhost::tests::launch_parks_token_and_bind_by_token_onlines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.2969682Z         PASS [   0.021s] (1512/3325) spt-daemon shellhost::tests::link_key_and_frame_mac_roundtrip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3029876Z         PASS [   0.139s] (1513/3325) spt-daemon shellhost::tests::a_spawn_program_the_install_dir_does_not_ship_falls_through_to_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3069736Z         PASS [   0.074s] (1514/3325) spt-daemon shellhost::tests::kill_shell_at_still_kills_a_matching_pair
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3093250Z         PASS [   0.021s] (1515/3325) spt-daemon shellhost::tests::only_a_live_recorded_pid_wins_a_launch_race
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3189961Z         PASS [   0.022s] (1516/3325) spt-daemon shellhost::tests::only_the_relay_receipt_routes_through_the_daemon
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3320140Z         PASS [   0.025s] (1517/3325) spt-daemon shellhost::tests::spawn_template_perch_dir_fills_as_one_argv_element
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3339690Z         PASS [   0.023s] (1518/3325) spt-daemon shellhost::tests::spawn_template_without_perch_dir_is_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3399705Z         PASS [   0.024s] (1519/3325) spt-daemon shellhost::tests::the_arbiter_does_not_block_an_uncontested_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3419915Z         PASS [   0.022s] (1520/3325) spt-daemon shellwake::tests::a_wake_template_resolves_its_program_and_adapter_dir_against_the_install_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3509839Z         PASS [   0.022s] (1521/3325) spt-daemon shellwake::tests::backoff_curve_doubles_to_the_cap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3629982Z         PASS [   0.122s] (1522/3325) spt-daemon shellhost::tests::launch_fails_closed_on_bad_templates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3850014Z         PASS [   0.020s] (1523/3325) spt-daemon shellwake::tests::only_a_launch_from_before_this_boot_is_a_restart_casualty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.3989945Z         PASS [   0.048s] (1524/3325) spt-daemon shellwake::tests::kill_waker_at_still_kills_a_matching_pair
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4150166Z         PASS [   0.087s] (1525/3325) spt-daemon shellwake::tests::an_owner_coming_online_after_a_spent_sweep_restores_only_its_restart_casualty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4300138Z         PASS [   0.248s] (1526/3325) spt-daemon shellhost::tests::close_shell_dead_child_is_prompt_and_manifestless_never_erases
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4630129Z         PASS [   0.273s] (1527/3325) spt-daemon shellhost::tests::close_shell_delivers_pre_close_then_kills_and_flips_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4649598Z         PASS [   0.048s] (1528/3325) spt-daemon shellwake::tests::reconcile_resolves_profile_overlay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4699628Z         PASS [   0.088s] (1529/3325) spt-daemon shellwake::tests::reconcile_flips_watchers_with_instance_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4760060Z         PASS [   0.458s] (1530/3325) spt-daemon servicehost::tests::the_startup_capture_is_reclaimed_once_the_run_proves_it_starts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4789637Z         PASS [   0.046s] (1531/3325) spt-daemon shellwake::tests::resolve_wake_leaves_a_dormant_owner_and_relaunches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.4879831Z         PASS [   0.025s] (1532/3325) spt-daemon shellwake::tests::resolve_wake_refuses_without_a_reachable_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5060096Z         PASS [   0.105s] (1533/3325) spt-daemon shellwake::tests::reconcile_never_adopts_a_stale_online_instance
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5119833Z         PASS [   0.025s] (1534/3325) spt-daemon shellwake::tests::the_wake_catalog_shares_the_spawn_vocabulary_but_is_not_the_same_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5329869Z         PASS [   0.026s] (1535/3325) spt-daemon shellwake::tests::waker_record_round_trips_and_reads_the_legacy_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5537817Z         PASS [   0.084s] (1536/3325) spt-daemon shellwake::tests::the_boot_sweep_restores_only_the_restart_casualty_of_an_online_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5599702Z         PASS [   0.028s] (1537/3325) spt-daemon shellwake::tests::watcher_opcode_exit_fires_resolution_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5659677Z         PASS [   0.089s] (1538/3325) spt-daemon shellwake::tests::the_heal_fires_yet_a_same_boot_corpse_is_never_adopted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5669749Z         PASS [   0.092s] (1539/3325) spt-daemon shellwake::tests::the_heal_writes_the_truth_once_and_then_leaves_the_record_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5708920Z         PASS [   0.059s] (1540/3325) spt-daemon shellwake::tests::watcher_crash_exits_respawn_then_give_up
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5779748Z         PASS [   0.024s] (1541/3325) spt-daemon stderrlog::tests::path_under_home_and_stamp_is_legible
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5809755Z         PASS [   0.559s] (1542/3325) spt-daemon servicehost::tests::the_stop_marker_is_never_visible_before_the_hold_is_up
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5869728Z         PASS [   0.026s] (1543/3325) spt-daemon stderrlog::tests::roll_keeps_bounded_generations_and_preserves_current
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5889590Z         PASS [   0.021s] (1544/3325) spt-daemon stderrlog::tests::should_roll_at_or_over_cap_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5929616Z         PASS [   0.025s] (1545/3325) spt-daemon stderrlog::tests::roll_with_keep_one_clears_without_backup
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.5958215Z         PASS [   0.024s] (1546/3325) spt-daemon sync::tests::gate_decision_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6170080Z         PASS [   0.027s] (1547/3325) spt-daemon translation::tests::inject_floor_buffers_while_held_then_drains_in_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6229547Z         PASS [   0.029s] (1548/3325) spt-daemon translation::tests::key_cmd_parses_each_wire_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6380003Z         PASS [   0.047s] (1549/3325) spt-daemon translation::tests::flagged_spawn_still_starts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6409668Z         PASS [   0.021s] (1550/3325) spt-daemon translation::tests::key_to_bytes_send_keys_map
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6469702Z         PASS [   0.022s] (1551/3325) spt-daemon translation::tests::to_binary_serializes_to_wire_and_input_is_content_free
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6619873Z         PASS [   0.025s] (1552/3325) spt-daemon transport::tests::local_socket_rejects_wrong_role
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6649632Z         PASS [   0.027s] (1553/3325) spt-daemon transport::tests::local_socket_handshake_and_frame_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6679486Z         PASS [   0.022s] (1554/3325) spt-daemon tunnelhub::tests::clear_evicts_the_entry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6849983Z         PASS [   0.022s] (1555/3325) spt-daemon tunnelhub::tests::entries_are_per_owner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6899778Z         PASS [   0.022s] (1556/3325) spt-daemon tunnelhub::tests::dead_generation_stream_is_never_surfaced
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6949730Z         PASS [   0.021s] (1557/3325) spt-daemon tunnelhub::tests::relink_overwrites_the_entry_with_a_fresh_generation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.6959682Z         PASS [   0.227s] (1558/3325) spt-daemon shellwake::tests::resolve_wake_revives_a_suspended_owner_without_double_launch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7079824Z         PASS [   0.023s] (1559/3325) spt-daemon tunnelhub::tests::resolve_serves_each_end_under_the_opening_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7129709Z         PASS [   0.020s] (1560/3325) spt-daemon update::tests::classify_brain_only_when_broker_hosts_new_brain
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7141747Z         PASS [   0.024s] (1561/3325) spt-daemon update::tests::apply_refuses_non_brain_only_plan
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7179822Z         PASS [   0.023s] (1562/3325) spt-daemon update::tests::classify_broker_breaking_on_resource_abi_change
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7329802Z         PASS [   0.022s] (1563/3325) spt-daemon update::tests::classify_broker_compatible_when_brain_below_floor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7599857Z         PASS [   0.046s] (1564/3325) spt-daemon update::tests::plan_verified_yields_a_plan_for_a_valid_release
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7760197Z         PASS [   0.067s] (1565/3325) spt-daemon update::tests::plan_verified_produces_no_plan_for_a_rejected_release
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7809741Z         PASS [   0.200s] (1566/3325) spt-daemon sync::tests::reconcile_driver_structurally_excludes_live_role
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.7929839Z         PASS [   0.083s] (1567/3325) spt-daemon update::tests::plan_verified_update_set_uses_selected_platform_spec
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.8059785Z         PASS [   0.013s] (1568/3325) spt-daemon wan::tests::a_plain_msg_mentioning_a_path_asks_for_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.8720065Z         PASS [   0.537s] (1569/3325) spt-daemon shellwake::tests::kill_waker_at_refuses_and_keeps_an_unparseable_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.8899955Z         PASS [   0.313s] (1570/3325) spt-daemon sync::tests::select_refs_scopes_two_tiers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.8989808Z         PASS [   0.027s] (1571/3325) spt-daemon wan::tests::an_admitted_arrival_records_contact_and_a_refused_one_does_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9199861Z         PASS [   0.334s] (1572/3325) spt-daemon test_home::tests::with_home_and_testhome_serialize_on_the_same_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9229619Z         PASS [   0.192s] (1573/3325) spt-daemon wan::tests::a_burst_from_one_peer_surfaces_one_warning
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9439803Z         PASS [   0.023s] (1574/3325) spt-daemon wan::tests::denied_msg_is_refused_and_absence_is_noperch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9640048Z         PASS [   0.021s] (1575/3325) spt-daemon wan::tests::only_a_custody_confirmed_round_trip_records_the_reply_correlation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9869934Z         PASS [   0.227s] (1576/3325) spt-daemon wan::tests::a_forged_inbound_mnemonics_attribute_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9899624Z         PASS [   0.024s] (1577/3325) spt-daemon wan::tests::only_a_daemon_stamped_send_records_the_reply_correlation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:57.9959645Z         PASS [   0.219s] (1578/3325) spt-daemon wan::tests::a_forged_inbound_trust_warning_attribute_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0049707Z         PASS [   0.803s] (1579/3325) spt-daemon shellhost::tests::kill_shell_at_spares_a_recycled_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0079431Z         PASS [   0.021s] (1580/3325) spt-daemon wan::tests::origin_user_backed_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0139725Z         PASS [   0.023s] (1581/3325) spt-daemon wan::tests::the_ingress_helper_never_writes_into_the_senders_own_attributes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0229729Z         PASS [   0.026s] (1582/3325) spt-daemon wan::tests::the_ingress_helper_returns_without_waiting_for_the_peer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0289884Z         PASS [   0.023s] (1583/3325) spt-daemon wan::tests::the_recorded_row_is_the_key_the_receiving_leg_reads
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0299592Z         PASS [   0.023s] (1584/3325) spt-daemon wan::tests::the_stamp_not_the_from_is_the_sender_subject
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0379767Z         PASS [   0.024s] (1585/3325) spt-daemon wan::tests::the_three_redemption_outcomes_stay_distinct
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0439671Z         PASS [   0.259s] (1586/3325) spt-daemon wan::tests::a_perch_with_no_readable_record_warns_every_time
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0469562Z         PASS [   0.021s] (1587/3325) spt-daemon wan::tests::wan_ingress_empty_from_renders_origin_node_label
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0499620Z         PASS [   0.022s] (1588/3325) spt-daemon wan::tests::wan_outcome_token_round_trips_and_unknown_is_noreply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0529574Z         PASS [   0.022s] (1589/3325) spt-daemon wan::tests::wan_user_msg_restamped_unless_origin_user_backed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0589663Z         PASS [   0.022s] (1590/3325) spt-daemon webproxy::tests::response_parts_reads_a_full_body_without_a_runtime
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0629649Z         PASS [   0.023s] (1591/3325) spt-daemon webproxy::tests::route_for_prefers_cache_then_roster_then_bare_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0659686Z         PASS [   0.020s] (1592/3325) spt-daemon webproxy::tests::unavailable_names_the_node_and_refused_names_the_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0789993Z         PASS [   0.028s] (1593/3325) spt-daemon webproxy::tests::under_own_prefix_replaces_only_the_label
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0849670Z         PASS [   0.271s] (1594/3325) spt-daemon wan::tests::a_typed_envelope_body_still_draws_the_separate_warning
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0879662Z         PASS [   0.035s] (1595/3325) spt-daemon webserve::tests::a_scoped_entry_is_still_served_on_loopback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0919816Z         PASS [   0.034s] (1596/3325) spt-daemon webserve::tests::adapter_facet_and_alias_refuse_symlink_escape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.0949643Z         PASS [   0.031s] (1597/3325) spt-daemon webserve::tests::adapter_root_replacement_cannot_expose_an_install_tree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1009740Z         PASS [   0.024s] (1598/3325) spt-daemon webserve::tests::corrupt_registry_is_loud_but_does_not_disable_unrelated_facets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1069748Z         PASS [   0.029s] (1599/3325) spt-daemon webserve::tests::directory_references_reject_traversal_and_track_current_children
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1129793Z         PASS [   0.052s] (1600/3325) spt-daemon webserve::tests::adapter_facet_and_disambiguated_alias_share_one_contained_reference
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1179828Z         PASS [   0.026s] (1601/3325) spt-daemon webserve::tests::docs_aliases_preserve_existing_and_new_bundle_roots
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1219732Z         PASS [   0.031s] (1602/3325) spt-daemon webserve::tests::directory_symlinks_cannot_escape_the_current_served_root
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1256866Z         PASS [   0.227s] (1603/3325) spt-daemon wan::tests::an_undelivered_warning_claims_nothing_and_warns_again
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1279704Z         PASS [   0.025s] (1604/3325) spt-daemon webserve::tests::materialize_reads_a_file_plan_through_the_range
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1339993Z         PASS [   0.038s] (1605/3325) spt-daemon webserve::tests::index_escapes_html_encodes_urls_and_reports_real_source_paths
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1399781Z         PASS [   0.020s] (1606/3325) spt-daemon webserve::tests::range_grammar_partial_suffix_clamp_and_unsatisfiable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1459783Z         PASS [   0.033s] (1607/3325) spt-daemon webserve::tests::peer_paths_proxy_by_facet_and_unknown_labels_stay_docs_404
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1530189Z         PASS [   0.256s] (1608/3325) spt-daemon wan::tests::an_admitted_strangers_warning_rides_the_message_it_is_about
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1600194Z         PASS [   0.030s] (1609/3325) spt-daemon webserve::tests::the_adapter_docs_segment_serves_docs_dir_and_never_falls_through
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1619849Z         PASS [   0.037s] (1610/3325) spt-daemon webserve::tests::references_observe_edits_deletion_and_registry_removal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1680030Z         PASS [   0.816s] (1611/3325) spt-daemon shellwake::tests::kill_waker_at_spares_a_recycled_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1770059Z         PASS [   0.037s] (1612/3325) spt-daemon webserve::tests::served_subject_is_the_entrys_origin_or_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1810078Z         PASS [   0.061s] (1613/3325) spt-daemon webserve::tests::node_routing_reserves_facets_without_registry_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1879872Z         PASS [   0.253s] (1614/3325) spt-daemon wan::tests::no_binary_wan_arrival_spools_not_pty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.1909702Z         PASS [   0.044s] (1615/3325) spt-daemon webserve::tests::the_adapter_facet_root_still_serves_the_core_owned_web_root
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.2040700Z         PASS [   0.044s] (1616/3325) spt-daemon::brain_read_deadline whole_carrier_without_a_deadline_still_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.2070975Z         PASS [   0.047s] (1617/3325) spt-daemon::brain_read_deadline whole_carrier_does_not_silently_ignore_its_read_deadline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.2479987Z         PASS [   1.793s] (1618/3325) spt::bin/spt rc::tests::qualified_targets_attach_with_bare_wire_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.2979901Z         PASS [   0.050s] (1619/3325) spt::bin/spt rc::tests::reconnect_class_only_severed_transport_redrives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.3239831Z         PASS [   0.025s] (1620/3325) spt::bin/spt wansend::tests::a_knock_reports_only_what_the_far_end_confirmed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.3470028Z         PASS [   0.023s] (1621/3325) spt::bin/spt wansend::tests::a_routed_opening_beats_an_unroutable_one_and_ties_go_lexicographic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.3710070Z         PASS [   0.025s] (1622/3325) spt::bin/spt wansend::tests::a_shared_short_key_refuses_and_an_unknown_one_is_its_own_outcome
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.3970071Z         PASS [   0.025s] (1623/3325) spt::bin/spt wansend::tests::a_short_key_resolves_through_each_node_tier_carrier_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.4180062Z         PASS [   0.021s] (1624/3325) spt::bin/spt wansend::tests::an_explicit_override_outranks_the_ownership_scope
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.4404798Z         PASS [   0.023s] (1625/3325) spt::bin/spt wansend::tests::an_unanswered_fork_is_unconfirmed_and_never_reported_as_done
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.4650094Z         PASS [   0.023s] (1626/3325) spt::bin/spt wansend::tests::bare_id_resolves_across_remote_snapshot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.4730279Z         PASS [   0.290s] (1627/3325) spt-daemon::control_stamp_lifetime converge_stamps_on_sessions_poll_after_late_bind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.4890352Z         PASS [   0.025s] (1628/3325) spt::bin/spt wansend::tests::classify_wan_reply_only_delivers_on_positive_outcomes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.4990238Z         PASS [   0.340s] (1629/3325) spt-daemon::brain_read_deadline split_carrier_still_times_out_at_its_deadline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.5070048Z         PASS [   0.303s] (1630/3325) spt-daemon::digest_cross_node a_busy_endpoints_trailing_turn_crosses_the_wire_unsealed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.5130208Z         PASS [   0.024s] (1631/3325) spt::bin/spt wansend::tests::hide_new_reaches_this_nodes_ids_and_no_further
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.5299898Z         PASS [   0.016s] (1632/3325) spt::bin/spt wansend::tests::load_snapshots_degrades_on_junk
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.5510003Z         PASS [   0.021s] (1633/3325) spt::bin/spt wansend::tests::refusals_render_copy_paste_targets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.5690350Z         PASS [   0.399s] (1634/3325) spt-daemon::control_stamp_lifetime control_reap_clears_sticky_stamps_no_session_online_and_boot_sweep
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.6050924Z         PASS [   0.441s] (1635/3325) spt-daemon::commune_io_events_int a_consumed_commune_and_a_failed_ingest_reach_a_shell_as_distinct_events
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.6470334Z         PASS [   0.150s] (1636/3325) spt-daemon::digest_cross_node an_unbounded_carrier_is_refused_by_name_instead_of_wedging_the_caller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.6805756Z         PASS [   0.209s] (1637/3325) spt-daemon::digest_cross_node an_endpoint_with_no_buffer_answers_no_digest_not_a_failure
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.7010303Z         PASS [   0.050s] (1638/3325) spt-daemon::docs_server_e2e docsless_home_answers_loud_pointer_and_stays_bound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.7011613Z         PASS [   0.024s] (1639/3325) spt-daemon::docs_server_e2e serves_published_surface_and_refuses_escapes_and_writes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.7549996Z         PASS [   0.616s] (1640/3325) spt-daemon::access whitelist_refuses_exempts_replies_and_admits_listed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.8497273Z         PASS [   0.243s] (1641/3325) spt-daemon::digest_cross_node the_address_gate_refuses_an_unwhitelisted_caller_with_no_reply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.8627315Z         PASS [   0.683s] (1642/3325) spt-daemon::control_stamp_lifetime reap_clears_control_and_viewer_stamps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.8759742Z         PASS [   0.306s] (1643/3325) spt-daemon::digest_cross_node dispatcher_serves_a_cross_node_digest_pull_undriven_with_a_sealed_turn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.9580258Z         PASS [   0.107s] (1644/3325) spt-daemon::lan_bootstrap_e2e bootstrap_serves_the_applied_set_isolates_bad_triples_and_stops_for_real
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:58.9667053Z         PASS [   0.104s] (1645/3325) spt-daemon::lan_bootstrap_e2e the_set_gate_refuses_by_name_and_serves_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.0230180Z         PASS [   0.147s] (1646/3325) spt-daemon::legacy_resident_sweep_e2e legacy_resident_sweep_reaps_match_and_declines_control
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.0790245Z         PASS [   0.378s] (1647/3325) spt-daemon::er_inbound_local_notify an_uninvited_notify_addressed_at_the_engine_room_is_refused_and_never_spooled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.1136302Z         PASS [   0.416s] (1648/3325) spt-daemon::echo_direct_route_int the_echo_brief_reaches_a_shell_as_a_commune_frame_and_writes_no_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.2521502Z         PASS [   0.699s] (1649/3325) spt::bin/spt wansend::tests::remote_rest_suspends_and_wakes_with_the_deferred_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.2556823Z         PASS [   0.176s] (1650/3325) spt-daemon::netbroker broker_owns_endpoint_and_reports_status
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.2769967Z         PASS [   0.023s] (1651/3325) spt-daemon::netbroker netless_broker_probes_gracefully
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.3740657Z         PASS [   0.354s] (1652/3325) spt-daemon::netbroker brain_dials_second_broker_over_loopback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.4231433Z         PASS [   0.145s] (1653/3325) spt-daemon::netbroker replayed_dial_op_is_deduped_across_brain_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.4390345Z         PASS [   0.186s] (1654/3325) spt::bin/spt wansend::tests::resolve_and_dial_owner_dials_the_resolved_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.4460091Z         PASS [   0.067s] (1655/3325) spt-daemon::netbroker unknown_net_frame_is_reported_not_fatal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.4890794Z         PASS [   1.286s] (1656/3325) spt-daemon::digest_cross_node a_silent_peer_is_bounded_and_named_rather_than_hanging_the_caller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.5130131Z         PASS [   0.074s] (1657/3325) spt::bin/spt wansend::tests::resolve_and_dial_owner_is_honest_on_resolution_misses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.5396910Z         PASS [   0.029s] (1658/3325) spt::bin/spt wansend::tests::seed_first_addr_prefers_the_cached_direct_address
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.5811586Z         PASS [   0.036s] (1659/3325) spt::bin/spt wansend::tests::silence_from_the_minting_node_never_classifies_as_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.6090142Z         PASS [   0.033s] (1660/3325) spt::bin/spt wansend::tests::the_evidence_routes_own_predicate_heals_with_the_seam
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.6323116Z         PASS [   1.485s] (1661/3325) spt-daemon::brain_decouple suspended_brain_controller_is_stall_evicted_take_completes_viewer_ticks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.6468748Z         PASS [   0.037s] (1662/3325) spt::bin/spt wansend::tests::the_knock_leg_routes_on_evidence_and_still_honors_the_askers_exclusion
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.6776392Z         PASS [   0.029s] (1663/3325) spt::bin/spt wansend::tests::unknown_ownership_falls_back_to_applying_our_own_policy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.7037732Z         PASS [   0.746s] (1664/3325) spt-daemon::mesh all_online_star_a_reaches_c_b_never_relays
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.7250230Z         PASS [   1.580s] (1665/3325) spt-daemon::attach_idempotent_replay a_same_conn_equal_gen_replay_preserves_the_seat_and_replays_no_history
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.8776675Z         PASS [   0.388s] (1666/3325) spt-daemon::notif_drain_validity a_dismissed_rows_spooled_copy_delivers_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.9420077Z         PASS [   0.498s] (1667/3325) spt-daemon::netstream sender_brain_restart_redrive_is_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.9940062Z         PASS [   0.360s] (1668/3325) spt-daemon::notif_drain_validity a_live_rows_spooled_copy_still_delivers_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:24:59.9989809Z         PASS [   1.035s] (1669/3325) spt-daemon::mesh staggered_offliner_still_meshes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.0848211Z         PASS [   1.331s] (1670/3325) spt-daemon::false_promote ready_candidate_does_not_promote_until_the_wedged_old_gen_conn_drains
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.0910076Z         PASS [   0.213s] (1671/3325) spt-daemon::notif_update_row_retire a_keyless_legacy_update_row_is_retired_on_the_version_we_already_run
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.1340081Z         PASS [   0.430s] (1672/3325) spt-daemon::notif_drain_validity ordinary_messages_are_untouched_by_the_validity_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.1620216Z         PASS [   0.220s] (1673/3325) spt-daemon::notif_update_row_retire a_swept_dismissal_replicates_to_a_peer_through_the_merge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.1780010Z         PASS [   0.754s] (1674/3325) spt-daemon::netstream receiver_brain_restart_is_gapless_and_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.2113137Z         PASS [   0.537s] (1675/3325) spt::bin/spt wansend::tests::wan_send_ships_to_the_resolved_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.2341315Z         PASS [   0.022s] (1676/3325) spt::bin/spt wansend::tests::with_the_posture_off_the_same_fixture_hides_neither
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.2434801Z         PASS [   1.739s] (1677/3325) spt-daemon::digest_cross_node an_unknown_family_is_dropped_without_a_fin_so_the_caller_only_sees_silence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.2893222Z         PASS [   0.053s] (1678/3325) spt-daemon applyhost::tests::apply_staged_daemonless_holds_the_fail_closed_gates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.3372569Z         PASS [   0.050s] (1679/3325) spt-daemon applyhost::tests::apply_staged_daemonless_swaps_binary_with_no_broker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.3665590Z         PASS [   0.276s] (1680/3325) spt-daemon::pairjoin pair_code_submit_for_an_unknown_session_fails_cleanly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.4598729Z         PASS [   0.735s] (1681/3325) spt-daemon::notif_quiet_delivery notif_first_fire_is_quiet_even_to_a_live_relay_rollback_included
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.5790116Z         PASS [  10.286s] (1682/3325) spt::bin/spt cli::tests::shell_spawn_gates_on_the_registered_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.6470126Z         PASS [   0.652s] (1683/3325) spt-daemon::notifsync node_scoped_stays_home_and_migration_dismissal_reaches_the_peer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.6540419Z         PASS [   0.406s] (1684/3325) spt-daemon::propagate rollback_offer_is_rejected_before_any_fetch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.6699993Z         PASS [   0.670s] (1685/3325) spt-daemon::notifsync notif_spools_converge_over_the_wire_and_dismiss_replicates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.7620215Z         PASS [   0.295s] (1686/3325) spt-daemon::propagate tampered_relay_artifact_is_rejected_and_never_staged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.7660018Z         PASS [   0.116s] (1687/3325) spt-daemon::propagate update_set_carries_and_verifies_the_musl_artifact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.7874712Z         PASS [   0.210s] (1688/3325) spt-daemon::propagate untrusted_origin_gets_no_offer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.8738933Z         PASS [   0.714s] (1689/3325) spt-daemon::presence presence_survives_brain_restart_with_cursor_resume
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.8881082Z         PASS [   1.776s] (1690/3325) spt-daemon::netbroker dial_to_a_black_holing_peer_fails_with_a_bounded_ordinary_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.8980033Z         PASS [   0.561s] (1691/3325) spt-daemon applyhost::tests::apply_staged_gates_fail_closed_with_the_seat_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.9160174Z         PASS [   0.779s] (1692/3325) spt-daemon::presence presence_history_replays_from_zero_for_a_late_subscriber
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.9230404Z         PASS [   0.555s] (1693/3325) spt-daemon::propagate status_query_drives_the_convergence_table_end_to_end
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.9314635Z         PASS [   0.261s] (1694/3325) spt-daemon::propagate worker_dismisses_the_staged_notif_when_the_running_image_catches_up
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.9720023Z         PASS [   0.182s] (1695/3325) spt-daemon::psyche_event_turn_e2e pulse_fire_runs_one_bounded_psyche_turn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:00.9900338Z         PASS [   0.231s] (1696/3325) spt-daemon::psyche_context_file_e2e large_preload_mind_rides_the_context_file_not_argv
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.0615803Z         PASS [   0.410s] (1697/3325) spt-daemon::propagate update_set_propagates_selected_platform_artifact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.0970195Z         PASS [   1.012s] (1698/3325) spt-daemon::pairjoin daemon_hosted_responder_pairs_a_loopback_joiner_end_to_end
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.2190363Z         PASS [   0.327s] (1699/3325) spt-daemon::psyche_residency_expectation_e2e failing_psyche_never_unhosts_or_destamps_the_parent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.3370148Z         PASS [   1.159s] (1700/3325) spt-daemon::propagate chain_self_heal_propagates_with_gate_at_every_hop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.4610102Z         PASS [   0.491s] (1701/3325) spt-daemon::pump pump_w2_presence_reaches_only_the_subscribing_carrier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.5680056Z         PASS [   0.230s] (1702/3325) spt-daemon::reseed benign_offliner_is_reseeded_across_a_rotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.5740061Z         PASS [   0.352s] (1703/3325) spt-daemon::replicate registries_converge_over_the_wire_and_the_lease_holds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.6096889Z         PASS [   0.622s] (1704/3325) spt-daemon::pumpdeadline broker_image_query_until_times_out_when_responder_is_silent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.6163074Z         PASS [   0.154s] (1705/3325) spt-daemon::reseed grace_push_carries_the_admin_seed_as_a_prefixed_sibling
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.6310023Z         PASS [   0.064s] (1706/3325) spt-daemon::resume_custody_aba matched_custody_pair_still_defers_the_reconcile
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.6751699Z         PASS [   0.616s] (1707/3325) spt-daemon::pumpdeadline pump_brain_times_out_when_broker_never_replies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.7110093Z         PASS [   0.615s] (1708/3325) spt-daemon::pumpdeadline pump_reply_read_reclassifies_a_silent_peer_within_the_budget
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.7270072Z         PASS [   0.118s] (1709/3325) spt-daemon::resume_custody_aba recycled_pid_custody_offlines_the_row_and_self_heals_the_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.8070213Z         PASS [   5.051s] (1710/3325) spt-daemon servicehost::tests::a_silent_daemon_times_the_caller_out_instead_of_wedging_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.8480070Z         PASS [   0.949s] (1711/3325) spt-daemon applyhost::tests::apply_staged_refuses_a_quarantined_version
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.8999974Z         PASS [   0.984s] (1712/3325) spt-daemon::pump pump_and_dispatch_self_drive_the_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.9113849Z         PASS [   0.280s] (1713/3325) spt-daemon::rosterprop roster_propagates_transitively_on_connect
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.9320063Z         PASS [   0.318s] (1714/3325) spt-daemon::rosterprop roster_exchange_never_leaks_unproven_subnets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.9539515Z         PASS [   0.278s] (1715/3325) spt-daemon::seedproofx both_members_prove_and_cache_the_shared_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:01.9619746Z         PASS [   0.229s] (1716/3325) spt-daemon::seedproofx proven_verdict_is_the_shared_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:02.0815724Z         PASS [   0.151s] (1717/3325) spt-daemon::servicehost_supervision_e2e repeated_instant_exits_report_a_startup_fault_carrying_the_services_own_words
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:02.4750230Z         PASS [   0.519s] (1718/3325) spt-daemon::servicehost_supervision_e2e the_published_stop_marker_earns_a_cooperative_exit_inside_grace
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:02.4900048Z         PASS [   0.642s] (1719/3325) spt-daemon applyhost::tests::apply_staged_refuses_platform_blind_or_mismatched_single
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:02.5110206Z         PASS [   0.614s] (1720/3325) spt-daemon::servicehost_supervision_e2e a_wedged_service_is_force_killed_with_the_descendant_it_left_behind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:02.8887824Z         PASS [   2.129s] (1721/3325) spt-daemon::psyche_event_turn_e2e host_one_spawns_no_resident_psyche
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:02.9866060Z         PASS [   1.074s] (1722/3325) spt-daemon::servicehost_supervision_e2e bits_swap_under_the_hold_and_the_new_ones_come_up_on_release
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.1780205Z         PASS [   0.705s] (1723/3325) spt-daemon::sync torn_pull_recovers_by_repulling
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.2480364Z         PASS [   0.758s] (1724/3325) spt-daemon applyhost::tests::apply_staged_swaps_binary_and_hands_off_without_touching_the_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.7460234Z         PASS [   0.495s] (1725/3325) spt-daemon applyhost::tests::apply_staged_update_set_refuses_broker_touching_payloads
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.7770155Z         PASS [   2.207s] (1726/3325) spt-daemon::reseed revoked_node_is_denied_and_never_reseeded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.9490007Z         PASS [   1.867s] (1727/3325) spt-daemon::sync concurrent_writes_reconcile_on_elected_node_and_converge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.9720009Z         PASS [   1.460s] (1728/3325) spt-daemon::sync two_tier_sync_lands_and_gate_refuses_server_side
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:03.9819887Z         PASS [   2.270s] (1729/3325) spt-daemon::seedproofx no_shared_subnet_is_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.0109959Z         PASS [   2.203s] (1730/3325) spt-daemon::seedproofx wrong_seed_is_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.0210152Z         PASS [   2.065s] (1731/3325) spt-daemon::shell_kill_auth kill_shell_at_spares_a_stranger_wearing_a_recycled_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.0389048Z         PASS [   0.057s] (1732/3325) spt-daemon::webserve_e2e production_listener_exposes_only_the_adapter_web_root_through_both_urls
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.0772503Z         PASS [   0.067s] (1733/3325) spt-daemon::webserve_e2e production_listener_redirects_directory_roots_before_serving_relative_links
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.0882478Z         PASS [   0.068s] (1734/3325) spt-daemon::webserve_e2e production_listener_routes_nodes_docs_and_live_registry_references
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.0937986Z         PASS [   0.916s] (1735/3325) spt-daemon::wake_single_flight two_concurrent_wakes_for_one_endpoint_spawn_exactly_one_launch_tree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1119862Z         PASS [   0.024s] (1736/3325) spt-live context::tests::direct_always_writes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1149739Z         PASS [   0.037s] (1737/3325) spt-daemon::webserve_e2e the_adapter_docs_facet_serves_over_the_production_listener
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1209840Z         PASS [   0.083s] (1738/3325) spt-daemon::webserve_e2e subnet_node_labels_shadow_only_the_docs_compat_alias_while_members
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1300039Z         PASS [   0.016s] (1739/3325) spt-live context::tests::llm_over_llm_writes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1329603Z         PASS [   0.014s] (1740/3325) spt-live context::tests::llm_past_window_writes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1389692Z         PASS [   0.045s] (1741/3325) spt-live context::tests::identified_write_stamps_advancing_vector
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1419534Z         PASS [   0.020s] (1742/3325) spt-live context::tests::llm_within_window_suppressed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1459676Z         PASS [   0.013s] (1743/3325) spt-live context::tests::write_context_suppresses_stale_llm
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1479541Z         PASS [   0.016s] (1744/3325) spt-live context::tests::pre_identity_write_stamps_v1_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1788167Z         PASS [   0.036s] (1745/3325) spt-live digest::tests::extracts_records_from_the_located_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1819611Z         PASS [   0.037s] (1746/3325) spt-live digest::tests::falls_back_to_history_locate_template
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1871555Z         PASS [   0.036s] (1747/3325) spt-live digest::tests::fetcher_digest_lets_the_adapter_locate_and_emit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1919516Z         PASS [   0.015s] (1748/3325) spt-live digest::tests::missing_source_file_is_read_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.1972062Z         PASS [   0.014s] (1749/3325) spt-live digest::tests::no_source_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2119894Z         PASS [   0.239s] (1750/3325) spt-daemon::wanmsg wan_user_msg_from_unproven_origin_is_restamped_at_the_funnel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2229701Z         PASS [   0.041s] (1751/3325) spt-live echo::tests::echo_child_is_recursion_guarded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2259479Z         PASS [   0.013s] (1752/3325) spt-live echo::tests::provenance_is_stamped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2299664Z         PASS [   0.036s] (1753/3325) spt-live echo::tests::echo_consumes_history_and_returns_stamped_brief
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2319404Z         PASS [   0.037s] (1754/3325) spt-live echo::tests::echo_nonzero_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2469579Z         PASS [   0.016s] (1755/3325) spt-live history::tests::missing_fetcher_field_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2620332Z         PASS [   0.014s] (1756/3325) spt-live history::tests::native_missing_log_is_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2659597Z         PASS [   0.038s] (1757/3325) spt-live history::tests::fetcher_yields_records
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2679615Z         PASS [   0.040s] (1758/3325) spt-live history::tests::locate_normalize_reads_and_normalizes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2719621Z         PASS [   0.530s] (1759/3325) spt-daemon applyhost::tests::apply_staged_update_set_selects_local_platform_artifact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2779720Z         PASS [   0.016s] (1760/3325) spt-live ingest::tests::a_failed_ingest_returns_err_and_leaves_the_drop_in_place
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.2799601Z         PASS [   0.017s] (1761/3325) spt-live history::tests::native_reads_logged_records
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.3409876Z         PASS [   0.061s] (1762/3325) spt-live ingest::tests::an_uncommittable_project_slice_is_preserved_not_consumed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.3740032Z         PASS [   0.597s] (1763/3325) spt-daemon::wanmsg receiver_restart_replays_feed_without_double_delivery
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.3839953Z         PASS [   0.435s] (1764/3325) spt-daemon::wanmsg wan_message_lands_exactly_once_under_transport_origin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.4679872Z         PASS [   0.328s] (1765/3325) spt-live digest::tests::extractor_timeout_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.5279860Z         PASS [   0.249s] (1766/3325) spt-live ingest::tests::both_drops_ingested
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.5419823Z         PASS [   0.319s] (1767/3325) spt-live history::tests::fetcher_timeout_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.5639908Z         PASS [   0.192s] (1768/3325) spt-live ingest::tests::commune_drop_is_ingested_and_deleted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.5760006Z         PASS [   0.190s] (1769/3325) spt-live ingest::tests::empty_project_id_preserves_project_slice_drop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.5899649Z         PASS [   0.015s] (1770/3325) spt-live ingest::tests::no_drops_is_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.5959670Z         PASS [   0.256s] (1771/3325) spt-live ingest::tests::commune_and_signoff_both_deferred_signoff_supersedes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.6770152Z         PASS [   0.209s] (1772/3325) spt-live ingest::tests::empty_project_id_skips_project_tier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.6899982Z         PASS [   0.420s] (1773/3325) spt-live ingest::tests::a_lock_timeout_fails_the_ingest_and_deletes_no_drop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.7253379Z         PASS [   0.197s] (1774/3325) spt-live ingest::tests::ingest_never_writes_the_live_role
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.7354113Z         PASS [   0.194s] (1775/3325) spt-live ingest::tests::ingest_strips_checkpoint_sentinel_from_durable_tier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.7369815Z         PASS [   0.173s] (1776/3325) spt-live ingest::tests::marker_only_project_slice_is_not_preserved
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.7419695Z         PASS [   0.017s] (1777/3325) spt-live ingest::tests::strip_checkpoint_markers_removes_tokens_keeps_text
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8289922Z         PASS [   0.141s] (1778/3325) spt-live ingest::tests::stale_commune_suppressed_but_deleted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8449709Z         PASS [   0.017s] (1779/3325) spt-live inject::tests::long_body_is_capped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8509828Z         PASS [   0.255s] (1780/3325) spt-live ingest::tests::project_tier_precedence_suppression_under_resolvable_id_still_deletes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8549708Z         PASS [   0.579s] (1781/3325) spt-daemon applyhost::tests::apply_staged_without_broker_hosted_sessions_swaps_binary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8609630Z         PASS [   0.016s] (1782/3325) spt-live inject::tests::missing_perch_is_best_effort
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8659615Z         PASS [   0.013s] (1783/3325) spt-live inject::tests::tap_appends_a_context_entry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8760183Z         PASS [   0.014s] (1784/3325) spt-live outbound::tests::empty_body_parses_to_empty_intent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8779763Z         PASS [   0.012s] (1785/3325) spt-live outbound::tests::malformed_and_chunk_lines_are_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8899805Z         PASS [   0.013s] (1786/3325) spt-live outbound::tests::non_authorable_types_are_ignored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.8909507Z         PASS [   0.016s] (1787/3325) spt-live outbound::tests::parses_reply_and_notify_in_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9019724Z         PASS [   0.012s] (1788/3325) spt-live outbound::tests::prose_only_yields_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9049649Z         PASS [   0.012s] (1789/3325) spt-live outbound::tests::spoofed_routing_attrs_are_unrepresentable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9109896Z         PASS [   0.321s] (1790/3325) spt-live ingest::tests::preserved_drop_retry_is_idempotent_then_commits_on_resolve
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9149826Z         PASS [   0.012s] (1791/3325) spt-live pulse::tests::a_fresh_turn_sentinel_waits_and_is_left_in_place
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9189672Z         PASS [   0.015s] (1792/3325) spt-live pulse::tests::an_aged_turn_sentinel_fires_once_and_clears
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9249651Z         PASS [   0.015s] (1793/3325) spt-live pulse::tests::an_unreadable_age_fails_open_and_fires
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9309633Z         PASS [   0.012s] (1794/3325) spt-live pulse::tests::echo_gate_fires_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9379781Z         PASS [   0.013s] (1795/3325) spt-live pulse::tests::the_edge_arm_fires_immediately_and_the_arms_are_independent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9419668Z         PASS [   0.203s] (1796/3325) spt-live ingest::tests::the_consumed_drops_content_is_carried_byte_for_byte
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9526030Z         PASS [   0.014s] (1797/3325) spt-live pulse::tests::tick_reports_idle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:04.9710191Z         PASS [   0.292s] (1798/3325) spt-live ingest::tests::signoff_deferred_project_preserves_into_commune_pending
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.0003015Z         PASS [   0.259s] (1799/3325) spt-live ingest::tests::untagged_and_suppressed_drops_still_delete
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.0389899Z         PASS [   0.302s] (1800/3325) spt-live ingest::tests::two_slice_drop_routes_per_tier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.0788939Z         PASS [   0.127s] (1801/3325) spt-live reconcile::tests::no_conflict_is_a_noop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.1120156Z         PASS [   0.179s] (1802/3325) spt-live pulse::tests::tick_ingests_drops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.1240049Z         PASS [   0.013s] (1803/3325) spt-live resume::tests::a_standing_ingest_latch_warns_while_a_turn_latch_and_a_clean_stamp_do_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.1640009Z         PASS [   0.225s] (1804/3325) spt-live reconcile::tests::failed_turn_preserves_everything
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.1699913Z         PASS [   0.130s] (1805/3325) spt-live resume::tests::a_clean_stamp_leaves_the_composed_brief_byte_identical
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2030078Z         PASS [   0.290s] (1806/3325) spt-live pulse::tests::commune_defers_project_then_lands_it_across_pulses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2146701Z         PASS [   0.134s] (1807/3325) spt-live resume::tests::a_resume_over_a_misplaced_drop_is_marked_stale_and_over_a_registered_one_is_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2290585Z         PASS [   0.015s] (1808/3325) spt-live resume::tests::misplaced_drop_surfaces_once_and_names_it_while_a_consumed_one_is_silent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2359687Z         PASS [   0.231s] (1809/3325) spt-live reconcile::tests::suppressed_write_preserves_artifacts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2430181Z         PASS [   0.015s] (1810/3325) spt-live resume::tests::pending_strips_checkpoint_sentinel_keeps_inter_marker_text
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2499886Z         PASS [   0.015s] (1811/3325) spt-live resume::tests::the_never_ingested_notice_fires_only_for_the_artifact_less_case
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2531701Z         PASS [   0.128s] (1812/3325) spt-live resume::tests::download_appends_pending_drop_after_project
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2659760Z         PASS [   0.017s] (1813/3325) spt-live signoff::tests::echo_precedes_signoff_compose
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2719559Z         PASS [   0.297s] (1814/3325) spt-live reconcile::tests::reconcile_merges_and_clears
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2749446Z         PASS [   0.016s] (1815/3325) spt-live signoff::tests::missing_session_skips_echo
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2777038Z         PASS [   0.012s] (1816/3325) spt-live signoff::tests::stale_signoff_swept
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2837890Z         PASS [   0.019s] (1817/3325) spt-live signoff::tests::recovered_self_is_not_signed_off
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2869442Z         PASS [   0.017s] (1818/3325) spt-live turn::tests::empty_stdout_is_an_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.2909664Z         PASS [   0.012s] (1819/3325) spt-live turn::tests::failed_turn_display_carries_stdout_tail_and_marks_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3029961Z         PASS [   0.021s] (1820/3325) spt-live turn::tests::stream_tail_is_bounded_utf8_safe_and_from_the_end
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3170058Z         PASS [   0.025s] (1821/3325) spt-msg deliver::tests::a_sealed_envelope_keeps_its_seal_attr_through_ingress
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3241576Z         PASS [   0.040s] (1822/3325) spt-live turn::tests::turn_captures_stdout
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3379702Z         PASS [   0.014s] (1823/3325) spt-msg deliver::tests::deferred_send_validates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3509817Z         PASS [  15.397s] (1824/3325) spt::bin/spt cli::tests::owner_shutdown_gated_by_can_shutdown_grant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3679798Z         PASS [   0.204s] (1825/3325) spt-live resume::tests::download_composes_two_tiers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.3990131Z         PASS [   0.196s] (1826/3325) spt-live resume::tests::download_serves_the_engine_rooms_core_role_and_ignores_a_planted_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.4470014Z         PASS [   0.278s] (1827/3325) spt-live resume::tests::download_renders_role_first_then_live_then_project
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.4645002Z         PASS [   0.017s] (1828/3325) spt-msg emit::tests::a_content_trigger_fires_on_the_body_from_an_unclassified_sender
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.4828534Z         PASS [   0.018s] (1829/3325) spt-msg emit::tests::a_real_trust_warning_attr_does_not_split_the_frame
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5000410Z         PASS [   0.016s] (1830/3325) spt-msg emit::tests::a_senders_own_monic_and_warning_are_stripped_before_ours_are_attached
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5153942Z         PASS [   0.016s] (1831/3325) spt-msg emit::tests::a_typed_body_reports_that_the_warning_found_no_carrier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5213520Z         PASS [   0.207s] (1832/3325) spt-msg deliver::tests::deferred_send_skips_stream_drain_survives_for_hook
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5299658Z         PASS [   0.129s] (1833/3325) spt-msg deliver::tests::send_outcome_mapping
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5369931Z         PASS [   0.019s] (1834/3325) spt-msg emit::tests::a_typed_msg_envelope_carries_the_trust_warning
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5399669Z         PASS [   0.014s] (1835/3325) spt-msg emit::tests::a_typed_msg_envelope_still_carries_the_recipients_monic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5459727Z         PASS [   0.015s] (1836/3325) spt-msg emit::tests::a_typed_user_msg_envelope_is_still_verbatim_and_monicless
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5489508Z         PASS [   0.012s] (1837/3325) spt-msg emit::tests::husk_record_rides_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5519577Z         PASS [   0.015s] (1838/3325) spt-msg emit::tests::anonymous_still_enveloped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5609769Z         PASS [   0.016s] (1839/3325) spt-msg emit::tests::matched_monic_rides_both_edges_as_json_array
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5639620Z         PASS [   0.013s] (1840/3325) spt-msg emit::tests::monic_attr_survives_chunking
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5640452Z         PASS [   0.224s] (1841/3325) spt-msg deliver::tests::offline_existing_perch_spools
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5641406Z         PASS [   0.014s] (1842/3325) spt-msg emit::tests::monic_text_cannot_break_out_of_the_attr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5749622Z         PASS [   0.016s] (1843/3325) spt-msg emit::tests::multiline_body_escapes_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5769927Z         PASS [   0.015s] (1844/3325) spt-msg emit::tests::oversized_listener_line_chunks_into_event_parts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5799688Z         PASS [   0.014s] (1845/3325) spt-msg emit::tests::the_spliced_envelope_declares_its_type_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5829644Z         PASS [   0.018s] (1846/3325) spt-msg emit::tests::structural_renders_msg_envelope
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5856539Z         PASS [   0.233s] (1847/3325) spt-msg deliver::tests::online_delivers_via_tcp_without_spooling
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5909811Z         PASS [   0.015s] (1848/3325) spt-msg emit::tests::the_trust_warning_rides_the_envelope_beside_a_matched_monic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5939540Z         PASS [   0.015s] (1849/3325) spt-msg emit::tests::typed_body_carries_no_monic_attr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5969818Z         PASS [   0.016s] (1850/3325) spt-msg emit::tests::typed_body_from_wins_over_structural_from_no_double_wrap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.5999695Z         PASS [   0.015s] (1851/3325) spt-msg emit::tests::unmatched_sender_gets_no_attr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6029650Z         PASS [   0.228s] (1852/3325) spt-msg deliver::tests::recycled_pid_address_does_not_misdeliver
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6059679Z         PASS [   0.016s] (1853/3325) spt-msg emit::tests::user_msg_envelope_renders_verbatim_on_both_edges
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6089547Z         PASS [   0.358s] (1854/3325) spt-live signoff::tests::boundary_writes_resume_commune
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6119470Z         PASS [   0.013s] (1855/3325) spt-msg emit::tests::whole_render_never_chunks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6159608Z         PASS [   0.015s] (1856/3325) spt-msg ready::tests::a_listener_cannot_claim_the_reserved_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6539940Z         PASS [   0.803s] (1857/3325) spt-daemon applyhost::tests::brain_restart_verb_raises_the_supervisor_signal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.6889109Z         PASS [   0.097s] (1858/3325) spt-msg listener::tests::bind_registers_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.7019661Z         PASS [   0.105s] (1859/3325) spt-msg listener::tests::drop_unregisters_address
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.7343904Z         PASS [   0.139s] (1860/3325) spt-msg listener::tests::blocking_accepts_within_window
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.7859918Z         PASS [   0.479s] (1861/3325) spt-msg deliver::tests::active_only_never_tcp_delivers_to_a_live_relay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.8009724Z         PASS [   0.206s] (1862/3325) spt-msg listener::tests::blocking_times_out_when_idle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.8829827Z         PASS [   0.278s] (1863/3325) spt-msg ready::tests::recv_gets_live_tcp_message
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.9039837Z         PASS [   0.285s] (1864/3325) spt-msg ready::tests::soft_cleanup_preserves_spool_and_info
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.9159774Z         PASS [   0.312s] (1865/3325) spt-msg ready::tests::backlog_drains_on_start
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.9395005Z         PASS [   0.251s] (1866/3325) spt-msg ready::tests::start_ledgers_a_boot_session_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:05.9609717Z         PASS [   0.257s] (1867/3325) spt-msg ready::tests::start_registers_resolvable_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.0710098Z         PASS [   0.415s] (1868/3325) spt-daemon applyhost::tests::broker_reports_its_compiled_image_version_over_ipc
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.1729978Z         PASS [   0.259s] (1869/3325) spt-msg ring::tests::an_empty_perch_dir_is_refused_and_left_for_its_creator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.1849821Z         PASS [   0.402s] (1870/3325) spt-msg ring::tests::a_live_shaped_perch_survives_a_timed_out_ring_byte_identical
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.1979537Z         PASS [   0.014s] (1871/3325) spt-msg ring::tests::ring_no_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2119804Z         PASS [   0.410s] (1872/3325) spt-msg ring::tests::a_spool_without_a_record_counts_as_occupied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2269750Z         PASS [   0.015s] (1873/3325) spt-msg wire::tests::decode_rejects_overrunning_from_len
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2309705Z         PASS [   0.270s] (1874/3325) spt-msg ring::tests::an_unreadable_record_counts_as_occupied_and_is_never_deleted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2389662Z         PASS [   0.013s] (1875/3325) spt-msg wire::tests::encode_decode_round_trips_structural
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2429672Z         PASS [   0.509s] (1876/3325) spt-msg ring::tests::a_late_reply_to_a_spooled_ring_still_reaches_the_caller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2479532Z         PASS [   0.015s] (1877/3325) spt-msg wire::tests::encode_empty_from_is_anonymous
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2539549Z         PASS [   0.015s] (1878/3325) spt-msg wire::tests::frame_round_trips_over_loopback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2599570Z         PASS [   0.016s] (1879/3325) spt-msg wire::tests::typed_event_body_rides_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.2629563Z         PASS [   0.018s] (1880/3325) spt-msg wire::tests::oversized_length_prefix_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3180146Z         PASS [   0.055s] (1881/3325) spt-net net::answermsg::tests::a_receipt_round_trips_and_is_neither_a_message_nor_a_knock
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3419798Z         PASS [   0.026s] (1882/3325) spt-net net::answermsg::tests::the_ack_is_two_words_and_the_refusal_side_is_undifferentiated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3459690Z         PASS [   0.441s] (1883/3325) spt-msg ring::tests::a_third_partys_ring_never_drains_the_victims_mail_into_its_reply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3599779Z         PASS [   0.018s] (1884/3325) spt-net net::answermsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3659687Z         PASS [   0.023s] (1885/3325) spt-net net::answermsg::tests::the_receipt_has_two_answers_and_no_word_for_silence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3799720Z         PASS [   0.020s] (1886/3325) spt-net net::attach::tests::attach_intents_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.3849812Z         PASS [   0.020s] (1887/3325) spt-net net::attach::tests::fido2_fields_are_additive_and_absent_decodes_as_plain_totp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4039801Z         PASS [   0.023s] (1888/3325) spt-net net::attach::tests::kick_take_and_displaced_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4059677Z         PASS [   0.018s] (1889/3325) spt-net net::attach::tests::record_split_across_chunks_reassembles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4239924Z         PASS [   0.021s] (1890/3325) spt-net net::attach::tests::records_round_trip_and_unknown_kind_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4269613Z         PASS [   0.022s] (1891/3325) spt-net net::attach::tests::request_code_is_additive_and_absent_reads_as_no_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4389900Z         PASS [   0.557s] (1892/3325) spt-msg ring::tests::a_spooled_ring_waits_and_names_the_silence_it_got
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4449705Z         PASS [   0.019s] (1893/3325) spt-net net::attach::tests::request_without_intent_defaults_to_control
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4509796Z         PASS [   0.022s] (1894/3325) spt-net net::attach::tests::request_endpoint_id_is_additive_and_local_wire_is_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4599971Z         PASS [   0.020s] (1895/3325) spt-net net::attach::tests::seal_ceremony_capability_is_additive_and_absent_reads_as_undeclared
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4700030Z         PASS [   0.022s] (1896/3325) spt-net net::attach::tests::seal_ceremony_code_carries_the_code_and_no_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4759846Z         PASS [   0.403s] (1897/3325) spt-daemon applyhost::tests::refresh_brain_cycles_without_staging_or_swap_preconditions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4860476Z         PASS [   0.030s] (1898/3325) spt-net net::codeseal::tests::a_code_minted_before_a_rotation_still_opens_under_the_previous_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4899989Z         PASS [   0.305s] (1899/3325) spt-msg ring::tests::ring_gets_reply_and_cleans_up
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4929746Z         PASS [   0.023s] (1900/3325) spt-net net::codeseal::tests::a_legacy_bare_hex_code_is_not_a_sealed_form
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.4989963Z         PASS [   0.026s] (1901/3325) spt-net net::codeseal::tests::a_partial_envelope_refuses_like_every_other_failure
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5019798Z         PASS [   0.020s] (1902/3325) spt-net net::codeseal::tests::a_retyped_code_opens_in_either_case
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5080120Z         PASS [   0.023s] (1903/3325) spt-daemon applyhost::tests::staged_already_applied_classifies_up_to_date_vs_newer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5150191Z         PASS [   0.020s] (1904/3325) spt-net net::codeseal::tests::a_sealed_code_round_trips_and_has_the_ratified_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5230026Z         PASS [   0.028s] (1905/3325) spt-net net::codeseal::tests::a_single_flipped_byte_anywhere_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5259767Z         PASS [   0.015s] (1906/3325) spt-net net::codeseal::tests::another_subnets_key_opens_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5319887Z         PASS [   0.018s] (1907/3325) spt-net net::codeseal::tests::an_exhausted_candidate_list_refuses_like_a_malformed_string
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5379922Z         PASS [   0.020s] (1908/3325) spt-net net::codeseal::tests::a_two_subnet_code_opens_under_either_and_carries_one_secret
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5440124Z         PASS [   0.032s] (1909/3325) spt-daemon broker::tests::a_bring_up_admit_ticket_is_random_single_use_session_bound_and_short_lived
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5499941Z         PASS [   0.021s] (1910/3325) spt-net net::codeseal::tests::every_refusal_shape_is_the_same_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5590050Z         PASS [   0.019s] (1911/3325) spt-net net::codeseal::tests::no_envelope_window_equals_the_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5591199Z         PASS [   0.019s] (1912/3325) spt-net net::codeseal::tests::open_all_among_returns_every_opening_with_its_label
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5592259Z         PASS [   0.019s] (1913/3325) spt-net net::codeseal::tests::the_cipher_and_mac_keys_are_separate_derivations
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5593366Z         PASS [   0.013s] (1914/3325) spt-net net::digestpull::tests::records_round_trip_and_degrade
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5631779Z         PASS [   0.021s] (1915/3325) spt-net net::codeseal::tests::the_rotation_grace_still_opens_one_envelope_of_a_multi_envelope_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5680286Z         PASS [   0.021s] (1916/3325) spt-net net::codeseal::tests::two_codes_differing_in_one_byte_do_not_share_a_keystream
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5721049Z         PASS [   0.010s] (1917/3325) spt-net net::digestpull::tests::request_wire_shape_carries_the_demux_marker_and_omits_an_absent_depth
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5750007Z         PASS [   0.024s] (1918/3325) spt-net net::digestpull::tests::reply_outcomes_are_distinct_and_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5780140Z         PASS [   0.011s] (1919/3325) spt-net net::endpoint::tests::family_force_off_flag_parsing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5809660Z         PASS [   0.015s] (1920/3325) spt-net net::digestpull::tests::the_request_carries_no_spoofable_origin_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5839591Z         PASS [   0.015s] (1921/3325) spt-net net::endpoint::tests::family_selection_drops_dead_keeps_working
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5899654Z         PASS [   0.021s] (1922/3325) spt-net net::endpoint::tests::keep_alive_is_under_idle_timeout
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.5921447Z         PASS [   0.019s] (1923/3325) spt-net net::forkmsg::tests::a_fork_record_round_trips_carrying_its_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6089970Z         PASS [   0.020s] (1924/3325) spt-net net::forkmsg::tests::the_wire_shape_cannot_express_deleting_the_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6119731Z         PASS [   0.020s] (1925/3325) spt-net net::knockmsg::tests::a_knock_record_can_never_be_read_as_a_message_feed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6300039Z         PASS [   0.021s] (1926/3325) spt-net net::knockmsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6329740Z         PASS [   0.019s] (1927/3325) spt-net net::knockmsg::tests::the_record_round_trips_and_tolerates_unknown_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6489916Z         PASS [   0.019s] (1928/3325) spt-net net::mesh::seedproof::tests::cross_connection_replay_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6529697Z         PASS [   0.023s] (1929/3325) spt-net net::mesh::seedproof::tests::forged_proof_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6579652Z         PASS [   0.398s] (1930/3325) spt-msg::killer_quickstart offline_then_online_delivers_backlog
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6689999Z         PASS [   0.019s] (1931/3325) spt-net net::mesh::seedproof::tests::frame_codec_round_trips_and_rejects_garbage
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6759923Z         PASS [   0.017s] (1932/3325) spt-net net::mesh::seedproof::tests::hello_frame_round_trips_and_rejects_malformed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6761127Z         PASS [   0.017s] (1933/3325) spt-net net::mesh::seedproof::tests::mk_derivation_is_deterministic_and_input_sensitive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6869914Z         PASS [   0.017s] (1934/3325) spt-net net::mesh::seedproof::tests::valid_proof_verifies_and_roles_differ
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6899604Z         PASS [   0.020s] (1935/3325) spt-net net::mesh::seedproof::tests::mutual_requires_both_sides
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6917646Z         PASS [   0.019s] (1936/3325) spt-net net::mesh::seedproof::tests::proofset_frame_round_trips_and_rejects_malformed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.6959566Z         PASS [   0.140s] (1937/3325) spt-net net::endpoint::tests::endpoint_id_binds_to_identity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7109872Z         PASS [   0.021s] (1938/3325) spt-net net::mesh::seedproof::tests::wrong_subnet_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7149677Z         PASS [   0.020s] (1939/3325) spt-net net::notif::tests::forged_origin_field_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7181837Z         PASS [   0.023s] (1940/3325) spt-net net::mesh::seedproof::tests::wrong_epoch_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7209697Z         PASS [   0.020s] (1941/3325) spt-net net::notif::tests::n1_wire_record_omits_default_fields_and_reads_old_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7289664Z         PASS [   0.020s] (1942/3325) spt-net net::notif::tests::record_split_across_chunks_reassembles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7319645Z         PASS [   0.019s] (1943/3325) spt-net net::pairing::meet::tests::derived_identity_is_deterministic_and_input_bound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7349498Z         PASS [   0.019s] (1944/3325) spt-net net::pairing::meet::tests::key_seed_is_not_the_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7369695Z         PASS [   0.022s] (1945/3325) spt-net net::notif::tests::record_round_trips_and_unknown_kind_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7499874Z         PASS [   0.019s] (1946/3325) spt-net net::pairing::ntp::tests::clock_step_forces_refresh_via_injected_reads
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7519778Z         PASS [   0.019s] (1947/3325) spt-net net::pairing::ntp::tests::invalidate_clears_the_snapshot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7569631Z         PASS [   0.020s] (1948/3325) spt-net net::pairing::meet::tests::skewed_window_contains_the_listener_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7659680Z         PASS [   0.015s] (1949/3325) spt-net net::pairing::ntp::tests::loud_fail_logs_only_on_transitions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7683883Z         PASS [   0.015s] (1950/3325) spt-net net::pairing::ntp::tests::offset_applies_signed_and_saturates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7719513Z         PASS [   0.022s] (1951/3325) spt-net net::pairing::ntp::tests::parse_rejects_short_and_zeroed_replies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7809497Z         PASS [   0.583s] (1952/3325) spt-msg ring::tests::ring_timeout_cleans_up
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7869767Z         PASS [   0.022s] (1953/3325) spt-net net::pairing::ntp::tests::sort_v4_first_leads_with_v4_preserving_family_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.7949830Z         PASS [   0.029s] (1954/3325) spt-net net::pairing::ntp::tests::sntp_query_reads_the_transmit_timestamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8040011Z         PASS [   0.275s] (1955/3325) spt-daemon broker::tests::a_bring_up_that_is_never_seated_grants_nothing_and_briefs_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8099767Z         PASS [   0.021s] (1956/3325) spt-net net::pairing::ratelimit::tests::abandoned_ceremony_is_reclaimed_and_charged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8169777Z         PASS [   0.249s] (1957/3325) spt-net net::endpoint::tests::two_endpoints_loopback_echo
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8190737Z         PASS [   0.024s] (1958/3325) spt-net net::pairing::ratelimit::tests::backoff_curve_doubles_then_caps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8289858Z         PASS [   0.020s] (1959/3325) spt-net net::pairing::ratelimit::tests::backoff_is_per_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8349735Z         PASS [   0.019s] (1960/3325) spt-net net::pairing::ratelimit::tests::failures_impose_exponential_backoff
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8379701Z         PASS [   0.033s] (1961/3325) spt-daemon broker::tests::a_controller_resume_below_the_floor_is_served_the_repaint_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8399816Z         PASS [   0.021s] (1962/3325) spt-net net::pairing::ratelimit::tests::first_ceremony_is_free_and_success_resets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8499801Z         PASS [   0.015s] (1963/3325) spt-net net::pairing::ratelimit::tests::success_clears_accumulated_backoff
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8537359Z         PASS [   0.024s] (1964/3325) spt-net net::pairing::ratelimit::tests::one_active_ceremony_per_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8599730Z         PASS [   0.017s] (1965/3325) spt-net net::pairing::rendezvous::tests::distinct_same_length_names_diverge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8719899Z         PASS [   0.930s] (1966/3325) spt-msg ring::tests::an_explicit_from_never_becomes_the_gate_subject_or_a_reply_window
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8749632Z         PASS [   0.021s] (1967/3325) spt-net net::pairing::rendezvous::tests::length_prefix_prevents_boundary_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8779446Z         PASS [   0.020s] (1968/3325) spt-net net::pairing::rendezvous::tests::token_is_deterministic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8809550Z         PASS [   0.020s] (1969/3325) spt-net net::pairing::rendezvous::tests::token_varies_with_name_and_step
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8899682Z         PASS [   0.019s] (1970/3325) spt-net net::pairing::rendezvous::tests::window_is_three_adjacent_tokens
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.8929654Z         PASS [   0.633s] (1971/3325) spt-msg::killer_quickstart two_agents_exchange_message_tcp_and_spool
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.9440092Z         PASS [   0.215s] (1972/3325) spt-net net::pairing::meet::tests::meet_redirects_joiner_to_the_real_pairing_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.9559799Z         PASS [   0.064s] (1973/3325) spt-net net::pairing::spake::tests::reflected_role_is_rejected_by_pake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:06.9800144Z         PASS [   6.057s] (1974/3325) spt-daemon::pump pump_survives_a_black_holing_peer_heartbeat_advances_no_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.0559877Z         PASS [   0.110s] (1975/3325) spt-net net::pairing::spake::tests::stale_epoch_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.0859904Z         PASS [   0.194s] (1976/3325) spt-net net::pairing::spake::tests::matching_code_pairs_and_agrees_on_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1039900Z         PASS [   0.329s] (1977/3325) spt-net net::pairing::ntp::tests::unreachable_server_falls_back
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1099742Z         PASS [   0.239s] (1978/3325) spt-net net::pairing::spake::tests::a_code_that_is_neither_key_fails_both_candidates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1202637Z         PASS [   0.333s] (1979/3325) spt-net net::pairing::ntp::tests::v6_first_ordering_does_not_starve_the_query
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1204251Z         PASS [   0.009s] (1980/3325) spt-net net::pairing::totp::tests::code_at_is_six_zero_padded_digits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1289794Z         PASS [   0.009s] (1981/3325) spt-net net::pairing::totp::tests::generated_seeds_are_distinct
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1380033Z         PASS [   0.008s] (1982/3325) spt-net net::pairing::totp::tests::matches_rfc6238_appendix_b_vectors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1439565Z         PASS [   0.008s] (1983/3325) spt-net net::pairing::totp::tests::otpauth_uri_is_well_formed_and_encoded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1485093Z         PASS [   0.030s] (1984/3325) spt-net net::pairing::totp::tests::debug_redacts_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1529561Z         PASS [   0.279s] (1985/3325) spt-net net::pairing::spake::tests::dual_start_shares_one_msg_a
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1571672Z         PASS [   0.008s] (1986/3325) spt-net net::pairing::totp::tests::seed_round_trips_through_base32
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1618519Z         PASS [   0.009s] (1987/3325) spt-net net::pairing::transcript::tests::diverged_shared_secret_fails_verification
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1649507Z         PASS [   0.020s] (1988/3325) spt-net net::pairing::totp::tests::time_step_is_floor_unix_over_period
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1710785Z         PASS [   0.209s] (1989/3325) spt-net net::pairing::spake::tests::stale_step_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1779853Z         PASS [   0.020s] (1990/3325) spt-net net::pairing::totp::tests::window_accepts_plus_minus_one_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1799776Z         PASS [   0.011s] (1991/3325) spt-net net::pairing::transcript::tests::each_bound_field_changes_the_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1809452Z         PASS [   0.121s] (1992/3325) spt-net net::pairing::spake::tests::tampered_tag_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1854695Z         PASS [   0.018s] (1993/3325) spt-net net::pairing::transcript::tests::matching_tag_verifies_and_roles_differ
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1908098Z         PASS [   0.021s] (1994/3325) spt-net net::pairing::transcript::tests::length_prefixing_prevents_boundary_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.1979836Z         PASS [   0.018s] (1995/3325) spt-net net::pairing::transcript::tests::message_order_is_bound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.2030738Z         PASS [   0.018s] (1996/3325) spt-net net::pairing::transcript::tests::pake_identity_binds_role_and_context
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.2420029Z         PASS [   0.258s] (1997/3325) spt-net net::pairing::spake::tests::substituted_pubkey_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.2471499Z         PASS [   0.146s] (1998/3325) spt-net net::pairing::spake::tests::wrong_subnet_fails
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.2576556Z         PASS [   0.020s] (1999/3325) spt-net net::pairing::wire::tests::frame_codec_round_trips_and_rejects_garbage
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.2712043Z         PASS [   0.021s] (2000/3325) spt-net net::pairing::wire::tests::hello_intro_is_additive_and_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.2829978Z         PASS [   0.199s] (2001/3325) spt-net net::pairing::spake::tests::wrong_code_fails_at_confirmation_not_spake
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.3033994Z         PASS [   0.020s] (2002/3325) spt-net net::pairing::wire::tests::seed_frame_carries_both_keys_and_the_declared_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.3249986Z         PASS [   0.020s] (2003/3325) spt-net net::pairing::wire::tests::seed_frame_roster_is_additive_and_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.3433213Z         PASS [   0.019s] (2004/3325) spt-net net::pairing::wire::tests::spake2_second_candidate_is_additive_and_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.3499619Z         PASS [   0.164s] (2005/3325) spt-net net::pairing::wire::tests::busy_subnet_refuses_ceremony
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.4500099Z         PASS [   0.274s] (2006/3325) spt-net net::pairing::wire::tests::a_legacy_joiner_ignores_the_trailing_candidate_and_still_joins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.4579811Z         PASS [   0.117s] (2007/3325) spt-net net::pairing::wire::tests::stale_step_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.4810101Z         PASS [   0.020s] (2008/3325) spt-net net::presencemsg::tests::a_presence_record_can_never_be_read_as_a_message_feed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5000097Z         PASS [   0.021s] (2009/3325) spt-net net::presencemsg::tests::an_unrecognized_token_reads_unknown_and_never_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5069783Z         PASS [   0.156s] (2010/3325) spt-net net::pairing::wire::tests::unknown_subnet_is_rejected
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5198824Z         PASS [   0.020s] (2011/3325) spt-net net::presencemsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5259845Z         PASS [   0.019s] (2012/3325) spt-net net::presencemsg::tests::the_record_round_trips_and_tolerates_unknown_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5460037Z         PASS [   0.020s] (2013/3325) spt-net net::redeemmsg::tests::a_redemption_record_round_trips_carrying_its_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5515612Z         PASS [   0.031s] (2014/3325) spt-net net::presencemsg::tests::the_reply_carries_the_word_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5630200Z         PASS [   0.018s] (2015/3325) spt-net net::redeemmsg::tests::a_refusal_carries_nothing_while_a_redemption_carries_the_rendering
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5759977Z         PASS [   0.018s] (2016/3325) spt-net net::redeemmsg::tests::no_token_means_unconfirmed_and_only_redeemed_carries_data
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5799795Z         PASS [   0.016s] (2017/3325) spt-net net::redeemmsg::tests::the_claimed_node_is_additive_and_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.5983598Z         PASS [   0.028s] (2018/3325) spt-net net::redeemmsg::tests::the_reply_asks_for_the_reverse_and_no_constructor_can_claim_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6069948Z         PASS [   0.020s] (2019/3325) spt-net net::redeemmsg::tests::the_reply_round_trips_both_arms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6110014Z         PASS [   0.724s] (2020/3325) spt-net net::pairing::spake::tests::either_key_confirms_through_the_candidate_pair
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6180103Z         PASS [   0.018s] (2021/3325) spt-net net::redeemmsg::tests::the_wire_shape_cannot_ask_the_minter_to_arm_the_other_side
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6219784Z         PASS [   0.019s] (2022/3325) spt-net net::registry::tests::advertise_if_visible_gates_before_join
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6249665Z         PASS [   0.020s] (2023/3325) spt-net net::registry::tests::adapter_projects_controlled_serde_and_n_minus_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6400002Z         PASS [   0.021s] (2024/3325) spt-net net::registry::tests::display_parity_fields_serde_and_n_minus_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6429854Z         PASS [   0.019s] (2025/3325) spt-net net::registry::tests::distinct_nodes_are_separate_instances
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6509918Z         PASS [   0.031s] (2026/3325) spt-net net::registry::tests::equal_epoch_replay_is_stale_noop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6571155Z         PASS [   0.020s] (2027/3325) spt-net net::registry::tests::evicting_dead_node_clears_phantom_ambiguity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6637726Z         PASS [   0.021s] (2028/3325) spt-net net::registry::tests::excluded_endpoint_is_not_routable_even_via_node_pin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6729989Z         PASS [   0.015s] (2029/3325) spt-net net::registry::tests::join_collides_even_with_offline_holder
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6779668Z         PASS [   0.408s] (2030/3325) spt-net net::pairing::wire::tests::repair_member_keeps_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6819833Z         PASS [   0.021s] (2031/3325) spt-net net::registry::tests::join_colliding_id_on_other_node_refuses_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6859644Z         PASS [   0.032s] (2032/3325) spt-net net::registry::tests::exclusion_prunes_cross_subnet_ambiguity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.6972737Z         PASS [   0.441s] (2033/3325) spt-net net::pairing::wire::tests::loopback_pairs_and_transfers_seed_and_roster
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7009951Z         PASS [   0.027s] (2034/3325) spt-net net::registry::tests::join_fresh_id_is_inserted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7059809Z         PASS [   0.023s] (2035/3325) spt-net net::registry::tests::newer_epoch_supersedes_same_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7089736Z         PASS [   0.027s] (2036/3325) spt-net net::registry::tests::join_same_node_falls_through_to_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7090859Z         PASS [   0.031s] (2037/3325) spt-net net::registry::tests::join_same_name_in_different_subnet_is_legal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7112503Z         PASS [   0.011s] (2038/3325) spt-net net::registry::tests::node_level_label_lease_persist_prune_and_serde
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7190455Z         PASS [   0.019s] (2039/3325) spt-net net::registry::tests::node_label_rides_the_lease_and_serde
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7217870Z         PASS [   0.012s] (2040/3325) spt-net net::registry::tests::offline_since_side_map_is_self_pruning
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7319385Z         PASS [   0.024s] (2041/3325) spt-net net::registry::tests::offline_rows_decay_past_grace_own_rows_survive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7390071Z         PASS [   0.024s] (2042/3325) spt-net net::registry::tests::node_routability_keeps_unknown_distinct_from_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7460137Z         PASS [   0.028s] (2043/3325) spt-net net::registry::tests::node_qualifier_accepts_label_and_prefix_refuses_shared
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7520012Z         PASS [   0.549s] (2044/3325) spt-net net::pairing::wire::tests::create_new_then_join_learns_named_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7584218Z         PASS [   0.023s] (2045/3325) spt-net net::registry::tests::presence_datum_rides_the_lease_and_serde
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7651047Z         PASS [   0.559s] (2046/3325) spt-net net::pairing::wire::tests::a_wrong_code_is_refused_the_same_way_on_a_two_key_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7689715Z         PASS [   0.028s] (2047/3325) spt-net net::registry::tests::purge_churn_offline_ghosts_stay_bounded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7740237Z         PASS [   0.019s] (2048/3325) spt-net net::registry::tests::registry_serde_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7749775Z         PASS [   0.024s] (2049/3325) spt-net net::registry::tests::rename_ripples_rows_across_advertised_subnets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7796784Z         PASS [   0.018s] (2050/3325) spt-net net::registry::tests::resolve_across_bare_id_distinct_nodes_refuses_acrossnodes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7809743Z         PASS [   0.020s] (2051/3325) spt-net net::registry::tests::renaming_into_the_reserved_id_is_refused_with_no_ripple
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7849694Z         PASS [   0.016s] (2052/3325) spt-net net::registry::tests::resolve_across_local_wins_over_remote_in_other_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7889599Z         PASS [   0.029s] (2053/3325) spt-net net::registry::tests::rename_collision_refuses_whole_ripple
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7899643Z         PASS [   0.017s] (2054/3325) spt-net net::registry::tests::resolve_across_same_node_twins_keep_freshest_epoch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7949782Z         PASS [   0.021s] (2055/3325) spt-net net::registry::tests::resolve_across_same_node_two_subnets_resolves
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7959808Z         PASS [   0.017s] (2056/3325) spt-net net::registry::tests::resolve_prefers_local_instance
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.7989665Z         PASS [   0.025s] (2057/3325) spt-net net::registry::tests::resolve_across_unique_id_resolves
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8019690Z         PASS [   0.026s] (2058/3325) spt-net net::registry::tests::resolve_multiple_live_nodes_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8049901Z         PASS [   0.017s] (2059/3325) spt-net net::registry::tests::resolve_sole_live_remote_and_skips_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8079637Z         PASS [   0.027s] (2060/3325) spt-net net::registry::tests::resolve_across_subnet_qualified_routes_there
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8109666Z         PASS [   0.026s] (2061/3325) spt-net net::registry::tests::resolve_node_qualifier_pins_and_offline_is_not_found
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8139596Z         PASS [   0.022s] (2062/3325) spt-net net::registry::tests::resource_blurb_rides_the_lease_and_serde
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8169782Z         PASS [   0.018s] (2063/3325) spt-net net::registry::tests::resource_projection_threads_adapter_projects_controlled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8199693Z         PASS [   0.019s] (2064/3325) spt-net net::registry::tests::select_rest_target_offline_never_a_candidate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8229626Z         PASS [   0.020s] (2065/3325) spt-net net::registry::tests::resource_projection_threads_node_label
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8259710Z         PASS [   0.025s] (2066/3325) spt-net net::registry::tests::resource_projection_filters_hidden_and_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8289650Z         PASS [   0.025s] (2067/3325) spt-net net::registry::tests::resource_projection_threads_endpoint_type
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8315743Z         PASS [   0.020s] (2068/3325) spt-net net::registry::tests::revival_not_out_raced
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8339711Z         PASS [   0.020s] (2069/3325) spt-net net::registry::tests::select_rest_target_suspend_goal_satisfaction
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8365802Z         PASS [   0.021s] (2070/3325) spt-net net::registry::tests::select_rest_target_wake_goal_satisfaction
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8389721Z         PASS [   0.023s] (2071/3325) spt-net net::replicate::tests::apply_routes_by_subnet_and_drops_non_member
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8429671Z         PASS [   0.022s] (2072/3325) spt-net net::replicate::tests::decoder_survives_chunk_splits_and_corrupt_lines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8456307Z         PASS [   0.017s] (2073/3325) spt-net net::replicate::tests::stale_wire_update_cannot_clobber_newer_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8489891Z         PASS [   0.028s] (2074/3325) spt-net net::registry::tests::stale_active_cannot_clobber_newer_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8519753Z         PASS [   0.020s] (2075/3325) spt-net net::replicate::tests::feed_carries_instances_and_node_labels_wire_compat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8537147Z         PASS [   0.032s] (2076/3325) spt-net net::registry::tests::suspended_is_addressable_and_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8569480Z         PASS [   0.021s] (2077/3325) spt-net net::replicate::tests::update_round_trips_and_tolerates_unknown_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8604414Z         PASS [   0.019s] (2078/3325) spt-net net::sealmsg::tests::forged_origin_field_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8639791Z         PASS [   0.026s] (2079/3325) spt-net net::rest::tests::records_round_trip_and_degrade
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8669822Z         PASS [   0.027s] (2080/3325) spt-net net::sealmsg::tests::record_split_across_chunks_reassembles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8680115Z         PASS [   0.028s] (2081/3325) spt-net net::sealmsg::tests::enrollment_record_rides_the_feed_under_its_own_tag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8709714Z         PASS [   0.028s] (2082/3325) spt-net net::sealmsg::tests::record_round_trips_and_unknown_kind_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8739657Z         PASS [   0.018s] (2083/3325) spt-net net::shelllink::tests::records_round_trip_and_degrade
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8780324Z         PASS [   0.417s] (2084/3325) spt-net net::pairing::wire::tests::wrong_code_fails_and_records_no_membership
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8799727Z         PASS [   0.033s] (2085/3325) spt-net net::serveprobe::tests::records_round_trip_and_degrade
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8829715Z         PASS [   0.023s] (2086/3325) spt-net net::sync::tests::forged_origin_field_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8859758Z         PASS [   0.020s] (2087/3325) spt-net net::update::tests::forged_origin_field_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8889693Z         PASS [   0.021s] (2088/3325) spt-net net::sync::tests::records_round_trip_and_unknown_kind_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8919642Z         PASS [   0.026s] (2089/3325) spt-net net::sync::tests::record_split_across_chunks_reassembles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8949680Z         PASS [   0.022s] (2090/3325) spt-net net::update::tests::records_round_trip_and_unknown_kind_is_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.8979623Z         PASS [   0.016s] (2091/3325) spt-net net::wanmsg::tests::message_round_trips_and_tolerates_unknown_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9009609Z         PASS [   0.029s] (2092/3325) spt-net net::update::tests::record_split_across_chunks_reassembles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9039643Z         PASS [   0.016s] (2093/3325) spt-net net::wanmsg::tests::reply_round_trips_and_tolerates_unknown_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9069643Z         PASS [   0.030s] (2094/3325) spt-net net::wanmsg::tests::forged_origin_field_is_inert
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9099622Z         PASS [   0.018s] (2095/3325) spt-net net::wanmsg::tests::sender_proven_is_additive_in_both_directions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9109814Z         PASS [   0.017s] (2096/3325) spt-net net::webmsg::tests::records_round_trip_tag_the_first_line_and_skip_an_unknown_kind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9131482Z         PASS [   0.023s] (2097/3325) spt-net net::wanmsg::tests::route_splits_local_and_remote_and_passes_refusals
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9169653Z         PASS [   0.023s] (2098/3325) spt-poolguard tests::a_claim_from_another_repository_reads_unknown_not_settled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9199608Z         PASS [   0.030s] (2099/3325) spt-net net::wanmsg::tests::sender_origin_is_additive_in_both_directions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9229666Z         PASS [   0.015s] (2100/3325) spt-poolguard tests::a_directory_without_the_cargo_cache_marker_is_never_a_pool
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9259776Z         PASS [   0.014s] (2101/3325) spt-poolguard tests::a_foreign_pool_with_no_lane_claim_refuses_and_names_the_claim_command
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9289689Z         PASS [   0.031s] (2102/3325) spt-poolguard tests::a_claim_with_no_git_identity_falls_back_and_names_the_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9319670Z         PASS [   0.013s] (2103/3325) spt-poolguard tests::a_fresh_pool_imprints_its_first_builder_and_proceeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9348696Z         PASS [   0.029s] (2104/3325) spt-poolguard tests::a_dead_lane_holder_is_a_loud_takeover_not_a_refusal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9379571Z         PASS [   0.012s] (2105/3325) spt-poolguard tests::a_git_worktree_counts_as_the_enclosing_source_tree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9409721Z         PASS [   0.011s] (2106/3325) spt-poolguard tests::a_remedy_that_names_a_command_names_one_that_can_actually_run
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9429658Z         PASS [   0.026s] (2107/3325) spt-poolguard tests::a_landed_lane_with_a_dead_holder_is_still_a_takeover
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9459749Z         PASS [   0.047s] (2108/3325) spt-poolguard tests::a_dead_lane_is_owned_while_its_tree_lives_and_orphaned_once_it_does_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9489684Z         PASS [   0.009s] (2109/3325) spt-poolguard tests::a_stamp_round_trips_with_backslashes_and_a_birth_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9579789Z         PASS [   0.068s] (2110/3325) spt-poolguard tests::a_dead_holder_over_an_unlanded_lane_refuses_instead_of_taking_over
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9609600Z         PASS [   0.013s] (2111/3325) spt-poolguard tests::an_unreadable_stamp_degrades_to_ownerless
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9639648Z         PASS [   0.011s] (2112/3325) spt-poolguard tests::an_unstamped_in_tree_target_is_owned_by_the_tree_around_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9669652Z         PASS [   0.044s] (2113/3325) spt-poolguard tests::a_live_holder_refuses_even_when_the_lane_has_landed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9699673Z         PASS [   0.060s] (2114/3325) spt-poolguard tests::a_foreign_tree_is_refused_while_the_lane_holder_is_live
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9709590Z         PASS [   0.045s] (2115/3325) spt-poolguard tests::a_pool_held_by_a_live_lane_is_in_use
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9739690Z         PASS [   0.012s] (2116/3325) spt-poolguard tests::an_unstamped_pool_with_inbound_links_is_owned_not_orphaned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9769712Z         PASS [   0.046s] (2117/3325) spt-poolguard tests::a_recycled_holder_pid_is_a_takeover_not_a_live_lane
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9809735Z         PASS [   0.015s] (2118/3325) spt-poolguard tests::an_unstamped_pool_nothing_links_to_is_orphaned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9825062Z         PASS [   0.015s] (2119/3325) spt-poolguard tests::path_spelling_does_not_manufacture_a_crossing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9869707Z         PASS [   0.012s] (2120/3325) spt-poolguard tests::the_owning_tree_proceeds_without_imprinting_again
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9899785Z         PASS [   0.042s] (2121/3325) spt-poolguard tests::a_sweep_keeps_a_pool_whose_lane_is_in_flight_with_a_dead_holder
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:07.9984090Z         PASS [   0.026s] (2122/3325) spt-procident pinned_proc_tests::a_live_pinned_process_does_not_read_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0059941Z         PASS [   0.018s] (2123/3325) spt-procident pinned_proc_tests::pinning_a_live_process_on_this_platform_yields_a_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0089724Z         PASS [   0.034s] (2124/3325) spt-procident pinned_proc_tests::a_live_pid_carrying_a_different_birth_stamp_reads_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0200075Z         PASS [   0.020s] (2125/3325) spt-procident pinned_proc_tests::the_same_live_pid_carrying_its_real_birth_stamp_does_not_read_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0209532Z         PASS [   0.014s] (2126/3325) spt-proto addr::tests::parses_every_qualifier_combination
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0239677Z         PASS [   0.043s] (2127/3325) spt-procident pinned_proc_tests::a_pinned_process_that_exited_reads_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0269630Z         PASS [   0.061s] (2128/3325) spt-poolguard tests::no_refusal_arm_names_a_command_that_cannot_be_run
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0299527Z         PASS [   0.022s] (2129/3325) spt-proto addr::tests::display_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0329514Z         PASS [   0.010s] (2130/3325) spt-proto addr::tests::rejects_doubled_delimiters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0359606Z         PASS [   0.014s] (2131/3325) spt-proto addr::tests::rejects_empty_or_bad_components
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0389597Z         PASS [   0.012s] (2132/3325) spt-proto boundary::tests::boundary_kinds_and_io_kinds_never_collide
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0419587Z         PASS [   0.013s] (2133/3325) spt-proto boundary::tests::the_class_is_the_three_ruled_variants
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0449537Z         PASS [   0.010s] (2134/3325) spt-proto chunk::tests::malformed_parts_return_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0479624Z         PASS [   0.009s] (2135/3325) spt-proto chunk::tests::missing_middle_part_is_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0509526Z         PASS [   0.008s] (2136/3325) spt-proto chunk::tests::reassemble_stream_handles_mixed_traffic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0539642Z         PASS [   0.013s] (2137/3325) spt-proto chunk::tests::oversized_line_splits_and_each_part_is_well_formed_and_bounded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0569696Z         PASS [   0.062s] (2138/3325) spt-procident pinned_proc_tests::an_unstamped_pin_degrades_to_bare_pid_in_both_directions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0599605Z         PASS [   0.007s] (2139/3325) spt-proto emit::tests::a_bare_carriage_return_is_escaped_too
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0629568Z         PASS [   0.083s] (2140/3325) spt-poolguard tests::the_escape_hatch_opens_and_is_never_silent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0659515Z         PASS [   0.015s] (2141/3325) spt-proto chunk::tests::short_line_passes_through_unchunked
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0689666Z         PASS [   0.026s] (2142/3325) spt-proto chunk::tests::orphan_group_without_head_is_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0719746Z         PASS [   0.016s] (2143/3325) spt-proto emit::tests::a_caller_supplied_terminator_is_absorbed_not_doubled
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0749804Z         PASS [   0.014s] (2144/3325) spt-proto emit::tests::a_short_writing_sink_still_receives_the_complete_terminated_line
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0779633Z         PASS [   0.021s] (2145/3325) spt-proto emit::tests::a_plain_interpolated_write_fmt_splits_into_fragments
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0809704Z         PASS [   0.020s] (2146/3325) spt-proto emit::tests::a_static_literal_write_fmt_is_already_one_write
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0839525Z         PASS [   0.024s] (2147/3325) spt-proto emit::tests::a_short_writing_sink_receives_a_complete_block_too
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0869663Z         PASS [   0.016s] (2148/3325) spt-proto emit::tests::an_interior_newline_is_escaped_so_one_emission_stays_one_line
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0899704Z         PASS [   0.009s] (2149/3325) spt-proto emit::tests::emit_block_terminates_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0929902Z         PASS [   0.014s] (2150/3325) spt-proto emit::tests::emit_block_keeps_interior_newlines_and_is_still_one_write
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0931003Z         PASS [   0.006s] (2151/3325) spt-proto emit::tests::the_stderr_spellings_expand_and_run
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0969841Z         PASS [   0.016s] (2152/3325) spt-proto emit::tests::emit_line_is_one_write_for_a_static_literal_too
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.0999720Z         PASS [   0.012s] (2153/3325) spt-proto emit::tests::emit_line_issues_exactly_one_write_of_the_whole_line
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1029535Z         PASS [   0.010s] (2154/3325) spt-proto endpoint::tests::agent_vs_shell_split
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1059545Z         PASS [   0.011s] (2155/3325) spt-proto endpoint::tests::broker_and_node_families
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1089833Z         PASS [   0.020s] (2156/3325) spt-proto emit::tests::has_interior_break_ignores_the_terminator_and_catches_the_rest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1121723Z         PASS [   0.006s] (2157/3325) spt-proto endpoint::tests::unknown_tag_tolerated_and_preserved
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1159852Z         PASS [   0.009s] (2158/3325) spt-proto endpoint::tests::day_one_tags_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1189909Z         PASS [   0.024s] (2159/3325) spt-proto emit::tests::write_line_debug_asserts_on_an_interior_newline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1219654Z         PASS [   0.014s] (2160/3325) spt-proto endpoint::tests::shell_kind_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1249697Z         PASS [   0.009s] (2161/3325) spt-proto envelope::tests::body_escape_unescape_round_trips_html_and_newlines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1269826Z         PASS [   0.015s] (2162/3325) spt-proto envelope::tests::attr_escape_is_line_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1289745Z         PASS [   0.010s] (2163/3325) spt-proto envelope::tests::decode_is_amp_last_so_literal_entities_do_not_double_decode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1319633Z         PASS [   0.016s] (2164/3325) spt-proto envelope::tests::attr_newline_entity_decodes_before_amp_last
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1349580Z         PASS [   0.007s] (2165/3325) spt-proto envelope::tests::from_attr_returns_none_on_garbage_or_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1379490Z         PASS [   0.019s] (2166/3325) spt-proto envelope::tests::body_escape_is_cr_linesafe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1409649Z         PASS [   0.017s] (2167/3325) spt-proto envelope::tests::from_attr_decodes_by_the_same_rule_as_every_other_attr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1439639Z         PASS [   0.006s] (2168/3325) spt-proto envelope::tests::parser_no_tags_falls_back_whole_payload_to_live
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1469704Z         PASS [   0.013s] (2169/3325) spt-proto envelope::tests::from_attr_unescape_is_amp_last
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1499563Z         PASS [   0.015s] (2170/3325) spt-proto envelope::tests::parser_both_tags_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1529678Z         PASS [   0.015s] (2171/3325) spt-proto envelope::tests::parser_empty_body_is_some_empty_and_nested_tags_preserved
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1530754Z         PASS [   0.012s] (2172/3325) spt-proto envelope::tests::parser_out_of_order_tags_both_extracted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1531696Z         PASS [   0.012s] (2173/3325) spt-proto event::tests::a_recomposed_event_declares_its_type_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1532687Z         PASS [   0.019s] (2174/3325) spt-proto envelope::tests::parser_unclosed_live_tag_does_not_scoop_project
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1533669Z         PASS [   0.012s] (2175/3325) spt-proto event::tests::an_unreemittable_key_is_dropped_by_the_strip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1534584Z         PASS [   0.099s] (2176/3325) spt-proto chunk::tests::split_then_reassemble_is_byte_identity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1535401Z         PASS [   0.013s] (2177/3325) spt-proto event::tests::attr_decode_is_amp_last
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1536278Z         PASS [   0.171s] (2178/3325) spt-poolguard tests::the_ancestry_probe_reads_a_real_repository_both_ways
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1537136Z         PASS [   0.022s] (2179/3325) spt-proto event::tests::alarm_event_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1537944Z         PASS [   0.012s] (2180/3325) spt-proto event::tests::body_with_literal_event_tokens_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1538761Z         PASS [   0.023s] (2181/3325) spt-proto event::tests::attr_order_preserved
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1559491Z         PASS [   0.013s] (2182/3325) spt-proto event::tests::msg_event_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1589532Z         PASS [   0.017s] (2183/3325) spt-proto event::tests::malformed_inputs_return_none_without_panic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1619656Z         PASS [   0.014s] (2184/3325) spt-proto event::tests::the_alarm_composer_renders_identically_to_the_general_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1649915Z         PASS [   0.012s] (2185/3325) spt-proto event::tests::the_msg_composer_renders_identically_to_the_general_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1679709Z         PASS [   0.010s] (2186/3325) spt-proto event::tests::the_seal_attr_is_sender_authored_and_survives_the_strip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1709810Z         PASS [   0.022s] (2187/3325) spt-proto event::tests::psyche_authorable_types_are_reply_and_notify_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1739579Z         PASS [   0.024s] (2188/3325) spt-proto event::tests::empty_body_envelope_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1769692Z         PASS [   0.012s] (2189/3325) spt-proto event::tests::the_strip_removes_receiver_composed_attrs_and_keeps_the_rest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1791972Z         PASS [   0.012s] (2190/3325) spt-proto event::tests::typed_envelope_detected_and_parsed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1809727Z         PASS [   0.013s] (2191/3325) spt-proto event::tests::the_w2_message_attrs_are_sender_authored_and_survive_the_strip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1839741Z         PASS [   0.019s] (2192/3325) spt-proto event::tests::the_strip_is_identity_when_there_is_nothing_to_strip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1869675Z         PASS [   0.014s] (2193/3325) spt-proto event::tests::typed_predicate_rejects_partials
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1899891Z         PASS [   5.185s] (2194/3325) spt-daemon::wake_single_flight a_winner_slower_than_the_retired_deadline_is_still_waited_on
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1929711Z         PASS [   0.017s] (2195/3325) spt-proto event::tests::user_msg_envelope_is_n_minus_one_tolerant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1959721Z         PASS [   0.015s] (2196/3325) spt-proto event::tests::user_msg_identity_gate_truth_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.1989526Z         PASS [   0.019s] (2197/3325) spt-proto event::tests::user_msg_gate_is_not_payload_trusted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2019608Z         PASS [   0.012s] (2198/3325) spt-proto id::tests::rejects_empty_and_overlong
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2049640Z         PASS [   0.023s] (2199/3325) spt-proto event::tests::user_msg_event_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2079496Z         PASS [   0.016s] (2200/3325) spt-proto id::tests::rejects_path_whitespace_and_control
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2109470Z         PASS [   0.018s] (2201/3325) spt-proto id::tests::accepts_plain_and_composite_ids
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2149749Z         PASS [   0.019s] (2202/3325) spt-proto id::tests::accepts_japanese_scripts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2179516Z         PASS [   0.014s] (2203/3325) spt-proto id::tests::reserves_address_delimiters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2209536Z         PASS [   0.015s] (2204/3325) spt-proto id::tests::reports_bad_char_position
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2239553Z         PASS [   0.016s] (2205/3325) spt-proto identity::tests::bad_inputs_error_without_panic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2241859Z         PASS [   0.015s] (2206/3325) spt-proto identity::tests::public_key_hex_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2289514Z         PASS [   0.013s] (2207/3325) spt-proto ioevent::tests::tool_use_is_named_but_not_emitted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2319402Z         PASS [   0.011s] (2208/3325) spt-proto ioevent::tests::vocabulary_is_closed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2329671Z         PASS [   0.019s] (2209/3325) spt-proto ioevent::tests::long_payload_is_cut_and_flagged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2359665Z         PASS [   0.020s] (2210/3325) spt-proto ioevent::tests::short_payload_is_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2389548Z         PASS [   0.011s] (2211/3325) spt-proto payload::tests::base64_known_vectors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2419770Z         PASS [   0.012s] (2212/3325) spt-proto payload::tests::command_payload_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2449660Z         PASS [   0.015s] (2213/3325) spt-proto payload::tests::binary_blob_round_trips_all_byte_values
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2479643Z         PASS [   0.025s] (2214/3325) spt-proto ioevent::tests::truncation_lands_on_a_char_boundary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2509821Z         PASS [   0.015s] (2215/3325) spt-proto payload::tests::blob_padding_lengths_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2539750Z         PASS [   0.041s] (2216/3325) spt-proto identity::tests::known_answer_fixed_seed_is_stable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2569699Z         PASS [   0.015s] (2217/3325) spt-proto shortform::seal_tests::a_lone_marker_seals_everything_after_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2599587Z         PASS [   0.022s] (2218/3325) spt-proto payload::tests::unknown_or_malformed_decodes_to_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2629622Z         PASS [   0.017s] (2219/3325) spt-proto shortform::seal_tests::a_quoted_pair_and_a_live_pair_coexist
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2659680Z         PASS [   0.024s] (2220/3325) spt-proto shortform::seal_tests::a_bare_trailing_marker_seals_the_remainder_and_claims_nothing_before_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2669676Z         PASS [   0.019s] (2221/3325) spt-proto shortform::seal_tests::an_empty_pair_does_not_disturb_the_pairs_around_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2699578Z         PASS [   1.041s] (2222/3325) spt-net net::pairing::wire::tests::either_subnet_code_joins_a_two_key_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2729660Z         PASS [   0.022s] (2223/3325) spt-proto shortform::seal_tests::a_quoted_seal_marker_mints_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2759709Z         PASS [   0.014s] (2224/3325) spt-proto shortform::seal_tests::an_empty_pair_mints_nothing_and_refuses_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2789468Z         PASS [   0.034s] (2225/3325) spt-proto payload::tests::text_payload_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2819483Z         PASS [   0.013s] (2226/3325) spt-proto shortform::tests::a_lone_backtick_suppresses_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2849546Z         PASS [   0.017s] (2227/3325) spt-proto shortform::tests::a_live_tags_body_is_carried_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2880191Z         PASS [   0.013s] (2228/3325) spt-proto shortform::tests::a_plain_tag_splits_targets_from_body
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2919579Z         PASS [   0.013s] (2229/3325) spt-proto shortform::tests::a_quoted_tag_and_a_live_tag_coexist
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2949589Z         PASS [   0.020s] (2230/3325) spt-proto shortform::seal_tests::the_sealed_text_is_carried_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.2979649Z         PASS [   0.014s] (2231/3325) spt-proto shortform::tests::a_tag_inside_a_fenced_block_is_a_quotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3019870Z         PASS [   0.024s] (2232/3325) spt-proto shortform::seal_tests::pairs_parse_greedy_left_to_right_and_each_mints_its_own
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3021006Z         PASS [   0.013s] (2233/3325) spt-proto shortform::tests::a_tag_inside_inline_backticks_is_a_quotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3021970Z         PASS [   0.021s] (2234/3325) spt-proto shortform::tests::a_space_inside_the_id_list_ends_the_list
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3022880Z         PASS [   0.012s] (2235/3325) spt-proto shortform::tests::a_tag_needs_both_a_target_and_a_body
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3023838Z         PASS [   0.016s] (2236/3325) spt-proto shortform::tests::an_unclosed_fence_suppresses_to_the_end
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3024796Z         PASS [   0.014s] (2237/3325) spt-proto shortform::tests::backticks_inside_a_fence_are_just_fenced_content
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3025733Z         PASS [   0.014s] (2238/3325) spt-proto shortform::tests::several_tags_in_one_text_all_parse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3026639Z         PASS [   0.016s] (2239/3325) spt-proto shortform::tests::an_unterminated_tag_is_not_a_dispatch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3027488Z         PASS [   0.012s] (2240/3325) spt-proto version::tests::current_version_self_compatible
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3028286Z         PASS [   0.013s] (2241/3325) spt-proto version::tests::window_floor_saturates_at_zero
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.3029282Z         PASS [   0.019s] (2242/3325) spt-proto shortform::tests::targets_are_comma_separated_and_ordered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4119934Z         PASS [   0.020s] (2243/3325) spt-proto version::tests::n_minus_one_window_accepts_and_rejects
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4121069Z         PASS [   0.022s] (2244/3325) spt-runtime manifest::tests::each_role_resolves_its_own_declaration
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4142155Z         PASS [   0.033s] (2245/3325) spt-runtime manifest::io_gate_tests::an_undeclared_io_section_is_still_off
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4169748Z         PASS [   0.027s] (2246/3325) spt-runtime manifest::tests::digest_section_source_resolution
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4200966Z         PASS [   0.040s] (2247/3325) spt-runtime manifest::io_gate_tests::a_compliance_declaration_enables_shortform
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4239738Z         PASS [   0.026s] (2248/3325) spt-runtime manifest::tests::digest_section_validation_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4259632Z         PASS [   0.110s] (2249/3325) spt-proto identity::tests::sign_verify_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4290181Z         PASS [   0.036s] (2250/3325) spt-runtime manifest::io_gate_tests::absent_io_section_means_shortform_is_off
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4319679Z         PASS [   0.037s] (2251/3325) spt-runtime manifest::io_gate_tests::a_declaring_adapter_can_still_opt_out
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4320747Z         PASS [   0.009s] (2252/3325) spt-runtime manifest::tests::fetcher_strategy_requires_fetcher_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4321705Z         PASS [   0.018s] (2253/3325) spt-runtime manifest::tests::fetcher_digest_strategy_needs_no_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4359686Z         PASS [   0.014s] (2254/3325) spt-runtime manifest::tests::inject_env_without_value_fails_validation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4380067Z         PASS [   0.017s] (2255/3325) spt-runtime manifest::tests::harness_kind_with_shell_section_fails_validation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4421757Z         PASS [   0.013s] (2256/3325) spt-runtime manifest::tests::invocation_budget_defaults_passes_through_and_clamps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4460015Z         PASS [   0.055s] (2257/3325) spt-runtime manifest::tests::a_misspelled_adapter_key_parses_and_is_named
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4490199Z         PASS [   0.020s] (2258/3325) spt-runtime manifest::tests::harness_fixture_parses_all_sections
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4509683Z         PASS [   0.021s] (2259/3325) spt-runtime manifest::tests::host_binaries_optional_and_n1_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4550248Z         PASS [   0.026s] (2260/3325) spt-runtime manifest::tests::free_form_tables_are_not_swept
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4579662Z         PASS [   0.064s] (2261/3325) spt-runtime manifest::tests::checked_in_schema_is_current
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4609741Z         PASS [   0.012s] (2262/3325) spt-runtime manifest::tests::per_capability_act_gate_parses_and_validates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4639699Z         PASS [   0.015s] (2263/3325) spt-runtime manifest::tests::minimal_header_only_manifest_is_valid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4669933Z         PASS [   0.040s] (2264/3325) spt-runtime manifest::tests::hint_keyword_matching
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4699788Z         PASS [   0.014s] (2265/3325) spt-runtime manifest::tests::role_template_refuses_env_remove_read_contradiction
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4729793Z         PASS [   0.021s] (2266/3325) spt-runtime manifest::tests::role_template_admits_valid_and_refuses_bad_env_inject
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4758673Z         PASS [   0.012s] (2267/3325) spt-runtime manifest::tests::role_template_refuses_unfillable_key_but_parse_admits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4776426Z         PASS [   0.026s] (2268/3325) spt-runtime manifest::tests::message_idle_translation_binary_opt_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4809644Z         PASS [   0.022s] (2269/3325) spt-runtime manifest::tests::role_template_is_role_aware_for_notif_extras
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4845972Z         PASS [   0.024s] (2270/3325) spt-runtime manifest::tests::profile_overlays_hints_wholesale
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4859606Z         PASS [   0.034s] (2271/3325) spt-runtime manifest::tests::manifest_schema_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4910283Z         PASS [   0.017s] (2272/3325) spt-runtime manifest::tests::role_template_refuses_unterminated_brace
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4929734Z         PASS [   0.012s] (2273/3325) spt-runtime manifest::tests::shell_kind_without_shell_section_fails_validation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4960242Z         PASS [   0.044s] (2274/3325) spt-runtime manifest::tests::known_keys_across_the_full_fixtures_report_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.4979614Z         PASS [   0.016s] (2275/3325) spt-runtime manifest::tests::round_trips_through_toml
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5009658Z         PASS [   0.017s] (2276/3325) spt-runtime manifest::tests::role_template_skips_retired_psyche_init
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5039721Z         PASS [   0.019s] (2277/3325) spt-runtime manifest::tests::service_section_parses_round_trips_and_defaults_its_grace
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5069515Z         PASS [   0.019s] (2278/3325) spt-runtime manifest::tests::shell_fixture_parses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5099671Z         PASS [   0.020s] (2279/3325) spt-runtime manifest::tests::service_section_refuses_contradictions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5129731Z         PASS [   0.020s] (2280/3325) spt-runtime manifest::tests::session_resume_role_parses_roundtrips_and_is_backcompat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5159502Z         PASS [   0.020s] (2281/3325) spt-runtime manifest::tests::shell_tunnel_opt_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5189778Z         PASS [   0.015s] (2282/3325) spt-runtime manifest::tests::syntactically_broken_toml_is_an_error_not_a_panic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5219709Z         PASS [   0.021s] (2283/3325) spt-runtime manifest::tests::shortcut_basename_optional_with_default
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5249637Z         PASS [   0.018s] (2284/3325) spt-runtime manifest::tests::translation_binary_command_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5279658Z         PASS [   0.023s] (2285/3325) spt-runtime manifest::tests::unknown_enum_variant_is_an_error_not_a_panic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5309576Z         PASS [   0.019s] (2286/3325) spt-runtime manifest::tests::update_avenue_content_signing_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5339534Z         PASS [   0.018s] (2287/3325) spt-runtime manifest::tests::update_avenue_gh_release_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5369502Z         PASS [   0.019s] (2288/3325) spt-runtime manifest::tests::update_post_sub_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5399751Z         PASS [   0.010s] (2289/3325) spt-runtime profile::tests::file_pointer_recognized_only_for_single_file_key_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5429695Z         PASS [   0.027s] (2290/3325) spt-runtime manifest::tests::unknown_keys_are_named_by_table_at_every_depth
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5449639Z         PASS [   0.020s] (2291/3325) spt-runtime manifest::tests::version_meets_floor_numeric_not_lexical
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5479562Z         PASS [   0.016s] (2292/3325) spt-runtime profile::tests::adapter_parent_matches_on_parent_not_composite
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5509569Z         PASS [   0.021s] (2293/3325) spt-runtime profile::tests::deep_nested_leaf_replace
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5529528Z         PASS [   0.022s] (2294/3325) spt-runtime profile::tests::leaf_replace_contract
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5559721Z         PASS [   0.017s] (2295/3325) spt-runtime profile::tests::resolve_shipped_profile_applies_overlay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5589488Z         PASS [   0.019s] (2296/3325) spt-runtime profile::tests::profile_overlays_strings
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5619549Z         PASS [   0.017s] (2297/3325) spt-runtime profile::tests::split_option_first_colon
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5649567Z         PASS [   0.016s] (2298/3325) spt-runtime profile::tests::tighten_only_allows_tightening
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5679502Z         PASS [   0.022s] (2299/3325) spt-runtime profile::tests::resolve_unknown_profile_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5709470Z         PASS [   0.019s] (2300/3325) spt-runtime profile::tests::string_dot_path_read_write
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5739552Z         PASS [   0.019s] (2301/3325) spt-runtime profile::tests::tighten_only_refuses_loosened_over_cap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5769595Z         PASS [   0.018s] (2302/3325) spt-runtime profile::tests::tighten_only_refuses_loosened_require_approval
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5799588Z         PASS [   0.016s] (2303/3325) spt-runtime registry::tests::docs_dir_fixture_lands_under_the_adapter_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5829557Z         PASS [   0.017s] (2304/3325) spt-runtime registry::tests::docs_dir_parent_traversal_is_refused_at_register
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5859709Z         PASS [   0.024s] (2305/3325) spt-runtime registry::tests::activation_refuses_redirected_web_root_without_touching_install_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5889604Z         PASS [   0.019s] (2306/3325) spt-runtime registry::tests::docs_dir_absolute_path_is_refused_at_register
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5919703Z         PASS [   0.028s] (2307/3325) spt-runtime registry::tests::cross_adapter_fallback_target_resolves_adapter_and_profile
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5949489Z         PASS [   0.032s] (2308/3325) spt-runtime registry::tests::create_local_profile_guards
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.5979570Z         PASS [   0.042s] (2309/3325) spt-runtime registry::tests::a_misspelled_manifest_key_still_registers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6009553Z         PASS [   0.019s] (2310/3325) spt-runtime registry::tests::invalid_manifest_records_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6019676Z         PASS [   0.040s] (2311/3325) spt-runtime registry::tests::deregister_is_soft_and_readd_reactivates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6049600Z         PASS [   0.039s] (2312/3325) spt-runtime registry::tests::file_backed_string_reads_contents_lazily
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6076247Z         PASS [   0.047s] (2313/3325) spt-runtime registry::tests::delete_local_profile_rules
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6109668Z         PASS [   0.022s] (2314/3325) spt-runtime registry::tests::missing_string_file_skips_at_read_without_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6139682Z         PASS [   0.027s] (2315/3325) spt-runtime registry::tests::missing_docs_dir_registers_adapter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6169238Z         PASS [   0.038s] (2316/3325) spt-runtime registry::tests::local_profile_overrides_a_shipped_file_pointer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6199708Z         PASS [   0.020s] (2317/3325) spt-runtime registry::tests::register_with_core_refuses_below_floor_and_writes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6239734Z         PASS [   0.026s] (2318/3325) spt-runtime registry::tests::register_with_core_admits_when_core_meets_floor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6269718Z         PASS [   0.031s] (2319/3325) spt-runtime registry::tests::register_refuses_unfillable_role_key_and_writes_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6299706Z         PASS [   0.042s] (2320/3325) spt-runtime registry::tests::pointer_missing_manifest_is_deferred_not_cryptic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6329627Z         PASS [   0.027s] (2321/3325) spt-runtime registry::tests::resolve_option_bare_shipped_and_local
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6359713Z         PASS [   0.032s] (2322/3325) spt-runtime registry::tests::resolve_option_in_matches_disk
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6389469Z         PASS [   0.060s] (2323/3325) spt-runtime registry::tests::local_profile_survives_readd
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6419716Z         PASS [   0.034s] (2324/3325) spt-runtime registry::tests::string_file_pointer_escaping_the_dir_is_refused_at_register
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6449579Z         PASS [   0.013s] (2325/3325) spt-runtime resolve::tests::normalize_folds_case_and_stems_first_dot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6479556Z         PASS [   0.052s] (2326/3325) spt-runtime registry::tests::register_copy_vs_pointer_by_avenue
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6509580Z         PASS [   0.026s] (2327/3325) spt-runtime resolve::tests::no_candidate_when_no_adapter_hosts_binary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6539711Z         PASS [   0.018s] (2328/3325) spt-runtime resolve::tests::resolve_error_hints_print_the_group_level_adapter_form
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6569542Z         PASS [   0.044s] (2329/3325) spt-runtime registry::tests::strings_get_set_through_overlay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6599570Z         PASS [   0.027s] (2330/3325) spt-runtime resolve::tests::renamed_in_use_exe_still_resolves
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6629588Z         PASS [   0.042s] (2331/3325) spt-runtime resolve::tests::fallback_picks_freshest_then_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6659551Z         PASS [   0.038s] (2332/3325) spt-runtime resolve::tests::pointer_is_sibling_to_adapter_dirs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6689503Z         PASS [   0.034s] (2333/3325) spt-runtime resolve::tests::set_clear_prune_rules
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6719613Z         PASS [   0.030s] (2334/3325) spt-runtime resolve::tests::single_candidate_resolves_base_no_pointer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6749564Z         PASS [   0.017s] (2335/3325) spt-runtime runtime::tests::adapter_static_keys_inject_and_substitute
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6779614Z         PASS [   0.012s] (2336/3325) spt-runtime runtime::tests::capture_read_env_is_declared_allowlist_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6809672Z         PASS [   0.010s] (2337/3325) spt-runtime runtime::tests::identity_env_scrubbed_even_when_role_declares_no_env_remove
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6819654Z         PASS [   0.017s] (2338/3325) spt-runtime runtime::tests::engine_room_cwd_is_forced_over_role_and_caller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6849807Z         PASS [   0.066s] (2339/3325) spt-runtime registry::tests::web_alias_validation_precedes_registration_and_rechecks_resolved_profiles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6879594Z         PASS [   0.011s] (2340/3325) spt-runtime runtime::tests::identity_scrub_overrides_a_spawn_env_stamp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6899697Z         PASS [   0.018s] (2341/3325) spt-runtime runtime::tests::expand_tilde_expands_leading_home_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6939531Z         PASS [   0.055s] (2342/3325) spt-runtime resolve::tests::pointer_overrides_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6959592Z         PASS [   0.042s] (2343/3325) spt-runtime resolve::tests::stale_pointer_self_heals_to_fallback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.6989535Z         PASS [   0.024s] (2344/3325) spt-runtime runtime::tests::fills_known_placeholders
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7019591Z         PASS [   0.041s] (2345/3325) spt-runtime runtime::tests::bounded_run_captures_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7049609Z         PASS [   0.016s] (2346/3325) spt-runtime runtime::tests::literal_braces_still_escape_per_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7079623Z         PASS [   0.018s] (2347/3325) spt-runtime runtime::tests::missing_key_and_empty_command_errors_still_fire
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7109739Z         PASS [   0.013s] (2348/3325) spt-runtime runtime::tests::placeholder_inside_larger_token_substitutes_in_place
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7139600Z         PASS [   0.014s] (2349/3325) spt-runtime runtime::tests::multiword_value_is_one_argv_element
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7169757Z         PASS [   0.022s] (2350/3325) spt-runtime runtime::tests::inject_read_env_keys_resolves_ambient_then_value_then_skips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7199516Z         PASS [   0.023s] (2351/3325) spt-runtime runtime::tests::missing_key_errors_before_spawn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7229682Z         PASS [   0.012s] (2352/3325) spt-runtime runtime::tests::scrub_identity_env_clears_all_identity_vars_from_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7259610Z         PASS [   0.022s] (2353/3325) spt-runtime runtime::tests::quote_and_semicolon_values_stay_one_element
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7289513Z         PASS [   0.017s] (2354/3325) spt-runtime runtime::tests::resolve_program_prefers_install_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7319578Z         PASS [   0.017s] (2355/3325) spt-runtime runtime::tests::resolve_program_falls_back_to_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7359672Z         PASS [   0.012s] (2356/3325) spt-runtime runtime::tests::spawn_cwd_default_applies_only_without_role_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7389544Z         PASS [   0.017s] (2357/3325) spt-runtime runtime::tests::spawn_env_stamps_reach_the_command_env
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7416754Z         PASS [   0.019s] (2358/3325) spt-runtime runtime::tests::spawn_session_detached_returns_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7449543Z         PASS [   0.019s] (2359/3325) spt-runtime runtime::tests::stamp_survives_env_remove
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7479513Z         PASS [   0.016s] (2360/3325) spt-runtime runtime::tests::tokenize_honors_double_quotes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7509483Z         PASS [   0.015s] (2361/3325) spt-runtime runtime::tests::unknown_role_errors
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7539676Z         PASS [   0.025s] (2362/3325) spt-store access::tests::a_blanket_closed_node_admits_discover_and_still_refuses_msg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7570911Z         PASS [   0.014s] (2363/3325) spt-store access::tests::a_discover_naming_deny_row_still_denies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7602094Z         PASS [   0.024s] (2364/3325) spt-store access::tests::a_closed_endpoint_with_an_allow_hole_is_not_locked
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7639748Z         PASS [   0.026s] (2365/3325) spt-store access::tests::a_blanket_rule_must_satisfy_the_policy_on_every_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7650132Z         PASS [   0.026s] (2366/3325) spt-store access::tests::a_case_folded_discover_key_is_honored_by_the_governing_reader
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7699797Z         PASS [   0.022s] (2367/3325) spt-store access::tests::a_closed_posture_refuses_a_remote_send_and_still_admits_a_local_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7732298Z         PASS [   0.017s] (2368/3325) spt-store access::tests::a_node_scope_allow_is_a_hole_in_an_endpoints_lock
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7744359Z         PASS [   0.022s] (2369/3325) spt-store access::tests::a_node_wide_close_locks_an_endpoint_that_names_no_posture
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7799610Z         PASS [   0.026s] (2370/3325) spt-store access::tests::a_deny_row_does_not_unlock
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7821580Z         PASS [   0.012s] (2371/3325) spt-store access::tests::a_rule_naming_the_local_origin_still_governs_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7860180Z         PASS [   0.016s] (2372/3325) spt-store access::tests::a_per_endpoint_own_node_allow_reopens_one_target_through_a_node_wide_deny
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7899709Z         PASS [   0.017s] (2373/3325) spt-store access::tests::a_qualifier_that_excludes_the_invocation_falls_through_to_the_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7909700Z         PASS [   0.015s] (2374/3325) spt-store access::tests::a_sender_rule_is_more_specific_than_both_own_node_denies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.7969593Z         PASS [   0.018s] (2375/3325) spt-store access::tests::a_revoked_default_open_endpoint_is_not_locked
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8009806Z         PASS [   0.023s] (2376/3325) spt-store access::tests::a_retired_surface_leaves_the_vocabulary_stays_legal_and_is_reported_at_load
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8029675Z         PASS [   0.019s] (2377/3325) spt-store access::tests::a_surface_mode_write_replaces_every_spelling_of_that_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8060068Z         PASS [   0.015s] (2378/3325) spt-store access::tests::a_wrong_case_rule_covers_the_canonical_traffic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8099434Z         PASS [   0.015s] (2379/3325) spt-store access::tests::allow_revoke_open_polarity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8110176Z         PASS [   0.028s] (2380/3325) spt-store access::tests::a_surface_reaches_the_rendered_section_by_existing_in_the_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8145230Z         PASS [   0.020s] (2381/3325) spt-store access::tests::an_absent_or_unrecognized_origin_stamp_classifies_as_agent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8180135Z         PASS [   0.020s] (2382/3325) spt-store access::tests::an_excluded_rule_does_not_shadow_a_lower_ranked_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8199638Z         PASS [   0.016s] (2383/3325) spt-store access::tests::an_ordinary_agent_cannot_author_a_node_scope_rule
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8239617Z         PASS [   0.028s] (2384/3325) spt-store access::tests::a_wrong_case_mode_heals_and_an_exact_spelling_still_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8270020Z         PASS [   0.017s] (2385/3325) spt-store access::tests::an_explicit_discover_deny_closes_it_at_every_mode_tier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8309622Z         PASS [   0.011s] (2386/3325) spt-store access::tests::an_origin_qualified_allow_still_counts_as_a_hole
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8339464Z         PASS [   0.029s] (2387/3325) spt-store access::tests::absent_is_baseline_corrupt_is_degrade
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8369558Z         PASS [   0.015s] (2388/3325) spt-store access::tests::an_own_node_deny_leaves_remote_origins_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8399488Z         PASS [   0.014s] (2389/3325) spt-store access::tests::chain_first_match_wins_tier_by_tier
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8429613Z         PASS [   0.014s] (2390/3325) spt-store access::tests::captured_mode_decides_the_bottom_and_absence_stays_open
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8459491Z         PASS [   0.017s] (2391/3325) spt-store access::tests::an_unknown_surface_is_not_attributable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8489472Z         PASS [   0.018s] (2392/3325) spt-store access::tests::attributability_is_read_only_from_the_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8519626Z         PASS [   0.018s] (2393/3325) spt-store access::tests::an_unset_policy_derives_from_the_requested_surfaces_posture
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8559672Z         PASS [   0.020s] (2394/3325) spt-store access::tests::an_unqualified_rule_decodes_as_any_and_never_serializes_the_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8589526Z         PASS [   0.016s] (2395/3325) spt-store access::tests::every_reading_of_locked_comes_from_one_predicate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8609801Z         PASS [   0.024s] (2396/3325) spt-store access::tests::clearing_a_node_surface_mode_folds_case
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8635098Z         PASS [   0.019s] (2397/3325) spt-store access::tests::discover_stays_outside_the_locked_claim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8679840Z         PASS [   0.023s] (2398/3325) spt-store access::tests::every_shipped_surface_renders_with_a_description
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8709717Z         PASS [   0.020s] (2399/3325) spt-store access::tests::provenance_records_history_without_splitting_the_tuple
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8728662Z         PASS [   0.024s] (2400/3325) spt-store access::tests::node_scope_rules_print_the_engine_room_removal_form
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8769693Z         PASS [   0.015s] (2401/3325) spt-store access::tests::revoking_the_last_rule_leaves_no_vacant_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8799957Z         PASS [   0.024s] (2402/3325) spt-store access::tests::only_the_origin_user_qualifier_takes_a_node_subject_out_of_widening
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8839482Z         PASS [   0.017s] (2403/3325) spt-store access::tests::rules_are_per_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8859569Z         PASS [   0.019s] (2404/3325) spt-store access::tests::recent_outbound_persists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8870742Z         PASS [   0.027s] (2405/3325) spt-store access::tests::recent_outbound_correlates_within_window
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8910067Z         PASS [   0.015s] (2406/3325) spt-store access::tests::sender_endpoint_rule_ids_span_both_scopes_and_ignore_other_subjects
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8925917Z         PASS [   0.014s] (2407/3325) spt-store access::tests::surface_ids_never_differ_by_case_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8957491Z         PASS [   0.014s] (2408/3325) spt-store access::tests::surface_vocabulary_is_open_and_constant_case
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.8999650Z         PASS [   0.032s] (2409/3325) spt-store access::tests::recent_outbound_is_bounded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9004387Z         PASS [   0.014s] (2410/3325) spt-store access::tests::the_attributability_reader_follows_the_table_not_a_hardcoded_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9036192Z         PASS [   0.018s] (2411/3325) spt-store access::tests::sender_endpoint_tier_matches_only_a_supplied_subject
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9069775Z         PASS [   0.018s] (2412/3325) spt-store access::tests::the_default_open_pass_is_distinguishable_from_the_implicit_open_bottom
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9099741Z         PASS [   0.020s] (2413/3325) spt-store access::tests::the_default_on_reader_follows_the_table_not_a_hardcoded_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9129624Z         PASS [   0.015s] (2414/3325) spt-store access::tests::the_node_surface_mode_closes_one_surface_and_only_that_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9159619Z         PASS [   0.019s] (2415/3325) spt-store access::tests::the_locked_surface_set_is_derived_from_the_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9189731Z         PASS [   0.019s] (2416/3325) spt-store access::tests::the_origin_qualifier_admits_exactly_its_own_class
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9219597Z         PASS [   0.018s] (2417/3325) spt-store access::tests::the_posture_close_happens_only_when_no_posture_is_set
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9220721Z         PASS [   0.020s] (2418/3325) spt-store access::tests::the_node_surface_mode_read_is_the_named_entry_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9221870Z         PASS [   0.020s] (2419/3325) spt-store access::tests::the_posture_reading_follows_the_carve_out_exactly_as_the_chain_does
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9223043Z         PASS [   0.018s] (2420/3325) spt-store access::tests::the_surface_default_open_set_is_derived_from_the_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9224141Z         PASS [   0.013s] (2421/3325) spt-store access::tests::the_v1_vocabulary_is_derived_from_the_surface_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9225246Z         PASS [   0.025s] (2422/3325) spt-store access::tests::the_subject_consequence_follows_the_attributability_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9226363Z         PASS [   0.030s] (2423/3325) spt-store access::tests::the_printed_remove_command_removes_that_exact_rule
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9227399Z         PASS [   0.019s] (2424/3325) spt-store access::tests::the_three_origins_decide_the_write_and_a_husk_never_lands
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9228577Z         PASS [   0.014s] (2425/3325) spt-store access::tests::the_widening_gate_binds_the_owner_agent_but_not_the_user_or_engine_room
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9230943Z         PASS [   0.016s] (2426/3325) spt-store access::tests::tuple_removal_is_idempotent_and_removes_only_the_matching_tuple
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9232182Z         PASS [   0.014s] (2427/3325) spt-store access::tests::upserting_the_opposite_decision_replaces_rather_than_contradicts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9233454Z         PASS [   0.017s] (2428/3325) spt-store access::tests::unsetting_a_node_surface_mode_restores_the_default_rather_than_pinning_open
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9234509Z         PASS [   0.019s] (2429/3325) spt-store access::tests::v2_round_trips_every_construct
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9235316Z         PASS [   0.015s] (2430/3325) spt-store atomic::tests::atomic_write_bytes_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9236145Z         PASS [   0.023s] (2431/3325) spt-store access::tests::v1_rows_migrate_preserving_semantics
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9237016Z         PASS [   0.017s] (2432/3325) spt-store atomic::tests::retry_absorbs_transient_then_succeeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9238245Z         PASS [   0.022s] (2433/3325) spt-store access::tests::web_is_default_on_but_explicit_denies_govern
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9239385Z         PASS [   0.022s] (2434/3325) spt-store access::tests::widening_counts_both_polarities_and_narrowing_counts_as_neither
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9240463Z         PASS [   0.021s] (2435/3325) spt-store atomic::tests::atomic_write_durable_round_trips_and_renames_tmp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9241370Z         PASS [   0.025s] (2436/3325) spt-store atomic::tests::atomic_write_creates_and_replaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9242408Z         PASS [   0.019s] (2437/3325) spt-store atomic::tests::retry_does_not_retry_non_transient
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9243238Z         PASS [   0.019s] (2438/3325) spt-store atomic::tests::retry_gives_up_after_max_attempts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9244072Z         PASS [   0.017s] (2439/3325) spt-store atomic::tests::to_forward_slash_strips_unc_prefix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9245198Z         PASS [   5.858s] (2440/3325) spt-daemon::wake_single_flight a_holder_stalled_past_its_ceiling_is_taken_over_rather_than_stranding_the_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9246342Z         PASS [   0.018s] (2441/3325) spt-store attachment::tests::attached_default_flip_roundtrip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9247210Z         PASS [   0.020s] (2442/3325) spt-store attachment::tests::corrupt_file_degrades_to_attached
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9248056Z         PASS [   0.026s] (2443/3325) spt-store attachment::tests::boot_reset_and_serving_filter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9279215Z         PASS [   0.018s] (2444/3325) spt-store branchstore::tests::config_error_classifier_covers_both_symptom_families
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9280490Z         PASS [   0.088s] (2445/3325) spt-store branchstore::tests::concurrent_open_or_init_on_one_fresh_store_all_ok
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9281452Z         PASS [   0.325s] (2446/3325) spt-runtime runtime::tests::bounded_run_kills_on_timeout
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9282265Z         PASS [   0.088s] (2447/3325) spt-store branchstore::tests::open_or_init_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9283151Z         PASS [   0.014s] (2448/3325) spt-store briefing::tests::a_pipe_in_a_cell_cannot_break_the_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9284014Z         PASS [   0.017s] (2449/3325) spt-store briefing::tests::a_blank_label_is_not_a_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9284896Z         PASS [   0.016s] (2450/3325) spt-store briefing::tests::a_resolvable_node_subject_renders_its_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9285841Z         PASS [   0.021s] (2451/3325) spt-store briefing::tests::an_empty_markdown_ruleset_still_says_so
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9286818Z         PASS [   0.020s] (2452/3325) spt-store briefing::tests::an_unresolvable_node_subject_keeps_the_full_hex
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9287797Z         PASS [   0.018s] (2453/3325) spt-store briefing::tests::an_unresolved_row_omits_the_label_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9288741Z         PASS [   0.013s] (2454/3325) spt-store briefing::tests::row_order_follows_the_identity_not_the_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9289789Z         PASS [   0.131s] (2455/3325) spt-store branchstore::tests::sweep_removes_only_stale_empty_locks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9290702Z         PASS [   0.019s] (2456/3325) spt-store briefing::tests::only_node_subjects_resolve_to_a_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9291751Z         PASS [   0.015s] (2457/3325) spt-store briefing::tests::the_briefing_states_session_weather_and_leaves_the_role_to_the_role
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9292978Z         PASS [   0.016s] (2458/3325) spt-store briefing::tests::the_drilldown_prints_provenance_and_a_single_sourced_remove_command
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9294194Z         PASS [   0.018s] (2459/3325) spt-store briefing::tests::the_briefing_states_an_admin_bringup_grant_and_is_silent_without_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9295375Z         PASS [   0.007s] (2460/3325) spt-store briefing::tests::the_json_row_keeps_the_hex_and_carries_the_name_beside_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9330666Z         PASS [   0.012s] (2461/3325) spt-store briefing::tests::the_table_gives_every_rule_a_row_and_says_so_when_there_are_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9370181Z         PASS [   0.009s] (2462/3325) spt-store commune_intent::tests::an_unparseable_marker_is_not_a_standing_expectation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9399780Z         PASS [   0.020s] (2463/3325) spt-store briefing::tests::the_ruleset_renders_as_a_markdown_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9409768Z         PASS [   0.195s] (2464/3325) spt-store branchstore::tests::branches_are_independent_roots
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9439730Z         PASS [   0.013s] (2465/3325) spt-store commune_intent::tests::each_attempt_is_judged_against_its_own_recorded_budget
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9469641Z         PASS [   0.009s] (2466/3325) spt-store commune_intent::tests::orphan_is_past_budget_and_artifact_less_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9499670Z         PASS [   0.020s] (2467/3325) spt-store commune_intent::tests::intent_records_reads_and_is_consumed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9539621Z         PASS [   0.019s] (2468/3325) spt-store contacts::tests::a_row_past_the_window_is_dropped_at_write_and_at_read
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9569719Z         PASS [   0.018s] (2469/3325) spt-store contacts::tests::direction_is_part_of_the_key_and_a_repeat_refreshes_in_place
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9599662Z         PASS [   0.019s] (2470/3325) spt-store contacts::tests::the_cap_bounds_the_ledger_oldest_first_at_its_stated_value
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9629577Z         PASS [   0.189s] (2471/3325) spt-store branchstore::tests::unchanged_write_is_no_commit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9659543Z         PASS [   0.010s] (2472/3325) spt-store contacts::tests::the_ledger_round_trips_and_degrades_to_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9689455Z         PASS [   0.217s] (2473/3325) spt-store branchstore::tests::commit_then_read_at_tip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9699476Z         PASS [   0.022s] (2474/3325) spt-store contextmark::tests::join_bump_dominates_both_parents
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9719470Z         PASS [   0.021s] (2475/3325) spt-store contextmark::tests::marker_round_trips_v1_and_v2
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9729547Z         PASS [   0.224s] (2476/3325) spt-store branchstore::tests::multi_key_commit_is_one_commit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9749428Z         PASS [   0.019s] (2477/3325) spt-store contextmark::tests::merge_decisions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9789515Z         PASS [   0.017s] (2478/3325) spt-store contextmark::tests::vector_compare_covers_all_orders
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9809536Z         PASS [   0.017s] (2479/3325) spt-store contextmark::tests::vector_parse_tolerant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:08.9841332Z         PASS [   0.037s] (2480/3325) spt-store contacts::tests::the_ledger_is_carried_by_no_wire_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.0059996Z         PASS [   0.272s] (2481/3325) spt-store branchstore::tests::branch_tips_by_recency_matches_order_and_tips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.0419871Z         PASS [   0.067s] (2482/3325) spt-store contextstore::tests::invalid_id_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.0570211Z         PASS [   0.015s] (2483/3325) spt-store daemon_inhibit::tests::a_torn_inhibit_record_still_inhibits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.0599695Z         PASS [   0.190s] (2484/3325) spt-store briefing::tests::bring_up_spools_one_briefing_and_writes_no_role_text
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.0760123Z         PASS [   0.021s] (2485/3325) spt-store daemon_inhibit::tests::inhibit_stands_until_an_intent_verb_clears_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.0940231Z         PASS [   0.016s] (2486/3325) spt-store dispatchresults::tests::a_torn_last_line_never_hides_the_rows_before_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1079966Z         PASS [   0.015s] (2487/3325) spt-store dispatchresults::tests::no_file_reads_as_no_results
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1199986Z         PASS [   0.013s] (2488/3325) spt-store dispatchresults::tests::rows_accumulate_per_target_across_dispatches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1380002Z         PASS [   0.016s] (2489/3325) spt-store dispatchresults::vocabulary_tests::a_seal_row_has_no_target_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1600148Z         PASS [   0.024s] (2490/3325) spt-store dispatchresults::vocabulary_tests::no_perch_is_named_and_survives_the_wire_before_anything_emits_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1699805Z         PASS [   0.196s] (2491/3325) spt-store contextstore::tests::project_branch_holds_many_agents
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1799948Z         PASS [   0.020s] (2492/3325) spt-store dispatchresults::vocabulary_tests::targeted_and_seal_rows_share_one_stream
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1899917Z         PASS [   0.019s] (2493/3325) spt-store empower::tests::a_carry_moves_the_grant_and_leaves_nothing_at_the_old_session
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.1970279Z         PASS [   0.016s] (2494/3325) spt-store empower::tests::a_failed_carry_drops_the_authority_rather_than_leaving_it_behind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2039812Z         PASS [   0.014s] (2495/3325) spt-store empower::tests::a_grant_covers_one_subnet_and_absence_covers_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2129953Z         PASS [   0.017s] (2496/3325) spt-store empower::tests::a_removal_failure_still_stops_the_old_record_from_granting
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2170281Z         PASS [   0.161s] (2497/3325) spt-store daemon_inhibit::tests::spawn_lock_is_exclusive_and_released_on_drop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2189836Z         PASS [   0.015s] (2498/3325) spt-store empower::tests::the_drop_edge_revokes_and_corruption_degrades_closed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2273420Z         PASS [   0.014s] (2499/3325) spt-store empower::tests::the_grant_sentence_names_the_subnet_the_grant_and_the_lifetime
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2419998Z         PASS [   0.022s] (2500/3325) spt-store empower::tests::the_shared_writer_makes_both_grants_one_record_with_one_lifetime
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2459747Z         PASS [   0.022s] (2501/3325) spt-store empower::tests::the_sweep_clears_dead_sessions_and_spares_the_live_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2479791Z         PASS [   0.006s] (2502/3325) spt-store engineroom::tests::an_absent_code_is_refused_without_counting
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2499646Z         PASS [   0.022s] (2503/3325) spt-store engineroom::tests::a_reset_drops_the_advertisement_whitelist
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2650114Z         PASS [   0.021s] (2504/3325) spt-store engineroom::tests::a_shut_gate_answers_an_absent_code_exactly_as_it_answers_a_wrong_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2679617Z         PASS [   0.014s] (2505/3325) spt-store engineroom::tests::backoff_doubles_from_one_second_and_caps_at_an_hour
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2709611Z         PASS [   0.022s] (2506/3325) spt-store engineroom::tests::an_attempt_during_backoff_is_refused_without_counting
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2769733Z         PASS [   0.013s] (2507/3325) spt-store engineroom::tests::bring_up_needs_the_adapter_first_and_the_code_after
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2850570Z         PASS [   0.014s] (2508/3325) spt-store engineroom::tests::every_seat_change_drops_authority_and_a_re_serve_does_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2889733Z         PASS [   0.020s] (2509/3325) spt-store engineroom::tests::creation_and_reset_are_the_same_path_and_the_id_is_the_uniqueness
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2919477Z         PASS [   0.015s] (2510/3325) spt-store engineroom::tests::failures_past_the_third_are_loud
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.2959732Z         PASS [   0.010s] (2511/3325) spt-store engineroom::tests::only_the_admitted_connection_re_serving_itself_skips_the_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3069860Z         PASS [   0.012s] (2512/3325) spt-store engineroom::tests::posture_is_online_only_while_a_controller_is_attached
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3099671Z         PASS [   0.022s] (2513/3325) spt-store engineroom::tests::one_ledger_covers_both_secrets_so_the_budget_never_doubles
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3139573Z         PASS [   0.016s] (2514/3325) spt-store engineroom::tests::posture_beats_the_advertisement_whitelist
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3140560Z         PASS [   0.309s] (2515/3325) spt-store contextstore::tests::two_tier_layout_and_commits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3269862Z         PASS [   0.019s] (2516/3325) spt-store engineroom::tests::success_clears_the_ledger_and_reopens_the_gate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3309744Z         PASS [   0.019s] (2517/3325) spt-store engineroom::tests::the_edge_revocation_ignores_every_other_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3329793Z         PASS [   0.018s] (2518/3325) spt-store engineroom::tests::the_reserved_id_refusal_is_one_sentence_naming_the_one_entry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3339476Z         PASS [   0.026s] (2519/3325) spt-store engineroom::tests::the_ledger_survives_a_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3429665Z         PASS [   0.014s] (2520/3325) spt-store enroll::tests::absent_and_corrupt_stores_load_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3480448Z         PASS [   0.014s] (2521/3325) spt-store enroll::tests::join_is_insert_if_absent_with_collision_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3569636Z         PASS [   0.017s] (2522/3325) spt-store enroll::tests::mint_persists_and_finds_by_node_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3639692Z         PASS [   0.394s] (2523/3325) spt-store contextstore::tests::conflict_artifacts_preserve_both_versions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3702542Z         PASS [   0.023s] (2524/3325) spt-store enroll::tests::mint_refuses_already_enrolled_but_pair_is_the_key
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3741452Z         PASS [   0.015s] (2525/3325) spt-store enroll::tests::mint_refuses_empty_subnet_and_bad_pubkey
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3850026Z         PASS [   0.021s] (2526/3325) spt-store enroll::tests::mint_refuses_every_non_short_hex_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3899620Z         PASS [   0.016s] (2527/3325) spt-store epoch::tests::corrupt_or_absent_file_degrades_safely
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.3939534Z         PASS [   0.022s] (2528/3325) spt-store epoch::tests::a_nul_husk_loads_as_zero_and_heals
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4170571Z         PASS [   0.023s] (2529/3325) spt-store epoch::tests::fast_forward_leaves_a_healthy_counter_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4189541Z         PASS [   0.034s] (2530/3325) spt-store epoch::tests::counter_persists_across_reload
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4239643Z         PASS [   0.035s] (2531/3325) spt-store epoch::tests::fast_forward_jumps_strictly_past_the_fleet_lease
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4339823Z         PASS [   0.015s] (2532/3325) spt-store erole::tests::an_invented_surface_reaches_the_role_exactly_as_it_reaches_the_help
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4419763Z         PASS [   0.017s] (2533/3325) spt-store erole::tests::the_role_is_the_same_bytes_every_time_and_names_the_seat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4489539Z         PASS [   0.012s] (2534/3325) spt-store gate::tests::an_absence_is_never_an_identity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4510335Z         PASS [   0.031s] (2535/3325) spt-store epoch::tests::next_is_strictly_increasing_from_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4589743Z         PASS [   0.018s] (2536/3325) spt-store gate::tests::the_resolution_predicate_never_disagrees_with_the_filesystem
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4679620Z         PASS [   0.009s] (2537/3325) spt-store grants::tests::grant_match_is_exact_per_tuple
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4689579Z         PASS [   0.020s] (2538/3325) spt-store gitrun::tests::deadline_kills_and_reports_timed_out
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4739704Z         PASS [   0.021s] (2539/3325) spt-store gitrun::tests::version_runs_within_budget
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4807356Z         PASS [   0.013s] (2540/3325) spt-store grants::tests::persistence_and_corrupt_degrade_to_deny
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4839598Z         PASS [   0.014s] (2541/3325) spt-store grants::tests::grant_revoke_roundtrip_default_deny
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4879664Z         PASS [   0.019s] (2542/3325) spt-store helperline::tests::a_torn_line_is_skipped_and_the_rest_survives
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.4970045Z         PASS [   0.016s] (2543/3325) spt-store helperline::tests::an_anchored_path_of_either_platform_is_a_candidate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5019706Z         PASS [   0.017s] (2544/3325) spt-store helperline::tests::an_endpoint_with_no_registrations_reads_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5029532Z         PASS [   0.015s] (2545/3325) spt-store helperline::tests::an_unanchored_path_is_not_a_candidate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5149809Z         PASS [   0.539s] (2546/3325) spt-store contextstore::tests::rename_ripples_both_tiers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5199771Z         PASS [   0.015s] (2547/3325) spt-store helperline::tests::the_record_lives_in_the_perch_beside_the_io_log
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5229592Z         PASS [   0.021s] (2548/3325) spt-store helperline::tests::candidates_are_deduplicated_and_capped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5269825Z         PASS [   0.816s] (2549/3325) spt-store atomic::tests::concurrent_writers_never_collide_on_tmp
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5299514Z         PASS [   0.014s] (2550/3325) spt-store history::tests::appends_one_record_per_line
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5349615Z         PASS [   0.014s] (2551/3325) spt-store history::tests::context_entries_carry_the_discriminator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5379529Z         PASS [   0.016s] (2552/3325) spt-store history::tests::digest_entries_go_to_a_separate_log
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5529598Z         PASS [   0.019s] (2553/3325) spt-store home::tests::home_assignment_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5599673Z         PASS [   0.031s] (2554/3325) spt-store home::tests::effective_subnet_precedence_and_self_still_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5649717Z         PASS [   0.027s] (2555/3325) spt-store home::tests::nested_parent_home_derives_from_parent_and_none_for_self
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5709720Z         PASS [   0.038s] (2556/3325) spt-store home::tests::adoption_stamps_only_unset_and_only_when_unambiguous
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5769689Z         PASS [   0.016s] (2557/3325) spt-store home::tests::scope_seeding_never_clobbers_user_policy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5839788Z         PASS [   0.014s] (2558/3325) spt-store home::tests::stamp_creation_fields_preserves_profile_against_bare_parent_rebind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5899743Z         PASS [   0.013s] (2559/3325) spt-store hostlabel::tests::hostname_is_nonempty_and_trimmed_on_supported_platforms
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5919647Z         PASS [   0.021s] (2560/3325) spt-store home::tests::stamp_creation_fields_news_assign_and_revives_carry_forward
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.5989706Z         PASS [   0.019s] (2561/3325) spt-store hostlabel::tests::node_key_absent_label_falls_back_to_hostname
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6049680Z         PASS [   0.018s] (2562/3325) spt-store inbound::tests::a_dead_binder_discards_even_a_green_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6129656Z         PASS [   0.015s] (2563/3325) spt-store inbound::tests::a_recycled_pid_is_not_the_binder
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6159581Z         PASS [   0.018s] (2564/3325) spt-store inbound::tests::a_live_binder_round_trips_its_verdict
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6219666Z         PASS [   0.100s] (2565/3325) spt-store helperline::tests::the_file_is_trimmed_to_its_newest_records
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6279577Z         PASS [   0.016s] (2566/3325) spt-store inbound::tests::absent_and_corrupt_read_unknown
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6339693Z         PASS [   0.019s] (2567/3325) spt-store inbound::tests::every_verdict_variant_round_trips_through_the_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6399616Z         PASS [   0.017s] (2568/3325) spt-store inbound::tests::speakable_verdicts_render_the_binder_built_fix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6459595Z         PASS [   0.019s] (2569/3325) spt-store info::tests::anchored_skeleton_never_overwrites_an_existing_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6519571Z         PASS [   0.023s] (2570/3325) spt-store info::tests::anchored_skeleton_carries_the_home_the_caller_knew
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6549499Z         PASS [   0.022s] (2571/3325) spt-store info::tests::busy_sentinel_round_trips_and_read_pid_is_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6609505Z         PASS [   0.020s] (2572/3325) spt-store info::tests::controllable_is_additive_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6669439Z         PASS [   0.014s] (2573/3325) spt-store info::tests::corrupt_content_returns_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6729533Z         PASS [   0.700s] (2574/3325) spt-store contextstore::tests::fork_copies_both_tiers_then_diverges
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6799709Z         PASS [   0.039s] (2575/3325) spt-store info::tests::psyche_host_error_slots_round_trip_and_stay_additive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6849604Z         PASS [   0.065s] (2576/3325) spt-store info::tests::converge_dead_relay_guards_on_pid_session_and_online
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6939672Z         PASS [   0.018s] (2577/3325) spt-store info::tests::read_pid_tolerates_schema_minimal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.6959495Z         PASS [   0.020s] (2578/3325) spt-store info::tests::read_env_is_additive_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7079683Z         PASS [   0.093s] (2579/3325) spt-store info::tests::concurrent_read_during_writes_never_torn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7119607Z         PASS [   0.075s] (2580/3325) spt-store info::tests::psyche_host_error_round_trips_and_set_clear_increments
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7319743Z         PASS [   0.040s] (2581/3325) spt-store info::tests::set_driven_by_stamps_and_clears
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7439733Z         PASS [   0.061s] (2582/3325) spt-store info::tests::resume_unbound_stamp_fires_on_offline_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7499550Z         PASS [   0.039s] (2583/3325) spt-store info::tests::set_last_active_stamps_recency
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7509572Z         PASS [   0.041s] (2584/3325) spt-store info::tests::set_resources_writes_and_clears_the_blurb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7679999Z         PASS [   0.033s] (2585/3325) spt-store info::tests::set_rest_state_stamps_state_and_anchor_as_a_pair
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7739608Z         PASS [   0.077s] (2586/3325) spt-store info::tests::rollback_unbound_stamp_is_generation_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7799552Z         PASS [   0.034s] (2587/3325) spt-store info::tests::set_status_marks_existing_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7869657Z         PASS [   0.020s] (2588/3325) spt-store info::tests::worker_correlation_metadata_is_additive_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.7979816Z         PASS [   0.051s] (2589/3325) spt-store info::tests::terminal_normalize_cas_miss_leaves_a_newer_bind_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8039547Z         PASS [   0.040s] (2590/3325) spt-store info::tests::translation_fault_round_trips_and_set_clear
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8099682Z         PASS [   0.055s] (2591/3325) spt-store info::tests::terminal_normalize_writes_the_triple_atomically_never_mixed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8159619Z         PASS [   0.024s] (2592/3325) spt-store info::tests::write_read_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8219627Z         PASS [   0.016s] (2593/3325) spt-store iolog::tests::a_corrupt_line_is_skipped_not_fatal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8279574Z         PASS [   0.014s] (2594/3325) spt-store iolog::tests::a_multiline_payload_stays_one_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8339712Z         PASS [   0.846s] (2595/3325) spt-store contextstore::tests::remove_endpoint_removes_exactly_the_source
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8409640Z         PASS [   0.018s] (2596/3325) spt-store iolog::tests::a_cursor_returns_strictly_what_follows_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8489823Z         PASS [   0.015s] (2597/3325) spt-store iolog::tests::a_poll_reports_the_true_snapshot_head_independent_of_selected_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8529631Z         PASS [   0.018s] (2598/3325) spt-store iolog::tests::a_row_with_an_unknown_field_is_read_not_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8589785Z         PASS [   0.864s] (2599/3325) spt-store contextstore::tests::fork_copies_the_whole_mind_tier_including_files_no_constant_names
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8649618Z         PASS [   0.017s] (2600/3325) spt-store iolog::tests::an_internal_reset_is_repaired_even_when_last_exceeds_first
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8709561Z         PASS [   0.014s] (2601/3325) spt-store iolog::tests::appends_assign_monotonic_seqs_from_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8769450Z         PASS [   0.017s] (2602/3325) spt-store iolog::tests::equal_adjacent_seqs_are_repaired
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8829579Z         PASS [   0.016s] (2603/3325) spt-store iolog::tests::healthy_sequence_gaps_do_not_trigger_repair_or_retention
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8849582Z         PASS [   0.015s] (2604/3325) spt-store iolog::tests::reset_blocks_repair_above_the_max_without_changing_payload_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8859560Z         PASS [   0.016s] (2605/3325) spt-store iolog::tests::sequence_exhaustion_refuses_without_modifying_history
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8909527Z         PASS [   0.015s] (2606/3325) spt-store iolog::tests::the_log_seq_and_the_digest_seq_do_not_collide
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8929634Z         PASS [   0.040s] (2607/3325) spt-store iolog::tests::oversized_repair_retains_bounded_newest_history
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8969575Z         PASS [   0.071s] (2608/3325) spt-store iolog::tests::a_tail_window_inside_three_byte_utf8_never_resets_the_seq
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.8999554Z         PASS [   0.015s] (2609/3325) spt-store iolog::tests::the_mid_marker_round_trips_and_is_absent_when_false
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9029628Z         PASS [   0.006s] (2610/3325) spt-store knock::tests::a_claim_whose_write_is_refused_leaves_the_code_redeemable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9059610Z         PASS [   0.080s] (2611/3325) spt-store iolog::tests::a_tail_without_a_complete_row_falls_back_to_the_whole_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9089518Z         PASS [   0.013s] (2612/3325) spt-store knock::tests::a_blanket_code_binds_the_machine_for_every_surface
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9119644Z         PASS [   0.009s] (2613/3325) spt-store knock::tests::a_code_minted_before_the_seal_reads_as_legacy_and_unacknowledged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9120732Z         PASS [   0.028s] (2614/3325) spt-store iolog::tests::trimming_1251_reset_rows_keeps_the_newest_1000_by_position
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9159566Z         PASS [   0.010s] (2615/3325) spt-store knock::tests::a_code_reads_with_or_without_a_monic_imprint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9189654Z         PASS [   0.015s] (2616/3325) spt-store knock::tests::a_code_preauth_is_not_consumable_by_a_knock_answer_of_the_same_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9229655Z         PASS [   0.016s] (2617/3325) spt-store knock::tests::a_code_shorter_than_the_entropy_floor_is_malformed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9249714Z         PASS [   0.018s] (2618/3325) spt-store knock::tests::a_genuinely_node_widening_bake_is_still_refused_without_the_acknowledgment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9339797Z         PASS [   0.017s] (2619/3325) spt-store knock::tests::a_human_redeemer_binds_their_machine_and_only_its_humans
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9369737Z         PASS [   0.020s] (2620/3325) spt-store knock::tests::a_human_presenting_an_msg_only_code_reaches_a_decision_that_matches_them
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9399625Z         PASS [   0.014s] (2621/3325) spt-store knock::tests::a_husked_store_degrades_loudly_rather_than_reading_as_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9459714Z         PASS [   0.019s] (2622/3325) spt-store knock::tests::a_knock_sent_to_another_node_is_retained_but_answerable_nowhere_here
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9549659Z         PASS [   0.021s] (2623/3325) spt-store knock::tests::a_mutual_preauth_is_consumed_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9609703Z         PASS [   0.027s] (2624/3325) spt-store knock::tests::a_non_attributable_surface_binds_a_rule_the_real_gate_actually_matches
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9639625Z         PASS [   0.024s] (2625/3325) spt-store knock::tests::a_partial_approval_renders_its_own_verdict_and_never_collapses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9699627Z         PASS [   0.129s] (2626/3325) spt-store iolog::tests::repair_uses_the_global_max_even_when_it_is_outside_the_tail
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9729556Z         PASS [   0.025s] (2627/3325) spt-store knock::tests::a_preauth_armed_under_the_retired_flags_still_consumes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9789503Z         PASS [   0.024s] (2628/3325) spt-store knock::tests::a_receipt_stamps_only_the_row_it_names
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9849706Z         PASS [   0.022s] (2629/3325) spt-store knock::tests::a_redeemer_armed_record_takes_subject_and_surfaces_from_the_reply
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9909797Z         PASS [   0.021s] (2630/3325) spt-store knock::tests::a_refused_record_and_a_never_armed_one_are_indistinguishable_by_design
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9939567Z         PASS [   0.021s] (2631/3325) spt-store knock::tests::a_redemption_consumes_what_it_makes_due_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9969658Z         PASS [   0.030s] (2632/3325) spt-store knock::tests::a_redemption_answers_under_the_mints_authority_never_same_node_user
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:09.9999591Z         PASS [   0.020s] (2633/3325) spt-store knock::tests::a_reknock_updates_in_place_and_never_queues_a_second_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0029476Z         PASS [   0.020s] (2634/3325) spt-store knock::tests::a_sealed_secret_is_exactly_twenty_hex_chars
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0039589Z         PASS [   0.013s] (2635/3325) spt-store knock::tests::a_sent_knock_stays_answerable_here_until_it_names_a_far_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0089633Z         PASS [   0.018s] (2636/3325) spt-store knock::tests::a_sent_row_and_a_received_row_do_not_replace_each_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0119587Z         PASS [   0.009s] (2637/3325) spt-store knock::tests::an_expired_knock_is_unanswerable_even_from_a_stale_listing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0149464Z         PASS [   0.018s] (2638/3325) spt-store knock::tests::an_absent_store_is_the_empty_inbox
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0189802Z         PASS [   0.016s] (2639/3325) spt-store knock::tests::an_unanswered_knock_leaves_the_preauth_unconsumed_and_rearming_replaces
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0209506Z         PASS [   0.015s] (2640/3325) spt-store knock::tests::an_unidentified_consumption_never_echoes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0249522Z         PASS [   0.016s] (2641/3325) spt-store knock::tests::node_target_knocks_reach_only_the_engine_room
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0299699Z         PASS [   0.016s] (2642/3325) spt-store knock::tests::expiry_renders_as_expired_rather_than_as_nothing_to_approve
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0359598Z         PASS [   0.019s] (2643/3325) spt-store knock::tests::expired_and_unknown_codes_are_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0389580Z         PASS [   0.017s] (2644/3325) spt-store knock::tests::records_written_before_this_wave_still_decode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0419595Z         PASS [   0.019s] (2645/3325) spt-store knock::tests::purging_the_knockers_perch_leaves_the_knock_answerable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0449643Z         PASS [   0.012s] (2646/3325) spt-store knock::tests::the_arrival_rate_limit_refuses_past_its_window_and_admits_within_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0479601Z         PASS [   0.418s] (2647/3325) spt-store info::tests::mutate_info_serializes_writers_so_offline_is_never_clobbered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0509623Z         PASS [   0.021s] (2648/3325) spt-store knock::tests::redeemed_consumes_refused_disarms_and_unconfirmed_leaves_it_armed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0539658Z         PASS [   0.022s] (2649/3325) spt-store knock::tests::the_attributable_half_binds_the_endpoint_and_the_rest_binds_the_machine
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0579637Z         PASS [   0.018s] (2650/3325) spt-store knock::tests::the_courtesy_seam_matches_only_a_knock_this_node_sent_to_that_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0639724Z         PASS [   0.017s] (2651/3325) spt-store knock::tests::the_inbox_round_trips_and_stays_minimal_when_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0669625Z         PASS [   0.018s] (2652/3325) spt-store knock::tests::the_knocker_is_the_stamped_id_and_survives_a_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0699633Z         PASS [   0.020s] (2653/3325) spt-store knock::tests::the_outbound_fields_read_and_write_back_absent_on_an_n_1_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0729711Z         PASS [   0.014s] (2654/3325) spt-store knock::tests::the_same_code_presented_by_an_endpoint_binds_the_sender_endpoint_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0759611Z         PASS [   0.020s] (2655/3325) spt-store knock::tests::the_recorded_exchange_matches_on_all_three_identity_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0789588Z         PASS [   0.014s] (2656/3325) spt-store knock::tests::two_redemptions_of_one_code_yield_exactly_one_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0819623Z         PASS [   0.021s] (2657/3325) spt-store knock::tests::the_widening_acknowledgment_comes_from_the_record_and_not_from_the_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0849646Z         PASS [   0.022s] (2658/3325) spt-store knock::tests::the_same_secret_is_well_formed_under_one_form_and_not_the_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0879587Z         PASS [   0.016s] (2659/3325) spt-store lastmsg::tests::a_corrupt_row_reads_as_absent_rather_than_failing_the_poll
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0909718Z         PASS [   0.019s] (2660/3325) spt-store lastmsg::tests::a_msg_envelope_is_excerpted_by_its_text_and_other_envelopes_are_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0939565Z         PASS [   0.017s] (2661/3325) spt-store lastmsg::tests::a_row_round_trips_and_an_absent_one_reads_as_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0969473Z         PASS [   0.013s] (2662/3325) spt-store liveness::tests::busy_and_missing_keep_interim_parity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.0999667Z         PASS [   0.013s] (2663/3325) spt-store lastmsg::tests::excerpt_collapses_whitespace_so_a_body_cannot_shape_the_render
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1029453Z         PASS [   0.019s] (2664/3325) spt-store lastmsg::tests::excerpt_bounds_at_ten_words_and_says_so
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1030422Z         PASS [   0.013s] (2665/3325) spt-store liveness::tests::corrupt_record_not_alive_but_absent_stays_alive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1089634Z         PASS [   0.025s] (2666/3325) spt-store liveness::tests::daemon_hosted_online_survives_dead_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1149726Z         PASS [   0.028s] (2667/3325) spt-store liveness::tests::daemon_hosted_offline_overrides_live_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1249698Z         PASS [   0.036s] (2668/3325) spt-store liveness::tests::external_perch_still_pid_probes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1339751Z         PASS [   0.023s] (2669/3325) spt-store matchrule::tests::an_invalid_regex_never_matches_and_never_falls_back_to_literal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1369593Z         PASS [   0.046s] (2670/3325) spt-store liveness::tests::is_perch_unbound_false_for_online_and_offline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1399587Z         PASS [   0.049s] (2671/3325) spt-store liveness::tests::registry_entry_keys_on_status_for_hosted_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1479683Z         PASS [   0.040s] (2672/3325) spt-store liveness::tests::unbound_not_alive_but_detected_and_not_stale
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1519610Z         PASS [   1.407s] (2673/3325) spt-store branchstore::tests::branches_by_recency_orders_newest_first
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1599891Z         PASS [   0.032s] (2674/3325) spt-store matchrule::tests::literal_is_case_insensitive_substring_and_regex_is_opt_in
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.1839926Z         PASS [   0.091s] (2675/3325) spt-store liveness::tests::relay_liveness_kills_only_a_provably_gone_relay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.2670785Z         PASS [   0.129s] (2676/3325) spt-store monic::tests::a_clone_with_nothing_to_copy_mints_no_mind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.3170099Z         PASS [   0.182s] (2677/3325) spt-store monic::tests::a_bad_monic_id_is_refused_but_a_trigger_pattern_may_be_anything
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.3410002Z         PASS [   0.192s] (2678/3325) spt-store monic::tests::a_w5_peer_keyed_record_migrates_to_the_re_keyed_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4120188Z         PASS [   0.274s] (2679/3325) spt-store monic::tests::a_monic_is_committed_to_the_minds_own_branch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4250131Z         PASS [   0.277s] (2680/3325) spt-store monic::tests::a_monics_id_is_independent_of_the_peers_it_classifies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4309898Z         PASS [   0.270s] (2681/3325) spt-store monic::tests::add_and_update_refuse_opposite_states
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4400324Z         PASS [   3.602s] (2682/3325) spt-daemon broker::tests::a_failed_fido2_proof_spends_nothing_and_the_totp_fallback_still_admits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4469404Z         PASS [   0.016s] (2683/3325) spt-store monic::tests::every_published_trigger_row_now_reads_as_evaluated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4520056Z         PASS [   0.020s] (2684/3325) spt-store monic::tests::every_trigger_kind_is_published_under_its_wire_spelling
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4620157Z         PASS [   0.022s] (2685/3325) spt-daemon broker::tests::a_failed_surface_resize_leaves_the_grid_geometry_unchanged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4840077Z         PASS [   0.024s] (2686/3325) spt-daemon broker::tests::a_full_controller_does_not_starve_a_viewer_or_block_the_drain
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.4939959Z         PASS [   0.311s] (2687/3325) spt-store monic::tests::an_imparted_monic_never_overwrites_a_standing_judgement
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.5140039Z         PASS [   0.028s] (2688/3325) spt-daemon broker::tests::a_gap_resume_on_the_same_conn_is_served_not_suppressed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.5312203Z         PASS [   0.018s] (2689/3325) spt-daemon broker::tests::a_grow_keeps_old_geometry_wrapping_and_places_new_output_at_the_new_width
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.5470287Z         PASS [   0.229s] (2690/3325) spt-store monic::tests::classification_is_sender_only_and_never_warns_about_a_classified_peer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.5780343Z         PASS [   0.312s] (2691/3325) spt-store monic::tests::an_unreadable_record_is_not_a_classification_but_is_still_listed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.5850024Z         PASS [   0.053s] (2692/3325) spt-daemon broker::tests::a_mint_with_no_ceremony_surface_refuses_by_name_and_a_capable_seat_proceeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.5910603Z         PASS [   0.013s] (2693/3325) spt-store monic::tests::the_trigger_section_carries_no_markdown_or_internal_codes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6009876Z         PASS [   0.011s] (2694/3325) spt-store monic::tests::the_trigger_section_is_composed_from_its_table_not_a_literal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6160104Z         PASS [   0.013s] (2695/3325) spt-store msgid::tests::a_byte_identical_repeat_still_mints
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6369927Z         PASS [   0.020s] (2696/3325) spt-store msgid::tests::a_collision_lengthens_the_newcomer_and_leaves_the_incumbent_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6549973Z         PASS [   0.019s] (2697/3325) spt-store msgid::tests::a_nested_perchs_sent_message_is_found_too
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6619939Z         PASS [   0.215s] (2698/3325) spt-store monic::tests::remove_withdraws_an_unreadable_record_without_a_force_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6679660Z         PASS [   0.012s] (2699/3325) spt-store msgid::tests::a_path_the_words_never_named_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6769731Z         PASS [   0.013s] (2700/3325) spt-store msgid::tests::a_target_other_than_the_audience_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6859758Z         PASS [   0.017s] (2701/3325) spt-store msgid::tests::an_absent_origin_refuses_where_a_present_one_admits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6889601Z         PASS [   0.009s] (2702/3325) spt-store msgid::tests::an_agent_attributed_row_refuses_where_a_user_row_admits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.6979669Z         PASS [   0.011s] (2703/3325) spt-store msgid::tests::an_unfound_row_refuses_where_a_found_one_admits
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7009724Z         PASS [   0.014s] (2704/3325) spt-store msgid::tests::an_id_is_eight_base32_characters_derived_from_the_content
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7099725Z         PASS [   0.010s] (2705/3325) spt-store msgid::tests::an_unknown_parent_is_carried_not_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7159756Z         PASS [   0.018s] (2706/3325) spt-store msgid::tests::an_unknown_id_resolves_to_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7189887Z         PASS [   0.169s] (2707/3325) spt-store monic::tests::the_delivery_edge_reads_without_minting_a_mind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7219553Z         PASS [   0.009s] (2708/3325) spt-store msgid::tests::lengthening_extends_rather_than_remints
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7340104Z         PASS [   0.012s] (2709/3325) spt-store msgid::tests::short_id_shape_is_judged_by_alphabet_and_length
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7369631Z         PASS [   0.009s] (2710/3325) spt-store nodeid::tests::corrupt_key_errors_never_regenerates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7429734Z         PASS [   0.017s] (2711/3325) spt-store msgid::tests::the_node_finds_its_own_sent_message_and_nothing_it_did_not_send
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7459533Z         PASS [   0.008s] (2712/3325) spt-store notif::tests::adr0046_fields_are_additive_and_n1_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7489537Z         PASS [   0.019s] (2713/3325) spt-store nodeid::tests::create_then_load_is_stable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.7490537Z         PASS [   0.022s] (2714/3325) spt-store nodeid::tests::seed_hex_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.8372923Z         PASS [   0.397s] (2715/3325) spt-store monic::tests::monic_crud_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.8550058Z         PASS [   0.110s] (2716/3325) spt-store notif::tests::bare_coalesce_key_rejected_at_front_door
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.8680347Z         PASS [   0.126s] (2717/3325) spt-store notif::tests::an_addressed_row_round_trips_and_an_ordinary_one_stays_unaddressed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9249936Z         PASS [   0.173s] (2718/3325) spt-store notif::tests::coalesce_supersedes_exact_tuple_latest_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9352336Z         PASS [   0.351s] (2719/3325) spt-daemon broker::tests::a_new_session_sweeps_earlier_sessions_undelivered_briefings_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9359905Z         PASS [   0.443s] (2720/3325) spt-store monic::tests::the_delivery_edge_evaluates_the_live_kinds_and_not_the_inert_ones
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9595489Z         PASS [   1.092s] (2721/3325) spt-store iolog::tests::the_log_trims_oldest_first_at_the_bound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9830191Z         PASS [   0.145s] (2722/3325) spt-store notif::tests::dismiss_by_coalesce_key_latches_matching_rows_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9959778Z         PASS [   0.130s] (2723/3325) spt-store notif::tests::listing_is_subnet_scoped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:10.9991434Z         PASS [   0.145s] (2724/3325) spt-store notif::tests::legacy_schema_gains_columns_on_open
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.0059998Z         PASS [   0.069s] (2725/3325) spt-daemon broker::tests::a_reap_clears_the_control_stamps_but_never_the_hosting_authority
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.0089593Z         PASS [   0.010s] (2726/3325) spt-store notif::tests::row_serde_round_trips_with_forward_compat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.0961603Z         PASS [   0.137s] (2727/3325) spt-store notif::tests::produce_list_dismiss_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1040026Z         PASS [   1.772s] (2728/3325) spt-store enroll::tests::hello_kcm_pubkey_layout_is_der_spki_and_the_retired_blob_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1054342Z         PASS [   0.008s] (2729/3325) spt-store notif::tests::the_addressee_is_additive_on_the_wire
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1108796Z         PASS [   0.007s] (2730/3325) spt-store peeraddrs::tests::a_poison_row_never_becomes_a_route
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1133850Z         PASS [   0.107s] (2731/3325) spt-store notif::tests::stale_undismissed_copy_cannot_undismiss
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1189881Z         PASS [   0.007s] (2732/3325) spt-store peeraddrs::tests::corrupt_file_degrades_to_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1208544Z         PASS [   0.007s] (2733/3325) spt-store peeraddrs::tests::put_get_roundtrip_and_noop_reput
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1242900Z         PASS [   0.006s] (2734/3325) spt-store peeraddrs::tests::put_refuses_a_mismatched_mapping
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1278480Z         PASS [   0.007s] (2735/3325) spt-store peeraddrs::tests::record_is_one_step_and_skips_noops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1309790Z         PASS [   0.007s] (2736/3325) spt-store peeraddrs::tests::suspect_persists_and_old_files_load_clean
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1323569Z         PASS [   0.196s] (2737/3325) spt-store notif::tests::migration_dismisses_only_stale_update_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1356723Z         PASS [   0.008s] (2738/3325) spt-store peeraddrs::tests::suspect_row_survives_failures_and_a_validated_put_supersedes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1393965Z         PASS [   0.007s] (2739/3325) spt-store perch::tests::a_boundary_echo_record_is_first_wins_and_read_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1424945Z         PASS [   0.008s] (2740/3325) spt-store perch::tests::a_stamp_disagreeing_with_the_sentinel_is_discarded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1437695Z         PASS [   0.144s] (2741/3325) spt-store notif::tests::seen_unions_and_surfaced_maxes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1479954Z         PASS [   0.010s] (2742/3325) spt-store perch::tests::activity_stamp_round_trips_both_directions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1509830Z         PASS [   0.011s] (2743/3325) spt-store perch::tests::adapter_option_encoding_dodges_windows_path_traps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1536239Z         PASS [   0.170s] (2744/3325) spt-store notif::tests::reopen_is_durable_and_corrupt_seen_degrades
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1537413Z         PASS [   0.011s] (2745/3325) spt-store perch::tests::an_unstamped_perch_reports_its_state_with_no_instant_either_direction
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1546965Z         PASS [   0.231s] (2746/3325) spt-store notif::tests::merge_is_idempotent_and_commutative
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1580511Z         PASS [   0.013s] (2747/3325) spt-store perch::tests::adapter_option_encoding_is_injective
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1606436Z         PASS [   0.009s] (2748/3325) spt-store perch::tests::child_files_route_through_one_resolver
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1608474Z         PASS [   0.009s] (2749/3325) spt-store perch::tests::classification_matrix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1640043Z         PASS [   0.007s] (2750/3325) spt-store perch::tests::resolve_psyche_and_worker_nest_under_parent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1672771Z         PASS [   0.008s] (2751/3325) spt-store perch::tests::resolve_self_is_flat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1676321Z         PASS [   0.014s] (2752/3325) spt-store perch::tests::parse_activity_stamp_rejects_malformed_and_disagreeing_bodies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1694250Z         PASS [   0.016s] (2753/3325) spt-store perch::tests::explicit_parent_wins_over_infer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1695321Z         PASS [   0.007s] (2754/3325) spt-store perch::tests::service_dir_is_home_scoped_and_encoded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1698180Z         PASS [   0.016s] (2755/3325) spt-store perch::tests::list_nested_perch_ids_in_is_structural_not_name_matched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1702922Z         PASS [   0.017s] (2756/3325) spt-store perch::tests::list_self_perch_ids_enumerates_bound_top_level
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1800312Z         PASS [   0.007s] (2757/3325) spt-store perchgc::tests::corrupt_record_is_occupied_never_residue
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1841012Z         PASS [   0.010s] (2758/3325) spt-store perch::tests::shell_perches_resolve_under_owner_shells_namespace
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1870028Z         PASS [   0.011s] (2759/3325) spt-store perchgc::tests::a_held_info_lock_refuses_the_mid_create_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1871153Z         PASS [   0.013s] (2760/3325) spt-store perch::tests::spt_home_is_pure_and_honors_env
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1872369Z         PASS [   0.011s] (2761/3325) spt-store perchgc::tests::a_refused_parent_shields_its_whole_subtree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1886926Z         PASS [   0.011s] (2762/3325) spt-store perchgc::tests::fully_residual_subtree_is_reaped_deepest_first
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1921130Z         PASS [   0.011s] (2763/3325) spt-store perchgc::tests::reaps_only_recordless_spool_less_non_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1961461Z         PASS [   0.026s] (2764/3325) spt-store perchgc::tests::counts_partition_the_population
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.1976892Z         PASS [   0.009s] (2765/3325) spt-store perchgc::tests::recordless_parent_with_a_held_child_is_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2054899Z         PASS [   0.020s] (2766/3325) spt-store perchgc::tests::never_descends_into_a_subtree_a_record_claims
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2058710Z         PASS [   0.008s] (2767/3325) spt-store perchgc::tests::refused_residue_reports_a_distinct_token_and_a_remedy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2060091Z         PASS [   0.024s] (2768/3325) spt-store perchgc::tests::never_keys_on_is_perch_alive_which_inverts_here
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2061209Z         PASS [   0.007s] (2769/3325) spt-store perchgc::tests::spool_sidecar_alone_still_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2112854Z         PASS [   0.008s] (2770/3325) spt-store perchgc::tests::unreadable_root_does_nothing_and_says_so
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2154739Z         PASS [   0.010s] (2771/3325) spt-store proc::tests::current_process_is_alive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2193662Z         PASS [   0.042s] (2772/3325) spt-store perchgc::tests::declines_to_reap_a_live_or_offline_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2300144Z         PASS [   0.008s] (2773/3325) spt-store proc::tests::exe_basename_resolves_current_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2329660Z         PASS [   0.035s] (2774/3325) spt-store perchgc::tests::report_is_identical_with_and_without_reap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2359675Z         PASS [   0.016s] (2775/3325) spt-store proc::tests::exe_basename_dead_pid_is_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2389753Z         PASS [   0.032s] (2776/3325) spt-store proc::tests::a_zombie_is_gone_to_the_owned_process_oracle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2419598Z         PASS [   0.030s] (2777/3325) spt-store proc::tests::descendants_include_a_spawned_child
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2420924Z         PASS [   0.040s] (2778/3325) spt-store proc::tests::a_zombie_is_absent_to_the_identity_oracle_and_gone_to_relay_liveness
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2459730Z         PASS [   0.010s] (2779/3325) spt-store proc::tests::parent_pid_resolves_and_is_alive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2489572Z         PASS [   0.011s] (2780/3325) spt-store proc::tests::pid_zero_is_dead_on_every_os
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2550037Z         PASS [   0.008s] (2781/3325) spt-store proc::tests::unassigned_pid_is_dead
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2579611Z         PASS [   0.014s] (2782/3325) spt-store proc::tests::zombie_child_reads_dead
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2599816Z         PASS [   0.007s] (2783/3325) spt-store projderive::tests::dedup_and_owlery_exclusion
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2629598Z         PASS [   0.154s] (2784/3325) spt-store notif::tests::ttl_expiry_ignores_seen_state_and_is_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2659641Z         PASS [   0.023s] (2785/3325) spt-store proc::tests::process_table_lists_the_current_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2689665Z         PASS [   0.010s] (2786/3325) spt-store projderive::tests::precedence_session_then_origin_then_context
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2720029Z         PASS [   0.013s] (2787/3325) spt-store projderive::tests::normalization_and_path_under
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2749654Z         PASS [   0.033s] (2788/3325) spt-store proc::tests::process_exists_is_tristate_and_never_guesses_without_a_snapshot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2779743Z         PASS [   0.008s] (2789/3325) spt-store project::tests::url_spellings_normalize_to_one_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2805859Z         PASS [   0.009s] (2790/3325) spt-store projindex::tests::fingerprint_keys_on_project_tips_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2870040Z         PASS [   0.006s] (2791/3325) spt-store projindex::tests::join_is_roster_authoritative
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2881584Z         PASS [   0.008s] (2792/3325) spt-store projindex::tests::missing_index_degrades_to_absent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2882800Z         PASS [   0.008s] (2793/3325) spt-store projindex::tests::schema_mismatch_degrades_distinctly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2894543Z         PASS [   0.008s] (2794/3325) spt-store projindex::tests::roundtrip_reads_back_without_git
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2929856Z         PASS [   0.009s] (2795/3325) spt-store projindex::tests::truncated_index_degrades_to_unreadable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.2967825Z         PASS [   0.007s] (2796/3325) spt-store projinval::tests::burst_coalesces_into_one_refresh
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3019327Z         PASS [   0.010s] (2797/3325) spt-store projindex::tests::w2_shaped_row_tolerates_missing_refs_and_order_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3024095Z         PASS [   0.007s] (2798/3325) spt-store projinval::tests::garbage_event_is_skipped_and_removed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3050103Z         PASS [   0.009s] (2799/3325) spt-store projinval::tests::nudge_drain_roundtrip_consumes_queue
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3073974Z         PASS [   0.300s] (2800/3325) spt-daemon broker::tests::a_redeemed_ticket_settles_the_verdict_its_own_gate_recorded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3100459Z         PASS [   0.083s] (2801/3325) spt-store proc::tests::kill_pid_tree_kills_the_whole_subtree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3108509Z         PASS [   0.013s] (2802/3325) spt-store psyche_custody::tests::custody_mint_write_read_clear_round_trip
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3160323Z         PASS [   0.016s] (2803/3325) spt-store psyche_custody::tests::custody_record_has_no_status_no_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3190049Z         PASS [   0.007s] (2804/3325) spt-store psyche_custody::tests::empty_or_corrupt_reads_as_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3225542Z         PASS [   0.012s] (2805/3325) spt-store psyche_custody::tests::custody_squatter_tolerates_missing_nested_and_corrupt_records
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3229368Z         PASS [   0.007s] (2806/3325) spt-store psyche_custody::tests::mint_is_canonical_uuid_v4
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3282908Z         PASS [   0.023s] (2807/3325) spt-store psyche_custody::tests::custody_squatter_finds_the_holding_psyche_and_misses_others
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3295244Z         PASS [   0.010s] (2808/3325) spt-store recent_home::tests::blank_name_is_noop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3314994Z         PASS [   0.067s] (2809/3325) spt-store project::tests::display_derivation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3350733Z         PASS [   0.010s] (2810/3325) spt-store recent_home::tests::legacy_single_value_reads_as_one_element
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3353534Z         PASS [   0.007s] (2811/3325) spt-store recent_home::tests::mru_less_project_falls_back_to_node_global
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3412214Z         PASS [   0.013s] (2812/3325) spt-store recent_home::tests::node_global_moves_to_front
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3425878Z         PASS [   0.013s] (2813/3325) spt-store recent_home::tests::project_then_node_global_precedence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3427062Z         PASS [   0.011s] (2814/3325) spt-store recent_home::tests::record_updates_both_levels
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3459614Z         PASS [   1.005s] (2815/3325) spt-store monic::tests::clone_copies_without_trampling_and_stamps_what_it_copied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.3493492Z         PASS [   0.090s] (2816/3325) spt-store project::tests::derivation_ladder
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4164458Z         PASS [   0.075s] (2817/3325) spt-store registry::tests::register_and_lookup
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4216797Z         PASS [   0.079s] (2818/3325) spt-store registry::tests::register_on_nonexistent_owlery_creates_dir_and_succeeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4509757Z         PASS [   0.029s] (2819/3325) spt-store rename::tests::live_nested_child_blocks_rename
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4510971Z         PASS [   0.102s] (2820/3325) spt-store registry::tests::reregister_replaces_address
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4599583Z         PASS [   0.127s] (2821/3325) spt-store registry::tests::clean_removes_dead_keeps_live
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4664719Z         PASS [   0.006s] (2822/3325) spt-store resume_custody::tests::corrupt_record_is_not_custody
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4686821Z         LEAK [   0.232s] (2823/3325) spt-store proc::tests::process_cmdline_reads_a_live_arg_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4738931Z         PASS [   0.057s] (2824/3325) spt-store registry::tests::resolve_on_empty_registry_is_none_not_error
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4751219Z         PASS [   0.007s] (2825/3325) spt-store resume_custody::tests::legacy_bare_pid_file_is_deleted_and_never_honored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4815199Z         PASS [   0.132s] (2826/3325) spt-store registry::tests::resolve_cleans_before_lookup
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4840210Z         PASS [   0.151s] (2827/3325) spt-store registry::tests::clean_keys_on_status_for_daemon_hosted_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4882917Z         PASS [   1.076s] (2828/3325) spt-store monic::tests::different_monics_never_conflict_across_instances
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4903384Z         PASS [   0.006s] (2829/3325) spt-store roster::tests::is_member_any_spans_subnets_and_honors_tombstones
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4956034Z         PASS [   0.007s] (2830/3325) spt-store roster::tests::merge_entry_is_strictly_greater_lease_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.4989930Z         PASS [   0.029s] (2831/3325) spt-store resume_custody::tests::dead_pid_reads_not_ours
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5019926Z         PASS [   0.046s] (2832/3325) spt-store rename::tests::rename_refusals_leave_owlery_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5049548Z         PASS [   0.008s] (2833/3325) spt-store roster::tests::merge_is_commutative_and_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5079592Z         PASS [   0.054s] (2834/3325) spt-store rename::tests::rename_ripples_self_and_nested_children
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5109635Z         PASS [   0.024s] (2835/3325) spt-store resume_custody::tests::unproven_defers_exactly_one_tick
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5139588Z         PASS [   0.012s] (2836/3325) spt-store roster::tests::offline_member_persists_through_silence_and_reload
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5199643Z         PASS [   0.014s] (2837/3325) spt-store roster::tests::self_lease_ceiling_is_the_max_of_our_own_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5229613Z         PASS [   0.016s] (2838/3325) spt-store roster::tests::roster_for_projects_one_subnets_slice
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5230690Z         PASS [   0.036s] (2839/3325) spt-store resume_custody::tests::recycled_pid_reads_not_ours_and_the_record_is_deleted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5231790Z         PASS [   0.012s] (2840/3325) spt-store roster::tests::serde_additive_and_degrades_to_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5241189Z         PASS [   0.008s] (2841/3325) spt-store roster::tests::tombstones_are_scoped_and_merge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5242193Z         PASS [   0.007s] (2842/3325) spt-store rotation::tests::persists_and_degrades_to_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5279740Z         PASS [   0.011s] (2843/3325) spt-store rotation::tests::due_subnets_respects_deadline_and_force_is_immediate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5309755Z         PASS [   0.049s] (2844/3325) spt-store resume_custody::tests::matching_pair_reads_ours_and_clear_removes_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5339748Z         PASS [   0.019s] (2845/3325) spt-store roster::tests::tombstone_dominates_suppresses_reinsert_and_clears
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5349732Z         PASS [   0.013s] (2846/3325) spt-store rotation::tests::coalesce_unions_revokees_and_keeps_earliest_deadline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5379568Z         PASS [   0.018s] (2847/3325) spt-store roster::tests::upsert_self_overwrites_unconditionally
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5409778Z         PASS [   0.016s] (2848/3325) spt-store rotation::tests::park_admin_requires_entry_never_overwrites_and_round_trips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5439468Z         PASS [   0.018s] (2849/3325) spt-store rotation::tests::coalesce_is_per_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5469530Z         PASS [   0.009s] (2850/3325) spt-store seal::tests::fido2_signing_payload_spelling_is_pinned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5499560Z         PASS [   0.009s] (2851/3325) spt-store seal::tests::join_is_insert_if_absent_with_collision_dropped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5529562Z         PASS [   0.014s] (2852/3325) spt-store seal::tests::absent_and_corrupt_stores_load_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5559587Z         PASS [   0.012s] (2853/3325) spt-store seal::tests::mint_refuses_empty_content_and_partial_minters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5579637Z         PASS [   0.016s] (2854/3325) spt-store seal::tests::fido2_mint_records_signature_and_plain_mints_stay_bare
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5609555Z         PASS [   0.010s] (2855/3325) spt-store seal::tests::unparseable_minter_yields_no_binding_subnet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5639518Z         PASS [   0.020s] (2856/3325) spt-store seal::tests::mint_binds_content_and_persists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5669580Z         PASS [   0.008s] (2857/3325) spt-store seed::tests::seed_round_trips_through_json
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5679466Z         PASS [   0.013s] (2858/3325) spt-store seal::tests::well_formedness_bounds_length_and_charset
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5709379Z         PASS [   0.013s] (2859/3325) spt-store seed::tests::absent_cwd_is_omitted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5739479Z         PASS [   0.013s] (2860/3325) spt-store serving::tests::a_directory_is_not_an_attachment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5769728Z         PASS [   0.009s] (2861/3325) spt-store serving::tests::a_docs_dir_that_leaves_the_adapter_directory_is_refused_by_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5789853Z         PASS [   0.014s] (2862/3325) spt-store serving::tests::a_docs_dir_resolving_outside_the_adapter_directory_is_refused_at_resolve
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5819731Z         PASS [   0.011s] (2863/3325) spt-store serving::tests::a_ttl_needs_a_unit_and_the_default_is_thirty_days
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5820647Z         PASS [   0.011s] (2864/3325) spt-store serving::tests::allocation_is_node_local
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5821528Z         PASS [   0.027s] (2865/3325) spt-store serving::tests::a_changed_kind_cannot_reclaim_a_paths_prior_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5822547Z         PASS [   0.016s] (2866/3325) spt-store serving::tests::an_attachment_serves_the_bytes_as_they_were_at_send_time
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5823663Z         PASS [   0.015s] (2867/3325) spt-store serving::tests::dotfiles_extensionless_names_and_directories_keep_reference_paths
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5824895Z         PASS [   0.025s] (2868/3325) spt-store serving::tests::adapter_cannot_claim_an_explicit_registration_or_escape_its_aux_directory
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5826044Z         PASS [   0.023s] (2869/3325) spt-store serving::tests::adapter_alias_disambiguates_once_and_survives_reactivation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5827155Z         PASS [   0.009s] (2870/3325) spt-store serving::tests::expiry_counts_from_registration_and_a_backwards_clock_reaps_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5828350Z         PASS [   0.050s] (2871/3325) spt-store seal::tests::minted_tokens_are_well_formed_over_the_charset
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5859815Z         PASS [   0.023s] (2872/3325) spt-store serving::tests::corrupt_or_unsupported_store_cannot_reset_names
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5889806Z         PASS [   0.010s] (2873/3325) spt-store serving::tests::reserved_aliases_fail_before_allocation_and_without_alias_facet_still_exists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5919768Z         PASS [   0.014s] (2874/3325) spt-store serving::tests::first_bare_then_suffix_before_final_extension_per_family
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5947280Z         PASS [   0.011s] (2875/3325) spt-store serving::tests::resource_url_encodes_each_segment_and_lowercases_node
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.5980030Z         PASS [   0.018s] (2876/3325) spt-store serving::tests::explicit_names_and_source_names_share_one_allocator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6019939Z         PASS [   0.026s] (2877/3325) spt-store serving::tests::explicit_and_generated_names_cannot_reuse_each_others_history
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6049786Z         PASS [   0.021s] (2878/3325) spt-store serving::tests::lifetime_and_audience_survive_storage_for_every_entry_kind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6079747Z         PASS [   0.016s] (2879/3325) spt-store serving::tests::retired_names_remain_not_found_after_restart_and_new_registration
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6080937Z         PASS [   0.023s] (2880/3325) spt-store serving::tests::persisted_assignment_retains_identity_and_next_suffix
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6082295Z         PASS [   0.011s] (2881/3325) spt-store serving::tests::two_sends_of_one_name_get_distinct_stable_urls
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6119822Z         PASS [   0.016s] (2882/3325) spt-store serving::tests::same_absolute_path_preserves_entry_even_after_source_disappears
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6169877Z         PASS [   0.008s] (2883/3325) spt-store sessions::tests::adapter_field_roundtrips_and_survives_append
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6199669Z         PASS [   0.011s] (2884/3325) spt-store serving::tests::unreadable_store_is_not_absence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6210097Z         PASS [   0.011s] (2885/3325) spt-store serving::tests::unsafe_names_and_relative_paths_do_not_consume_assignments
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6257919Z         PASS [   0.021s] (2886/3325) spt-store serving::tests::scoping_an_entry_keeps_it_a_reference_and_records_ttl_audience_and_origin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6270191Z         PASS [   0.008s] (2887/3325) spt-store sessions::tests::none_cwd_emits_no_field_and_roundtrips
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6299746Z         PASS [   0.008s] (2888/3325) spt-store sessions::tests::pre_migration_row_without_adapter_deserializes_as_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6349666Z         PASS [   0.012s] (2889/3325) spt-store sessions::tests::appends_and_reads_in_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6359752Z         PASS [   0.029s] (2890/3325) spt-store serving::tests::retired_names_return_only_to_their_prior_paths_without_rewinding_suffixes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6409757Z         PASS [   0.017s] (2891/3325) spt-store sessions::tests::pre_migration_row_without_cwd_deserializes_as_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6439601Z         PASS [   0.010s] (2892/3325) spt-store sessions::tests::tolerant_of_garbage_lines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6469510Z         PASS [   0.014s] (2893/3325) spt-store sessions::tests::row_with_cwd_appends_and_reads_back
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6499512Z         PASS [   0.031s] (2894/3325) spt-store sessions::tests::append_stamps_monotonic_ordinals
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6529477Z         PASS [   0.017s] (2895/3325) spt-store sessions::tests::same_session_rebind_is_deduped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6559545Z         PASS [   0.020s] (2896/3325) spt-store sessions::tests::pre_migration_rows_backfill_to_index_on_append
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6589569Z         PASS [   0.013s] (2897/3325) spt-store shellinfo::tests::composite_option_mints_colon_free_id_and_carries_the_composite
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6619444Z         PASS [   0.016s] (2898/3325) spt-store shellinfo::tests::alias_unique_rename_and_resolution
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6649505Z         PASS [   0.014s] (2899/3325) spt-store shellinfo::tests::mint_smallest_free_and_teardown_frees
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6679505Z         PASS [   0.015s] (2900/3325) spt-store shellinfo::tests::derivation_never_promotes_offline_to_online
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6700119Z         PASS [   0.017s] (2901/3325) spt-store shellinfo::tests::shellinfo_roundtrip_and_corrupt_tolerance
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6709611Z         PASS [   0.038s] (2902/3325) spt-store shellinfo::tests::a_live_pid_with_its_own_birth_stamp_is_held
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6710675Z         PASS [   0.061s] (2903/3325) spt-store sessions::tests::prune_does_not_renumber_surviving_ordinals
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6731270Z         PASS [   0.072s] (2904/3325) spt-store sessions::tests::last_k_and_bounding
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6737873Z         PASS [   0.054s] (2905/3325) spt-store shellinfo::tests::a_live_pid_with_a_foreign_birth_stamp_reads_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.6847293Z         PASS [   0.047s] (2906/3325) spt-store shellinfo::tests::online_derives_offline_only_for_a_provably_dead_pid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.7818785Z         PASS [   0.138s] (2907/3325) spt-store spool::tests::a_sweep_with_nothing_to_drop_reports_zero
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.8191010Z         PASS [  10.945s] (2908/3325) spt-daemon::psyche_real_bound_kill_soft_budget_e2e real_bound_kill_spends_the_soft_budget_and_never_the_hard_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.8255205Z         PASS [   0.182s] (2909/3325) spt-store spool::tests::a_spooled_envelope_is_readable_back_by_its_short_id
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.8526346Z         PASS [   0.182s] (2910/3325) spt-store spool::tests::claim_idle_edge_audited_stamps_idle_inject_leg
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.9486915Z         PASS [   0.263s] (2911/3325) spt-store spool::tests::deferred_row_survives_event_drain_then_hook_delivers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:11.9625669Z         PASS [   0.289s] (2912/3325) spt-store spool::tests::deferred_mirrors_active_only_window_across_all_three
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.0931092Z         PASS [  11.163s] (2913/3325) spt-daemon::pump pump_w2_live_peer_advertised_amid_dead_peers_no_restart
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.0996017Z         PASS [   0.318s] (2914/3325) spt-store spool::tests::drain_marks_delivered_and_is_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.1571744Z         PASS [   0.484s] (2915/3325) spt-store spool::tests::concurrent_take_yields_exactly_one_winner
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.1814320Z         PASS [   0.524s] (2916/3325) spt-store spool::tests::active_window_drain_suppresses_idle_only_and_honors_include_deferred
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.2188392Z         PASS [   0.558s] (2917/3325) spt-store spool::tests::audited_take_records_taker_provenance_unaudited_leaves_null
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.2712571Z         PASS [   0.451s] (2918/3325) spt-store spool::tests::drain_take_ack_is_double_deliver_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.2721406Z         PASS [   0.931s] (2919/3325) spt-store registry::tests::concurrent_registration_never_locks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.3381763Z         PASS [   0.513s] (2920/3325) spt-store spool::tests::evaporate_drops_only_ephemeral_non_deferred_undelivered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.3806440Z         PASS [   1.075s] (2921/3325) spt-daemon broker::tests::a_refused_bring_up_starts_nothing_mints_nothing_and_answers_typed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.3923135Z         PASS [   3.066s] (2922/3325) spt-store enroll::tests::backend_signature_verifies_dispatches_and_refuses_distinctly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.3936896Z         PASS [   0.013s] (2923/3325) spt-daemon broker::tests::a_resume_at_the_floor_keeps_the_raw_ring_replay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4062395Z         PASS [   0.012s] (2924/3325) spt-daemon broker::tests::a_resumed_controller_never_rereceives_a_suppressed_seq
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4284666Z         PASS [   0.480s] (2925/3325) spt-store spool::tests::idle_edge_claims_never_take_a_deferred_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4351070Z         PASS [   0.006s] (2926/3325) spt-store subnet::tests::a_record_written_before_sightings_still_loads
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4418455Z         PASS [   0.007s] (2927/3325) spt-store subnet::tests::a_sighting_is_recorded_replaced_and_adopted_but_never_queued
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4482178Z         PASS [   0.006s] (2928/3325) spt-store subnet::tests::add_joined_preserves_seed_epoch_and_captures_the_two_key_material
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4549021Z         PASS [   0.007s] (2929/3325) spt-store subnet::tests::adopt_admin_rotation_takes_current_or_newer_and_never_downgrades
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4591590Z         PASS [   0.240s] (2930/3325) spt-store spool::tests::sentinel_create_fail_warns_once_nonfatal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4617447Z         PASS [   0.007s] (2931/3325) spt-store subnet::tests::adopt_rotation_takes_newer_seed_and_is_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4639916Z         PASS [   0.283s] (2932/3325) spt-store spool::tests::reopen_is_idempotent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4649872Z         PASS [   0.006s] (2933/3325) spt-store subnet::tests::colon_names_are_refused_at_create_and_join
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4688839Z         PASS [   0.007s] (2934/3325) spt-store subnet::tests::create_mints_both_keys_and_records_the_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4705714Z         PASS [   0.006s] (2935/3325) spt-store subnet::tests::create_subnet_starts_at_epoch_one_unique_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4713102Z         PASS [   0.006s] (2936/3325) spt-store subnet::tests::debug_redacts_the_admin_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4749279Z         PASS [   0.006s] (2937/3325) spt-store subnet::tests::hex_round_trips_and_rejects_bad_input
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4773543Z         PASS [   0.007s] (2938/3325) spt-store subnet::tests::hide_new_endpoints_defaults_off_and_persists
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4786476Z         PASS [   0.007s] (2939/3325) spt-store subnet::tests::minted_seeds_are_random
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4812693Z         PASS [   0.006s] (2940/3325) spt-store subnet::tests::missing_or_corrupt_file_is_empty_store
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4838050Z         PASS [   0.006s] (2941/3325) spt-store subnet::tests::no_prior_generation_before_rotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4848857Z         PASS [   0.006s] (2942/3325) spt-store subnet::tests::pre_two_key_record_loads_without_admin_seed_or_mode
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4878329Z         PASS [   0.007s] (2943/3325) spt-store subnet::tests::remove_drops_membership
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4884686Z         PASS [   0.218s] (2944/3325) spt-store spool::tests::spool_touches_has_messages_sentinel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4905929Z         PASS [   0.007s] (2945/3325) spt-store subnet::tests::rotate_bumps_epoch_and_changes_seed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4936784Z         PASS [   0.009s] (2946/3325) spt-store subnet::tests::rotation_rotates_admin_seed_with_no_grace_and_one_epoch_bump
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4947106Z         PASS [   0.007s] (2947/3325) spt-store subnet::tests::rotation_without_parked_admin_degrades_to_member_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.4960738Z         PASS [   0.008s] (2948/3325) spt-store subnet::tests::store_persists_multi_subnet_and_rotation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5063357Z         PASS [   0.413s] (2949/3325) spt-store spool::tests::non_deferred_drain_skips_deferred_and_preserves_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5243423Z         PASS [   0.186s] (2950/3325) spt-store spool::tests::wan_mark_seen_claims_once_and_blocks_spool_path
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5287591Z         PASS [   0.566s] (2951/3325) spt-store spool::tests::no_binary_idle_drain_spools_not_pty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5412958Z         PASS [   0.384s] (2952/3325) spt-store spool::tests::release_clears_taker_audit_then_retake_restamps
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5474580Z         PASS [   0.006s] (2953/3325) spt-store timefmt::tests::formats_known_instants
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5533639Z         PASS [   0.006s] (2954/3325) spt-store timefmt::tests::lexical_order_matches_chronological_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5551824Z         PASS [   0.049s] (2955/3325) spt-store syncmerge::tests::non_context_branch_refused
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5595620Z         PASS [   0.006s] (2956/3325) spt-store trustwarn::tests::a_blank_or_oversized_override_is_refused_at_write_time
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5596747Z         PASS [   0.707s] (2957/3325) spt-store spool::tests::event_part_body_persists_byte_exact
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5614808Z         PASS [   0.006s] (2958/3325) spt-store trustwarn::tests::a_marker_that_cannot_be_written_leaves_the_warning_owed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5661667Z         PASS [   0.006s] (2959/3325) spt-store trustwarn::tests::a_new_session_owes_the_warning_again
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5662896Z         PASS [   0.007s] (2960/3325) spt-store trustwarn::tests::a_named_peer_and_an_unnamed_sender_never_quiet_each_other
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5676331Z         PASS [   0.006s] (2961/3325) spt-store trustwarn::tests::a_peer_that_cannot_be_a_path_component_claims_nothing_and_warns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5725700Z         PASS [   0.006s] (2962/3325) spt-store trustwarn::tests::a_traversal_endpoint_id_is_refused_reading_and_writing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5728507Z         PASS [   0.007s] (2963/3325) spt-store trustwarn::tests::a_stored_override_replaces_the_advisory_and_a_reset_restores_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5740159Z         PASS [   0.006s] (2964/3325) spt-store trustwarn::tests::a_warning_about_one_peer_leaves_another_peers_warning_owed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5794506Z         PASS [   0.007s] (2965/3325) spt-store trustwarn::tests::an_override_belongs_to_one_endpoint_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5796786Z         PASS [   0.007s] (2966/3325) spt-store trustwarn::tests::an_override_replaces_the_advice_but_never_the_identity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5805213Z         PASS [   0.006s] (2967/3325) spt-store trustwarn::tests::an_unnamed_sender_dedups_within_a_session_and_re_warns_in_the_next
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5865664Z         PASS [   0.006s] (2968/3325) spt-store trustwarn::tests::an_unnamed_sender_is_warned_about_without_a_command_that_cannot_work
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5867420Z         PASS [   0.006s] (2969/3325) spt-store trustwarn::tests::an_unreadable_marker_leaves_the_warning_owed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5870703Z         PASS [   0.006s] (2970/3325) spt-store trustwarn::tests::an_unreadable_override_falls_back_to_the_default_advisory
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5922390Z         PASS [   0.007s] (2971/3325) spt-store trustwarn::tests::one_peer_in_one_session_is_warned_about_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5923798Z         PASS [   0.007s] (2972/3325) spt-store trustwarn::tests::the_default_warning_names_the_peer_the_risks_and_the_way_out
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5928833Z         PASS [   0.006s] (2973/3325) spt-store trustwarn::tests::the_scope_notice_states_what_an_override_cannot_reach
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5985139Z         PASS [   0.006s] (2974/3325) spt-store visibility::tests::hidden_is_or_of_defaults
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5986077Z         PASS [   0.006s] (2975/3325) spt-store visibility::tests::hidden_gates_sync_even_when_listed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.5989190Z         PASS [   0.006s] (2976/3325) spt-store visibility::tests::override_wins_both_directions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6045294Z         PASS [   0.005s] (2977/3325) spt-store worker_reap::tests::clamp_ttl_floors_fat_finger_but_allows_disable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6046509Z         PASS [   0.006s] (2978/3325) spt-store visibility::tests::synced_requires_membership_listing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6052588Z         PASS [   0.007s] (2979/3325) spt-store visibility::tests::store_persists_and_degrades_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6148159Z         PASS [   0.222s] (2980/3325) spt-store spool::tests::wan_spool_dedups_on_op_id_across_reopen
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6256949Z         PASS [   0.021s] (2981/3325) spt-store worker_reap::tests::never_touches_a_psyche
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6486157Z         PASS [   0.549s] (2982/3325) spt-store spool::tests::poll_taken_row_never_idle_injected_but_untaken_row_still_claimable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.6778839Z         PASS [   0.406s] (2983/3325) spt-store spool::tests::the_sweep_drops_one_authors_undelivered_rows_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7059207Z         PASS [   0.028s] (2984/3325) spt-store worker_seq::tests::counter_survives_reap_no_reuse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7240270Z         PASS [   0.318s] (2985/3325) spt-daemon broker::tests::a_second_seat_on_the_same_session_enqueues_no_second_briefing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7317735Z         PASS [   0.008s] (2986/3325) spt-daemon broker::tests::a_second_transition_is_refused_while_one_is_in_flight
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7392761Z         PASS [   0.007s] (2987/3325) spt-daemon broker::tests::a_shrink_parses_held_output_at_the_geometry_it_was_emitted_under
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7468661Z         PASS [   0.007s] (2988/3325) spt-daemon broker::tests::a_stale_guards_drop_does_not_release_its_successors_claim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7484018Z         PASS [   0.042s] (2989/3325) spt-store worker_seq::tests::mints_monotonic_per_parent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7539243Z         PASS [   0.005s] (2990/3325) spt-store wtlock::tests::case_variant_spellings_resolve_to_one_sentinel
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.7565031Z         PASS [   0.010s] (2991/3325) spt-daemon broker::tests::a_started_bring_up_is_recorded_before_its_row_and_gone_after_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.8442388Z         PASS [   0.196s] (2992/3325) spt-store worker_seq::tests::concurrent_mints_never_collide
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.8806744Z         PASS [   0.127s] (2993/3325) spt-store wtlock::tests::distinct_worktrees_are_independent_and_the_same_one_is_non_reentrant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9092372Z         PASS [   0.304s] (2994/3325) spt-store worker_reap::tests::orphaned_respects_boot_race_grace
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9136645Z         PASS [   0.004s] (2995/3325) spt-store wtlock::tests::wait_bound_defaults_to_ten_seconds_and_reads_only_the_test_var
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9185354Z         PASS [   0.005s] (2996/3325) spt-store xfer::tests::progress_round_trips_per_role_and_updates_mid_flight
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9236343Z         PASS [   0.005s] (2997/3325) spt-store xfer::tests::xfer_id_is_filename_safe_and_distinct
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9481743Z         PASS [   0.333s] (2998/3325) spt-store worker_reap::tests::reap_preserves_wseq_so_next_mint_continues
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9528744Z         PASS [   0.005s] (2999/3325) spt-store::one_liveness_predicate spt_store_re_exports_the_predicate_rather_than_owning_a_second_copy
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9687473Z         PASS [   0.016s] (3000/3325) spt-store::one_liveness_predicate the_re_exported_predicate_still_answers_about_this_process
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9764842Z         PASS [   0.008s] (3001/3325) spt-store::pool_guard_canary the_build_script_is_wired_into_the_package
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9804606Z         PASS [   0.004s] (3002/3325) spt-store::pool_guard_canary the_canary_detects_a_directive_when_one_is_present
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:12.9844925Z         PASS [   0.004s] (3003/3325) spt-store::pool_guard_canary the_pool_guard_build_script_emits_no_rerun_directive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0061615Z         PASS [   0.125s] (3004/3325) spt-store wtlock::tests::timeout_error_names_sentinel_elapsed_and_bound
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0170055Z         PASS [   0.521s] (3005/3325) spt-store syncmerge::tests::legacy_bottom_vectors_surface_not_overwrite
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0230500Z         PASS [   0.006s] (3006/3325) spt-term digest::tests::config_defaults_are_the_presentation_formula
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0246724Z         PASS [   0.268s] (3007/3325) spt-daemon broker::tests::a_take_and_a_detach_each_drop_the_engine_rooms_empowerments
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0300332Z         PASS [   0.007s] (3008/3325) spt-term digest::tests::truncate_arg_cuts_to_width_with_ellipsis
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0347912Z         PASS [   0.005s] (3009/3325) spt-term projection::tests::a_post_seal_straggler_folds_in_without_moving_a_published_seq
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0388318Z         PASS [   0.004s] (3010/3325) spt-term projection::tests::a_sealed_sprint_grows_forward_only_keeping_the_turn_anchor_stable
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0431328Z         PASS [   0.004s] (3011/3325) spt-term projection::tests::agent_between_tools_breaks_the_sprint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0470919Z         PASS [   0.004s] (3012/3325) spt-term projection::tests::context_record_discriminator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0510453Z         PASS [   0.004s] (3013/3325) spt-term projection::tests::crux_committed_seqs_survive_a_turn_window_slide
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0550264Z         PASS [   0.004s] (3014/3325) spt-term projection::tests::diagnostics_clean_stream_has_no_drops
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0590907Z         PASS [   0.004s] (3015/3325) spt-term projection::tests::diagnostics_record_every_drop_with_reason
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0636343Z         PASS [   0.004s] (3016/3325) spt-term projection::tests::empty_input_projects_empty_digest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0667805Z         PASS [   0.462s] (3017/3325) spt-store worker_reap::tests::keeps_inflight_and_pending_reaps_drained
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0677043Z         PASS [   0.004s] (3018/3325) spt-term projection::tests::idle_on_an_empty_or_single_turn_timeline_invents_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0710679Z         PASS [   0.445s] (3019/3325) spt-store worker_reap::tests::ttl_overrides_live_ready_marker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0712295Z         PASS [   0.004s] (3020/3325) spt-term projection::tests::idle_seals_the_trailing_turn_while_busy_leaves_it_partial
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0717005Z         PASS [   0.004s] (3021/3325) spt-term projection::tests::leading_output_without_input_is_a_preamble_turn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0751091Z         PASS [   0.004s] (3022/3325) spt-term projection::tests::partial_trailing_turn_has_no_seqs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0752337Z         PASS [   0.004s] (3023/3325) spt-term projection::tests::malformed_unknown_role_and_toolless_tool_are_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0756896Z         PASS [   0.004s] (3024/3325) spt-term projection::tests::projects_input_agent_and_collapses_tool_sprints
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0793714Z         PASS [   0.004s] (3025/3325) spt-term projection::tests::sealing_survives_a_window_slide
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0794992Z         PASS [   0.004s] (3026/3325) spt-term projection::tests::re_projecting_a_sealed_idle_timeline_is_identical
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0803139Z         PASS [   0.004s] (3027/3325) spt-term projection::tests::seq_encoding_total_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0839377Z         PASS [   0.004s] (3028/3325) spt-term projection::tests::sprint_collapse_off_keeps_tools_separate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0840740Z         PASS [   0.004s] (3029/3325) spt-term projection::tests::the_sealed_seq_equals_what_the_next_input_fallback_would_assign
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0851053Z         PASS [   0.005s] (3030/3325) spt-term projection::tests::timeline_boundary_divider_and_window_bridge
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0881641Z         PASS [   0.004s] (3031/3325) spt-term projection::tests::tool_sprint_seq_is_last_collapsed_record
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0885735Z         PASS [   0.005s] (3032/3325) spt-term projection::tests::timeline_folds_context_into_a_turn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0895598Z         PASS [   0.004s] (3033/3325) spt-term projection::tests::truncates_tool_args_to_width
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0925411Z         PASS [   0.004s] (3034/3325) spt-term projection::tests::ts_ordering_key_parses_and_is_optional
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0929434Z         PASS [   0.004s] (3035/3325) spt-term projection::tests::unknown_fields_are_tolerated
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0940042Z         PASS [   0.603s] (3036/3325) spt-store syncmerge::tests::adopt_then_incremental_then_idempotent_repull
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0944721Z         PASS [   0.005s] (3037/3325) spt-term projection::tests::window_input_turns_bridges_and_trims
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0977856Z         PASS [   0.005s] (3038/3325) spt-term projection::tests::windows_to_last_n_turns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0980155Z         PASS [   0.005s] (3039/3325) spt-term reader::tests::auto_answers_synthetic_dsr_query
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0986769Z         PASS [   0.004s] (3040/3325) spt-term reader::tests::dsr_splitter_finds_and_strips_query_across_chunk_boundary
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.0991980Z         PASS [   0.005s] (3041/3325) spt-term reader::tests::cursor_provider_yields_accurate_display_column_cpr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1022519Z         PASS [   0.004s] (3042/3325) spt-term reader::tests::query_free_chunk_reaches_the_sink_as_one_segment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1037044Z         PASS [   0.005s] (3043/3325) spt-term screen::tests::a_sequence_split_across_captured_advances_defers_whole
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1050349Z         PASS [   0.006s] (3044/3325) spt-term screen::tests::alt_screen_repaint_excludes_main_scrollback
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1070158Z         PASS [   0.005s] (3045/3325) spt-term screen::tests::capture_consumes_tracked_state_instead_of_deferring_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1079118Z         PASS [   0.010s] (3046/3325) spt-term reader::tests::no_dsr_means_no_answer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1090735Z         PASS [   0.005s] (3047/3325) spt-term screen::tests::capture_defers_osc_color_with_original_terminator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1094438Z         PASS [   0.004s] (3048/3325) spt-term screen::tests::capture_defers_untracked_stateful_one_shots_and_queries_in_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1115800Z         PASS [   0.004s] (3049/3325) spt-term screen::tests::capture_drops_hyperlinks_dcs_and_dsr
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1146724Z         PASS [   0.006s] (3050/3325) spt-term screen::tests::combining_mark_attaches_without_advancing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1147614Z         PASS [   0.005s] (3051/3325) spt-term screen::tests::cursor_visibility_hidden_emitted
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1148420Z         PASS [   0.005s] (3052/3325) spt-term screen::tests::cursor_position_reports_display_columns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1168466Z         PASS [   0.005s] (3053/3325) spt-term screen::tests::dch_ich_heal_wide_pairs_at_the_boundaries
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1191575Z         PASS [   0.005s] (3054/3325) spt-term screen::tests::empty_grid_repaint_is_clean
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1196447Z         PASS [   0.005s] (3055/3325) spt-term screen::tests::erase_display_clears_screen
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1197203Z         PASS [   0.005s] (3056/3325) spt-term screen::tests::erase_across_a_wide_half_leaves_no_orphan
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1218891Z         PASS [   0.005s] (3057/3325) spt-term screen::tests::leaving_alt_restores_main_screen
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1237241Z         PASS [   0.004s] (3058/3325) spt-term screen::tests::plain_advance_never_captures
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1246327Z         PASS [   0.005s] (3059/3325) spt-term screen::tests::overwriting_either_half_clears_the_whole_wide_glyph
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1247052Z         PASS [   0.005s] (3060/3325) spt-term screen::tests::main_screen_repaint_paints_text_no_alt_enter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1267399Z         PASS [   0.005s] (3061/3325) spt-term screen::tests::repaint_emits_display_width_not_scalar_count_per_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1295746Z         PASS [   0.005s] (3062/3325) spt-term screen::tests::repaint_then_raw_scroll_matches_the_server_grid
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1297151Z         PASS [   0.005s] (3063/3325) spt-term screen::tests::resize_preserves_content
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1299490Z         PASS [   0.006s] (3064/3325) spt-term screen::tests::repaint_replays_tracked_decstbm_before_cursor_placement
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1322155Z         PASS [   0.005s] (3065/3325) spt-term screen::tests::resize_preserves_title
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1340814Z         PASS [   0.004s] (3066/3325) spt-term screen::tests::ris_mid_capture_keeps_the_deferred_tail
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1347065Z         PASS [   0.005s] (3067/3325) spt-term screen::tests::resize_through_a_wide_pair_heals_the_cut_lead
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1356953Z         PASS [   0.006s] (3068/3325) spt-term screen::tests::ris_clears_title_and_untitled_emits_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1372857Z         PASS [   0.005s] (3069/3325) spt-term screen::tests::sgr_pen_reconstructed_in_repaint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1397573Z         PASS [   0.005s] (3070/3325) spt-term screen::tests::wide_glyph_advances_two_display_columns
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1402361Z         PASS [   0.006s] (3071/3325) spt-term screen::tests::title_captured_and_replayed_in_repaint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1404223Z         PASS [   0.005s] (3072/3325) spt-term screen::tests::wide_glyph_wraps_whole_at_right_margin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1420538Z         PASS [   0.005s] (3073/3325) spt-term winprog::tests::bare_name_prefers_cmd_over_extensionless_shim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1443285Z         PASS [   0.004s] (3074/3325) spt-term winprog::tests::earlier_path_dir_wins
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1446047Z         PASS [   0.005s] (3075/3325) spt-term winprog::tests::bare_name_prefers_exe_and_spawns_direct
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1453845Z         PASS [   0.005s] (3076/3325) spt-term winprog::tests::explicit_extension_is_classified_in_place
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1467376Z         PASS [   0.005s] (3077/3325) spt-term winprog::tests::unresolvable_passes_through
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1531400Z         PASS [   0.006s] (3078/3325) xtask::bench_row_parity the_local_ledger_directory_is_gitignored
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1539937Z         PASS [   0.010s] (3079/3325) spt-test-support tests::scoped_home_cleans_without_overriding_the_outer_temp_sandbox
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1568026Z         PASS [   0.011s] (3080/3325) xtask::bench_row_parity every_ci_ledger_writer_emits_exactly_the_declared_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1569379Z         PASS [   0.004s] (3081/3325) xtask::bench_row_parity the_parity_check_notices_a_missing_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1661227Z         PASS [   0.009s] (3082/3325) xtask::bin/xtask asset_map_tests::asset_target_triple_resolves_musl_from_registry
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1697470Z         PASS [   0.013s] (3083/3325) xtask::bin/xtask adapter_docs_schema_tests::checked_in_schema_publishes_docs_dir_without_internal_codes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1705964Z         PASS [   0.004s] (3084/3325) xtask::bin/xtask bench::tests::a_corrupt_line_is_skipped_rather_than_fatal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1740465Z         PASS [   0.004s] (3085/3325) xtask::bin/xtask bench::tests::a_failed_row_is_excluded_from_the_aggregate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1749062Z         PASS [   0.004s] (3086/3325) xtask::bin/xtask bench::tests::a_row_predating_the_ok_field_reads_as_success
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1784432Z         PASS [   0.004s] (3087/3325) xtask::bin/xtask bench::tests::a_row_round_trips_including_a_step_name_with_quotes_and_backslashes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1792011Z         PASS [   0.004s] (3088/3325) xtask::bin/xtask bench::tests::an_empty_ledger_says_so_instead_of_rendering_empty_headings
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1833537Z         PASS [   0.005s] (3089/3325) xtask::bin/xtask bench::tests::distinct_keys_alone_never_produce_a_repeat_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1841028Z         PASS [   0.005s] (3090/3325) xtask::bin/xtask bench::tests::repeated_work_is_counted_per_input_key_never_per_run
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1879872Z         PASS [   0.005s] (3091/3325) xtask::bin/xtask bench::tests::the_emitted_json_carries_exactly_the_declared_fields
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1894638Z         PASS [   0.005s] (3092/3325) xtask::bin/xtask bench::tests::the_report_names_the_slowest_step_and_flags_only_real_repeats
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1920089Z         PASS [   0.038s] (3093/3325) xtask::pool_claim verb_refuses_accidental_crossing_but_admits_the_explicit_remedy_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1927883Z         PASS [   0.005s] (3094/3325) xtask::bin/xtask binedge::tests::baseline_reds_only_on_a_new_entry_and_reports_burn_down
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1944903Z         PASS [   0.005s] (3095/3325) xtask::bin/xtask binedge::tests::derived_fix_round_trips_through_the_prebuild_detector
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1971789Z         PASS [   0.005s] (3096/3325) xtask::bin/xtask binedge::tests::false_positive_arm_refuses_when_it_has_gone_blind
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1977914Z         PASS [   0.005s] (3097/3325) xtask::bin/xtask binedge::tests::guarantee_is_same_package_integration_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.1991606Z         PASS [   0.005s] (3098/3325) xtask::bin/xtask binedge::tests::kind_of_reads_the_path_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2007184Z         PASS [   0.056s] (3099/3325) xtask::bench_row_parity both_ci_wraps_propagate_the_wrapped_commands_exit_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2021818Z         PASS [   0.004s] (3100/3325) xtask::bin/xtask binedge::tests::owning_pkg_takes_the_nearest_manifest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2025085Z         PASS [   0.005s] (3101/3325) xtask::bin/xtask binedge::tests::line_comments_are_prose_and_line_numbers_survive_them
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2032110Z         PASS [   0.679s] (3102/3325) spt-store syncmerge::tests::project_branch_unions_disjoint_agents
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2037831Z         PASS [   0.005s] (3103/3325) xtask::bin/xtask binedge::tests::prebuild_detection_needs_the_single_bin_build_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2061273Z         PASS [   0.005s] (3104/3325) xtask::bin/xtask binedge::tests::scan_finds_all_four_syntaxes_with_true_line_numbers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2069492Z         PASS [   0.005s] (3105/3325) xtask::bin/xtask binedge::tests::scan_rejects_near_misses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2073368Z         PASS [   0.004s] (3106/3325) xtask::bin/xtask binnames::tests::an_invented_collision_is_reported_with_both_packages
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2076640Z         PASS [   0.005s] (3107/3325) xtask::bin/xtask binnames::tests::a_repeated_pair_from_one_package_is_not_a_cross_package_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2083748Z         PASS [   0.005s] (3108/3325) xtask::bin/xtask binnames::tests::the_named_counterparts_are_distinct_and_not_a_collision
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2126479Z         PASS [   0.006s] (3109/3325) xtask::bin/xtask changelog_page_tests::changelog_is_linked_from_real_book_and_agent_indexes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2127657Z         PASS [   0.005s] (3110/3325) xtask::bin/xtask changelog_page_tests::non_comment_lines_preserve_bytes_and_order
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2128737Z         PASS [   0.005s] (3111/3325) xtask::bin/xtask changelog_page_tests::stale_changelog_check_names_page_then_gen_clears_drift
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2135981Z         PASS [   0.005s] (3112/3325) xtask::bin/xtask changelog_page_tests::traceability_comments_are_stripped_and_changelog_is_scanned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2170726Z         PASS [   0.004s] (3113/3325) xtask::bin/xtask converge_tests::converge_table_renders_rows_and_success_predicate
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2172192Z         PASS [   0.004s] (3114/3325) xtask::bin/xtask cli_reference_tests::api_standin_injects_once_at_any_depth_and_only_for_the_root_verb
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2175140Z         PASS [   0.005s] (3115/3325) xtask::bin/xtask changelog_page_tests::visible_body_codes_remain_for_the_published_doc_gate_to_reject
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2187881Z         PASS [   0.005s] (3116/3325) xtask::bin/xtask debug_rollout_meta_tests::defaults_reproduce_the_counter_only_debug_shape
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2218229Z         PASS [   0.005s] (3117/3325) xtask::bin/xtask diskfloor::tests::a_zero_floor_is_print_only_and_never_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2219899Z         PASS [   0.005s] (3118/3325) xtask::bin/xtask debug_rollout_meta_tests::stamps_channel_and_product_version_verbatim
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2223962Z         PASS [   0.005s] (3119/3325) xtask::bin/xtask diskfloor::tests::the_drive_is_spelled_the_way_the_golden_runner_spells_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2235708Z         PASS [   0.005s] (3120/3325) xtask::bin/xtask diskfloor::tests::the_floor_refuses_below_and_admits_at_or_above
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2263599Z         PASS [   0.004s] (3121/3325) xtask::bin/xtask diskfloor::tests::the_reader_returns_a_real_reading_for_a_real_directory
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2264623Z         PASS [   0.004s] (3122/3325) xtask::bin/xtask docs_token_gate_tests::clean_help_text_passes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2269088Z         PASS [   0.005s] (3123/3325) xtask::bin/xtask diskfloor::tests::the_line_carries_the_golden_runners_keys
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2278102Z         PASS [   0.004s] (3124/3325) xtask::bin/xtask docs_token_gate_tests::planted_internal_codes_are_flagged
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2317660Z         PASS [   0.005s] (3125/3325) xtask::bin/xtask heavy_class_tests::a_by_binary_filter_does_not_classify_a_lib_module
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2319124Z         PASS [   0.005s] (3126/3325) xtask::bin/xtask heavy_class_tests::a_module_inside_an_alternation_group_reads_as_classified
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2322350Z         PASS [   0.005s] (3127/3325) xtask::bin/xtask heavy_class_tests::only_a_broker_bound_inside_the_test_block_counts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2326974Z         PASS [   0.005s] (3128/3325) xtask::bin/xtask heavy_integration_tests::a_qualifying_binary_absent_from_the_string_is_what_this_detects
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2361535Z         PASS [   0.004s] (3129/3325) xtask::bin/xtask heavy_integration_tests::the_drift_panel_names_the_side_that_has_the_extra_member
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2362845Z         PASS [   0.004s] (3130/3325) xtask::bin/xtask heavy_integration_tests::the_expression_is_read_from_the_line_that_actually_carries_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2367725Z         PASS [   0.005s] (3131/3325) xtask::bin/xtask heavy_integration_tests::the_criterion_reads_a_real_daemon_or_brain_tree_through_any_formatting
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2369793Z         PASS [   0.004s] (3132/3325) xtask::bin/xtask llms_link_tests::stored_root_assets_must_really_exist
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2402680Z         PASS [   0.004s] (3133/3325) xtask::bin/xtask patch_pin_tests::a_moved_rev_disagrees_with_the_manifest
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2404732Z         PASS [   0.004s] (3134/3325) xtask::bin/xtask patch_pin_tests::a_deleted_patch_stanza_reads_as_unpinned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2415092Z         PASS [   0.004s] (3135/3325) xtask::bin/xtask patch_pin_tests::a_registry_resolution_reads_as_unpatched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2416942Z         PASS [   0.005s] (3136/3325) xtask::bin/xtask patch_pin_tests::a_prefix_named_crate_never_answers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2422546Z         PASS [   0.218s] (3137/3325) spt-daemon broker::tests::a_take_that_re_proves_the_admin_code_earns_the_same_grant
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2454360Z         PASS [   0.005s] (3138/3325) xtask::bin/xtask patch_pin_tests::a_rev_inside_a_url_never_answers_for_the_rev_field
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2455948Z         PASS [   0.005s] (3139/3325) xtask::bin/xtask patch_pin_tests::an_unused_patch_table_never_answers_for_the_graph
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2460880Z         PASS [   0.005s] (3140/3325) xtask::bin/xtask patch_pin_tests::manifest_pin_and_lock_resolution_agree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2500544Z         PASS [   0.004s] (3141/3325) xtask::bin/xtask perjob::tests::a_job_guarantees_by_prebuild_or_by_a_workspace_build
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2503059Z         PASS [   0.008s] (3142/3325) xtask::bin/xtask patch_pin_tests::the_shipped_workspace_satisfies_every_load_bearing_pin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2506703Z         PASS [   0.005s] (3143/3325) xtask::bin/xtask perjob::tests::block_and_inline_run_bodies_both_survive
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2512718Z         PASS [   0.005s] (3144/3325) xtask::bin/xtask perjob::tests::cargo_invocations_stop_at_a_shell_separator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2532296Z         PASS [   0.409s] (3145/3325) spt-store wtlock::tests::second_acquire_waits_for_the_holder_then_succeeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2549318Z         PASS [   0.005s] (3146/3325) xtask::bin/xtask perjob::tests::flag_values_needs_the_whole_flag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2559709Z         PASS [   0.005s] (3147/3325) xtask::bin/xtask perjob::tests::kind_filtered_workspace_runs_are_consumers_not_builders
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2561181Z         PASS [   0.005s] (3148/3325) xtask::bin/xtask perjob::tests::parser_refuses_rather_than_dropping_a_step
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2563219Z         PASS [   0.005s] (3149/3325) xtask::bin/xtask perjob::tests::script_prose_is_not_an_invocation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2588174Z         PASS [   0.006s] (3150/3325) xtask::bin/xtask phase_a_profile_tests::a_heavy_by_binary_override_needs_no_mirror
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2603674Z         PASS [   0.005s] (3151/3325) xtask::bin/xtask phase_a_profile_tests::a_mirrored_override_that_drifted_reads_as_missing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2608688Z         PASS [   0.005s] (3152/3325) xtask::bin/xtask phase_a_profile_tests::a_mirrored_phase_a_override_is_satisfied
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2612250Z         PASS [   0.005s] (3153/3325) xtask::bin/xtask phase_a_profile_tests::an_unmirrored_phase_a_override_is_reported
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2614801Z         PASS [   0.005s] (3154/3325) xtask::bin/xtask phase_a_profile_tests::the_checked_in_config_is_in_parity
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2645556Z         PASS [   0.006s] (3155/3325) xtask::bin/xtask pickaudit::tests::a_populated_report_never_claims_zero_picks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2654238Z         PASS [   0.005s] (3156/3325) xtask::bin/xtask pickaudit::tests::an_empty_range_says_zero_picks_is_not_a_pass
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2700975Z         PASS [   0.005s] (3157/3325) xtask::bin/xtask pickaudit::tests::changed_lines_keeps_the_edits_and_drops_the_file_headers
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2703447Z         PASS [   0.005s] (3158/3325) xtask::bin/xtask pickaudit::tests::count_and_digest_are_separate_verdicts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2749822Z         PASS [   0.005s] (3159/3325) xtask::bin/xtask pickaudit::tests::exit_code_fails_on_loss_and_on_unclassified_but_never_on_drift
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2753519Z         PASS [   0.005s] (3160/3325) xtask::bin/xtask pickaudit::tests::pairing_reports_no_match_and_ambiguity_rather_than_guessing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2801556Z         PASS [   0.005s] (3161/3325) xtask::bin/xtask pool_claim_tests::claim_refuses_a_pool_in_a_sibling_worktree
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2806095Z         PASS [   0.005s] (3162/3325) xtask::bin/xtask spacerun::tests::a_brace_inside_test_text_does_not_close_the_module_early
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2858228Z         PASS [   0.006s] (3163/3325) xtask::bin/xtask spacerun::tests::a_healthy_continuation_renders_with_one_space_and_is_not_a_finding
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2859520Z         PASS [   0.005s] (3164/3325) xtask::bin/xtask spacerun::tests::a_marked_line_is_exempt_and_an_unmarked_one_is_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2916777Z         PASS [   0.006s] (3165/3325) xtask::bin/xtask spacerun::tests::a_marked_multi_line_literal_is_walked_past_rather_than_re_entered
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2920828Z         PASS [   0.006s] (3166/3325) xtask::bin/xtask spacerun::tests::a_marker_counts_anywhere_in_the_comment_block_above
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2972340Z         PASS [   0.005s] (3167/3325) xtask::bin/xtask spacerun::tests::a_marker_on_the_line_above_exempts_a_continued_literal
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.2973721Z         PASS [   0.005s] (3168/3325) xtask::bin/xtask spacerun::tests::a_marker_without_a_reason_token_does_not_exempt
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3026871Z         PASS [   0.005s] (3169/3325) xtask::bin/xtask spacerun::tests::a_quote_inside_a_char_literal_opens_nothing_and_does_not_swallow_what_follows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3028504Z         PASS [   0.005s] (3170/3325) xtask::bin/xtask spacerun::tests::an_eaten_continuation_leaves_a_run_and_is_a_finding
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3081849Z         PASS [   0.005s] (3171/3325) xtask::bin/xtask spacerun::tests::an_unclosed_test_module_ends_the_scan
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3083971Z         PASS [   0.006s] (3172/3325) xtask::bin/xtask spacerun::tests::assertion_messages_are_out_of_scope
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3141940Z         PASS [   0.005s] (3173/3325) xtask::bin/xtask spacerun::tests::only_a_top_level_cfg_test_marker_ends_the_scan
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3143239Z         PASS [   0.005s] (3174/3325) xtask::bin/xtask spacerun::tests::leading_and_trailing_runs_are_not_interior
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3182089Z         PASS [   0.057s] (3175/3325) xtask::bin/xtask pickaudit::tests::audit_passes_a_same_count_different_line_pick_as_drift
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3183667Z         PASS [   0.057s] (3176/3325) xtask::bin/xtask pickaudit::tests::an_explicit_pair_audits_a_pick_whose_subject_was_reworded
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3186009Z         PASS [   0.005s] (3177/3325) xtask::bin/xtask spacerun::tests::raw_strings_are_skipped
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3189586Z         PASS [   0.005s] (3178/3325) xtask::bin/xtask spacerun::tests::production_code_after_a_test_module_is_scanned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3232586Z         PASS [   0.005s] (3179/3325) xtask::bin/xtask spacerun::tests::the_repaired_fork_sentence_is_refused_in_its_original_bytes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3233983Z         PASS [   0.005s] (3180/3325) xtask::bin/xtask spacerun::tests::text_after_the_cfg_test_marker_is_out_of_scope
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3238651Z         PASS [   0.005s] (3181/3325) xtask::bin/xtask spacerun::tests::the_two_forms_differ_by_one_backslash_and_the_gate_separates_them
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3240260Z         PASS [   0.005s] (3182/3325) xtask::bin/xtask spacerun::tests::two_spaces_are_prose_and_three_are_alignment
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3276337Z         PASS [   0.004s] (3183/3325) xtask::bin/xtask spt_bin_tests::target_debug_dir_honors_cargo_target_dir
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3349083Z         PASS [   0.074s] (3184/3325) xtask::bin/xtask pickaudit::tests::audit_names_a_dropped_line_a_faithful_pick_and_an_unpaired_commit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3382605Z         PASS [   0.132s] (3185/3325) xtask::bin/xtask binnames::tests::the_workspace_declares_no_duplicate_bin_names
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3906136Z         PASS [   0.896s] (3186/3325) spt-store syncmerge::tests::dominated_incoming_drops_but_joins_dag
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.3958710Z         PASS [   0.902s] (3187/3325) spt-store syncmerge::tests::concurrent_writes_surface_on_both_nodes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.4553680Z         PASS [   0.213s] (3188/3325) spt-daemon broker::tests::a_ticket_seated_controllers_same_conn_re_serve_keeps_its_seat
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.6264705Z         PASS [   0.620s] (3189/3325) spt-store::wtlock_two_process_int two_processes_commit_into_one_worktree_without_failing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:13.6564601Z         PASS [   1.128s] (3190/3325) spt-store syncmerge::tests::reconciled_write_propagates_and_clears_artifacts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.3550425Z         PASS [   1.431s] (3191/3325) spt-store::carrier_claim_int two_carriers_race_one_spool_every_row_delivered_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.3772149Z         PASS [  22.307s] (3192/3325) spt-daemon brainproc::tests::exe_hash_computed_exactly_once_across_n_publishes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.3903432Z         PASS [   0.935s] (3193/3325) spt-daemon broker::tests::a_valid_fido2_proof_admits_mints_a_signed_record_and_spends_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.6037184Z         PASS [   1.619s] (3194/3325) spt-store::wtlock_two_process_int an_acquire_waits_out_a_holder_in_another_process_then_succeeds
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.6756808Z         PASS [  22.415s] (3195/3325) spt-daemon brainproc::tests::the_ready_breadcrumb_tells_a_computed_hash_from_a_cached_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.8017199Z         PASS [   0.411s] (3196/3325) spt-daemon broker::tests::a_viewer_below_the_floor_gets_the_repaint_and_skip_to_live_stays_empty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.8112774Z         PASS [   0.010s] (3197/3325) spt-daemon broker::tests::advance_delivered_is_monotonic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:14.8220154Z         PASS [   0.011s] (3198/3325) spt-daemon broker::tests::an_aborted_transition_syncs_at_the_old_geometry_with_no_size_frame
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.1087737Z         PASS [   0.287s] (3199/3325) spt-daemon broker::tests::an_admin_bringup_empowers_the_home_subnet_and_a_member_bringup_empowers_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.3503422Z         PASS [   0.241s] (3200/3325) spt-daemon broker::tests::an_admitted_bring_up_spawns_the_engine_room_and_its_ticket_seats_the_attach
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.3705207Z         PASS [   0.020s] (3201/3325) spt-daemon broker::tests::an_unreadable_node_key_refuses_the_mint_fail_closed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.3886590Z         PASS [   0.018s] (3202/3325) spt-daemon broker::tests::an_unwritable_seal_ledger_refuses_even_an_admissible_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.3973203Z         PASS [   0.009s] (3203/3325) spt-daemon broker::tests::append_overflow_flags_the_evicted_viewer_for_skip_to_live
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.4046373Z         PASS [   0.007s] (3204/3325) spt-daemon broker::tests::apply_once_enqueues_ptywrite_exactly_once_and_dedups_replay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.5315017Z         PASS [   5.755s] (3205/3325) spt-store info::tests::write_info_racing_mutate_info_never_lost_update
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7149455Z         PASS [   0.310s] (3206/3325) spt-daemon broker::tests::attach_initial_batch_is_a_clean_alt_screen_repaint_not_the_raw_ring
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7251386Z         PASS [   0.010s] (3207/3325) spt-daemon broker::tests::chunk_text_splits_and_reassembles_exactly
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7334627Z         PASS [   0.008s] (3208/3325) spt-daemon broker::tests::clamp_or_reset_resets_a_torn_ring_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7423569Z         PASS [   0.009s] (3209/3325) spt-daemon broker::tests::cold_attach_repaint_plus_next_differential_matches_independent_emulator
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7494717Z         PASS [   0.007s] (3210/3325) spt-daemon broker::tests::contains_subslice_finds_contiguous_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7560959Z         PASS [   0.007s] (3211/3325) spt-daemon broker::tests::contiguous_advance_freezes_on_a_gap
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7643158Z         PASS [   0.008s] (3212/3325) spt-daemon broker::tests::controller_write_stall_predicate_distinguishes_wedged_from_idle
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:15.7712149Z         PASS [   0.007s] (3213/3325) spt-daemon broker::tests::delivered_cursor_advances_only_on_ok_and_is_monotonic
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.1833406Z         PASS [   0.412s] (3214/3325) spt-daemon broker::tests::delivery_is_suppressed_during_a_transition_and_one_sync_frame_substitutes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.1957399Z         PASS [   0.012s] (3215/3325) spt-daemon broker::tests::detach_and_conn_death_abort_the_ceremony_answering_whoever_remains
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2025711Z         PASS [   0.007s] (3216/3325) spt-daemon broker::tests::echo_verified_catches_a_swallowed_head
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2121733Z         PASS [   0.010s] (3217/3325) spt-daemon broker::tests::equal_generation_same_conn_is_an_idempotent_replay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2405271Z         PASS [   0.028s] (3218/3325) spt-daemon broker::tests::every_unredeemable_ticket_answers_one_sentence_and_spends_no_attempt
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2494574Z         PASS [   0.009s] (3219/3325) spt-daemon broker::tests::exit_enqueues_behind_queued_output_per_sink
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2583117Z         PASS [   0.009s] (3220/3325) spt-daemon broker::tests::gap_resume_resubscribe_preserves_the_generation_against_stale_replay
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2683829Z         PASS [   0.010s] (3221/3325) spt-daemon broker::tests::generation_ladder_newer_supersedes_loudly_older_refused_both_intents
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2752831Z         PASS [   0.007s] (3222/3325) spt-daemon broker::tests::input_enqueue_drops_and_stamps_on_full_then_heals_on_drain
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2821545Z         PASS [   0.007s] (3223/3325) spt-daemon broker::tests::input_writer_preserves_strict_fifo_order_through_the_sole_writer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2922268Z         PASS [   0.010s] (3224/3325) spt-daemon broker::tests::local_controller_wedged_scopes_to_the_brains_own_conn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.2992505Z         PASS [   0.007s] (3225/3325) spt-daemon broker::tests::lock_floor_recovers_a_poisoned_inject_floor
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3120108Z         PASS [   0.013s] (3226/3325) spt-daemon broker::tests::mint_offers_decide_fido2_iff_enrolled_and_e_iff_not
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3184072Z         PASS [   0.006s] (3227/3325) spt-daemon broker::tests::miss_respool_is_once_then_dead_letters
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3250419Z         PASS [   0.007s] (3228/3325) spt-daemon broker::tests::miss_strikes_exhausted_at_budget
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3318831Z         PASS [   0.007s] (3229/3325) spt-daemon broker::tests::only_the_supervised_generation_can_claim_the_coordinator_image
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3396575Z         PASS [   0.008s] (3230/3325) spt-daemon broker::tests::output_log_tap_reads_bytes_since_snapshot
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3468794Z         PASS [   0.007s] (3231/3325) spt-daemon broker::tests::pair_hold_lifecycle_decisions
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3536069Z         PASS [   0.007s] (3232/3325) spt-daemon broker::tests::rc_input_fence_scopes_to_rc_minted_non_controller_input_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3616938Z         PASS [   0.008s] (3233/3325) spt-daemon broker::tests::read_translation_command_none_when_absent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3692728Z         PASS [   0.008s] (3234/3325) spt-daemon broker::tests::read_translation_command_reads_declared
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3788273Z         PASS [   0.010s] (3235/3325) spt-daemon broker::tests::reap_dead_controller_clears_a_finished_writer
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3874229Z         PASS [   0.009s] (3236/3325) spt-daemon broker::tests::reap_dead_controller_leaves_a_live_writer_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.3961105Z         PASS [   0.009s] (3237/3325) spt-daemon broker::tests::reap_evicts_a_blocked_writer_not_only_an_exited_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4040966Z         PASS [   0.008s] (3238/3325) spt-daemon broker::tests::recover_log_clamps_a_poisoned_torn_ring
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4110522Z         PASS [   0.007s] (3239/3325) spt-daemon broker::tests::recover_reopens_a_poisoned_sessions_map
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4183748Z         PASS [   0.007s] (3240/3325) spt-daemon broker::tests::registration_of_an_ordinary_spawn_leaves_the_ledger_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4273460Z         PASS [   0.009s] (3241/3325) spt-daemon broker::tests::revoked_incumbent_writer_emits_the_terminal_displaced
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4367204Z         PASS [   0.009s] (3242/3325) spt-daemon broker::tests::same_identity_resubscribe_refuses_a_stale_generation
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4670205Z         PASS [   0.030s] (3243/3325) spt-daemon broker::tests::seal_codes_verify_member_or_admin_and_nothing_else
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4770305Z         PASS [   0.010s] (3244/3325) spt-daemon broker::tests::select_endpoints_running_adapter_filters_dedups_sorts
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4852204Z         PASS [   0.008s] (3245/3325) spt-daemon broker::tests::sessions_reply_resume_seq_defaults_when_absent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.4916622Z         PASS [   0.006s] (3246/3325) spt-daemon broker::tests::should_settle_rearms_on_observable_pty
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.5005375Z         PASS [   0.009s] (3247/3325) spt-daemon broker::tests::stale_generation_detach_never_clears_the_newer_controller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.5337885Z         PASS [   0.033s] (3248/3325) spt-daemon broker::tests::stale_snapshot_stamp_write_refused_after_reap_generation_bump
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.5470386Z         PASS [   0.013s] (3249/3325) spt-daemon broker::tests::stalled_incumbent_is_evicted_on_reattach_and_control_released
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.5540732Z         PASS [   0.007s] (3250/3325) spt-daemon broker::tests::stamp_divergence_gates_writes
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:16.6014223Z         PASS [   0.047s] (3251/3325) spt-daemon broker::tests::stamp_driven_by_latches_own_node_hex_verbatim_like_remote
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.0156028Z         PASS [   0.414s] (3252/3325) spt-daemon broker::tests::superseded_controller_writer_is_epoch_gated_silent_one_live_writer_per_conn
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.0481097Z         PASS [   0.032s] (3253/3325) spt-daemon broker::tests::supervised_worker_panic_faults_and_reaps_child
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.1885047Z         PASS [   0.140s] (3254/3325) spt-daemon broker::tests::taking_the_engine_rooms_controls_costs_a_member_or_admin_code
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.1983730Z         PASS [   0.010s] (3255/3325) spt-daemon broker::tests::the_absent_arm_fires_only_on_a_measured_absence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.3270501Z         PASS [   0.128s] (3256/3325) spt-daemon broker::tests::the_admit_ticket_seats_a_subscribe_arriving_on_another_connection
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.5803760Z         PASS [   0.253s] (3257/3325) spt-daemon broker::tests::the_bring_up_verb_grants_only_once_its_ticket_seats_a_controller
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.6312895Z         PASS [   0.051s] (3258/3325) spt-daemon broker::tests::the_ceremony_seam_refuses_over_cap_and_non_utf8_content_by_name
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.6435662Z         PASS [   0.012s] (3259/3325) spt-daemon broker::tests::the_ceremony_surface_is_the_seat_table_and_the_stamp_is_conn_keyed
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.6508304Z         PASS [   0.007s] (3260/3325) spt-daemon broker::tests::the_credential_discriminant_names_the_seed_and_a_tie_grants_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.6778829Z         PASS [   0.027s] (3261/3325) spt-daemon broker::tests::the_e_admit_writes_enrollment_and_seal_both_or_neither
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.8281095Z         PASS [   0.150s] (3262/3325) spt-daemon broker::tests::the_engine_room_refuses_every_viewport_and_every_off_node_attach
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.8534909Z         PASS [   0.025s] (3263/3325) spt-daemon broker::tests::the_enroll_purpose_admits_to_a_record_refuses_a_second_and_cancels_free
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.8611062Z         PASS [   0.008s] (3264/3325) spt-daemon broker::tests::the_grant_point_writes_only_for_an_admin_credential
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9153165Z         PASS [   0.054s] (3265/3325) spt-daemon broker::tests::the_seal_gate_counts_throttles_first_cancels_free_and_mints_on_admit
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9220954Z         PASS [   0.007s] (3266/3325) spt-daemon broker::tests::the_seal_gate_ledger_is_its_own_file
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9302367Z         PASS [   0.008s] (3267/3325) spt-daemon broker::tests::the_suppressed_window_is_exempt_from_the_controller_eviction_deadline
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9368829Z         PASS [   0.007s] (3268/3325) spt-daemon broker::tests::the_wedge_ceiling_is_most_generous_on_the_phase_that_measured_slow
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9459263Z         PASS [   0.009s] (3269/3325) spt-daemon broker::tests::tracked_state_inside_the_window_surfaces_in_the_sync_frame
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9543512Z         PASS [   0.008s] (3270/3325) spt-daemon broker::tests::untracked_toggles_defer_into_the_sync_frame_and_hyperlinks_drop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:17.9608360Z         PASS [   0.006s] (3271/3325) spt-daemon broker::tests::viewer_overflow_or_disconnect_evicts_never_blocks
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:19.9708044Z         PASS [   2.010s] (3272/3325) spt-daemon broker::tests::viewer_writer_emits_evicted_marker_only_on_an_evicted_close
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:19.9807567Z         PASS [   0.010s] (3273/3325) spt-daemon broker::tests::wake_gate_decision_truth_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:19.9888310Z         PASS [   0.008s] (3274/3325) spt-daemon broker::tests::wrapper_alive_prefers_the_table_and_falls_back_where_there_is_none
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:19.9952738Z         PASS [   0.006s] (3275/3325) spt-daemon broker::tests::zombie_verdict_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.0558773Z         PASS [   0.060s] (3276/3325) spt-daemon livehost::tests::boot_gate_offlines_sessionless_controllable_then_reconcile_skips_host
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.1038515Z         PASS [   0.048s] (3277/3325) spt-daemon livehost::tests::broker_failure_skips_the_pass_never_mass_offlines
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.1407263Z         PASS [   0.037s] (3278/3325) spt-daemon livehost::tests::control_reap_clears_sticky_controlled_on_already_offline_perch
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.1507636Z         PASS [   0.010s] (3279/3325) spt-daemon livehost::tests::decide_resume_goal_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.1832381Z         PASS [   0.032s] (3280/3325) spt-daemon livehost::tests::fresh_brain_rehydrates_an_online_live_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.1919321Z         PASS [   0.009s] (3281/3325) spt-daemon livehost::tests::hybrid_self_heal_due_table
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.4019759Z         LEAK [   0.210s] (3282/3325) spt-daemon livehost::tests::legacy_psyche_sweep_guard_is_id_specific_and_fail_safe
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.4206060Z         PASS [   0.019s] (3283/3325) spt-daemon livehost::tests::live_bin_gc_removes_own_copy_and_displaces_when_locked
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.4826636Z         PASS [   0.062s] (3284/3325) spt-daemon livehost::tests::pull_liveness_demotes_a_relay_held_endpoint_instead_of_offlining_it
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.6094954Z         PASS [   0.127s] (3285/3325) spt-daemon livehost::tests::pull_liveness_marks_sessionless_spt_hosted_offline_only
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.7022898Z         PASS [   0.093s] (3286/3325) spt-daemon livehost::tests::pull_reconcile_offlines_perch_when_broker_session_dies
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.7314049Z         PASS [   0.029s] (3287/3325) spt-daemon livehost::tests::reconcile_attempts_resume_for_a_registered_woken_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.8574464Z         PASS [   0.126s] (3288/3325) spt-daemon livehost::tests::reconcile_converges_a_dead_relay_and_spares_a_live_or_unproven_one
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.8901633Z         PASS [   0.033s] (3289/3325) spt-daemon livehost::tests::reconcile_does_not_double_host
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.9493837Z         PASS [   0.059s] (3290/3325) spt-daemon livehost::tests::reconcile_hosts_an_online_live_endpoint_and_drives_its_pulse
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:20.9911307Z         PASS [   0.042s] (3291/3325) spt-daemon livehost::tests::reconcile_keeps_driver_on_transient_read_fail_unhosts_on_dir_gone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.0150120Z         PASS [   0.024s] (3292/3325) spt-daemon livehost::tests::reconcile_leaves_a_genuinely_suspended_endpoint_alone
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.0679501Z         PASS [   0.053s] (3293/3325) spt-daemon livehost::tests::reconcile_marks_unbound_skeleton_offline_on_session_death
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.2286429Z         PASS [   0.161s] (3294/3325) spt-daemon livehost::tests::reconcile_reaps_orphaned_worker_and_spares_live_parent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.2526637Z         PASS [   0.024s] (3295/3325) spt-daemon livehost::tests::reconcile_refuses_a_woken_endpoint_with_an_unregistered_adapter
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.2614101Z         PASS [   0.009s] (3296/3325) spt-daemon livehost::tests::reconcile_routing_controllable_falls_through_to_broker_session_truth
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.2772104Z         PASS [   0.016s] (3297/3325) spt-daemon livehost::tests::reconcile_skips_a_woken_endpoint_with_no_ledger_row
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.2983764Z         PASS [   0.021s] (3298/3325) spt-daemon livehost::tests::reconcile_skips_an_offline_live_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.3306511Z         PASS [   0.032s] (3299/3325) spt-daemon livehost::tests::reconcile_unhosts_on_offline_transition
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.3403389Z         PASS [   0.010s] (3300/3325) spt-daemon livehost::tests::restart_resume_gate_reruns_the_orphaned_controllable_dead_set_regardless_of_state
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.3792603Z         PASS [   0.039s] (3301/3325) spt-daemon livehost::tests::split_cleanup_clears_all_three_stamps_on_state_quirk_rows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.3905115Z         PASS [   0.011s] (3302/3325) spt-daemon pump::tests::choreography_fan_targets_skips_detached_and_self
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.3988360Z         PASS [   0.008s] (3303/3325) spt-daemon pump::tests::choreography_first_tick_primes_all_legs
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4052918Z         PASS [   0.006s] (3304/3325) spt-daemon pump::tests::choreography_mark_after_round_stamps_only_due
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4120104Z         PASS [   0.007s] (3305/3325) spt-daemon pump::tests::choreography_peer_step_aborts_on_first_failure
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4189265Z         PASS [   0.007s] (3306/3325) spt-daemon pump::tests::choreography_pre_round_once_and_before_any_peer_step
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4253734Z         PASS [   0.006s] (3307/3325) spt-daemon pump::tests::choreography_wake_forces_only_that_worker
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4317858Z         PASS [   0.006s] (3308/3325) spt-daemon pump::tests::drain_read_classifies_dead_carrier_as_restart_timeout_as_quiet
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4390385Z         PASS [   0.007s] (3309/3325) spt-daemon pump::tests::every_route_leg_reports_a_distinct_token
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4450634Z         PASS [   0.006s] (3310/3325) spt-daemon pump::tests::first_tick_is_due_and_never_underflows
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4673519Z         PASS [   0.022s] (3311/3325) spt-daemon pump::tests::heartbeat_writes_and_advances
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4788875Z         PASS [   0.011s] (3312/3325) spt-daemon pump::tests::leg2_skips_the_just_failed_roster_address_and_falls_through_to_discovery
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4863262Z         PASS [   0.007s] (3313/3325) spt-daemon pump::tests::only_a_positively_offline_node_is_read_as_absent
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4930992Z         PASS [   0.007s] (3314/3325) spt-daemon pump::tests::peer_leg_outcome_isolates_ordinary_backs_off_carrier_timeout_still_poisons
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.4998735Z         PASS [   0.007s] (3315/3325) spt-daemon pump::tests::per_peer_backoff_doubles_caps_and_eligibility
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5071567Z         PASS [   0.007s] (3316/3325) spt-daemon pump::tests::presence_state_effect_correlates_and_isolates
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5377560Z         PASS [   0.030s] (3317/3325) spt-daemon pump::tests::push_feed_retires_its_own_row_after_successful_fin
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5448482Z         PASS [   0.007s] (3318/3325) spt-daemon pump::tests::push_target_is_the_full_roster_minus_self_and_tombstoned
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5518638Z         PASS [   0.007s] (3319/3325) spt-daemon pump::tests::refresh_self_addr_rewrites_only_on_a_real_change
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5598291Z         PASS [   0.008s] (3320/3325) spt-daemon pump::tests::resolve_submit_addr_walks_the_route_chain
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5673806Z         PASS [   0.007s] (3321/3325) spt-daemon pump::tests::startup_reconcile_heals_suspect_rows_and_migrates_invalid_ones
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.5735219Z         PASS [   0.006s] (3322/3325) spt-daemon pump::tests::supervisor_backoff_doubles_caps_and_resets
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.6117924Z         PASS [   0.038s] (3323/3325) spt-daemon pump::tests::supervisor_restarts_a_panicking_pump_until_stop
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.6225280Z         PASS [   0.011s] (3324/3325) spt-daemon pump::tests::unresolved_splits_the_refused_roster_address_from_having_none_at_all
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.6309470Z         PASS [   0.008s] (3325/3325) spt-daemon pump::tests::wake_forces_a_round_regardless_of_cadence
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.6356889Z ────────────
test (self-hosted, Linux, kitsubito)	Test — Phase A (light pool; full parallel) — linux	2026-09-09T04:25:21.6357186Z      Summary [  41.701s] 3325 tests run: 3325 passed (2 leaky), 1 skipped
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	﻿2026-09-09T04:25:21.7483672Z ##[group]Run bash .github/bench/wrap.sh test-phase-b -- cargo nextest run --workspace --no-fail-fast -E "$HEAVY"
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7486423Z [36;1mbash .github/bench/wrap.sh test-phase-b -- cargo nextest run --workspace --no-fail-fast -E "$HEAVY"[0m
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7725543Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7725839Z env:
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7726033Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7726320Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7726549Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7730721Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7736060Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7736418Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7736845Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7737269Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7737670Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:21.7737995Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:22.9863631Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.58s
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:23.2727728Z ────────────
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:23.2728344Z  Nextest run ID 94c610b0-74af-4d37-94b8-51cea64204e4 with nextest profile: default
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:23.2729499Z     Starting 219 tests across 89 binaries (137 binaries skipped)
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:39.8816628Z         PASS [  16.608s] (  1/219) spt::activity_link_push_e2e activity_frames_reach_a_linked_shell_through_the_real_daemon
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:25:53.1179232Z         PASS [  13.236s] (  2/219) spt::attach_link_push_e2e attachment_frames_reach_a_linked_shell_through_the_real_daemon
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:26:08.9501973Z         PASS [  15.832s] (  3/219) spt::attach_wedge_e2e attach_wedge_dead_child_plus_dropped_pump_does_not_wedge_the_broker
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:26:19.8644038Z         PASS [  10.914s] (  4/219) spt::bind_cwd_project_e2e endpoint_run_records_cwd_and_appears_under_its_project
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:26:30.0732864Z         PASS [  10.209s] (  5/219) spt::bind_honest_cross_perch_e2e cross_perch_dead_owner_repin_is_refused_no_contamination
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:27:15.7650170Z         PASS [  45.692s] (  6/219) spt::brain_respawn_rename brain_respawns_onto_applied_bytes_after_in_place_rename
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:27:40.1971862Z         PASS [  24.432s] (  7/219) spt::brain_split broker_survives_brain_kill_and_respawns_it
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:28:04.9751131Z         PASS [  24.778s] (  8/219) spt::brain_split seed_anchor_survives_brain_cycle
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:28:46.5255478Z         PASS [  41.550s] (  9/219) spt::brain_survive pty_and_quic_survive_brain_process_restart_onto_swapped_binary
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:28:46.9315197Z         PASS [   0.406s] ( 10/219) spt::commune_two_cwd_e2e a_commune_written_from_a_worktree_is_loud_and_stale_while_the_registered_one_is_not
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:28:47.1741413Z         PASS [   0.243s] ( 11/219) spt::coordinator_image_e2e the_running_coordinator_reports_its_compiled_image_and_no_impostor_can
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:08.2216075Z         PASS [  21.047s] ( 12/219) spt::daemon_refresh_e2e daemon_refresh_cycles_brain_while_hosted_endpoint_survives
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:24.1084796Z         PASS [  15.887s] ( 13/219) spt::dummy_harness_e2e endpoint_run_attach_awaits_online_before_attaching
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:35.6965560Z         PASS [  11.588s] ( 14/219) spt::dummy_harness_e2e endpoint_run_brings_up_a_long_lived_dummy_harness_and_rc_attaches
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:35.7007452Z         PASS [   0.004s] ( 15/219) spt::endpoint_autostart_e2e poll_ignores_the_skip_and_fail_replay_outcomes
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:35.7048452Z         PASS [   0.004s] ( 16/219) spt::endpoint_autostart_e2e poll_rejects_a_line_torn_before_the_startup_default_tail
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:57.0424223Z         PASS [  21.337s] ( 17/219) spt::endpoint_autostart_e2e saved_endpoint_replays_on_daemon_restart
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:29:57.0472272Z         PASS [   0.005s] ( 18/219) spt::endpoint_autostart_e2e torn_read_yields_no_replay_line_rather_than_a_promoted_fragment
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:30:09.1651601Z         PASS [  12.118s] ( 19/219) spt::endpoint_teardown_authority_e2e shutdown_reaps_the_hosted_subtree_it_reports_suspending
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:30:24.5072493Z         PASS [  15.342s] ( 20/219) spt::endpoint_teardown_authority_e2e stop_reaps_the_hosted_subtree_and_run_recovers_the_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:30:35.4463180Z         PASS [  10.939s] ( 21/219) spt::engine_room_bringup_e2e a_bringup_on_a_multi_subnet_node_leaves_the_room_a_perch
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:31:29.8896813Z         PASS [  54.443s] ( 22/219) spt::engine_room_bringup_e2e a_bringup_whose_attach_never_arrived_leaves_no_grant_anywhere
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:31:40.7783207Z         PASS [  10.889s] ( 23/219) spt::engine_room_bringup_e2e a_brought_up_engine_room_is_served_the_in_core_role_and_has_no_writer
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:31:51.6295896Z         PASS [  10.851s] ( 24/219) spt::engine_room_bringup_e2e a_brought_up_engine_room_registers_no_relay_address_for_tcp_to_reach
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:13.5651011Z         PASS [  21.935s] ( 25/219) spt::engine_room_bringup_e2e a_cleanly_offline_engine_room_is_still_brought_up_by_its_own_gate
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:13.5692176Z         PASS [   0.004s] ( 26/219) spt::engine_room_bringup_e2e a_complete_ladder_with_no_expiry_is_green
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:13.5730581Z         PASS [   0.004s] ( 27/219) spt::engine_room_bringup_e2e a_loud_launch_failure_is_candidate_a_from_either_witness
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:13.5769089Z         PASS [   0.004s] ( 28/219) spt::engine_room_bringup_e2e a_pty_create_that_never_completed_is_candidate_c
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:13.5810746Z         PASS [   0.004s] ( 29/219) spt::engine_room_bringup_e2e a_row_that_existed_and_then_did_not_is_candidate_d_not_late
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:13.5848725Z         PASS [   0.004s] ( 30/219) spt::engine_room_bringup_e2e an_expiry_with_no_stamps_behind_it_is_unreadable_never_candidate_b
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:24.3990687Z         PASS [  10.814s] ( 31/219) spt::engine_room_bringup_e2e er_bringup_from_the_operators_invocation_spawns_the_session
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:35.2269520Z         PASS [  10.828s] ( 32/219) spt::engine_room_bringup_e2e er_bringup_launch_phases_reach_the_sink
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:35.2313773Z         PASS [   0.004s] ( 33/219) spt::engine_room_bringup_e2e every_verdict_names_the_last_phase_each_side_reached
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:49.7921838Z         PASS [  14.561s] ( 34/219) spt::er_brief_once_per_session_e2e a_second_seat_on_a_running_engine_room_is_not_re_briefed
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:32:49.8743309Z         PASS [   0.082s] ( 35/219) spt::er_brief_once_per_session_e2e controller_release_barrier_rejects_a_latched_seat
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:33:07.8085409Z         PASS [  17.934s] ( 36/219) spt::er_briefing_presentation_e2e er_briefing_presentation_measurements
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:05.8663676Z         PASS [  58.058s] ( 37/219) spt::er_briefing_presented_e2e the_engine_room_briefing_is_presented_before_the_first_actionable_turn
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:19.2232875Z         PASS [  13.357s] ( 38/219) spt::er_briefing_session_scoped_e2e a_new_session_never_delivers_an_older_sessions_briefing
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:30.5833821Z         PASS [  11.360s] ( 39/219) spt::er_sequestered_cwd_e2e engine_room_launches_sequestered_and_nothing_is_written_into_it
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:31.0595523Z         PASS [   0.477s] ( 40/219) spt::gateway_owner_shell_e2e gateway_typed_owner_owns_a_shell_on_every_path_keyed_on_id
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:43.3474065Z         PASS [  12.288s] ( 41/219) spt::idle_edge_drain_e2e spool_while_active_then_idle_fires_injection
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:54.3698776Z         PASS [  11.022s] ( 42/219) spt::idle_edge_seal_e2e idle_seals_the_latest_turn_with_a_stable_seq_and_no_further_prompt
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:34:54.3739297Z         PASS [   0.004s] ( 43/219) spt::job_escape_e2e daemon_survives_terminal_close_via_session_detachment
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:35:04.5165684Z         PASS [  10.143s] ( 44/219) spt::knock_approve_not_hostage_e2e an_approval_stands_and_exits_the_same_whether_or_not_its_wire_legs_arrive
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:35:25.4480146Z         PASS [  20.931s] ( 45/219) spt::knock_mutual_cross_node_e2e a_cross_node_redemption_opens_the_presenters_own_side_and_only_asks_for_the_minters
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:35:38.0155192Z         PASS [  12.567s] ( 46/219) spt::live_adapt_translation_swap_e2e adapter_apply_for_foreign_adapter_leaves_live_endpoint_untouched
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:35:50.3073630Z         PASS [  12.292s] ( 47/219) spt::live_adapt_translation_swap_e2e adapter_apply_swaps_composite_profile_endpoint_matched_on_parent
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:36:02.6148797Z         PASS [  12.307s] ( 48/219) spt::live_adapt_translation_swap_e2e adapter_apply_swaps_locked_translation_binary_without_restarting_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:36:13.4818249Z         PASS [  10.867s] ( 49/219) spt::live_adapt_translation_swap_e2e adapter_apply_with_no_matching_session_still_swaps
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:36:32.0612455Z         PASS [  18.579s] ( 50/219) spt::livehost_bootgate_e2e cold_start_does_not_revive_a_sessionless_online_latched_perch
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:36:43.1783186Z         PASS [  11.117s] ( 51/219) spt::multi_subnet_bringup_e2e fresh_unbound_is_attachable_before_bind
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:36:54.0472901Z         PASS [  10.869s] ( 52/219) spt::multi_subnet_bringup_e2e multi_subnet_refuses_without_subnet_then_homes_and_binds
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:04.9286079Z         PASS [  10.881s] ( 53/219) spt::multi_subnet_bringup_e2e single_subnet_control_auto_homes
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:06.1451009Z         PASS [   1.216s] ( 54/219) spt::n1_compat brain_accepts_old_and_new_broker_argv
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:06.1509605Z         PASS [   0.006s] ( 55/219) spt::n1_pairing new_brain_serves_against_old_broker
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:06.1631171Z         PASS [   0.012s] ( 56/219) spt::oneliner_e2e at_logon_task_launches_daemon_in_background_not_foreground
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:06.1685325Z         PASS [   0.005s] ( 57/219) spt::oneliner_e2e install_script_against_staged_release
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:06.1745948Z         PASS [   0.006s] ( 58/219) spt::projindex_reader_e2e daemon_failure_panel_reads_pre_redirect_capture_and_persistent_sink
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:17.0429782Z         PASS [  10.868s] ( 59/219) spt::projindex_reader_e2e readers_answer_from_daemon_maintained_index_with_zero_git
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:39.0872798Z         PASS [  22.044s] ( 60/219) spt::projindex_writer_e2e writer_cold_warm_and_event_invalidation_against_live_daemon
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:39.3531705Z         PASS [   0.266s] ( 61/219) spt::psyche_download_e2e psyche_download_emits_brief_with_pending_then_self_clears
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:37:49.6475740Z         PASS [  10.294s] ( 62/219) spt::rc_attach_truth harness_only_refuses_truthfully_pre_stream
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:38:00.8119939Z         PASS [  11.164s] ( 63/219) spt::rc_attach_truth offline_row_over_live_session_attaches
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:38:11.0820501Z         PASS [  10.270s] ( 64/219) spt::rc_attach_truth offline_row_with_no_session_refuses
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:38:22.5215085Z         PASS [  11.439s] ( 65/219) spt::rc_attach_truth rc_owned_display_carries_no_pump_diagnostics
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:38:38.9075994Z         PASS [  16.386s] ( 66/219) spt::rc_attach_truth resume_never_bound_reads_unbound_and_attaches
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:38:53.6844893Z         PASS [  14.777s] ( 67/219) spt::rc_attach_truth zombie_claim_refuses_never_attaches
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:04.6204327Z         PASS [  10.936s] ( 68/219) spt::resident_service_e2e a_declared_service_rises_with_the_daemon_and_reaches_the_cli
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:16.9846746Z         PASS [  12.364s] ( 69/219) spt::resume_no_control_steal_e2e brain_respawn_keeps_every_session_controller_and_still_promotes
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:32.9254634Z         PASS [  15.941s] ( 70/219) spt::resume_template_e2e endpoint_run_resume_selects_resume_template_in_recorded_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:43.8458170Z         PASS [  10.920s] ( 71/219) spt::run_no_dup_session_e2e run_over_live_endpoint_never_mints_a_second_session
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:55.1818412Z         PASS [  11.336s] ( 72/219) spt::trial_drain_drive_e2e trial_candidate_self_drives_the_reap_of_a_black_holed_old_gen_controller
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:55.1890912Z         PASS [   0.007s] ( 73/219) spt::twohost_cli gated_cli_role_a
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:39:55.1946334Z         PASS [   0.005s] ( 74/219) spt::twohost_cli gated_cli_role_b
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:40:25.9332369Z         PASS [  30.738s] ( 75/219) spt::wake_resume_bind_e2e wake_on_a_suspended_agent_resumes_binds_online_and_rehosts
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:40:36.3616376Z         PASS [  10.428s] ( 76/219) spt::webserve_attachment_e2e an_attachment_is_snapshot_served_fetched_back_and_named_by_its_message
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.2149488Z         PASS [  32.853s] ( 77/219) spt::webserve_cross_node_e2e a_peers_url_is_served_by_its_owner_through_the_local_listener
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.3622521Z         PASS [   0.147s] ( 78/219) spt-daemon::attach attach_registers_remote_drive_detection
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.4375334Z         PASS [   0.075s] ( 79/219) spt-daemon::attach attach_survives_target_brain_restart_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.4655446Z         PASS [   0.028s] ( 80/219) spt-daemon::attach broker_spawns_the_pty_child_in_the_requested_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.5066528Z         PASS [   0.041s] ( 81/219) spt-daemon::attach controller_restart_with_viewer_no_displace_and_viewer_survives
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.5504768Z         PASS [   0.044s] ( 82/219) spt-daemon::attach controller_viewer_matrix_and_loud_take
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.7847759Z         PASS [   0.234s] ( 83/219) spt-daemon::attach cross_node_cold_attach_to_alt_screen_gets_clean_repaint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.7976890Z         PASS [   0.013s] ( 84/219) spt-daemon::attach handoff_seeds_resume_cursor_and_resubscribes_for_resume
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:09.8380492Z         PASS [   0.040s] ( 85/219) spt-daemon::attach local_attach_via_loopback_conn_rides_the_same_pump
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.0848855Z         PASS [   0.247s] ( 86/219) spt-daemon::attach loopback_attach_to_a_prepopulated_ring_delivers_without_deadlock
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.1178547Z         PASS [   0.033s] ( 87/219) spt-daemon::attach loopback_self_dial_is_refused_local_uses_fallback_transport
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.1289860Z         PASS [   0.011s] ( 88/219) spt-daemon::attach re_serve_resets_resume_cursor_after_a_pre_attached_consume
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.1992459Z         PASS [   0.070s] ( 89/219) spt-daemon::attach remote_attach_drives_a_real_pty_cross_daemon
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.2766933Z         PASS [   0.077s] ( 90/219) spt-daemon::attach resize_is_controller_exclusive
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.3332341Z         PASS [   0.057s] ( 91/219) spt-daemon::attach same_origin_re_subscribe_does_not_displace
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:10.4073536Z         PASS [   0.074s] ( 92/219) spt-daemon::attach spt_hosted_bringup_then_cross_node_attach_drives_the_pty
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:16.4747380Z         PASS [   6.067s] ( 93/219) spt-daemon::attach wedged_viewer_does_not_stall_controller
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:23.1485787Z         PASS [   6.674s] ( 94/219) spt-daemon::brain_resume_conn_deadlock daemon_cursor_only_resume_keeps_heartbeat_live_respawn_interleave
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:29.7941121Z         PASS [   6.645s] ( 95/219) spt-daemon::brain_resume_conn_deadlock daemon_cursor_only_resume_keeps_heartbeat_live_steady_state
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:29.8279394Z         PASS [   0.034s] ( 96/219) spt-daemon::brain_resume_conn_deadlock daemon_resume_leaves_zero_brain_subscribers
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:30.3527139Z         PASS [   0.525s] ( 97/219) spt-daemon::brain_swap brain_only_update_swaps_logic_with_zero_endpoint_interruption
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:30.5735722Z         PASS [   0.221s] ( 98/219) spt-daemon::broker ack_false_input_suppresses_applied_frame
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:31.0751153Z         PASS [   0.501s] ( 99/219) spt-daemon::broker broker_hosts_pty_child_streams_output_and_accepts_input
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:31.5824370Z         PASS [   0.507s] (100/219) spt-daemon::broker controller_writer_reorder_consumer_view_stays_monotonic_and_session_live
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:31.7831773Z         PASS [   0.201s] (101/219) spt-daemon::broker dead_session_subscribe_does_not_hang
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:31.9784705Z         PASS [   0.195s] (102/219) spt-daemon::broker endpoint_keyed_inject_without_binary_spools_not_pty
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:32.1081182Z         PASS [   0.130s] (103/219) spt-daemon::broker exactly_once_preserved_on_no_ack_path
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:32.3104753Z         PASS [   0.202s] (104/219) spt-daemon::broker spawn_env_reaches_child
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:32.5139151Z         PASS [   0.203s] (105/219) spt-daemon::broker wall_b_endpoint_run_env_then_send_spools
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:32.5198170Z         PASS [   0.006s] (106/219) spt-daemon::budget measure_dormant_seat_budget
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:34.6298522Z         PASS [   2.110s] (107/219) spt-daemon::controller_lease equal_lease_replay_stays_silent_and_never_self_displaces
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:36.2320276Z         PASS [   1.602s] (108/219) spt-daemon::controller_lease revoke_terminates_a_wedged_incumbent_plain_control
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:37.8345437Z         PASS [   1.602s] (109/219) spt-daemon::controller_lease revoke_terminates_a_wedged_incumbent_take
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:38.1695646Z         PASS [   0.335s] (110/219) spt-daemon::controller_lease same_node_distinct_lease_take_displaces_loudly_and_completes_the_stream
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:38.5030052Z         PASS [   0.333s] (111/219) spt-daemon::controller_lease same_node_newer_gen_plain_control_supersedes_loudly_and_completes_the_stream
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:38.5672389Z         PASS [   0.064s] (112/219) spt-daemon::controller_lease stale_lease_input_and_resize_mutate_nothing_and_shell_injection_lands
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:39.2713073Z         PASS [   0.704s] (113/219) spt-daemon::daemon_e2e daemon_hosts_lifecycle_and_survives_brain_restart
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:47.5230519Z         PASS [   8.252s] (114/219) spt-daemon::daemon_lifecycle_real_brain real_brain_process_hosts_the_psyche_for_an_online_live_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:47.6452509Z         PASS [   0.122s] (115/219) spt-daemon::digest harness_hosted_digest_projects_and_pushes_deltas
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:47.6659859Z         PASS [   0.021s] (116/219) spt-daemon::dispatch classify_routes_a_node_label_feed_to_registry
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:47.8216741Z         PASS [   0.156s] (117/219) spt-daemon::dispatch dispatcher_applies_a_notif_feed_undriven
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:47.9191622Z         PASS [   0.097s] (118/219) spt-daemon::dispatch dispatcher_funnels_wan_messages_undriven
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:48.0413676Z         PASS [   0.122s] (119/219) spt-daemon::dispatch dispatcher_resolves_attach_by_endpoint_and_refuses_a_stale_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:48.2084463Z         PASS [   0.167s] (120/219) spt-daemon::dispatch dispatcher_serves_a_cross_node_shell_link
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:48.3367031Z         PASS [   0.128s] (121/219) spt-daemon::dispatch dispatcher_serves_a_remote_drive_attach_undriven
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:48.4780134Z         PASS [   0.141s] (122/219) spt-daemon::dispatch dispatcher_serves_a_subnet_serve_probe
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:48.8794883Z         PASS [   0.401s] (123/219) spt-daemon::dispatch dispatcher_serves_a_sync_pull_undriven
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:48.9937812Z         PASS [   0.114s] (124/219) spt-daemon::dispatch dispatcher_serves_an_update_pull_undriven
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.1312418Z         PASS [   0.137s] (125/219) spt-daemon::dispatch dispatcher_surfaces_a_remote_won_notif_at_the_winning_node
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.2230896Z         PASS [   0.092s] (126/219) spt-daemon::dispatch dispatcher_survives_an_unknown_stream
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.5652035Z         PASS [   0.342s] (127/219) spt-daemon::driven_by_selfheal gap_a_live_session_controller_by_is_ambiguous_so_reconcile_must_not_clear
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.5881998Z         PASS [   0.023s] (128/219) spt-daemon::driven_by_selfheal gap_b_sessionless_perch_reconcile_offlines_and_clears_driven_by
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.6344573Z         PASS [   0.046s] (129/219) spt-daemon::endpoint_lifecycle an_inherited_stamp_from_a_dead_relay_converges_while_a_dead_binder_row_stays_online
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.6476173Z         PASS [   0.013s] (130/219) spt-daemon::endpoint_lifecycle dead_pid_hybrid_row_does_not_survive_reconcile
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.7125263Z         PASS [   0.065s] (131/219) spt-daemon::endpoint_lifecycle dead_relay_converges_while_its_live_sibling_still_delivers
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:49.7423240Z         PASS [   0.030s] (132/219) spt-daemon::endpoint_lifecycle definitive_death_normalizes_and_next_reconcile_emits_no_wake_resume
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:50.6647648Z         PASS [   0.922s] (133/219) spt-daemon::endpoint_lifecycle poll_vs_reap_interleave_converges_to_cleared_stamps
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:50.8091738Z         PASS [   0.144s] (134/219) spt-daemon::endpoint_lifecycle raw_viewport_close_frees_the_controller_full_chain_across_broker_restart
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:50.8681139Z         PASS [   0.059s] (135/219) spt-daemon::endpoint_survival daemon_restart_reruns_a_previously_online_orphaned_endpoint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:50.8932958Z         PASS [   0.025s] (136/219) spt-daemon::endpoint_survival daemon_restart_resumes_a_ready_agent_controllable_orphan
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:50.9007703Z         PASS [   0.007s] (137/219) spt-daemon::endpoint_survival reconcile_leaves_a_legitimate_live_pid_ready_listener_online
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:50.9135678Z         PASS [   0.013s] (138/219) spt-daemon::endpoint_survival reconcile_terminally_offlines_a_sessionless_ready_agent_controllable_hybrid
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:51.9422288Z         PASS [   1.029s] (139/219) spt-daemon::exit_every_reap every_completed_reap_reaches_the_attached_terminal_as_an_exit
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:52.4729180Z         PASS [   0.531s] (140/219) spt-daemon::handoff brain_restart_survives_gaplessly_with_fresh_gen_start
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:52.5109084Z         PASS [   0.038s] (141/219) spt-daemon::idempotent pty_writes_are_exactly_once_across_brain_crashes
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:55.7499172Z         PASS [   3.239s] (142/219) spt-daemon::inject_control_wedge a_backed_up_controller_does_not_wedge_the_session
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:58.5886808Z         PASS [   2.839s] (143/219) spt-daemon::inject_control_wedge a_journaled_input_wedge_does_not_starve_a_concurrent_rc_attach
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:41:59.5382451Z         PASS [   0.949s] (144/219) spt-daemon::inject_control_wedge c1_miss_once_preserves_binary_and_next_inject_delivers
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:01.3947309Z         PASS [   1.856s] (145/219) spt-daemon::inject_control_wedge c1_strike_fault_stamps_perch_and_bounded_respawns_then_gives_up
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:01.6448316Z         PASS [   0.250s] (146/219) spt-daemon::inject_control_wedge g1_choreography_happy_path_payload_reaches_pty_and_controller_keeps_control
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:02.8988587Z         PASS [   1.254s] (147/219) spt-daemon::inject_control_wedge g2_no_commit_deadline_faults_binary_and_does_not_wedge_controller_input
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:03.4456249Z         PASS [   0.547s] (148/219) spt-daemon::inject_control_wedge g3_content_free_ping_never_duplicates_operator_keystrokes_into_binary
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:03.8753275Z         PASS [   0.430s] (149/219) spt-daemon::inject_control_wedge g4_translation_child_is_reaped_no_zombie_after_session_down
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:06.0232789Z         PASS [   2.148s] (150/219) spt-daemon::inject_control_wedge g5_active_endpoint_spools_deferred_and_is_not_injected
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:06.5749720Z         PASS [   0.552s] (151/219) spt-daemon::inject_control_wedge g6_faulted_inflight_envelope_is_respooled_not_lost
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:06.8149260Z         PASS [   0.240s] (152/219) spt-daemon::inject_control_wedge g7_native_injects_mid_active_bypassing_the_idle_gate
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:07.2453661Z         PASS [   0.430s] (153/219) spt-daemon::inject_control_wedge large_endpoint_inject_to_a_no_binary_session_spools_promptly_without_wedging
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:16.0765548Z         PASS [   8.831s] (154/219) spt-daemon::inject_control_wedge p0_paste_wedge_parked_write_does_not_starve_attach_or_wedge_broker
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:16.2482533Z         PASS [   0.172s] (155/219) spt-daemon::inject_control_wedge parked_message_to_already_idle_endpoint_is_delivered_without_a_poke
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:16.5905378Z         PASS [   0.342s] (156/219) spt-daemon::inject_control_wedge w5_a1_locally_driven_session_reports_controller_by_none
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:20.6397504Z         PASS [   4.049s] (157/219) spt-daemon::inject_control_wedge w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:20.8847912Z         PASS [   0.245s] (158/219) spt-daemon::inject_control_wedge w5a_bigmultiline_inject_arrives_byte_complete_across_a_loop
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:21.3140715Z         PASS [   0.429s] (159/219) spt-daemon::inject_control_wedge w5a_forced_echo_miss_redrives_once_then_loud_spools
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:21.5942228Z         PASS [   0.280s] (160/219) spt-daemon::inject_control_wedge wan_arrival_to_idle_spt_hosted_injects_with_no_hook_poll
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:23.4695283Z         PASS [   1.875s] (161/219) spt-daemon::input_ack_deadlock input_flood_through_serve_attach_does_not_deadlock_broker
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:28.8464104Z         PASS [   5.377s] (162/219) spt-daemon::mesh_recovery a_dead_roster_address_does_not_strand_the_peer_from_discovery
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:28.9153980Z         PASS [   0.069s] (163/219) spt-daemon::mesh_recovery a_frozen_self_row_heals_at_boot_and_readvertises_the_live_address
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:29.2810034Z         PASS [   0.365s] (164/219) spt-daemon::mesh_recovery health_degrades_during_all_peer_failure_and_recovers_on_real_progress
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:29.4493485Z         PASS [   0.168s] (165/219) spt-daemon::mesh_recovery poison_cache_row_is_repaired_from_the_roster_at_startup
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:34.7629071Z         PASS [   5.313s] (166/219) spt-daemon::mesh_recovery roster_route_survives_a_transient_dial_failure_with_discovery_disabled
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:37.4408132Z         PASS [   2.678s] (167/219) spt-daemon::net_worker_starve dead_peer_dial_burst_vs_net_runtime_canary
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:40.0638089Z         PASS [   2.623s] (168/219) spt-daemon::net_worker_starve unreachable_peer_dial_burst_vs_net_runtime_canary
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:40.3426296Z         PASS [   0.279s] (169/219) spt-daemon::redispatch finished_historical_attach_neither_takes_nor_clears_current_controller
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:40.5460251Z         PASS [   0.203s] (170/219) spt-daemon::redispatch finished_pending_sync_request_still_serves_across_generation_start
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:42.8739964Z         PASS [   2.328s] (171/219) spt-daemon::redispatch finished_unretired_attach_is_skipped_and_drained_not_replayed
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:43.3975069Z         PASS [   0.523s] (172/219) spt-daemon::redispatch opener_evicted_active_stream_resumes_after_dispatcher_restart
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:44.0114138Z         PASS [   0.614s] (173/219) spt-daemon::redispatch transient_worker_start_failure_recovers_via_claim_retry
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:44.1868536Z         PASS [   0.175s] (174/219) spt-daemon::redispatch_stall old_broker_unknown_verb_answer_falls_back_to_the_peek_and_serves_real_traffic
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:48.8793161Z         PASS [   4.692s] (175/219) spt-daemon::redispatch_stall opener_transient_is_bounded_requeue_never_a_peek_subscriber
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:50.4035415Z         PASS [   1.524s] (176/219) spt-daemon::redispatch_stall poisoned_subscriber_cancels_the_paired_forwarding_leg_then_recovery_serves
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:52.6069498Z         PASS [   2.203s] (177/219) spt-daemon::redispatch_stall seat_blocked_failure_trips_the_breaker_and_the_stream_recovers
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:54.8200562Z         PASS [   2.213s] (178/219) spt-daemon::redispatch_stall stale_unfinished_attach_replay_neither_takes_nor_clears_the_replacement_controller
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:56.6066522Z         PASS [   1.787s] (179/219) spt-daemon::redispatch_stall wedged_subscriber_never_stalls_the_producer_and_recovery_replays_gapless
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:42:56.8090380Z         PASS [   0.202s] (180/219) spt-daemon::registry_lifecycle multichunk_feed_applies_with_exactly_one_snapshot_write
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:00.7972662Z         PASS [   3.988s] (181/219) spt-daemon::registry_lifecycle oneway_rounds_plateau_rows_seats_and_a_refresh_replays_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:14.9419854Z         PASS [  14.145s] (182/219) spt-daemon::registry_lifecycle poisoned_registry_replay_strikes_out_terminal_while_fresh_feeds_serve
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:15.3542234Z         PASS [   0.412s] (183/219) spt-daemon::render_lifecycle final_output_frame_precedes_exit_through_the_production_path
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:25.6844435Z         PASS [  10.330s] (184/219) spt-daemon::restart_replay_lifetime a_raw_dead_connection_bound_opener_is_not_re_served_by_the_next_generation
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:27.7320968Z         PASS [   2.048s] (185/219) spt-daemon::resume cold_start_resumes_all_sessions_from_the_broker_cursor
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:31.9472095Z         PASS [   4.215s] (186/219) spt-daemon::resume resume_below_ring_floor_clamps_forward_without_gap_error
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.1754771Z         PASS [   1.228s] (187/219) spt-daemon::resume resume_mode_brain_spawning_new_sessions_delivers_each
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.2485582Z         PASS [   0.073s] (188/219) spt-daemon::shellchan hung_shell_stalls_no_other_owner
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.2992518Z         PASS [   0.051s] (189/219) spt-daemon::shellchan stdin_receipt_delivers_spooled_frames_exactly_once
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.3920219Z         PASS [   0.093s] (190/219) spt-daemon::spawn_truth concurrent_fresh_race_yields_one_created_one_conflict
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.4043770Z         PASS [   0.012s] (191/219) spt-daemon::spawn_truth fresh_create_over_offline_raw_active_stale_ledger_creates
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.4249552Z         PASS [   0.020s] (192/219) spt-daemon::spawn_truth fresh_over_live_is_a_typed_conflict_and_touches_nothing
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.4976141Z         PASS [   0.073s] (193/219) spt-daemon::spawn_truth mixed_fresh_resume_race_never_two_children
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.5050081Z         PASS [   0.007s] (194/219) spt-daemon::spawn_truth n1_broker_unknown_kind_fails_loud_never_created
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:43:33.6028772Z         PASS [   0.098s] (195/219) spt-daemon::spawn_truth zombie_client_tree_is_reaped_and_run_succeeds_honestly
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:33.6120915Z         SLOW [> 60.000s] (───────) spt-daemon::transport_death_eof transport_death_without_a_fin_surfaces_eof_to_the_serving_worker
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.0440660Z         PASS [  60.441s] (196/219) spt-daemon::transport_death_eof transport_death_without_a_fin_surfaces_eof_to_the_serving_worker
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.1092232Z         PASS [   0.065s] (197/219) spt-daemon::two_origin_spanning digest_span_supersedes_a_replayed_generation
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.1878600Z         PASS [   0.079s] (198/219) spt-daemon::two_origin_spanning one_source_two_consumers_spans_and_merges
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.1992839Z         PASS [   0.011s] (199/219) spt-daemon::twohost b2_attacher_child
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2071191Z         PASS [   0.008s] (200/219) spt-daemon::twohost two_host_ladder_role_a
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2130052Z         PASS [   0.006s] (201/219) spt-daemon::twohost two_host_ladder_role_b
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2208443Z         PASS [   0.008s] (202/219) spt-daemon::twohost_web two_host_web_deny_role_a
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2271541Z         PASS [   0.006s] (203/219) spt-daemon::twohost_web two_host_web_fetch_role_a
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2332146Z         PASS [   0.006s] (204/219) spt-daemon::twohost_web two_host_web_helper_role_a
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2389899Z         PASS [   0.006s] (205/219) spt-daemon::twohost_web two_host_web_range_role_a
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2447910Z         PASS [   0.006s] (206/219) spt-daemon::twohost_web two_host_web_role_b
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2601039Z         PASS [   0.015s] (207/219) spt-term::dsr drain_forwards_child_output
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.2861264Z         PASS [   0.026s] (208/219) spt-term::inject ctrl_c_interrupts_the_child
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.3029462Z         PASS [   0.017s] (209/219) spt-term::inject send_line_reaches_child_and_preserves_order
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.3090486Z         PASS [   0.006s] (210/219) spt-term::screengrid_width_oracle combining_mark_zero_cell_survives_the_repaint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.3143090Z         PASS [   0.005s] (211/219) spt-term::screengrid_width_oracle cup_overwrite_after_wide_glyphs_lands_on_the_same_cells
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.3193300Z         PASS [   0.005s] (212/219) spt-term::screengrid_width_oracle el_cleared_overflow_row_stays_blank_after_repaint
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.3231745Z         PASS [   0.004s] (213/219) spt-term::screengrid_width_oracle ich_dch_erase_across_a_wide_half_leave_no_orphans
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:34.3266572Z         PASS [   0.003s] (214/219) spt-term::screengrid_width_oracle wide_glyph_at_the_margin_fits_exactly_or_wraps_whole
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3345675Z         PASS [   1.008s] (215/219) spt-term::stream bounded_backpressure_stalls_an_unconsumed_reader
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3419423Z         PASS [   0.007s] (216/219) spt-term::stream delivers_every_value_under_resize
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3552733Z         PASS [   0.013s] (217/219) spt-term::surface captures_child_output_off_the_pty
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3602364Z         PASS [   0.005s] (218/219) spt-term::surface resize_under_load_does_not_hang_or_panic
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3651798Z         PASS [   0.005s] (219/219) spt-term::surface spawn_program_in_lands_the_child_in_the_requested_cwd
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3652744Z ────────────
test (self-hosted, Linux, kitsubito)	Test — Phase B (heavy class, serialized, on a now-quiet box) — linux	2026-09-09T04:44:35.3653049Z      Summary [1152.093s] 219 tests run: 219 passed (1 slow), 0 skipped
test (self-hosted, Linux, kitsubito)	Doctests — linux	﻿2026-09-09T04:44:35.3858036Z ##[group]Run bash .github/bench/wrap.sh doctests -- cargo test --workspace --doc
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3858522Z [36;1mbash .github/bench/wrap.sh doctests -- cargo test --workspace --doc[0m
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3874825Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3875111Z env:
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3875302Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3875537Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3875765Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3879961Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3884280Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3884632Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3885075Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3885477Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3886039Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.3886374Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.6377114Z    Compiling n0-future v0.3.2
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.6421701Z    Compiling noq-proto v0.17.0
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.8594747Z    Compiling n0-watcher v0.6.1
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:35.8595186Z    Compiling iroh-dns v0.98.0
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:36.0006083Z    Compiling netwatch v0.16.0
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:36.6078546Z    Compiling portmapper v0.16.0
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:38.4956302Z    Compiling noq v0.18.0
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:39.6326324Z    Compiling iroh-relay v0.98.0
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:42.4233231Z    Compiling iroh v0.98.2
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:49.8630763Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:44:51.7279401Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:03.4054681Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 27.99s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:03.4283396Z    Doc-tests spt_daemon
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2293711Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2294345Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2294635Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2294936Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2295300Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2334519Z    Doc-tests spt_live
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2728904Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2729853Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2731709Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2732812Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2762033Z    Doc-tests spt_msg
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.2762231Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.3111528Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.3112101Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.3112349Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.3112692Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.3113054Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.3145943Z    Doc-tests spt_net
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5511728Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5512381Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5512648Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5512958Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5513321Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5550604Z    Doc-tests spt_poolguard
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5780302Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5780759Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5780978Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5781279Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5781670Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.5811908Z    Doc-tests spt_procident
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6042125Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6042712Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6043317Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6043594Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6043951Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6071629Z    Doc-tests spt_proto
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6415113Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.6415551Z running 1 test
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.7750414Z test crates/spt-proto/src/emit.rs - emit::emit_line (line 140) ... ok
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.7750772Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.7750986Z test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.7751277Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.7775694Z    Doc-tests spt_runtime
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.9921677Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.9921885Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.9922123Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.9922406Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.9922854Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:04.9953751Z    Doc-tests spt_store
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.4477026Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.4477736Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.4478018Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.4478323Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.4478681Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.4508444Z    Doc-tests spt_term
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5168308Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5168928Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5169233Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5170115Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5170411Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5203319Z    Doc-tests spt_test_support
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5420264Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5420918Z running 0 tests
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5421127Z 
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5421457Z test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test (self-hosted, Linux, kitsubito)	Doctests — linux	2026-09-09T04:45:05.5421841Z 
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	﻿2026-09-09T04:45:05.5709121Z ##[group]Run bash .github/bench/wrap.sh clippy -- cargo clippy --workspace --all-targets -- -D warnings
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5709720Z [36;1mbash .github/bench/wrap.sh clippy -- cargo clippy --workspace --all-targets -- -D warnings[0m
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5722192Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5722468Z env:
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5722649Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5722884Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5723109Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5727197Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5731671Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5732023Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5732461Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5732873Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5733289Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:05.5733613Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.0915524Z     Checking cfg-if v1.0.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.0915897Z     Checking typenum v1.20.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.0916750Z     Checking subtle v2.6.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.0918520Z     Checking critical-section v1.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.0960098Z     Checking memchr v2.8.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1070639Z     Checking smallvec v1.15.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1152788Z     Checking cpufeatures v0.2.17
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1153457Z     Checking log v0.4.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1277602Z     Checking libc v0.2.186
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1278154Z     Checking serde_core v1.0.228
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1385959Z     Checking rand_core v0.10.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1386475Z     Checking bitflags v2.12.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1535555Z     Checking zeroize v1.8.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1537590Z     Checking equivalent v1.0.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1585593Z     Checking itoa v1.0.18
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1758617Z     Checking const-oid v0.9.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1791123Z     Checking scopeguard v1.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.1792469Z     Checking hashbrown v0.17.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2043048Z     Checking libm v0.2.16
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2192362Z     Checking zerocopy v0.8.50
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2198632Z     Checking pin-project-lite v0.2.17
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2591167Z    Compiling spt-procident v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-procident)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2695800Z     Checking futures-core v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2800049Z     Checking lock_api v0.4.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2809974Z     Checking bytes v1.11.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.2921806Z     Checking zmij v1.0.21
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.3108514Z     Checking fastrand v2.4.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.3198885Z     Checking der v0.7.10
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.3200211Z     Checking regex-syntax v0.8.10
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.3229588Z     Checking libsqlite3-sys v0.30.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.3760605Z     Checking fallible-streaming-iterator v0.1.9
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.4725157Z     Checking fallible-iterator v0.3.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.4979610Z     Checking spin v0.9.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.5100837Z     Checking stable_deref_trait v1.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.5522063Z    Compiling spt-poolguard v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-poolguard)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.5781813Z     Checking futures-sink v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.5940843Z     Checking slab v0.4.12
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.6417907Z     Checking aho-corasick v1.1.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.6535331Z     Checking futures-io v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.7150669Z     Checking lazy_static v1.5.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.7530655Z     Checking futures-channel v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.7780329Z     Checking futures-task v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.7902437Z     Checking zerofrom v0.1.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.8109040Z     Checking linux-raw-sys v0.12.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.8265433Z     Checking litemap v0.8.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.8534698Z     Checking indexmap v2.14.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.8840977Z     Checking writeable v0.6.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.9033247Z     Checking yoke v0.8.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.9270433Z     Checking utf8_iter v1.0.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.9740635Z     Checking futures-util v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:06.9934306Z     Checking icu_normalizer_data v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.0314493Z     Checking icu_properties_data v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.0530640Z     Checking percent-encoding v2.3.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.0550334Z     Checking http v1.4.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.0677638Z     Checking zerovec v0.11.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.1652477Z     Checking zerotrie v0.2.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.1912569Z     Checking cpufeatures v0.3.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.2420619Z     Checking rustix v1.1.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.2509793Z     Checking generic-array v0.14.7
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.2600297Z     Checking hybrid-array v0.4.12
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.2757108Z     Checking num-traits v0.2.19
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.2893698Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.3160165Z     Checking spki v0.7.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.4341648Z     Checking rustls-pki-types v1.14.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.4469923Z     Checking pkcs8 v0.10.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.5540528Z     Checking pkcs1 v0.7.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.6590566Z     Checking arrayvec v0.7.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.6700601Z     Checking thiserror v2.0.18
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.6828333Z     Checking form_urlencoded v1.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.7260322Z     Checking tinystr v0.8.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.7478280Z     Checking potential_utf v0.1.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.7720546Z     Checking aws-lc-sys v0.41.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.7920681Z    Compiling fnv v1.0.7
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.7940675Z     Checking utf8parse v0.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.8447525Z     Checking block-buffer v0.12.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.8570563Z     Checking crypto-common v0.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.8571792Z     Checking icu_collections v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.8583666Z     Checking inout v0.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.8768541Z     Checking crypto-common v0.1.7
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.8775895Z     Checking block-buffer v0.10.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.9021834Z     Checking icu_locale_core v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.9043845Z     Checking untrusted v0.9.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.9690912Z    Compiling darling_core v0.20.11
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.9857953Z     Checking atomic-waker v1.1.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.9994157Z     Checking const-oid v0.10.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:07.9996025Z     Checking digest v0.10.7
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.0184481Z     Checking thiserror v1.0.69
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.0292911Z     Checking num-integer v0.1.47
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.0501298Z     Checking getrandom v0.2.17
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.0596643Z     Checking getrandom v0.4.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.1851509Z     Checking mio v1.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.1990664Z     Checking rand_core v0.6.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.2206166Z     Checking uuid v1.23.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.2337113Z     Checking fs2 v0.4.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.2339973Z     Checking sha2 v0.10.9
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.2861895Z     Checking socket2 v0.6.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.3209807Z     Checking num-iter v0.1.46
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.3375954Z     Checking ring v0.17.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.3560627Z     Checking signature v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.4127497Z     Checking curve25519-dalek v4.1.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.4495496Z     Checking ed25519 v2.2.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.4586567Z     Checking regex-automata v0.4.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.5335675Z     Checking aws-lc-rs v1.17.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.5448698Z     Checking serial-core v0.4.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.5454579Z     Checking serde v1.0.228
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.5640255Z     Checking serde_json v1.0.150
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.5740673Z     Checking cipher v0.5.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.5837523Z     Checking termios v0.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.6109723Z     Checking ioctl-rs v0.1.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.6371093Z     Checking tokio v1.52.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.6624511Z     Checking hmac v0.12.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.6912914Z     Checking memoffset v0.6.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.7124343Z     Checking serial-unix v0.4.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.7820736Z     Checking pin-utils v0.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.8231244Z     Checking chacha20 v0.10.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.8400487Z     Checking bitflags v1.3.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.8516270Z     Checking serial v0.4.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.8611002Z     Checking filedescriptor v0.8.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.8808137Z     Checking icu_provider v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.8981219Z     Checking nix v0.25.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:08.9230664Z     Checking derive_more v2.1.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.0190727Z     Checking http-body v1.0.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.0460629Z     Checking anyhow v1.0.102
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.0924111Z     Checking rand v0.10.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.1280691Z     Checking downcast-rs v1.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.1393407Z     Checking portable-atomic v1.13.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.1530598Z     Checking icu_normalizer v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.1883646Z     Checking icu_properties v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.2880572Z     Checking ipnet v2.12.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.5160428Z     Checking base64ct v1.8.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.5743093Z     Checking ed25519-dalek v2.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.5892045Z     Checking shell-words v1.1.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.6510741Z     Checking unicode-width v0.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.6631718Z     Checking either v1.16.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.6972301Z     Checking toml_datetime v0.6.11
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.7391651Z     Checking serde_spanned v0.6.9
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.7530641Z     Checking once_cell v1.21.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.7830562Z     Checking vte v0.13.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.8012314Z     Checking spt-proto v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-proto)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.8212369Z     Checking pem-rfc7468 v1.0.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.8445572Z     Checking parking_lot_core v0.9.12
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.8593276Z     Checking rustls-webpki v0.103.13
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.8781137Z     Checking httparse v1.10.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.8963404Z     Checking try-lock v0.2.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.9090515Z     Checking data-encoding v2.11.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.9324358Z     Checking tracing-core v0.1.36
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.9671797Z     Checking tempfile v3.27.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.9795402Z     Checking winnow v0.7.15
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:09.9907776Z     Checking tinyvec_macros v0.1.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.0381012Z     Checking tower-service v0.3.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.0542004Z     Checking toml_write v0.1.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.0988119Z     Checking base64 v0.22.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.1358741Z     Checking tinyvec v1.11.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.2036436Z     Checking parking_lot v0.12.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.2350392Z     Checking want v0.3.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.2611773Z     Checking der v0.8.0-rc.10
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.3127821Z     Checking tracing v0.1.44
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.3373435Z     Checking n0-error v0.1.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.3488733Z     Checking ref-cast v1.0.25
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.4070915Z     Checking inout v0.1.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.4324544Z     Checking httpdate v1.0.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.4590971Z     Checking rustls v0.23.40
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.4870699Z     Checking ppv-lite86 v0.2.21
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.5260811Z     Checking ahash v0.8.12
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.5527900Z     Checking parking v2.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.5650673Z     Checking idna_adapter v1.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.5766445Z     Checking cordyceps v0.3.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.5939977Z     Checking dyn-clone v1.0.20
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.6091209Z     Checking diatomic-waker v0.2.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.6550637Z     Checking spin v0.10.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.6701069Z     Checking idna v1.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.7070733Z     Checking hashbrown v0.14.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.7244997Z     Checking schemars v1.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.7477017Z     Checking regex v1.12.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.7620780Z     Checking futures-lite v2.6.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.8001196Z     Checking cipher v0.4.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.8219854Z     Checking pin-project v1.1.13
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.8910863Z     Checking netlink-packet-core v0.8.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.9070725Z     Checking rand_chacha v0.3.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.9230654Z     Checking futures-buffered v0.2.13
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:10.9635066Z     Checking url v2.5.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.0250763Z     Checking digest v0.11.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.1310587Z     Checking rand v0.8.7
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.1490814Z     Checking universal-hash v0.5.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.1630552Z     Checking sync_wrapper v1.0.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.1730632Z     Checking byteorder v1.5.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.1951415Z    Compiling powerfmt v0.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.2139137Z    Compiling darling_macro v0.20.11
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.2475214Z     Checking opaque-debug v0.3.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.2635108Z     Checking allocator-api2 v0.2.21
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.3086210Z     Checking polyval v0.6.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.3500179Z     Checking hash32 v0.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.3900734Z     Checking hashlink v0.9.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.4270759Z    Compiling deranged v0.5.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.4740754Z     Checking spki v0.8.0-rc.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.4920223Z     Checking crossbeam-utils v0.8.21
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.5074418Z     Checking futures-executor v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.5528458Z     Checking prefix-trie v0.8.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.5844921Z     Checking ryu v1.0.23
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.5982326Z    Compiling num-conv v0.2.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.6100975Z    Compiling darling v0.20.11
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.6335357Z     Checking pkcs8 v0.11.0-rc.10
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.6706348Z    Compiling derive_builder_core v0.20.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.6727114Z    Compiling time-core v0.1.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.7207242Z     Checking rusqlite v0.32.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.7326210Z     Checking tower-layer v0.3.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.7611822Z     Checking signature v3.0.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.7615046Z     Checking futures v0.3.32
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.8323070Z     Checking heapless v0.7.17
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.8327921Z     Checking noq-udp v0.10.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.8511990Z     Checking curve25519-dalek v5.0.0-pre.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.8530349Z     Checking num-bigint-dig v0.8.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.8740792Z     Checking ed25519 v3.0.0-rc.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.8934036Z     Checking ghash v0.5.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.9469313Z     Checking toml_edit v0.22.27
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.9680581Z     Checking sha2 v0.11.0-rc.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:11.9840126Z     Checking aes v0.8.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.0606203Z     Checking ctr v0.9.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.1410512Z     Checking http-body-util v0.1.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.2020863Z     Checking hickory-proto v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.2180796Z     Checking aead v0.5.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.2634884Z    Compiling toml_edit v0.25.12+spec-1.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.3173786Z     Checking cobs v0.3.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.3800702Z     Checking portable-pty v0.8.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.4484712Z     Checking openssl-probe v0.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.4860364Z     Checking postcard v1.1.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.5215082Z     Checking aes-gcm v0.10.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.5388008Z     Checking rustls-native-certs v0.8.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.6419576Z     Checking crossbeam-channel v0.5.15
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.6546653Z     Checking crossbeam-epoch v0.9.18
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.6581712Z     Checking data-encoding-macro v0.1.20
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.6784882Z     Checking netlink-packet-route v0.29.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.7256533Z     Checking lru-slab v0.1.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.8253742Z    Compiling time v0.3.47
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.8370491Z     Checking xml-rs v0.8.28
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.8501816Z     Checking foldhash v0.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.8967820Z    Compiling derive_builder_macro v0.20.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.9301210Z     Checking rustc-hash v2.1.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.9430703Z     Checking rsa v0.9.10
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:12.9812046Z     Checking tagptr v0.2.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.0430884Z     Checking mac-addr v0.3.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.0584689Z     Checking ed25519-dalek v3.0.0-pre.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.0950714Z    Compiling proc-macro-crate v3.5.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.1261101Z     Checking sorted-index-buffer v0.2.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.1393802Z     Checking identity-hash v0.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.1820827Z    Compiling derive_builder v0.20.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.2514089Z     Checking tokio-util v0.7.18
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.2663553Z    Compiling vergen-lib v9.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.2680591Z    Compiling vergen-lib v0.1.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.2910894Z     Checking netlink-sys v0.8.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.3419418Z     Checking tower v0.5.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.3870602Z     Checking iroh-base v0.98.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.4698372Z     Checking netlink-proto v0.12.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.4832188Z    Compiling vergen v9.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.5583483Z     Checking xmltree v0.10.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.5987504Z     Checking moka v0.12.15
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.6210506Z     Checking hashbrown v0.16.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.6370845Z     Checking iroh-metrics v0.38.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.6675001Z    Compiling num_enum_derive v0.7.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.7024431Z     Checking strum v0.28.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.7161078Z     Checking attohttpc v0.30.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.7925822Z     Checking netlink-packet-route v0.30.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.8170834Z     Checking simple-dns v0.9.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.8520823Z     Checking toml v0.8.23
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:13.8661606Z     Checking tower-http v0.6.11
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.0270677Z     Checking h2 v0.4.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.1242060Z     Checking n0-future v0.3.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.1361190Z     Checking tokio-stream v0.1.18
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.2314736Z     Checking n0-watcher v0.6.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.2437641Z     Checking simdutf8 v0.1.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.2810922Z     Checking sha1_smol v1.0.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.3490806Z     Checking arrayref v0.3.9
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.3731008Z     Checking resolv-conf v0.7.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.4025410Z     Checking smol_str v0.1.24
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.4212334Z     Checking constant_time_eq v0.4.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.4396072Z     Checking lru v0.16.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.4398310Z     Checking serde_bytes v0.11.19
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.4690290Z     Checking tokio-rustls v0.26.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.5340787Z     Checking rustls-platform-verifier v0.7.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.5510450Z     Checking noq-proto v0.17.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.5731048Z     Checking acto v0.8.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.5934965Z     Checking blake3 v1.8.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.6141447Z     Checking seize v0.5.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.6170656Z     Checking webpki-roots v1.0.7
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.6509350Z     Checking unicode-width v0.1.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.6653251Z     Checking cmov v0.5.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.6816168Z     Checking num_enum v0.7.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.6817344Z     Checking backon v1.6.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.7353065Z     Checking hkdf v0.12.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.7550628Z     Checking tokio-websockets v0.13.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.7720997Z     Checking sha1 v0.10.6
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.8160813Z    Compiling vergen-gitcl v1.0.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.8277740Z     Checking iroh-dns v0.98.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.8577926Z     Checking papaya v0.2.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.8912350Z     Checking ctutils v0.4.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.9071184Z     Checking spake2 v0.4.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.9250909Z     Checking interprocess v2.4.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:14.9421391Z     Checking spt-test-support v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-test-support)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.0200853Z     Checking errno v0.3.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.0740685Z    Compiling darling_core v0.23.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.0870325Z     Checking anstyle-parse v1.0.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.1201564Z     Checking anstyle v1.0.14
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.1204328Z     Checking anstyle-query v1.1.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.1427018Z     Checking signal-hook-registry v1.4.8
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.1994165Z     Checking foldhash v0.1.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.2005064Z     Checking is_terminal_polyfill v1.70.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.2223081Z     Checking swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.2296316Z     Checking unicode-segmentation v1.13.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.2530718Z     Checking colorchoice v1.0.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.2717106Z     Checking linux-raw-sys v0.4.15
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.2828501Z     Checking itertools v0.13.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.3140802Z     Checking terminal_size v0.4.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.3260917Z     Checking hashbrown v0.15.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.3350973Z     Checking anstream v1.0.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.3496171Z     Checking signal-hook v0.3.18
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.4048425Z     Checking castaway v0.2.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.4503876Z     Checking strsim v0.11.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.4671402Z    Compiling iroh-relay v0.98.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.4954030Z     Checking static_assertions v1.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.5470900Z     Checking signal-hook-mio v0.2.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.5581367Z     Checking clap_lex v1.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.5740631Z     Checking compact_str v0.8.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.6270590Z     Checking strum v0.26.3
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.6358360Z     Checking iana-time-zone v0.1.65
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.6826814Z     Checking cassowary v0.3.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.6855118Z     Checking rustix v0.38.44
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.7150346Z     Checking clap_builder v4.6.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.7272971Z     Checking nucleo-matcher v0.3.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.7702328Z     Checking chrono v0.4.45
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.7884239Z     Checking qrcode v0.14.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:15.9121113Z     Checking bytemuck v1.25.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:16.0340900Z     Checking lru v0.12.5
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:16.1230683Z     Checking rgb v0.8.53
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:16.2800962Z     Checking mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:16.4990589Z     Checking crossterm v0.28.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:16.5072057Z     Checking avt v0.18.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:16.8296067Z     Checking unicode-truncate v1.1.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.3663963Z    Compiling darling_macro v0.23.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.4114187Z     Checking clap v4.6.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.5224275Z    Compiling darling v0.23.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.5614711Z    Compiling instability v0.3.12
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.6465720Z     Checking netdev v0.42.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.8320959Z     Checking ratatui v0.29.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.9534766Z     Checking hyper v1.10.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:17.9535400Z     Checking hickory-net v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:18.2820984Z     Checking netwatch v0.16.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:18.5696148Z     Checking noq v0.18.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:18.7234705Z     Checking hyper-util v0.1.20
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:18.7811949Z     Checking hickory-resolver v0.26.0-beta.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.4619593Z     Checking hyper-rustls v0.27.9
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.4620003Z     Checking igd-next v0.17.1
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.5613346Z     Checking reqwest v0.13.4
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.5861182Z     Checking spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.7432840Z     Checking portmapper v0.16.0
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.8094351Z     Checking spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:19.8095440Z     Checking spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:21.0807212Z     Checking iroh v0.98.2
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:21.5551048Z     Checking spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:24.4787473Z     Checking spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:26.3571300Z     Checking spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:33.0334117Z     Checking spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:33.7251813Z     Checking xtask v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/xtask)
test (self-hosted, Linux, kitsubito)	Clippy (deny warnings) — linux	2026-09-09T04:45:46.4718931Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.85s
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	﻿2026-09-09T04:45:46.6278439Z ##[group]Run actions/checkout@v5
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6278687Z with:
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6278931Z   repository: SaberMage/spt-shell-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6279284Z   path: .adapter-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6281067Z   token: ***
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6281254Z   ssh-strict: true
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6281444Z   ssh-user: git
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6281639Z   persist-credentials: true
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6281836Z   clean: true
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6282017Z   sparse-checkout-cone-mode: true
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6282231Z   fetch-depth: 1
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6282401Z   fetch-tags: false
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6282593Z   show-progress: true
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6282784Z   lfs: false
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6282945Z   submodules: false
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6283137Z   set-safe-directory: true
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6283345Z   allow-unsafe-pr-checkout: false
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6283560Z env:
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6283738Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6283965Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6284217Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6288365Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6293009Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6293362Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6293802Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6294210Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6301935Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.6302336Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8072213Z Syncing repository: SaberMage/spt-shell-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8072683Z ##[group]Getting Git version info
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8073073Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify'
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8073575Z [command]/usr/bin/git version
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8094028Z git version 2.43.0
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8110329Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8116412Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/64e51e73-a481-48f3-9457-0b9e214137cf/.gitconfig'
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8123979Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/64e51e73-a481-48f3-9457-0b9e214137cf' before making global git config changes
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8124810Z Adding repository directory to the temporary git global config as a safe directory
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8127005Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8153665Z ##[group]Initializing the repository
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8156816Z [command]/usr/bin/git init /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8181184Z hint: Using 'master' as the name for the initial branch. This default branch name
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8181622Z hint: is subject to change. To configure the initial branch name to use in all
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8182039Z hint: of your new repositories, which will suppress this warning, call:
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8182334Z hint: 
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8182552Z hint: 	git config --global init.defaultBranch <name>
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8182810Z hint: 
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8183053Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8183462Z hint: 'development'. The just-created branch can be renamed via this command:
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8183762Z hint: 
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8183935Z hint: 	git branch -m <name>
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8185756Z Initialized empty Git repository in /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/.git/
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8192279Z [command]/usr/bin/git remote add origin https://github.com/SaberMage/spt-shell-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8217610Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8217981Z ##[group]Disabling automatic garbage collection
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8220491Z [command]/usr/bin/git config --local gc.auto 0
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8243882Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8244234Z ##[group]Setting up auth
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8248635Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8271254Z [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' || :"
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8487116Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8510605Z [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' || :"
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8696390Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8722382Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8911670Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8939986Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8940340Z ##[group]Determining the default branch
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:46.8942892Z Retrieving the default branch name
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.2769804Z Default branch 'main'
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.2770573Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.2770963Z ##[group]Fetching the repository
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.2781270Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +refs/heads/main:refs/remotes/origin/main
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9003098Z From https://github.com/SaberMage/spt-shell-notify
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9003806Z  * [new branch]      main       -> origin/main
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9029493Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9030114Z ##[group]Determining the checkout info
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9032865Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9038425Z [command]/usr/bin/git sparse-checkout disable
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9089154Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9122623Z ##[group]Checking out the ref
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9125407Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9162334Z Switched to a new branch 'main'
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9163179Z branch 'main' set up to track 'origin/main'.
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9166436Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9196286Z [command]/usr/bin/git log -1 --format=%H
test (self-hosted, Linux, kitsubito)	Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:45:47.9217544Z ee2d37eadc730c0019e0af82d683074c509634a2
test (self-hosted, Linux, kitsubito)	Build notify-shell	﻿2026-09-09T04:45:47.9337587Z ##[group]Run cargo build --manifest-path .adapter-notify/Cargo.toml
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9337992Z [36;1mcargo build --manifest-path .adapter-notify/Cargo.toml[0m
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9358199Z shell: /usr/bin/bash -e {0}
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9358484Z env:
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9358712Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9359221Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9359646Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9364908Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9370731Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9371170Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9371662Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9372062Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9372469Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9372783Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:47.9721948Z     Updating crates.io index
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:48.1418192Z      Locking 11 packages to latest compatible versions
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:48.1731131Z    Compiling serde_core v1.0.229
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:48.1731754Z    Compiling zmij v1.0.23
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:48.1732209Z    Compiling serde_json v1.0.151
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:48.1732528Z    Compiling memchr v2.8.3
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:48.1732780Z    Compiling itoa v1.0.18
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:49.9520178Z    Compiling spt-shell-notify v0.1.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify)
test (self-hosted, Linux, kitsubito)	Build notify-shell	2026-09-09T04:45:50.1233930Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.17s
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	﻿2026-09-09T04:45:50.1336528Z ##[group]Run bash .github/bench/wrap.sh e2e-notify -- cargo test -p spt --test notify_shell_e2e -- --nocapture
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1337128Z [36;1mbash .github/bench/wrap.sh e2e-notify -- cargo test -p spt --test notify_shell_e2e -- --nocapture[0m
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1350321Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1350607Z env:
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1350787Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1358500Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1358786Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1363059Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1367661Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1368023Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1368469Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1368884Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1369566Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1370086Z   SPT_NOTIFY_SHELL_BIN: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target/debug/notify-shell
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.1370509Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:50.4117717Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:53.5837709Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:53.7391691Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:53.7392784Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:53.7393926Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:55.6178719Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:45:56.1970663Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:07.6841005Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.0311907Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.87s
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.0544185Z      Running tests/notify_shell_e2e.rs (target/debug/deps/notify_shell_e2e-3615de7d56844190)
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.0563295Z 
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.0563548Z running 1 test
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.5857397Z test notify_shell_renders_a_commanded_toast ... ok
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.5859987Z 
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.5860939Z test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
test (self-hosted, Linux, kitsubito)	Real-shell E2E (notify) — linux	2026-09-09T04:46:15.5861494Z 
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	﻿2026-09-09T04:46:15.6145090Z ##[group]Run bash .github/bench/wrap.sh e2e-installer -- cargo test -p spt --test oneliner_e2e -- --nocapture
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6145723Z [36;1mbash .github/bench/wrap.sh e2e-installer -- cargo test -p spt --test oneliner_e2e -- --nocapture[0m
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6158480Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6158760Z env:
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6158941Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6159289Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6159522Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6163707Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6168246Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6168599Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6169130Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6169544Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6169954Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6170274Z   SPT_INSTALL_E2E: 1
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.6170460Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:15.8620105Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:16.0696485Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.43s
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:16.0916911Z      Running tests/oneliner_e2e.rs (target/debug/deps/oneliner_e2e-e82dc3cb76998fb3)
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:16.0930946Z 
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:16.0931056Z running 2 tests
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:16.0935880Z test at_logon_task_launches_daemon_in_background_not_foreground ... ok
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:39.3816294Z test install_script_against_staged_release ... ok
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:39.3816823Z 
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:39.3817242Z test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 23.29s
test (self-hosted, Linux, kitsubito)	Installer E2E (staged-release rung) — linux	2026-09-09T04:46:39.3817825Z 
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	﻿2026-09-09T04:46:39.4070032Z ##[group]Run set -euo pipefail
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4070317Z [36;1mset -euo pipefail[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4070546Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4070865Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4071243Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4071553Z [36;1mverdict=PASS[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4071817Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4072269Z [36;1mprintf 'FLOOR_DOCS job=test runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4072679Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4072950Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4073398Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4073857Z [36;1m  exit 1[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4074028Z [36;1mfi[0m
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4087975Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4088265Z env:
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4088454Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4088698Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4088928Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4093312Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4097785Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4098150Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4098605Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4099531Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4099964Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4108538Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	DISK docs floor (Linux)	2026-09-09T04:46:39.4178251Z FLOOR_DOCS job=test runner=Linux free_bytes=146577657856 floor_bytes=34359738368 verdict=PASS sample=INSTANT
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	﻿2026-09-09T04:46:39.4201831Z ##[group]Run bash .github/bench/wrap.sh xtask-check -- cargo run -p xtask -- check
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4202550Z [36;1mbash .github/bench/wrap.sh xtask-check -- cargo run -p xtask -- check[0m
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4214715Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4215005Z env:
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4215200Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4215453Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4215696Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4219961Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4224361Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4224718Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4225159Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4225570Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4225989Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.4226467Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:39.6934315Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:42.8322977Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:42.9882373Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:42.9883594Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:42.9884182Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:44.8605739Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:45.5671526Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:56.9571403Z    Compiling xtask v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/xtask)
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:59.2994484Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.85s
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:46:59.3206608Z      Running `target/debug/xtask check`
test (self-hosted, Linux, kitsubito)	Docs drift gate (CLI ref + llms links) — linux	2026-09-09T04:47:41.5017660Z xtask check: OK
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	﻿2026-09-09T04:47:41.5184925Z ##[group]Run if ! command -v mdbook >/dev/null && [ ! -x "$HOME/.cargo/bin/mdbook" ]; then
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5185540Z [36;1mif ! command -v mdbook >/dev/null && [ ! -x "$HOME/.cargo/bin/mdbook" ]; then[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5185960Z [36;1m  cargo install mdbook --locked[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5186235Z [36;1mfi[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5186484Z [36;1mexport PATH="$HOME/.cargo/bin:$PATH"[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5187013Z [36;1mbash .github/bench/wrap.sh docs-bundle -- cargo run -p xtask -- docs-bundle "$RUNNER_TEMP/spt-docs.tar.gz"[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5187637Z [36;1mtar -tzf "$RUNNER_TEMP/spt-docs.tar.gz" | grep -q '^./llms-full.txt$'[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5188185Z [36;1mtar -tzf "$RUNNER_TEMP/spt-docs.tar.gz" | grep -q '^./manifest.schema.json$'[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5188689Z [36;1mtar -tzf "$RUNNER_TEMP/spt-docs.tar.gz" | grep -q '^./index.html$'[0m
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5202295Z shell: /usr/bin/bash -e {0}
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5202511Z env:
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5202691Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5202963Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5203198Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5207350Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5212487Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5212841Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5213295Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5213705Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5214120Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.5214449Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.7468240Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.7589621Z      Running `target/debug/xtask docs-bundle /home/reavus/actions-runner/_work/_temp/spt-docs.tar.gz`
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.7851017Z  INFO Book building has started
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.7883551Z  INFO Running the html backend
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.8057974Z  WARN unclosed HTML tag `<file>` found in `changelog.md` while exiting Item
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.8061265Z HTML tags must be closed before exiting a markdown element.
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.8061761Z  WARN unclosed HTML tag `<current>` found in `changelog.md` while exiting Item
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.8062719Z HTML tags must be closed before exiting a markdown element.
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.8063163Z  WARN unclosed HTML tag `<current>` found in `changelog.md` while exiting Item
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:41.8063588Z HTML tags must be closed before exiting a markdown element.
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:42.1167414Z  INFO HTML book written to `/home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA/spt-docs-bundle-2166206`
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:42.3696499Z xtask docs-bundle: wrote /home/reavus/actions-runner/_work/_temp/spt-docs.tar.gz (2613374 bytes)
test (self-hosted, Linux, kitsubito)	Docs bundle drift gate (book builds + bundle assembles)	2026-09-09T04:47:42.4982242Z tar: stdout: write error
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	﻿2026-09-09T04:47:42.5095031Z ##[group]Run set -euo pipefail
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5095326Z [36;1mset -euo pipefail[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5095569Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5095904Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5096290Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5096605Z [36;1mverdict=PASS[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5096870Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5097312Z [36;1mprintf 'FLOOR_END job=test runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5097777Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5098049Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5098509Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5099022Z [36;1m  exit 1[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5099213Z [36;1mfi[0m
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5111791Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5112073Z env:
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5112260Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5112518Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5112754Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5116913Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5121608Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5121965Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5122418Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5122830Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5123242Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5123567Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	DISK end floor (Linux)	2026-09-09T04:47:42.5185774Z FLOOR_END job=test runner=Linux free_bytes=143042285568 floor_bytes=34359738368 verdict=PASS sample=INSTANT
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	﻿2026-09-09T04:47:42.5213734Z ##[group]Run bash .github/ci/reap-census.sh end
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5214040Z [36;1mbash .github/ci/reap-census.sh end[0m
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5227400Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5227748Z env:
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5227976Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5228291Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5228577Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5233814Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5238160Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5238512Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5239301Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5239718Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5240146Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5240461Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5282149Z CI-CENSUS scope roots:
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5282440Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5282808Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5283245Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5283679Z   root: /home/reavus/actions-runner/_work/_temp
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5283998Z   root: /home/reavus/spt-n1-oldbroker
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:42.5328282Z CI-CENSUS self-check OK: walked 375 /proc entries, exe resolution live
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9960714Z CI-CENSUS phase=pre-reap box_procs=375 box_fds=8800 family_total=8 scoped=8 unscoped=0 unreadable_path=0 flood_orphans=0
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9961490Z   SCOPED   pid=2116135 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9962095Z   SCOPED   pid=2116243 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9962699Z   SCOPED   pid=2117236 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9963281Z   SCOPED   pid=2117258 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9963857Z   SCOPED   pid=2118376 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9964696Z   SCOPED   pid=2118442 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9965291Z   SCOPED   pid=2119018 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9965886Z   SCOPED   pid=2119086 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:43.9966415Z CI-REAP: settling 5s so cleanly-exiting daemons are not counted as leaks
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5004931Z CI-CENSUS phase=post-settle box_procs=375 box_fds=8832 family_total=8 scoped=8 unscoped=0 unreadable_path=0 flood_orphans=0
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5005592Z   SCOPED   pid=2116135 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5013088Z   SCOPED   pid=2116243 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5013900Z   SCOPED   pid=2117236 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5014705Z   SCOPED   pid=2117258 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5015249Z   SCOPED   pid=2118376 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5015755Z   SCOPED   pid=2118442 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5016270Z   SCOPED   pid=2119018 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.5016752Z   SCOPED   pid=2119086 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8796728Z   REAP  pid=2116135 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8823824Z   REAP  pid=2116243 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8851927Z   REAP  pid=2117236 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8877239Z   REAP  pid=2117258 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8903531Z   REAP  pid=2118376 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8929952Z   REAP  pid=2118442 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8958649Z   REAP  pid=2119018 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:50.8983561Z   REAP  pid=2119086 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:54.1440129Z CI-CENSUS phase=end box_procs=367 box_fds=8640 family_total=0 scoped=0 unscoped=0 unreadable_path=0 flood_orphans=0
test (self-hosted, Linux, kitsubito)	Reap test-spawned daemons + census (job end)	2026-09-09T04:47:54.1444751Z CI-REAP summary: killed=8 kill_failed=0 flood_orphans=none scoped_survivors=0 observed_scoped=0 unreadable_path=0
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	﻿2026-09-09T04:47:54.1475656Z ##[group]Run bash .github/ci/test-temp-sandbox.sh cleanup
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1475999Z [36;1mbash .github/ci/test-temp-sandbox.sh cleanup[0m
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1488620Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1488901Z env:
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1489149Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1489398Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1489642Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1493811Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1498211Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1498575Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1499127Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1499548Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1499977Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1500310Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Remove run-scoped test temp sandbox (Linux)	2026-09-09T04:47:54.1760253Z CI-TMP cleanup: removed /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA on attempt 1/5
test (self-hosted, Linux, kitsubito)	Upload bench ledger	﻿2026-09-09T04:47:54.1819232Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1820263Z ##[group]Run actions/upload-artifact@v4
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1820495Z with:
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1820678Z   name: bench-ledger-test-Linux
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1820892Z   path: bench-ledger/
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1821091Z   if-no-files-found: warn
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1821449Z   retention-days: 30
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1821636Z   compression-level: 6
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1821822Z   overwrite: false
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1822012Z   include-hidden-files: false
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1822213Z env:
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1822385Z   SPT_TEST_EPHEMERAL_ADVISORY_PORTS: 1
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1822621Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1822851Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1827010Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_resume_conn_deadlock|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost|twohost_web)$/)) | (package(spt) & kind(test) & binary(/^(activity_link_push_e2e|attach_link_push_e2e|attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|commune_two_cwd_e2e|coordinator_image_e2e|daemon_refresh_e2e|dummy_harness_e2e|endpoint_autostart_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_briefing_session_scoped_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|idle_edge_drain_e2e|idle_edge_seal_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_compat|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resident_service_e2e|resume_no_control_steal_e2e|resume_template_e2e|run_no_dup_session_e2e|trial_drain_drive_e2e|twohost_cli|wake_resume_bind_e2e|webserve_attachment_e2e|webserve_cross_node_e2e)$/)) | (package(spt-term) & kind(test))
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1831433Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1831772Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1832205Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1832610Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1833021Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-jQbtFA
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.1833339Z ##[endgroup]
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.3233565Z (node:2176330) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.3234262Z (Use `node --trace-deprecation ...` to show where the warning was created)
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.3271610Z With the provided path, there will be 1 file uploaded
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.3275809Z Artifact name is valid!
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.3276231Z Root directory input is valid!
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.8187415Z Beginning upload of artifact content to blob storage
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:54.8338748Z (node:2176330) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.1553273Z Uploaded bytes 404
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.2762632Z Finished uploading artifact content to blob storage!
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.2763694Z SHA256 digest of uploaded artifact zip is 37479b635a7fa4e91aac54433c129f6ea2633422425694165c6b710acb0fbffd
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.2765037Z Finalizing artifact upload
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.5691304Z Artifact bench-ledger-test-Linux.zip successfully finalized. Artifact ID 10088814066
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.5692477Z Artifact bench-ledger-test-Linux has been successfully uploaded! Final size is 404 bytes. Artifact ID is 10088814066
test (self-hosted, Linux, kitsubito)	Upload bench ledger	2026-09-09T04:47:55.5699244Z Artifact download URL: https://github.com/BigscreenVR/spt-bs-core/actions/runs/34310511612/artifacts/10088814066
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	﻿2026-09-09T04:47:55.6012603Z Post job cleanup.
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6676830Z [command]/usr/bin/git version
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6717698Z git version 2.43.0
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6778449Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/a2edac7a-dd48-4717-aace-65a950ab86c8/.gitconfig'
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6786399Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/a2edac7a-dd48-4717-aace-65a950ab86c8' before making global git config changes
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6787086Z Adding repository directory to the temporary git global config as a safe directory
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6790239Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6818413Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.6845258Z [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' || :"
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.7047263Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.7066105Z http.https://github.com/.extraheader
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.7073128Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.7097473Z [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' || :"
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.7281969Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
test (self-hosted, Linux, kitsubito)	Post Checkout spt-shell-notify (real-shell dogfood)	2026-09-09T04:47:55.7306899Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	﻿2026-09-09T04:47:55.7609245Z Post job cleanup.
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8269260Z [command]/usr/bin/git version
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8299976Z git version 2.43.0
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8324942Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/a30ab716-4bf7-4fbb-adf9-46057ee4bce9/.gitconfig'
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8332433Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/a30ab716-4bf7-4fbb-adf9-46057ee4bce9' before making global git config changes
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8333095Z Adding repository directory to the temporary git global config as a safe directory
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8335248Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8365036Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8389948Z [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' || :"
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8582545Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8599999Z http.https://github.com/.extraheader
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8606599Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8640669Z [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' || :"
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8832793Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
test (self-hosted, Linux, kitsubito)	Post Run actions/checkout@v5	2026-09-09T04:47:55.8857344Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
test (self-hosted, Linux, kitsubito)	Complete job	﻿2026-09-09T04:47:55.9162186Z Cleaning up orphan processes
test (self-hosted, Linux, kitsubito)	Complete job	2026-09-09T04:47:56.0031990Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	﻿2026-09-09T05:08:14.2598548Z Current runner version: '2.337.0'
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2606754Z Runner name: 'hfenduleam'
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2607276Z Runner group name: 'Default'
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2607781Z Machine name: 'HFENDULEAM'
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2611314Z ##[group]GITHUB_TOKEN Permissions
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2612861Z Actions: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2613380Z ArtifactMetadata: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2613766Z Attestations: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2614104Z Checks: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2614449Z CodeQuality: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2614829Z Contents: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2615165Z CopilotRequests: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2615501Z Deployments: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2615853Z Discussions: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2616190Z Drives: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2616500Z Issues: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2616819Z Metadata: read
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2617158Z Models: read
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2617504Z Packages: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2617821Z Pages: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2618138Z PullRequests: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2618883Z RepositoryProjects: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2619279Z SecurityEvents: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2619627Z Statuses: write
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2619957Z VulnerabilityAlerts: read
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2620329Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2621660Z Secret source: Actions
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.2622323Z Prepare workflow directory
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.4248820Z Prepare all required actions
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.4290391Z Getting action download info
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:14.7579925Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:15.1862374Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02)
n1-gate (self-hosted, Windows, hfenduleam)	Set up job	2026-09-09T05:08:16.4096994Z Complete job name: n1-gate (self-hosted, Windows, hfenduleam)
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	﻿2026-09-09T05:08:16.6736001Z ##[group]Run Get-Process spt,notify-shell -ErrorAction SilentlyContinue |
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T05:08:16.6737370Z [36;1mGet-Process spt,notify-shell -ErrorAction SilentlyContinue |[0m
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T05:08:16.6738474Z [36;1m  Where-Object { $_.Path -like "$env:GITHUB_WORKSPACE\*" } |[0m
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T05:08:16.6739433Z [36;1m  Stop-Process -Force -ErrorAction SilentlyContinue[0m
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T05:08:16.6740224Z [36;1mexit 0[0m
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T05:08:16.6748512Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	Reap stray workspace daemons (pre-checkout exe-lock guard)	2026-09-09T05:08:16.6749501Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	﻿2026-09-09T05:08:17.1369240Z ##[group]Run actions/checkout@v5
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1370970Z with:
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1372063Z   fetch-depth: 0
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1373042Z   repository: BigscreenVR/spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1404067Z   token: ***
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1404807Z   ssh-strict: true
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1405530Z   ssh-user: git
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1406294Z   persist-credentials: true
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1407108Z   clean: true
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1408163Z   sparse-checkout-cone-mode: true
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1409157Z   fetch-tags: false
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1409923Z   show-progress: true
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1410730Z   lfs: false
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1411449Z   submodules: false
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1412231Z   set-safe-directory: true
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1413123Z   allow-unsafe-pr-checkout: false
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.1414024Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.3354321Z Syncing repository: BigscreenVR/spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.3355921Z ##[group]Getting Git version info
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.3356757Z Working directory is 'C:\actions-runner\_work\spt-bs-core\spt-bs-core'
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.3579051Z [command]"C:\Program Files\Git\cmd\git.exe" version
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6110152Z git version 2.43.0.windows.1
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6191115Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6199120Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\499c059e-dcbd-4758-9da4-a8e4b0d389e6\.gitconfig'
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6218865Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\499c059e-dcbd-4758-9da4-a8e4b0d389e6' before making global git config changes
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6221604Z Adding repository directory to the temporary git global config as a safe directory
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6226773Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6593281Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --get remote.origin.url
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6873734Z https://github.com/BigscreenVR/spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6898834Z ##[group]Removing previously created refs, to avoid conflicts
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.6904010Z [command]"C:\Program Files\Git\cmd\git.exe" rev-parse --symbolic-full-name --verify --quiet HEAD
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.7173775Z refs/heads/golden/webserve-272-r3
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:17.7196835Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --detach
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:18.0995765Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:19.0405953Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:19.0408715Z [command]"C:\Program Files\Git\cmd\git.exe" submodule status
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:23.3151951Z ##[group]Cleaning the repository
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:23.3157075Z [command]"C:\Program Files\Git\cmd\git.exe" clean -ffdx
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:34.9425966Z Removing bench-ledger/
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:34.9426376Z Removing target/
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:34.9464500Z [command]"C:\Program Files\Git\cmd\git.exe" reset --hard HEAD
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.4351432Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.4383748Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.4388273Z ##[group]Disabling automatic garbage collection
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.4393761Z [command]"C:\Program Files\Git\cmd\git.exe" config --local gc.auto 0
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.6904203Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.6904752Z ##[group]Setting up auth
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:35.6912178Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:36.2515532Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:40.8664236Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:40.8972006Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:42.5459603Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:42.5788187Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:45.3992954Z [command]"C:\Program Files\Git\cmd\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:45.4502661Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:45.4503138Z ##[group]Fetching the repository
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:45.4514254Z [command]"C:\Program Files\Git\cmd\git.exe" -c protocol.version=2 fetch --prune --no-recurse-submodules --unshallow origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/*
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:50.1752133Z [command]"C:\Program Files\Git\cmd\git.exe" branch --list --remote origin/golden/webserve-272-r3
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:51.5473826Z   origin/golden/webserve-272-r3
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:51.5501075Z [command]"C:\Program Files\Git\cmd\git.exe" rev-parse refs/remotes/origin/golden/webserve-272-r3
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1079474Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1136004Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1136852Z ##[group]Determining the checkout info
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1137444Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1144731Z [command]"C:\Program Files\Git\cmd\git.exe" sparse-checkout disable
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1692635Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all extensions.worktreeConfig
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1976083Z ##[group]Checking out the ref
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.1980126Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.2674843Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.2675357Z Your branch is up to date with 'origin/golden/webserve-272-r3'.
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.2675718Z Switched to and reset branch 'golden/webserve-272-r3'
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.2701647Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.5660107Z [command]"C:\Program Files\Git\cmd\git.exe" log -1 --format=%H
n1-gate (self-hosted, Windows, hfenduleam)	Run actions/checkout@v5	2026-09-09T05:08:53.6144679Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	﻿2026-09-09T05:08:53.6462444Z ##[group]Run $floorBytes = 32GB
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6462825Z [36;1m$floorBytes = 32GB[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6463098Z [36;1m$drive = (Get-Item $env:GITHUB_WORKSPACE).PSDrive[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6463384Z [36;1m$freeBytes = [int64]$drive.Free[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6463692Z [36;1m$verdict = if ($freeBytes -lt $floorBytes) { "RED" } else { "PASS" }[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6464187Z [36;1mWrite-Host "FLOOR_START job=n1-gate runner=Windows free_bytes=$freeBytes floor_bytes=$floorBytes verdict=$verdict sample=INSTANT"[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6464649Z [36;1mif ($freeBytes -lt $floorBytes) {[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6465069Z [36;1m  Write-Error "RESOURCE=disk drive=$($drive.Root) free_bytes=$freeBytes floor_bytes=$floorBytes"[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6465495Z [36;1m  exit 1[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6465677Z [36;1m}[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6471633Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.6471960Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	DISK start floor (Windows)	2026-09-09T05:08:53.8812802Z FLOOR_START job=n1-gate runner=Windows free_bytes=153305182208 floor_bytes=34359738368 verdict=PASS sample=INSTANT
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	﻿2026-09-09T05:08:53.9715348Z ##[group]Run .github/ci/reap-census.ps1 -Phase start
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:53.9716056Z [36;1m.github/ci/reap-census.ps1 -Phase start[0m
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:53.9726069Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:53.9726618Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.2589245Z CI-CENSUS scope roots:
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.2600509Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.2602053Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\target
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.2603319Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.2604582Z   root: C:\actions-runner\_work\_temp
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.2606197Z   root: C:\Users\decid\spt-n1-oldbroker
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3368428Z CI-CENSUS phase=start box_procs=615 box_handles=266733 family_total=17 family_handles=2159 scoped=0 unscoped=17 unreadable_path=5
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3416737Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3418048Z   FOREIGN  pid=11376   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3419115Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3419929Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3420999Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3421934Z   UNREAD   pid=33212   handles=27     spt <path unreadable — session-0 or access denied>
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3422638Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3424167Z   UNREAD   pid=42028   handles=27     spt <path unreadable — session-0 or access denied>
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3424615Z   FOREIGN  pid=45660   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3425108Z   FOREIGN  pid=48232   handles=695    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3425909Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3426954Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3427636Z   FOREIGN  pid=51992   handles=178    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3428416Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3429712Z   UNREAD   pid=54472   handles=27     spt <path unreadable — session-0 or access denied>
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3430258Z   UNREAD   pid=55136   handles=27     spt <path unreadable — session-0 or access denied>
n1-gate (self-hosted, Windows, hfenduleam)	Process census (job start)	2026-09-09T05:08:54.3430937Z   UNREAD   pid=59512   handles=0      spt <path unreadable — session-0 or access denied>
n1-gate (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	﻿2026-09-09T05:08:54.5812992Z ##[group]Run .github/ci/test-temp-sandbox.ps1 -Phase setup
n1-gate (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T05:08:54.5813545Z [36;1m.github/ci/test-temp-sandbox.ps1 -Phase setup[0m
n1-gate (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T05:08:54.5820084Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T05:08:54.5820512Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Create run-scoped test temp sandbox (Windows)	2026-09-09T05:08:54.8829617Z CI-TMP setup: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	﻿2026-09-09T05:08:55.1419213Z ##[group]Run $ErrorActionPreference = "Stop"
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1485828Z [36;1m$ErrorActionPreference = "Stop"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1486191Z [36;1m$PIN = "0c95435"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1486748Z [36;1m$CACHE = "$env:USERPROFILE\spt-n1-oldbroker"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1487154Z [36;1m$BIN = "$CACHE\target\debug\spt.exe"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1487619Z [36;1m$built = if (Test-Path "$CACHE\.builtpin") { (Get-Content "$CACHE\.builtpin").Trim() } else { "" }[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1488239Z [36;1mif (-not (Test-Path $BIN) -or $built -ne $PIN) {[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1488677Z [36;1m  if (Test-Path $CACHE) { Remove-Item -Recurse -Force $CACHE }[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1489070Z [36;1m  git clone $env:GITHUB_WORKSPACE $CACHE[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1489473Z [36;1m  git -C $CACHE checkout $PIN[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1489899Z [36;1m  # CARGO_INCREMENTAL=0 — see the Linux arm's note: this pinned cache is the[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1491124Z [36;1m  # only COLD one-shot build in this workflow (rm -rf'd and rebuilt when the pin[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1491819Z [36;1m  # moves, consumed as a binary in between), which is exactly the scope of the[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1492389Z [36;1m  # releases#103 finding. The persistent workspace target is left incremental.[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1492832Z [36;1m  $env:CARGO_INCREMENTAL = "0"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1493454Z [36;1m  .github/bench/wrap.ps1 -Step "n1-oldbroker-build" -Command "cargo build --manifest-path '$CACHE\Cargo.toml' -p spt --bin spt"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1494068Z [36;1m  Remove-Item Env:\CARGO_INCREMENTAL[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1494380Z [36;1m  Set-Content "$CACHE\.builtpin" $PIN[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1494635Z [36;1m}[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1494829Z [36;1m$env:SPT_N1_OLD_BROKER = $BIN[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1495356Z [36;1m.github/bench/wrap.ps1 -Step "n1-pairing" -Command "cargo test -p spt --test n1_pairing -- --nocapture"[0m
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1505052Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1505459Z env:
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1505870Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1506600Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1507434Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:55.1507877Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:59.2417373Z    Compiling proc-macro2 v1.0.106
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:59.2417737Z    Compiling quote v1.0.45
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:59.2417953Z    Compiling unicode-ident v1.0.24
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:59.2418527Z    Compiling cfg-if v1.0.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:59.9175348Z    Compiling serde_core v1.0.228
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:08:59.9380920Z    Compiling serde v1.0.228
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:01.8915044Z    Compiling windows-link v0.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:02.7381633Z    Compiling typenum v1.20.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:02.7862792Z    Compiling windows-sys v0.61.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:04.1021138Z    Compiling version_check v0.9.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:04.6521773Z    Compiling portable-atomic v1.13.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:04.8811882Z    Compiling syn v2.0.117
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:06.3580713Z    Compiling getrandom v0.3.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:06.8480376Z    Compiling pin-project-lite v0.2.17
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:06.9398578Z    Compiling critical-section v1.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:07.3674845Z    Compiling subtle v2.6.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:07.4913561Z    Compiling jobserver v0.1.34
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:07.5084914Z    Compiling memchr v2.8.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:07.7577198Z    Compiling shlex v2.0.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:07.9994618Z    Compiling find-msvc-tools v0.1.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:08.7731650Z    Compiling cc v1.2.63
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:08.8738029Z    Compiling generic-array v0.14.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:09.3953572Z    Compiling smallvec v1.15.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:10.3722727Z    Compiling equivalent v1.0.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:10.6207078Z    Compiling futures-core v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:10.6343865Z    Compiling itoa v1.0.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:11.0464882Z    Compiling bytes v1.11.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:11.1012174Z    Compiling getrandom v0.2.17
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:11.2415857Z    Compiling serde_derive v1.0.228
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:11.4384443Z    Compiling zeroize_derive v1.4.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:11.7816845Z    Compiling semver v1.0.28
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:11.9933392Z    Compiling crypto-common v0.1.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:12.2126253Z    Compiling rustc_version v0.4.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:12.3545281Z    Compiling synstructure v0.13.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:12.4826625Z    Compiling zeroize v1.8.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:12.8011313Z    Compiling stable_deref_trait v1.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:13.1057573Z    Compiling socket2 v0.6.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:13.1279038Z    Compiling autocfg v1.5.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:13.2866268Z    Compiling log v0.4.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:14.0231169Z    Compiling zerofrom-derive v0.1.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:14.2166141Z    Compiling rand_core v0.10.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:14.3186966Z    Compiling yoke-derive v0.8.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:15.5314715Z    Compiling tokio-macros v2.7.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:16.9640737Z    Compiling zerofrom v0.1.8
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:17.4047631Z    Compiling mio v1.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:17.4277918Z    Compiling futures-sink v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:17.7279015Z    Compiling slab v0.4.12
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:17.8589164Z    Compiling futures-io v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:17.8620719Z    Compiling yoke v0.8.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.0007297Z    Compiling once_cell v1.21.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.0543524Z    Compiling futures-channel v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.3815085Z    Compiling tokio v1.52.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.4573707Z    Compiling futures-macro v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.4788141Z    Compiling futures-task v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.6673722Z    Compiling rustversion v1.0.22
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:18.9426779Z    Compiling scopeguard v1.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:19.0176832Z    Compiling hashbrown v0.17.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:19.0810600Z    Compiling getrandom v0.4.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:19.4877421Z    Compiling cpufeatures v0.2.17
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:19.5648170Z    Compiling futures-util v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:19.9022886Z    Compiling indexmap v2.14.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:19.9330205Z    Compiling lock_api v0.4.14
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:20.1492842Z    Compiling zerovec-derive v0.11.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:21.0659899Z    Compiling zerovec v0.11.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:21.6913473Z    Compiling displaydoc v0.2.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:22.0886466Z    Compiling hybrid-array v0.4.12
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:22.5614149Z    Compiling libm v0.2.16
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:22.7032226Z    Compiling fnv v1.0.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:22.7914505Z    Compiling num-traits v0.2.19
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:22.9703573Z    Compiling libc v0.2.186
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:24.0174696Z    Compiling const-oid v0.9.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:24.0442116Z    Compiling strsim v0.11.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:24.4860487Z    Compiling cfg_aliases v0.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:24.8470295Z    Compiling tinystr v0.8.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:25.2972920Z    Compiling block-buffer v0.12.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:25.3272129Z    Compiling crypto-common v0.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:25.4002062Z    Compiling tracing-core v0.1.36
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:25.5323913Z    Compiling tracing-attributes v0.1.31
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:26.2855414Z    Compiling writeable v0.6.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:26.3544594Z    Compiling litemap v0.8.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:26.4694110Z    Compiling zerotrie v0.2.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:26.7702182Z    Compiling tracing v0.1.44
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:26.7815295Z    Compiling icu_locale_core v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:26.7991675Z    Compiling potential_utf v0.1.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.0707450Z    Compiling cmake v0.1.58
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.2332723Z    Compiling icu_normalizer_data v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.2774555Z    Compiling icu_properties_data v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.5454181Z    Compiling fs_extra v1.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.6647887Z    Compiling dunce v1.0.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.9538136Z    Compiling utf8_iter v1.0.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:27.9733700Z    Compiling ident_case v1.0.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:28.0600250Z    Compiling aws-lc-sys v0.41.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:28.2632787Z    Compiling icu_collections v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:28.5044675Z    Compiling icu_provider v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:29.2434701Z    Compiling tokio-util v0.7.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:31.4268525Z    Compiling block-buffer v0.10.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:32.9880397Z    Compiling percent-encoding v2.3.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:33.0233147Z    Compiling digest v0.10.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:33.1388967Z    Compiling icu_properties v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:33.4493236Z    Compiling icu_normalizer v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:33.5250953Z    Compiling inout v0.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:33.8942435Z    Compiling spin v0.9.8
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:34.3088349Z    Compiling http v1.4.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:34.3545199Z    Compiling ring v0.17.14
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:34.6100266Z    Compiling cpufeatures v0.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:34.7430203Z    Compiling aws-lc-rs v1.17.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:35.0856833Z    Compiling unicode-segmentation v1.13.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:35.1223176Z    Compiling thiserror v2.0.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:35.4227869Z    Compiling zerocopy v0.8.50
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:35.7346874Z    Compiling idna_adapter v1.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:35.8468057Z    Compiling cipher v0.5.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:36.1120686Z    Compiling rand_core v0.6.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:36.3363443Z    Compiling thiserror-impl v2.0.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:36.3701814Z    Compiling curve25519-dalek-derive v0.1.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:36.8665523Z    Compiling chacha20 v0.10.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:37.6706938Z    Compiling idna v1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:38.5187924Z    Compiling form_urlencoded v1.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:38.9578154Z    Compiling ipnet v2.12.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:39.2820847Z    Compiling rustls-pki-types v1.14.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:39.8399362Z    Compiling bitflags v2.12.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:39.8507151Z    Compiling winapi v0.3.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:40.0874881Z    Compiling untrusted v0.9.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:40.1447254Z    Compiling url v2.5.8
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:40.5081452Z    Compiling rand v0.10.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:41.0959809Z    Compiling darling_core v0.20.11
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:41.3188050Z    Compiling windows-strings v0.5.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:41.9661526Z    Compiling windows-result v0.4.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:42.4467265Z    Compiling rustls v0.23.40
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:42.8890465Z    Compiling heck v0.5.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:43.5789250Z    Compiling darling_macro v0.20.11
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:43.5803936Z    Compiling convert_case v0.10.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:44.0714795Z    Compiling atomic-waker v1.1.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:44.3219633Z    Compiling unicode-xid v0.2.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:44.3944534Z    Compiling const-oid v0.10.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:44.4238099Z    Compiling anyhow v1.0.102
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:44.6010214Z    Compiling derive_more-impl v2.1.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:45.0933608Z    Compiling darling v0.20.11
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:45.3443868Z    Compiling httparse v1.10.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:45.4246619Z    Compiling parking_lot_core v0.9.12
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:45.6289648Z    Compiling fastrand v2.4.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:46.1774849Z    Compiling derive_builder_core v0.20.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:46.6322068Z    Compiling h2 v0.4.14
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:47.0312685Z    Compiling http-body v1.0.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:47.4333784Z    Compiling curve25519-dalek v4.1.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:47.8945222Z    Compiling ahash v0.8.12
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:47.9336230Z    Compiling derive_more v2.1.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:48.1026340Z    Compiling powerfmt v0.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:48.2026831Z    Compiling either v1.16.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:48.4625801Z    Compiling base64ct v1.8.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:48.4690598Z    Compiling deranged v0.5.8
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:49.0241060Z    Compiling pem-rfc7468 v1.0.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:50.8834625Z    Compiling derive_builder_macro v0.20.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:54.1315246Z    Compiling ppv-lite86 v0.2.21
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:54.1389715Z    Compiling signature v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:55.9901414Z    Compiling lazy_static v1.5.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:56.1389917Z    Compiling sha2 v0.10.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:56.1976291Z    Compiling der v0.7.10
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:56.3040673Z    Compiling uuid v1.23.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:56.7737717Z    Compiling spez v0.1.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:56.9364599Z    Compiling windows-implement v0.60.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:57.3503779Z    Compiling windows-interface v0.59.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:57.8886714Z    Compiling n0-error-macros v0.1.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:57.9350831Z    Compiling try-lock v0.2.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:58.0136995Z    Compiling num-conv v0.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:58.0999121Z    Compiling base64 v0.22.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:58.1410227Z    Compiling tower-service v0.3.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:58.4426045Z    Compiling data-encoding v2.11.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:58.6118927Z    Compiling zmij v1.0.21
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:58.7362073Z    Compiling pkg-config v0.3.33
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.0509899Z    Compiling tinyvec_macros v0.1.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.1025979Z    Compiling time-core v0.1.8
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.2804477Z    Compiling vcpkg v0.2.15
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.4059605Z    Compiling tinyvec v1.11.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.7314712Z    Compiling n0-error v0.1.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.8468256Z    Compiling want v0.3.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:09:59.9732650Z    Compiling libsqlite3-sys v0.30.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:00.0167822Z    Compiling windows-core v0.62.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:00.2707020Z    Compiling spki v0.7.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:00.5187648Z    Compiling rand_chacha v0.3.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:00.7971805Z    Compiling parking_lot v0.12.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:00.9994617Z    Compiling derive_builder v0.20.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:01.4004318Z    Compiling der v0.8.0-rc.10
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:01.6615805Z    Compiling num-integer v0.1.47
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:01.9518458Z    Compiling n0-future v0.3.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:02.0207433Z    Compiling vergen-lib v9.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:02.2732946Z    Compiling pin-project-internal v1.1.13
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:02.5683514Z    Compiling inout v0.1.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:02.6942643Z    Compiling crossbeam-utils v0.8.21
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:03.1579749Z    Compiling httpdate v1.0.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:03.2250391Z    Compiling spt-procident v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-procident)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:03.3125403Z    Compiling cordyceps v0.3.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:03.3772748Z    Compiling windows_x86_64_msvc v0.52.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:03.7212286Z    Compiling diatomic-waker v0.2.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:03.7658805Z    Compiling spin v0.10.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:04.0034787Z    Compiling num-bigint-dig v0.8.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:04.0123916Z    Compiling winnow v1.0.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:04.0330303Z    Compiling parking v2.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:04.3640506Z    Compiling serde_json v1.0.150
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:04.8357467Z    Compiling futures-lite v2.6.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:05.2786789Z    Compiling toml_parser v1.1.2+spec-1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:05.4533504Z    Compiling futures-buffered v0.2.13
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:05.6924155Z    Compiling spt-poolguard v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-poolguard)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:05.8180752Z    Compiling pin-project v1.1.13
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:05.9862737Z    Compiling hyper v1.10.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:06.5212706Z    Compiling cipher v0.4.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:07.0236999Z    Compiling spki v0.8.0-rc.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:07.6149301Z    Compiling num-iter v0.1.46
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:07.9038388Z    Compiling hashbrown v0.14.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:08.2596049Z    Compiling rand v0.8.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:08.6788682Z    Compiling pkcs8 v0.10.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:10.0517262Z    Compiling ed25519 v2.2.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:11.3808488Z    Compiling digest v0.11.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:11.6088598Z    Compiling noq-udp v0.10.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:11.6544417Z    Compiling vergen v9.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:11.7145397Z    Compiling vergen-lib v0.1.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:12.1249078Z    Compiling heapless v0.7.17
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:12.1523759Z    Compiling curve25519-dalek v5.0.0-pre.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:12.1734490Z    Compiling universal-hash v0.5.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:12.5945428Z    Compiling sync_wrapper v1.0.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:12.9293872Z    Compiling aho-corasick v1.1.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:13.0046293Z    Compiling opaque-debug v0.3.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:13.0077560Z    Compiling toml_datetime v1.1.1+spec-1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:13.3117731Z    Compiling byteorder v1.5.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:13.4573325Z    Compiling regex-syntax v0.8.10
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:13.7023000Z    Compiling allocator-api2 v0.2.21
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:14.3273554Z    Compiling hash32 v0.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:14.9388912Z    Compiling toml_edit v0.25.12+spec-1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:15.7951336Z    Compiling regex-automata v0.4.14
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:16.0971079Z    Compiling polyval v0.6.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:17.3761748Z    Compiling ed25519-dalek v2.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:17.9303762Z    Compiling pkcs1 v0.7.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:19.0246783Z    Compiling hashlink v0.9.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:19.9077648Z    Compiling hyper-util v0.1.20
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:20.7015551Z    Compiling pkcs8 v0.11.0-rc.10
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:21.4163680Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:22.7779115Z    Compiling prefix-trie v0.8.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:24.5207751Z    Compiling futures-executor v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:24.6312984Z    Compiling vergen-gitcl v1.0.8
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:24.8107488Z    Compiling windows-threading v0.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.2031619Z    Compiling signature v3.0.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.3276156Z    Compiling fallible-streaming-iterator v0.1.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.4204644Z    Compiling ryu v1.0.23
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.4391910Z    Compiling fallible-iterator v0.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.8743474Z    Compiling tower-layer v0.3.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.9063673Z    Compiling rusqlite v0.32.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:25.9647979Z    Compiling data-encoding-macro-internal v0.1.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:26.0303741Z    Compiling ed25519 v3.0.0-rc.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:26.7384314Z    Compiling hickory-proto v0.26.0-beta.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:26.8629330Z    Compiling windows-future v0.3.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:27.2969527Z    Compiling futures v0.3.32
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:27.4585142Z    Compiling windows-targets v0.52.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:27.5357552Z    Compiling rsa v0.9.10
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:27.6059462Z    Compiling spt-proto v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-proto)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:28.4601032Z    Compiling regex v1.12.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:30.7553393Z    Compiling ghash v0.5.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:31.3325784Z    Compiling proc-macro-crate v3.5.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:32.9326449Z    Compiling sha2 v0.11.0-rc.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:33.5483011Z    Compiling ctr v0.9.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:34.8113492Z    Compiling aes v0.8.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:35.0716918Z    Compiling windows-collections v0.3.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:35.5665696Z    Compiling windows-numerics v0.3.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:35.5984265Z    Compiling time v0.3.47
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:35.7790213Z    Compiling http-body-util v0.1.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:36.0023997Z    Compiling fs2 v0.4.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:36.2573565Z    Compiling cobs v0.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:36.4236650Z    Compiling aead v0.5.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:36.4390918Z    Compiling postcard-derive v0.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:36.5261292Z    Compiling ipconfig v0.3.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:36.9858498Z    Compiling arrayvec v0.7.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:37.0009820Z    Compiling widestring v1.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:37.1709243Z    Compiling utf8parse v0.2.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:37.8937888Z    Compiling postcard v1.1.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:37.9886497Z    Compiling aes-gcm v0.10.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:38.1612119Z    Compiling windows v0.62.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:38.3365248Z    Compiling ed25519-dalek v3.0.0-pre.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:38.7314981Z    Compiling num_enum_derive v0.7.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:39.8652976Z    Compiling windows-sys v0.59.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:41.4886568Z    Compiling data-encoding-macro v0.1.20
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:41.7327839Z    Compiling tower v0.5.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:42.6350286Z    Compiling crossbeam-epoch v0.9.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:43.4255836Z    Compiling crossbeam-channel v0.5.15
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:44.4090088Z    Compiling iroh-metrics-derive v0.4.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:46.5918378Z    Compiling strum_macros v0.28.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:48.4492054Z    Compiling windows-registry v0.6.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:49.0574547Z    Compiling chrono v0.4.45
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:50.6106556Z    Compiling netwatch v0.16.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:51.1729734Z    Compiling noq v0.18.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:51.7427278Z    Compiling memoffset v0.6.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:52.0328895Z    Compiling acto v0.8.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:52.6181213Z    Compiling async-trait v0.1.89
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:52.9442712Z    Compiling enum-assoc v1.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:53.8290607Z    Compiling blake3 v1.8.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:53.8297773Z    Compiling mac-addr v0.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:54.0568155Z    Compiling identity-hash v0.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:54.6779736Z    Compiling ref-cast v1.0.25
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:54.9809670Z    Compiling thiserror v1.0.69
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:55.1727472Z    Compiling lru-slab v0.1.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:56.5354766Z    Compiling tagptr v0.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:57.0539576Z    Compiling sorted-index-buffer v0.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:57.7100055Z    Compiling xml-rs v0.8.28
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:57.7156726Z    Compiling rustc-hash v2.1.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:57.7286327Z    Compiling foldhash v0.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:58.2217219Z    Compiling hashbrown v0.16.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:58.2539764Z    Compiling moka v0.12.15
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:58.8273588Z    Compiling xmltree v0.10.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:59.3688910Z    Compiling netdev v0.42.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:10:59.8147439Z    Compiling wmi v0.18.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:00.3351616Z    Compiling strum v0.28.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:00.5086288Z    Compiling iroh-metrics v0.38.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:00.6491559Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:01.4272308Z    Compiling tower-http v0.6.11
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:01.5051901Z    Compiling iroh-base v0.98.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:01.5409641Z    Compiling num_enum v0.7.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:01.7080640Z    Compiling iroh-relay v0.98.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:01.9398513Z    Compiling n0-watcher v0.6.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:02.2199527Z    Compiling attohttpc v0.30.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:02.2299121Z    Compiling simple-dns v0.9.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:02.4678287Z    Compiling tokio-stream v0.1.18
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:03.0925913Z    Compiling serial-core v0.4.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:03.2691535Z    Compiling toml_datetime v0.6.11
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:03.5176627Z    Compiling serde_spanned v0.6.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:03.6088625Z    Compiling ref-cast-impl v1.0.25
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:03.9170731Z    Compiling thiserror-impl v1.0.69
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:04.4023315Z    Compiling serde_derive_internals v0.29.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:04.4143729Z    Compiling sha1_smol v1.0.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:04.8694570Z    Compiling constant_time_eq v0.4.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:04.8735819Z    Compiling winnow v0.7.15
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:05.0480601Z    Compiling toml_write v0.1.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:05.2111184Z    Compiling arrayref v0.3.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:05.2822682Z    Compiling winreg v0.10.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:05.4719512Z    Compiling smol_str v0.1.24
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:05.7561440Z    Compiling simdutf8 v0.1.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:05.7784013Z    Compiling resolv-conf v0.7.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:06.1530571Z    Compiling schemars_derive v1.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:06.4914132Z    Compiling toml_edit v0.22.27
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:07.5281556Z    Compiling iroh-dns v0.98.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:07.5588012Z    Compiling serial-windows v0.4.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:07.7153842Z    Compiling igd-next v0.17.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:10.3945360Z    Compiling lru v0.16.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:10.4738693Z    Compiling webpki-roots v1.0.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:10.5180722Z    Compiling hmac v0.12.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:10.5716746Z    Compiling darling_core v0.23.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:10.6371613Z    Compiling seize v0.5.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:11.2977676Z    Compiling iroh v0.98.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:11.6480310Z    Compiling serde_bytes v0.11.19
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:11.8561600Z    Compiling anstyle v1.0.14
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.0373660Z    Compiling dyn-clone v1.0.20
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.2333019Z    Compiling pin-utils v0.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.3182519Z    Compiling bitflags v1.3.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.5486106Z    Compiling cmov v0.5.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.5533487Z    Compiling once_cell_polyfill v1.70.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.6361188Z    Compiling anstyle-wincon v3.0.11
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.7595450Z    Compiling ctutils v0.4.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:12.8761126Z    Compiling nix v0.25.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:13.0880318Z    Compiling schemars v1.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:13.4819519Z    Compiling darling_macro v0.23.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:13.7066819Z    Compiling papaya v0.2.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:14.1692331Z    Compiling hkdf v0.12.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:14.2413154Z    Compiling portmapper v0.16.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:14.5120790Z    Compiling toml v0.8.23
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:15.3475802Z    Compiling serial v0.4.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:15.4749593Z    Compiling filedescriptor v0.8.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:15.6763825Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:16.6357616Z    Compiling anstyle-parse v1.0.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:16.9990925Z    Compiling shared_library v0.1.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:17.3422931Z    Compiling backon v1.6.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:17.7373584Z    Compiling anstyle-query v1.1.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:17.8823666Z    Compiling vte_generate_state_changes v0.1.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:18.5014235Z    Compiling colorchoice v1.0.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:18.8106341Z    Compiling unicode-width v0.2.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:18.9944444Z    Compiling is_terminal_polyfill v1.70.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:19.1321001Z    Compiling shell-words v1.1.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:19.3101327Z    Compiling downcast-rs v1.2.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:19.7277468Z    Compiling foldhash v0.1.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:19.7658209Z    Compiling paste v1.0.15
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:19.9565342Z    Compiling instability v0.3.12
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:20.0926633Z    Compiling hashbrown v0.15.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:20.9987594Z    Compiling portable-pty v0.8.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:21.1102691Z    Compiling anstream v1.0.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:21.9547589Z    Compiling vte v0.13.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:22.8032138Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:23.1146599Z    Compiling spake2 v0.4.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:23.4880332Z    Compiling darling v0.23.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:24.1037102Z    Compiling itertools v0.13.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:24.2900907Z    Compiling crossterm_winapi v0.9.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:26.1495446Z    Compiling strum_macros v0.26.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:26.3378657Z    Compiling sha1 v0.10.6
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:27.6125307Z    Compiling castaway v0.2.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:27.9058791Z    Compiling terminal_size v0.4.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:28.0294342Z    Compiling unicode-width v0.1.14
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:28.3150295Z    Compiling static_assertions v1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:28.5914700Z    Compiling recvmsg v1.0.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:29.0956018Z    Compiling indoc v2.0.7
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:29.2209156Z    Compiling clap_lex v1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:29.5543703Z    Compiling doctest-file v1.1.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:30.4018119Z    Compiling interprocess v2.4.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:31.5537836Z    Compiling clap_builder v4.6.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:31.5904159Z    Compiling strum v0.26.3
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:31.9505281Z    Compiling compact_str v0.8.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:32.0335745Z    Compiling unicode-truncate v1.1.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:32.5784923Z    Compiling crossterm v0.28.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:33.1415171Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:33.9236179Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:35.8796573Z    Compiling lru v0.12.5
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:36.4642577Z    Compiling clap_derive v4.6.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:36.7444025Z    Compiling error-code v3.3.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:36.7664575Z    Compiling cassowary v0.3.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:38.3759710Z    Compiling clipboard-win v5.4.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:40.5774312Z    Compiling ratatui v0.29.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:41.8758392Z    Compiling clap v4.6.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:42.0695025Z    Compiling nucleo-matcher v0.3.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:42.2515885Z    Compiling qrcode v0.14.1
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:43.2850029Z    Compiling tempfile v3.27.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:43.8955315Z    Compiling spt-test-support v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-test-support)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:11:58.4121460Z    Compiling rustls-webpki v0.103.13
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:02.2069297Z    Compiling tokio-rustls v0.26.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:02.2069674Z    Compiling rustls-platform-verifier v0.7.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:02.2069959Z    Compiling noq-proto v0.17.0
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:05.9693833Z    Compiling hyper-rustls v0.27.9
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:06.0237055Z    Compiling hickory-net v0.26.0-beta.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:06.0701351Z    Compiling tokio-websockets v0.13.2
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:06.4561349Z    Compiling reqwest v0.13.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:08.5722770Z    Compiling hickory-resolver v0.26.0-beta.4
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:30.4141438Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:32.6981630Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:12:52.0221570Z    Compiling spt v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:07.1000703Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 11s
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:07.1344429Z      Running tests\n1_pairing.rs (target\debug\deps\n1_pairing-1d293ed5eb9d5c33.exe)
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:08.2317714Z 
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:08.2318049Z running 1 test
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:17.6712385Z test new_brain_serves_against_old_broker ... ok
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:17.6712697Z 
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:17.6712935Z test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.44s
n1-gate (self-hosted, Windows, hfenduleam)	N-1 gate (new-brain × old-broker) — windows	2026-09-09T05:13:17.6713267Z 
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	﻿2026-09-09T05:13:17.8999120Z ##[group]Run $floorBytes = 32GB
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.8999364Z [36;1m$floorBytes = 32GB[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.8999567Z [36;1m$drive = (Get-Item $env:GITHUB_WORKSPACE).PSDrive[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.8999785Z [36;1m$freeBytes = [int64]$drive.Free[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9000011Z [36;1m$verdict = if ($freeBytes -lt $floorBytes) { "RED" } else { "PASS" }[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9000423Z [36;1mWrite-Host "FLOOR_END job=n1-gate runner=Windows free_bytes=$freeBytes floor_bytes=$floorBytes verdict=$verdict sample=INSTANT"[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9000780Z [36;1mif ($freeBytes -lt $floorBytes) {[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9001061Z [36;1m  Write-Error "RESOURCE=disk drive=$($drive.Root) free_bytes=$freeBytes floor_bytes=$floorBytes"[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9001328Z [36;1m  exit 1[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9001451Z [36;1m}[0m
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9007519Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9007809Z env:
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9008125Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9008735Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9009135Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:17.9009445Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	DISK end floor (Windows)	2026-09-09T05:13:18.1626634Z FLOOR_END job=n1-gate runner=Windows free_bytes=148463468544 floor_bytes=34359738368 verdict=PASS sample=INSTANT
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	﻿2026-09-09T05:13:18.4494331Z ##[group]Run .github/ci/reap-census.ps1 -Phase end
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4494766Z [36;1m.github/ci/reap-census.ps1 -Phase end[0m
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4500712Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4501081Z env:
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4501524Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4501998Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4502374Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.4502636Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7521736Z CI-CENSUS scope roots:
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7534891Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7535777Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\target
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7536971Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7537892Z   root: C:\actions-runner\_work\_temp
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7538802Z   root: C:\Users\decid\spt-n1-oldbroker
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.7893335Z CI-REAP: pre-reap state
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8078942Z CI-CENSUS phase=pre-reap box_procs=611 box_handles=265942 family_total=11 family_handles=2044 scoped=0 unscoped=11 unreadable_path=0
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8130624Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8131986Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8133275Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8134358Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8135452Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8136864Z   FOREIGN  pid=47708   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8137578Z   FOREIGN  pid=48232   handles=717    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8138589Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8139883Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8141175Z   FOREIGN  pid=51992   handles=177    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:18.8142501Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3452264Z CI-CENSUS phase=end box_procs=613 box_handles=266079 family_total=13 family_handles=2097 scoped=0 unscoped=13 unreadable_path=0
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3455362Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3456849Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3458035Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3459174Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3460912Z   FOREIGN  pid=38000   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3462272Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3463319Z   FOREIGN  pid=43812   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3464475Z   FOREIGN  pid=47708   handles=126    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3465586Z   FOREIGN  pid=48232   handles=717    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3466747Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3468354Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3469561Z   FOREIGN  pid=51992   handles=174    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3471002Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
n1-gate (self-hosted, Windows, hfenduleam)	Reap test-spawned daemons + census (job end)	2026-09-09T05:13:20.3480125Z CI-REAP summary: killed=0 kill_failed=0 scoped_survivors=0 observed_scoped=0 unreadable_path=0
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	﻿2026-09-09T05:13:20.5071403Z ##[group]Run .github/ci/test-temp-sandbox.ps1 -Phase cleanup
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5071922Z [36;1m.github/ci/test-temp-sandbox.ps1 -Phase cleanup[0m
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5081315Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5081684Z env:
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5082256Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5082983Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5083670Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:20.5084149Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Remove run-scoped test temp sandbox (Windows)	2026-09-09T05:13:21.2197152Z CI-TMP cleanup: removed C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5 on attempt 1/5
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	﻿2026-09-09T05:13:21.3779574Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3781635Z ##[group]Run actions/upload-artifact@v4
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3781921Z with:
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3782122Z   name: bench-ledger-n1-Windows
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3782380Z   path: bench-ledger/
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3782612Z   if-no-files-found: warn
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3782836Z   retention-days: 30
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3783055Z   compression-level: 6
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3783276Z   overwrite: false
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3783492Z   include-hidden-files: false
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3783727Z env:
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3784172Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3784957Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3785712Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-553cb704f75b40738b6ad5997b92f3d5
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.3786220Z ##[endgroup]
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.7957338Z (node:52264) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.7958101Z (Use `node --trace-deprecation ...` to show where the warning was created)
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.7989820Z With the provided path, there will be 1 file uploaded
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.7992717Z Artifact name is valid!
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:21.7994030Z Root directory input is valid!
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.1866349Z Beginning upload of artifact content to blob storage
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.1979172Z (node:52264) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.4723697Z Uploaded bytes 276
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.5475652Z Finished uploading artifact content to blob storage!
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.5476664Z SHA256 digest of uploaded artifact zip is ce06ce96b6db5129dfdebdc33b9935903802925d15b5dcc9c411118fcdc7751e
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.5477471Z Finalizing artifact upload
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.8318580Z Artifact bench-ledger-n1-Windows.zip successfully finalized. Artifact ID 10089386597
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.8319199Z Artifact bench-ledger-n1-Windows has been successfully uploaded! Final size is 276 bytes. Artifact ID is 10089386597
n1-gate (self-hosted, Windows, hfenduleam)	Upload bench ledger	2026-09-09T05:13:22.8329370Z Artifact download URL: https://github.com/BigscreenVR/spt-bs-core/actions/runs/34310511612/artifacts/10089386597
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	﻿2026-09-09T05:13:22.9462310Z Post job cleanup.
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.0649968Z [command]"C:\Program Files\Git\cmd\git.exe" version
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.2628462Z git version 2.43.0.windows.1
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.2663931Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\9831325d-cf7e-4634-8399-cc9cc793e6d2\.gitconfig'
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.2679858Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\9831325d-cf7e-4634-8399-cc9cc793e6d2' before making global git config changes
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.2680477Z Adding repository directory to the temporary git global config as a safe directory
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.2688114Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:23.8154260Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:24.8885639Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:31.1465365Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:31.1759206Z http.https://github.com/.extraheader
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:31.1784164Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all http.https://github.com/.extraheader
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:31.2132747Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:33.4551491Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
n1-gate (self-hosted, Windows, hfenduleam)	Post Run actions/checkout@v5	2026-09-09T05:13:33.7279043Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
n1-gate (self-hosted, Windows, hfenduleam)	Complete job	﻿2026-09-09T05:13:47.4662615Z Cleaning up orphan processes
n1-gate (self-hosted, Windows, hfenduleam)	Complete job	2026-09-09T05:13:47.5278715Z Terminate orphan process: pid (52036) (vctip)
n1-gate (self-hosted, Windows, hfenduleam)	Complete job	2026-09-09T05:13:47.5725695Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
twohost-b	Set up job	﻿2026-09-09T05:08:13.8451346Z Current runner version: '2.337.0'
twohost-b	Set up job	2026-09-09T05:08:13.8456399Z Runner name: 'kitsubito'
twohost-b	Set up job	2026-09-09T05:08:13.8456899Z Runner group name: 'Default'
twohost-b	Set up job	2026-09-09T05:08:13.8457524Z Machine name: 'KITSUBITO'
twohost-b	Set up job	2026-09-09T05:08:13.8460920Z ##[group]GITHUB_TOKEN Permissions
twohost-b	Set up job	2026-09-09T05:08:13.8462659Z Actions: write
twohost-b	Set up job	2026-09-09T05:08:13.8463110Z ArtifactMetadata: write
twohost-b	Set up job	2026-09-09T05:08:13.8463526Z Attestations: write
twohost-b	Set up job	2026-09-09T05:08:13.8463916Z Checks: write
twohost-b	Set up job	2026-09-09T05:08:13.8464278Z CodeQuality: write
twohost-b	Set up job	2026-09-09T05:08:13.8464650Z Contents: write
twohost-b	Set up job	2026-09-09T05:08:13.8465043Z CopilotRequests: write
twohost-b	Set up job	2026-09-09T05:08:13.8465433Z Deployments: write
twohost-b	Set up job	2026-09-09T05:08:13.8465811Z Discussions: write
twohost-b	Set up job	2026-09-09T05:08:13.8466178Z Drives: write
twohost-b	Set up job	2026-09-09T05:08:13.8466530Z Issues: write
twohost-b	Set up job	2026-09-09T05:08:13.8466887Z Metadata: read
twohost-b	Set up job	2026-09-09T05:08:13.8467246Z Models: read
twohost-b	Set up job	2026-09-09T05:08:13.8467600Z Packages: write
twohost-b	Set up job	2026-09-09T05:08:13.8467957Z Pages: write
twohost-b	Set up job	2026-09-09T05:08:13.8468317Z PullRequests: write
twohost-b	Set up job	2026-09-09T05:08:13.8468815Z RepositoryProjects: write
twohost-b	Set up job	2026-09-09T05:08:13.8469317Z SecurityEvents: write
twohost-b	Set up job	2026-09-09T05:08:13.8469736Z Statuses: write
twohost-b	Set up job	2026-09-09T05:08:13.8470118Z VulnerabilityAlerts: read
twohost-b	Set up job	2026-09-09T05:08:13.8470510Z ##[endgroup]
twohost-b	Set up job	2026-09-09T05:08:13.8472210Z Secret source: Actions
twohost-b	Set up job	2026-09-09T05:08:13.8472896Z Prepare workflow directory
twohost-b	Set up job	2026-09-09T05:08:13.8862628Z Prepare all required actions
twohost-b	Set up job	2026-09-09T05:08:13.8897502Z Getting action download info
twohost-b	Set up job	2026-09-09T05:08:14.2486981Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
twohost-b	Set up job	2026-09-09T05:08:14.5431441Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02)
twohost-b	Set up job	2026-09-09T05:08:15.1081736Z Complete job name: twohost-b
twohost-b	Run actions/checkout@v5	﻿2026-09-09T05:08:15.1949796Z ##[group]Run actions/checkout@v5
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1950607Z with:
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1951003Z   repository: BigscreenVR/spt-bs-core
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1953970Z   token: ***
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1954341Z   ssh-strict: true
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1954734Z   ssh-user: git
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1955117Z   persist-credentials: true
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1955526Z   clean: true
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1955903Z   sparse-checkout-cone-mode: true
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1956347Z   fetch-depth: 1
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1956715Z   fetch-tags: false
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1957095Z   show-progress: true
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1957485Z   lfs: false
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1957842Z   submodules: false
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1958248Z   set-safe-directory: true
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1958677Z   allow-unsafe-pr-checkout: false
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.1959458Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2791887Z Syncing repository: BigscreenVR/spt-bs-core
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2793746Z ##[group]Getting Git version info
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2794478Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core'
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2795528Z [command]/usr/bin/git version
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2795976Z git version 2.43.0
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2797331Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2800762Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/568f8cdb-d0f1-4fe7-bc49-7ea20cb93a7a/.gitconfig'
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2802133Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/568f8cdb-d0f1-4fe7-bc49-7ea20cb93a7a' before making global git config changes
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2803307Z Adding repository directory to the temporary git global config as a safe directory
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2804412Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2816578Z [command]/usr/bin/git config --local --get remote.origin.url
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2834722Z https://github.com/BigscreenVR/spt-bs-core
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2846123Z ##[group]Removing previously created refs, to avoid conflicts
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2849166Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2866662Z refs/heads/golden/webserve-272-r3
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2872661Z [command]/usr/bin/git checkout --detach
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2942388Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.2978297Z [command]/usr/bin/git branch --delete --force golden/webserve-272-r3
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.3012255Z Deleted branch golden/webserve-272-r3 (was f6110c2a1).
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.3170176Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.3173453Z [command]/usr/bin/git submodule status
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.3358097Z ##[group]Cleaning the repository
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:15.3360577Z [command]/usr/bin/git clean -ffdx
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2756514Z Removing bench-ledger/
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2757683Z Removing target/
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2768899Z [command]/usr/bin/git reset --hard HEAD
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2845875Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2852454Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2853987Z ##[group]Disabling automatic garbage collection
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2857237Z [command]/usr/bin/git config --local gc.auto 0
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2881923Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2883718Z ##[group]Setting up auth
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2886189Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.2913062Z [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' || :"
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3105576Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3129312Z [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' || :"
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3304809Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3328578Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3511930Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3541276Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3542611Z ##[group]Fetching the repository
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.3548169Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d:refs/remotes/origin/golden/webserve-272-r3
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7868472Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7870639Z ##[group]Determining the checkout info
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7872150Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7873484Z [command]/usr/bin/git sparse-checkout disable
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7950917Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7976400Z ##[group]Checking out the ref
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.7978711Z [command]/usr/bin/git checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.8050702Z Switched to a new branch 'golden/webserve-272-r3'
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.8052665Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.8058501Z ##[endgroup]
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.8099805Z [command]/usr/bin/git log -1 --format=%H
twohost-b	Run actions/checkout@v5	2026-09-09T05:08:16.8131401Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
twohost-b	DISK start floor	﻿2026-09-09T05:08:16.8398762Z ##[group]Run set -euo pipefail
twohost-b	DISK start floor	2026-09-09T05:08:16.8399834Z [36;1mset -euo pipefail[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8400731Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8402018Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8403574Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8404875Z [36;1mverdict=PASS[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8405864Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8407800Z [36;1mprintf 'FLOOR_START job=twohost-b runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8410133Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8411263Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8413174Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8415023Z [36;1m  exit 1[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8415690Z [36;1mfi[0m
twohost-b	DISK start floor	2026-09-09T05:08:16.8433381Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	DISK start floor	2026-09-09T05:08:16.8434500Z ##[endgroup]
twohost-b	DISK start floor	2026-09-09T05:08:16.8523508Z FLOOR_START job=twohost-b runner=Linux free_bytes=226321944576 floor_bytes=34359738368 verdict=PASS sample=INSTANT
twohost-b	Create run-scoped test temp sandbox	﻿2026-09-09T05:08:16.8584583Z ##[group]Run bash .github/ci/test-temp-sandbox.sh setup
twohost-b	Create run-scoped test temp sandbox	2026-09-09T05:08:16.8585828Z [36;1mbash .github/ci/test-temp-sandbox.sh setup[0m
twohost-b	Create run-scoped test temp sandbox	2026-09-09T05:08:16.8600100Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Create run-scoped test temp sandbox	2026-09-09T05:08:16.8601224Z ##[endgroup]
twohost-b	Create run-scoped test temp sandbox	2026-09-09T05:08:16.8659673Z CI-TMP setup: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Checkout spt-shell-notify (toast rung)	﻿2026-09-09T05:08:16.8853050Z ##[group]Run actions/checkout@v5
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8853879Z with:
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8854547Z   repository: SaberMage/spt-shell-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8855419Z   path: .adapter-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8861683Z   token: ***
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8862335Z   ssh-strict: true
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8863005Z   ssh-user: git
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8863674Z   persist-credentials: true
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8864436Z   clean: true
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8865112Z   sparse-checkout-cone-mode: true
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8865909Z   fetch-depth: 1
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8866567Z   fetch-tags: false
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8867244Z   show-progress: true
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8867928Z   lfs: false
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8868571Z   submodules: false
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8869352Z   set-safe-directory: true
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8870164Z   allow-unsafe-pr-checkout: false
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8870956Z env:
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8872054Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8873790Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8875359Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8876951Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.8878202Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9549571Z Syncing repository: SaberMage/spt-shell-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9555069Z ##[group]Getting Git version info
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9557345Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify'
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9579787Z [command]/usr/bin/git version
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9613441Z git version 2.43.0
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9631252Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9639414Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/31d7aa56-9db1-463b-b80a-328e26eb5468/.gitconfig'
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9648484Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/31d7aa56-9db1-463b-b80a-328e26eb5468' before making global git config changes
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9651385Z Adding repository directory to the temporary git global config as a safe directory
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9653528Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9676354Z ##[group]Initializing the repository
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9679261Z [command]/usr/bin/git init /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9703179Z hint: Using 'master' as the name for the initial branch. This default branch name
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9705131Z hint: is subject to change. To configure the initial branch name to use in all
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9706919Z hint: of your new repositories, which will suppress this warning, call:
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9708636Z hint: 
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9709700Z hint: 	git config --global init.defaultBranch <name>
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9710868Z hint: 
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9712036Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9713463Z hint: 'development'. The just-created branch can be renamed via this command:
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9714637Z hint: 
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9715269Z hint: 	git branch -m <name>
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9716759Z Initialized empty Git repository in /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/.git/
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9719674Z [command]/usr/bin/git remote add origin https://github.com/SaberMage/spt-shell-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9738588Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9739823Z ##[group]Disabling automatic garbage collection
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9740849Z [command]/usr/bin/git config --local gc.auto 0
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9761808Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9763080Z ##[group]Setting up auth
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9766129Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9791134Z [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' || :"
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:16.9975880Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0000051Z [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' || :"
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0183006Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0209055Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0391820Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0421645Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0423043Z ##[group]Determining the default branch
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.0424804Z Retrieving the default branch name
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.4134000Z Default branch 'main'
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.4135439Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.4135973Z ##[group]Fetching the repository
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.4146472Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +refs/heads/main:refs/remotes/origin/main
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9722404Z From https://github.com/SaberMage/spt-shell-notify
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9740438Z  * [new branch]      main       -> origin/main
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9741391Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9741772Z ##[group]Determining the checkout info
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9743482Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9746985Z [command]/usr/bin/git sparse-checkout disable
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9824742Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9850103Z ##[group]Checking out the ref
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9852803Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9889677Z Switched to a new branch 'main'
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9890039Z branch 'main' set up to track 'origin/main'.
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9893450Z ##[endgroup]
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9924473Z [command]/usr/bin/git log -1 --format=%H
twohost-b	Checkout spt-shell-notify (toast rung)	2026-09-09T05:08:17.9946391Z ee2d37eadc730c0019e0af82d683074c509634a2
twohost-b	Build notify-shell	﻿2026-09-09T05:08:18.0072801Z ##[group]Run cargo build --manifest-path .adapter-notify/Cargo.toml
twohost-b	Build notify-shell	2026-09-09T05:08:18.0073232Z [36;1mcargo build --manifest-path .adapter-notify/Cargo.toml[0m
twohost-b	Build notify-shell	2026-09-09T05:08:18.0085753Z shell: /usr/bin/bash -e {0}
twohost-b	Build notify-shell	2026-09-09T05:08:18.0085961Z env:
twohost-b	Build notify-shell	2026-09-09T05:08:18.0086258Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build notify-shell	2026-09-09T05:08:18.0086713Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build notify-shell	2026-09-09T05:08:18.0087290Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build notify-shell	2026-09-09T05:08:18.0087704Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build notify-shell	2026-09-09T05:08:18.0088033Z ##[endgroup]
twohost-b	Build notify-shell	2026-09-09T05:08:18.0442609Z     Updating crates.io index
twohost-b	Build notify-shell	2026-09-09T05:08:18.2281079Z      Locking 11 packages to latest compatible versions
twohost-b	Build notify-shell	2026-09-09T05:08:18.2642381Z    Compiling serde_core v1.0.229
twohost-b	Build notify-shell	2026-09-09T05:08:18.2642904Z    Compiling zmij v1.0.23
twohost-b	Build notify-shell	2026-09-09T05:08:18.2643354Z    Compiling serde_json v1.0.151
twohost-b	Build notify-shell	2026-09-09T05:08:18.2643626Z    Compiling itoa v1.0.18
twohost-b	Build notify-shell	2026-09-09T05:08:18.2643897Z    Compiling memchr v2.8.3
twohost-b	Build notify-shell	2026-09-09T05:08:20.0048818Z    Compiling spt-shell-notify v0.1.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify)
twohost-b	Build notify-shell	2026-09-09T05:08:20.1661062Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.14s
twohost-b	Build spt binary (toast rung)	﻿2026-09-09T05:08:20.1756110Z ##[group]Run bash .github/bench/wrap.sh build-spt-bin -- cargo build -p spt --bin spt
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1756631Z [36;1mbash .github/bench/wrap.sh build-spt-bin -- cargo build -p spt --bin spt[0m
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1769763Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1770028Z env:
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1770327Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1770784Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1771208Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1771625Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.1771954Z ##[endgroup]
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5037486Z    Compiling proc-macro2 v1.0.106
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5038275Z    Compiling unicode-ident v1.0.24
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5038587Z    Compiling quote v1.0.45
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5039055Z    Compiling libc v0.2.186
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5039361Z    Compiling cfg-if v1.0.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5039632Z    Compiling serde_core v1.0.228
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5039889Z    Compiling serde v1.0.228
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5040132Z    Compiling typenum v1.20.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5063611Z    Compiling log v0.4.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5064255Z    Compiling version_check v0.9.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5064993Z    Compiling pin-project-lite v0.2.17
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5085196Z    Compiling memchr v2.8.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5085906Z    Compiling portable-atomic v1.13.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5134762Z    Compiling subtle v2.6.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5253841Z    Compiling find-msvc-tools v0.1.9
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5651371Z    Compiling shlex v2.0.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.5940357Z    Compiling critical-section v1.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.6026819Z    Compiling bytes v1.11.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.6856207Z    Compiling futures-core v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.7051198Z    Compiling smallvec v1.15.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.7554483Z    Compiling equivalent v1.0.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.7665197Z    Compiling itoa v1.0.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.7746357Z    Compiling semver v1.0.28
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.8063168Z    Compiling stable_deref_trait v1.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.8230901Z    Compiling futures-io v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.8300881Z    Compiling slab v0.4.12
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.8443926Z    Compiling futures-sink v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.8683201Z    Compiling futures-task v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.8790054Z    Compiling generic-array v0.14.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.9350786Z    Compiling futures-channel v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.9352064Z    Compiling rand_core v0.10.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.9521071Z    Compiling rustversion v1.0.22
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:20.9521896Z    Compiling cpufeatures v0.2.17
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.0043569Z    Compiling autocfg v1.5.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.0165172Z    Compiling hashbrown v0.17.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.0299410Z    Compiling bitflags v2.12.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.0502795Z    Compiling getrandom v0.4.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.0710897Z    Compiling rustc_version v0.4.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.0922114Z    Compiling scopeguard v1.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.1628328Z    Compiling fnv v1.0.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.1794638Z    Compiling lock_api v0.4.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.1973319Z    Compiling strsim v0.11.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.2451180Z    Compiling const-oid v0.9.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.2671798Z    Compiling cfg_aliases v0.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.2971451Z    Compiling libm v0.2.16
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.3430931Z    Compiling writeable v0.6.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.4310552Z    Compiling litemap v0.8.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.4382011Z    Compiling num-traits v0.2.19
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.4700072Z    Compiling dunce v1.0.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.5301329Z    Compiling ident_case v1.0.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.5463992Z    Compiling fs_extra v1.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.5529680Z    Compiling utf8_iter v1.0.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.5791420Z    Compiling icu_properties_data v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.5861020Z    Compiling icu_normalizer_data v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.6431387Z    Compiling percent-encoding v2.3.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.6711250Z    Compiling syn v2.0.117
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.6943713Z    Compiling http v1.4.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.7291195Z    Compiling aws-lc-rs v1.17.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.7373417Z    Compiling cpufeatures v0.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.7492180Z    Compiling zerocopy v0.8.50
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.8001763Z    Compiling indexmap v2.14.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.8397995Z    Compiling thiserror v2.0.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.8461019Z    Compiling unicode-segmentation v1.13.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.8541254Z    Compiling hybrid-array v0.4.12
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.9061261Z    Compiling form_urlencoded v1.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.9170862Z    Compiling spin v0.9.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.9272192Z    Compiling untrusted v0.9.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:21.9872621Z    Compiling heck v0.5.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.0240874Z    Compiling rustls v0.23.40
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.0891454Z    Compiling atomic-waker v1.1.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.0976829Z    Compiling const-oid v0.10.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.1671034Z    Compiling anyhow v1.0.102
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.1710771Z    Compiling unicode-xid v0.2.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.1830745Z    Compiling paste v1.0.15
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.2076579Z    Compiling jobserver v0.1.34
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.2618073Z    Compiling httparse v1.10.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.2724229Z    Compiling parking_lot_core v0.9.12
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.3239889Z    Compiling curve25519-dalek v4.1.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.4250695Z    Compiling convert_case v0.10.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.4490360Z    Compiling crypto-common v0.1.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.4614974Z    Compiling cc v1.2.63
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.4831012Z    Compiling crypto-common v0.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.5053076Z    Compiling block-buffer v0.12.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.5289151Z    Compiling block-buffer v0.10.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.5411005Z    Compiling inout v0.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.6271709Z    Compiling digest v0.10.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.6421193Z    Compiling ahash v0.8.12
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.6490944Z    Compiling powerfmt v0.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.6499891Z    Compiling base64ct v1.8.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.6656352Z    Compiling http-body v1.0.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.7138190Z    Compiling either v1.16.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.7976675Z    Compiling deranged v0.5.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.8352472Z    Compiling sha2 v0.10.9
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.9411217Z    Compiling mio v1.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:22.9651013Z    Compiling socket2 v0.6.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.0200696Z    Compiling getrandom v0.2.17
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.2291166Z    Compiling rand_core v0.6.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.2390734Z    Compiling uuid v1.23.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.2434465Z    Compiling pem-rfc7468 v1.0.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.2700849Z    Compiling pkg-config v0.3.33
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.4200732Z    Compiling cipher v0.5.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.4550763Z    Compiling signature v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.5351272Z    Compiling zmij v1.0.21
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.5486311Z    Compiling tinyvec_macros v0.1.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.5671431Z    Compiling vcpkg v0.2.15
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.5980571Z    Compiling time-core v0.1.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.6109133Z    Compiling tower-service v0.3.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.6340197Z    Compiling base64 v0.22.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.6564260Z    Compiling cmake v0.1.58
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.6850720Z    Compiling chacha20 v0.10.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.6951076Z    Compiling num-conv v0.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.7275509Z    Compiling data-encoding v2.11.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.7570817Z    Compiling fastrand v2.4.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.7691275Z    Compiling try-lock v0.2.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.8380626Z    Compiling want v0.3.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.8690195Z    Compiling tinyvec v1.11.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.8836273Z    Compiling parking_lot v0.12.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.9087067Z    Compiling inout v0.1.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.9285794Z    Compiling spt-procident v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-procident)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.9868578Z    Compiling rand v0.10.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:23.9983584Z    Compiling vergen-lib v9.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.0100261Z    Compiling num-integer v0.1.47
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.0607465Z    Compiling n0-future v0.3.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.0773591Z    Compiling cordyceps v0.3.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.0881560Z    Compiling num-bigint-dig v0.8.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.0950856Z    Compiling diatomic-waker v0.2.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.1611527Z    Compiling spin v0.10.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.2325148Z    Compiling httpdate v1.0.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.2422184Z    Compiling crossbeam-utils v0.8.21
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.2472514Z    Compiling winnow v1.0.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.2763617Z    Compiling parking v2.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.2844831Z    Compiling serde_json v1.0.150
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.3304860Z    Compiling num-iter v0.1.46
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.3869997Z    Compiling futures-lite v2.6.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.4178579Z    Compiling futures-buffered v0.2.13
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.4488497Z    Compiling spt-poolguard v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-poolguard)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.4511367Z    Compiling cipher v0.4.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.4544435Z    Compiling ed25519 v2.2.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.4723050Z    Compiling digest v0.11.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.4727585Z    Compiling netlink-packet-core v0.8.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.5043127Z    Compiling universal-hash v0.5.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.5351518Z    Compiling lazy_static v1.5.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.5731305Z    Compiling aws-lc-sys v0.41.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.5991275Z    Compiling ring v0.17.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.6100581Z    Compiling libsqlite3-sys v0.30.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.6480890Z    Compiling vergen-lib v0.1.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.6691034Z    Compiling vergen v9.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.6892743Z    Compiling curve25519-dalek v5.0.0-pre.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.7921035Z    Compiling heapless v0.7.17
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.8061371Z    Compiling noq-udp v0.10.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.8182976Z    Compiling aho-corasick v1.1.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.8250985Z    Compiling sync_wrapper v1.0.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.8741196Z    Compiling toml_datetime v1.1.1+spec-1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.8791819Z    Compiling regex-syntax v0.8.10
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.9069189Z    Compiling byteorder v1.5.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.9170694Z    Compiling opaque-debug v0.3.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.9727167Z    Compiling allocator-api2 v0.2.21
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:24.9798827Z    Compiling polyval v0.6.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.0901170Z    Compiling hash32 v0.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.0967267Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.1832416Z    Compiling vergen-gitcl v1.0.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.2100732Z    Compiling fallible-streaming-iterator v0.1.9
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.2983490Z    Compiling fallible-iterator v0.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.3490650Z    Compiling num_threads v0.1.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.4217497Z    Compiling tower-layer v0.3.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.4280176Z    Compiling ryu v1.0.23
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.4420732Z    Compiling signature v3.0.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.4660635Z    Compiling time v0.3.47
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.5808551Z    Compiling ghash v0.5.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.6024012Z    Compiling aes v0.8.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.6110570Z    Compiling ctr v0.9.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.6856645Z    Compiling sha2 v0.11.0-rc.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.7590784Z    Compiling toml_parser v1.1.2+spec-1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.7780826Z    Compiling fs2 v0.4.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.8701324Z    Compiling http-body-util v0.1.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:25.9240941Z    Compiling aead v0.5.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.0360429Z    Compiling utf8parse v0.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.1090993Z    Compiling openssl-probe v0.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.1271499Z    Compiling arrayvec v0.7.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.1481472Z    Compiling crossbeam-channel v0.5.15
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.1879827Z    Compiling aes-gcm v0.10.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.2880748Z    Compiling crossbeam-epoch v0.9.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.3123599Z    Compiling netlink-packet-route v0.29.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.3497213Z    Compiling toml_edit v0.25.12+spec-1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.3685881Z    Compiling blake3 v1.8.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.5644645Z    Compiling synstructure v0.13.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.6552067Z    Compiling darling_core v0.20.11
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.6681504Z    Compiling memoffset v0.6.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.8068464Z    Compiling ppv-lite86 v0.2.21
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.8161010Z    Compiling acto v0.8.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.8972690Z    Compiling netwatch v0.16.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.9395353Z    Compiling noq v0.18.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:26.9902460Z    Compiling ref-cast v1.0.25
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.1333665Z    Compiling lru-slab v0.1.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.1412811Z    Compiling sorted-index-buffer v0.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.1745847Z    Compiling proc-macro-crate v3.5.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.2462482Z    Compiling rand_chacha v0.3.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.2528933Z    Compiling tagptr v0.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.2589884Z    Compiling identity-hash v0.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.2591755Z    Compiling rustc-hash v2.1.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.2709845Z    Compiling mac-addr v0.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.3364442Z    Compiling regex-automata v0.4.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.3620360Z    Compiling foldhash v0.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.3800840Z    Compiling xml-rs v0.8.28
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.4561188Z    Compiling rand v0.8.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.5166399Z    Compiling thiserror v1.0.69
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.5876671Z    Compiling hashbrown v0.16.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.7557069Z    Compiling serde_derive_internals v0.29.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.8002192Z    Compiling netlink-packet-route v0.30.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:27.9996308Z    Compiling errno v0.3.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.1480704Z    Compiling xmltree v0.10.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.2487082Z    Compiling serial-core v0.4.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.2910537Z    Compiling termios v0.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.3286266Z    Compiling ioctl-rs v0.1.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.3727936Z    Compiling simple-dns v0.9.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.3785042Z    Compiling serde_derive v1.0.228
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.3947313Z    Compiling zeroize_derive v1.4.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.4139185Z    Compiling tokio-macros v2.7.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.4260925Z    Compiling futures-macro v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.4825838Z    Compiling zerofrom-derive v0.1.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.8038149Z    Compiling yoke-derive v0.8.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.9230904Z    Compiling zeroize v1.8.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.9330694Z    Compiling zerovec-derive v0.11.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:28.9700581Z    Compiling displaydoc v0.2.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.0917356Z    Compiling tokio v1.52.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.0977536Z    Compiling tracing-attributes v0.1.31
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.2889543Z    Compiling futures-util v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.3756432Z    Compiling rustls-pki-types v1.14.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.5570239Z    Compiling thiserror-impl v2.0.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.7270991Z    Compiling curve25519-dalek-derive v0.1.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:29.7850717Z    Compiling zerofrom v0.1.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.0280915Z    Compiling darling_macro v0.20.11
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.0790106Z    Compiling yoke v0.8.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.2898038Z    Compiling zerotrie v0.2.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.3281088Z    Compiling zerovec v0.11.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.3712561Z    Compiling darling v0.20.11
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.4320992Z    Compiling derive_more-impl v2.1.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.4373108Z    Compiling derive_builder_core v0.20.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.5972698Z    Compiling der v0.7.10
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.6510481Z    Compiling n0-error-macros v0.1.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:30.8660448Z    Compiling spez v0.1.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.0401993Z    Compiling tinystr v0.8.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.1516739Z    Compiling potential_utf v0.1.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.2245785Z    Compiling icu_locale_core v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.2890540Z    Compiling icu_collections v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.6101498Z    Compiling derive_builder_macro v0.20.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.6720767Z    Compiling n0-error v0.1.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.9170642Z    Compiling spki v0.7.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:31.9401091Z    Compiling derive_builder v0.20.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.0066956Z    Compiling der v0.8.0-rc.10
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.0222457Z    Compiling pin-project-internal v1.1.13
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.0839335Z    Compiling pkcs8 v0.10.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.3285227Z    Compiling icu_provider v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.3394073Z    Compiling pkcs1 v0.7.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.6923642Z    Compiling icu_normalizer v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.7630846Z    Compiling icu_properties v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.8119900Z    Compiling ed25519-dalek v2.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:32.8204904Z    Compiling futures-executor v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.0896599Z    Compiling ipnet v2.12.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.1899998Z    Compiling spt-proto v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-proto)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.3306143Z    Compiling pin-project v1.1.13
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.3861529Z    Compiling spki v0.8.0-rc.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.4920494Z    Compiling prefix-trie v0.8.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.5629439Z    Compiling pkcs8 v0.11.0-rc.10
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.7400601Z    Compiling once_cell v1.21.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.8140465Z    Compiling ed25519 v3.0.0-rc.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.8211514Z    Compiling futures v0.3.32
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.9303903Z    Compiling tracing-core v0.1.36
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:33.9643944Z    Compiling cobs v0.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.1264131Z    Compiling hashbrown v0.14.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.1560451Z    Compiling idna_adapter v1.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.2052307Z    Compiling regex v1.12.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.2143457Z    Compiling data-encoding-macro-internal v0.1.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.2532304Z    Compiling idna v1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.2620789Z    Compiling postcard-derive v0.2.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.5285647Z    Compiling tracing v0.1.44
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.6350625Z    Compiling tokio-util v0.7.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.7330142Z    Compiling url v2.5.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.7680938Z    Compiling derive_more v2.1.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.8520736Z    Compiling rsa v0.9.10
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.8620832Z    Compiling netlink-sys v0.8.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.8621986Z    Compiling postcard v1.1.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.9410758Z    Compiling hashlink v0.9.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.9490745Z    Compiling data-encoding-macro v0.1.20
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.9492096Z    Compiling ed25519-dalek v3.0.0-pre.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:34.9991135Z    Compiling tower v0.5.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.1630625Z    Compiling rustls-native-certs v0.8.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.2747974Z    Compiling num_enum_derive v0.7.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.2969464Z    Compiling enum-assoc v1.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.3091119Z    Compiling strum_macros v0.28.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.3722045Z    Compiling iroh-metrics-derive v0.4.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.4791960Z    Compiling hickory-proto v0.26.0-beta.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.5731613Z    Compiling h2 v0.4.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.6557568Z    Compiling rusqlite v0.32.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.7625163Z    Compiling async-trait v0.1.89
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.8020879Z    Compiling iroh-relay v0.98.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.8510826Z    Compiling n0-watcher v0.6.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.8580288Z    Compiling iroh-metrics v0.38.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:35.9836547Z    Compiling tower-http v0.6.11
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.0503331Z    Compiling tokio-stream v0.1.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.0686085Z    Compiling iroh-base v0.98.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.0965691Z    Compiling attohttpc v0.30.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.1096647Z    Compiling netdev v0.42.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.3000777Z    Compiling netlink-proto v0.12.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.3241242Z    Compiling num_enum v0.7.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.4133499Z    Compiling moka v0.12.15
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.5806760Z    Compiling serde_spanned v0.6.9
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.5920620Z    Compiling toml_datetime v0.6.11
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.6439230Z    Compiling ref-cast-impl v1.0.25
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.6986748Z    Compiling thiserror-impl v1.0.69
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.8956238Z    Compiling toml_write v0.1.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:36.9307124Z    Compiling constant_time_eq v0.4.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.0721323Z    Compiling simdutf8 v0.1.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.0951884Z    Compiling winnow v0.7.15
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.1340614Z    Compiling resolv-conf v0.7.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.1685734Z    Compiling signal-hook v0.3.18
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.3065234Z    Compiling sha1_smol v1.0.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.4027114Z    Compiling smol_str v0.1.24
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.4766537Z    Compiling rustix v1.1.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.5229089Z    Compiling arrayref v0.3.9
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.6461672Z    Compiling webpki-roots v1.0.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.6555833Z    Compiling schemars_derive v1.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.6916819Z    Compiling serial-unix v0.4.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.7607447Z    Compiling lru v0.16.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.8011489Z    Compiling signal-hook-registry v1.4.8
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.9280393Z    Compiling darling_core v0.23.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.9339571Z    Compiling serde_bytes v0.11.19
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:37.9481176Z    Compiling seize v0.5.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.0054957Z    Compiling strum v0.28.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.1086980Z    Compiling iroh-dns v0.98.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.1284151Z    Compiling hmac v0.12.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.1876000Z    Compiling iroh v0.98.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.1946587Z    Compiling linux-raw-sys v0.12.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.1991268Z    Compiling bitflags v1.3.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.2461228Z    Compiling pin-utils v0.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.2743385Z    Compiling cmov v0.5.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.2834517Z    Compiling rustix v0.38.44
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.2897428Z    Compiling dyn-clone v1.0.20
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.3031513Z    Compiling nix v0.25.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.3834327Z    Compiling hkdf v0.12.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.4136399Z    Compiling filedescriptor v0.8.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.4371167Z    Compiling papaya v0.2.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.4905380Z    Compiling ctutils v0.4.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.5148384Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.6432741Z    Compiling serial v0.4.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.7036837Z    Compiling backon v1.6.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.7132075Z    Compiling anstyle-parse v1.0.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.7490929Z    Compiling vte_generate_state_changes v0.1.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.8930964Z    Compiling anstyle v1.0.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.9271552Z    Compiling linux-raw-sys v0.4.15
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:38.9585067Z    Compiling instability v0.3.12
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.0029877Z    Compiling colorchoice v1.0.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.0150805Z    Compiling unicode-width v0.2.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.0883243Z    Compiling anstyle-query v1.1.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.1156188Z    Compiling foldhash v0.1.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.1470708Z    Compiling is_terminal_polyfill v1.70.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.1575313Z    Compiling shell-words v1.1.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.2073797Z    Compiling downcast-rs v1.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.2694008Z    Compiling hashbrown v0.15.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.2806762Z    Compiling anstream v1.0.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.3240642Z    Compiling vte v0.13.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.3400471Z    Compiling signal-hook-mio v0.2.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.4430935Z    Compiling toml_edit v0.22.27
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.5535709Z    Compiling schemars v1.2.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.6484798Z    Compiling terminal_size v0.4.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.6601233Z    Compiling spake2 v0.4.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.7770597Z    Compiling strum_macros v0.26.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.8593998Z    Compiling itertools v0.13.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:39.9800844Z    Compiling sha1 v0.10.6
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.0394651Z    Compiling castaway v0.2.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.1222551Z    Compiling static_assertions v1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.1665515Z    Compiling doctest-file v1.1.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.2003424Z    Compiling clap_lex v1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.3900985Z    Compiling unicode-width v0.1.14
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.4387530Z    Compiling indoc v2.0.7
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.4462040Z    Compiling clap_builder v4.6.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.5630074Z    Compiling interprocess v2.4.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.6931169Z    Compiling crossterm v0.28.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:40.8234529Z    Compiling compact_str v0.8.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.0130930Z    Compiling hyper v1.10.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.3649878Z    Compiling lru v0.12.5
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.4265011Z    Compiling darling_macro v0.23.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.5197909Z    Compiling clap_derive v4.6.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.6257174Z    Compiling iana-time-zone v0.1.65
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.7587470Z    Compiling darling v0.23.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.8146164Z    Compiling unicode-truncate v1.1.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.9659662Z    Compiling toml v0.8.23
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:41.9832888Z    Compiling cassowary v0.3.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.0590708Z    Compiling chrono v0.4.45
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.0839492Z    Compiling portable-pty v0.8.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.2380555Z    Compiling strum v0.26.3
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.3481026Z    Compiling nucleo-matcher v0.3.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.3576767Z    Compiling qrcode v0.14.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.4663562Z    Compiling ratatui v0.29.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:42.9422441Z    Compiling hyper-util v0.1.20
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:43.6710703Z    Compiling clap v4.6.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:44.6892705Z    Compiling igd-next v0.17.1
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:45.1018689Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:45.4829640Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:45.5006802Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:45.6773493Z    Compiling portmapper v0.16.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:48.3308685Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:50.0251293Z    Compiling rustls-webpki v0.103.13
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.1931148Z    Compiling tokio-rustls v0.26.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.1933509Z    Compiling rustls-platform-verifier v0.7.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.1933882Z    Compiling noq-proto v0.17.0
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.3222707Z    Compiling hickory-net v0.26.0-beta.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.3223363Z    Compiling hyper-rustls v0.27.9
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.3223759Z    Compiling tokio-websockets v0.13.2
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:52.4385114Z    Compiling reqwest v0.13.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:08:53.2832191Z    Compiling hickory-resolver v0.26.0-beta.4
twohost-b	Build spt binary (toast rung)	2026-09-09T05:09:05.9965345Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:09:07.7146806Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:09:18.9539892Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
twohost-b	Build spt binary (toast rung)	2026-09-09T05:09:25.6672931Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	﻿2026-09-09T05:09:25.7145885Z ##[group]Run bash .github/bench/link-probe.sh hfenduleam
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7146228Z [36;1mbash .github/bench/link-probe.sh hfenduleam[0m
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7158737Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7159075Z env:
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7159390Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7159848Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7160258Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7160673Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:25.7161146Z ##[endgroup]
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:32.0380769Z pong from hfenduleam (100.68.35.65) via 192.168.1.81:41641 in 3ms
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:32.0381599Z pong from hfenduleam (100.68.35.65) via 192.168.1.81:41641 in 2ms
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:32.0382222Z pong from hfenduleam (100.68.35.65) via 192.168.1.81:41641 in 3ms
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:32.0382889Z pong from hfenduleam (100.68.35.65) via 192.168.1.81:41641 in 2ms
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:32.0383438Z pong from hfenduleam (100.68.35.65) via 192.168.1.81:41641 in 5ms
twohost-b	Link health probe — peer hfenduleam (tailscale RTT)	2026-09-09T05:09:32.0653334Z LINK peer=hfenduleam ip=100.68.35.65 path=direct samples=5/5 min=2ms med=3ms max=5ms rtts=2,2,3,3,5
twohost-b	Two-host ladder — role B (seed-holder/server)	﻿2026-09-09T05:09:32.0898018Z ##[group]Run bash .github/bench/wrap.sh twohost-ladder-b -- cargo test -p spt-daemon --test twohost -- --nocapture
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0898666Z [36;1mbash .github/bench/wrap.sh twohost-ladder-b -- cargo test -p spt-daemon --test twohost -- --nocapture[0m
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0911467Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0911739Z env:
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0912030Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0912472Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0912877Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0913280Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0913594Z   SPT_TWO_HOST: 1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0913776Z   SPT_TWO_HOST_ROLE: b
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0913977Z   SPT_TWO_HOST_SECRET: rig-twohost-ci
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0914244Z   SPT_TWO_HOST_PEER_IP: 100.68.35.65
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0914457Z   SPT_TWO_HOST_WAIT_SECS: 900
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0914868Z   SPT_TWO_HOST_NOTIFY_BIN: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target/debug/notify-shell
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.0915307Z ##[endgroup]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3434307Z    Compiling cc v1.2.63
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3459087Z    Compiling mio v1.2.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3508470Z    Compiling strsim v0.11.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3509275Z    Compiling unicode-segmentation v1.13.3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3509686Z    Compiling rustls v0.23.40
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3569248Z    Compiling fastrand v2.4.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3601000Z    Compiling ppv-lite86 v0.2.21
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3669439Z    Compiling either v1.16.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3800484Z    Compiling rustix v1.1.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.3802446Z    Compiling bytemuck v1.25.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.4902947Z    Compiling darling_core v0.20.11
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.4955066Z    Compiling futures-lite v2.6.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.5015421Z    Compiling prefix-trie v0.8.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.5567509Z    Compiling rgb v0.8.53
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.6177339Z    Compiling tokio v1.52.3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.6540586Z    Compiling rand_chacha v0.3.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.6807463Z    Compiling convert_case v0.10.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.8309900Z    Compiling avt v0.18.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.8378216Z    Compiling derive_more-impl v2.1.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:32.8717446Z    Compiling rand v0.8.7
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:33.0092838Z    Compiling hickory-proto v0.26.0-beta.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:33.2075909Z    Compiling ring v0.17.14
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:33.2076481Z    Compiling libsqlite3-sys v0.30.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:33.2076944Z    Compiling blake3 v1.8.5
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:33.3796310Z    Compiling num-bigint-dig v0.8.6
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.0233185Z    Compiling tempfile v3.27.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.0305871Z    Compiling darling_macro v0.20.11
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.2192043Z    Compiling spt-test-support v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-test-support)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.2305867Z    Compiling rsa v0.9.10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.2777728Z    Compiling darling v0.20.11
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.3269755Z    Compiling derive_builder_core v0.20.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.8481039Z    Compiling derive_builder_macro v0.20.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:34.9801267Z    Compiling derive_more v2.1.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.0137613Z    Compiling derive_builder v0.20.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.0545317Z    Compiling vergen-lib v9.1.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.0546099Z    Compiling vergen-lib v0.1.6
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.0608639Z    Compiling iroh-base v0.98.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.1986204Z    Compiling vergen v9.1.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.2325950Z    Compiling vergen-gitcl v1.0.8
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.5034778Z    Compiling iroh-relay v0.98.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:35.9946090Z    Compiling rustls-webpki v0.103.13
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.0444072Z    Compiling tokio-util v0.7.18
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.0444719Z    Compiling netlink-sys v0.8.8
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.0445099Z    Compiling tower v0.5.3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.0446296Z    Compiling acto v0.8.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.0446664Z    Compiling backon v1.6.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.2455454Z    Compiling netdev v0.42.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.2457209Z    Compiling netlink-proto v0.12.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.4851004Z    Compiling tower-http v0.6.11
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.5012035Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.7436998Z    Compiling h2 v0.4.14
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.7437628Z    Compiling n0-future v0.3.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.7438055Z    Compiling tokio-stream v0.1.18
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.8445868Z    Compiling n0-watcher v0.6.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:36.8446854Z    Compiling iroh-dns v0.98.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:37.0842229Z    Compiling netwatch v0.16.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.0930035Z    Compiling tokio-rustls v0.26.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.0930505Z    Compiling rustls-platform-verifier v0.7.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.0930841Z    Compiling noq-proto v0.17.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.2339836Z    Compiling tokio-websockets v0.13.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.4430308Z    Compiling hyper v1.10.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.4431050Z    Compiling hickory-net v0.26.0-beta.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:39.8135553Z    Compiling rusqlite v0.32.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:40.3888375Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:40.5080106Z    Compiling hyper-util v0.1.20
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:40.5747145Z    Compiling hickory-resolver v0.26.0-beta.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:41.4122145Z    Compiling hyper-rustls v0.27.9
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:41.4122728Z    Compiling igd-next v0.17.1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:41.5436575Z    Compiling reqwest v0.13.4
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:42.0962086Z    Compiling portmapper v0.16.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:42.8102896Z    Compiling noq v0.18.0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:44.8681849Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:45.0282085Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:45.0283036Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:47.0846126Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:47.3988237Z    Compiling iroh v0.98.2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:54.7512143Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:09:56.4546357Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.8953579Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 37.78s
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.9143121Z      Running tests/twohost.rs (target/debug/deps/twohost-2b4378b933c08c6d)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.9175846Z 
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.9176317Z running 3 tests
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.9179390Z test b2_attacher_child ... ok
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.9179695Z test two_host_ladder_role_a ... ok
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:09.9186139Z TWOHOST role B: node 9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1168184Z TWOHOST role B: notify instance notify-0 minted (real_mode=true)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1263647Z TWOHOST role B: offline drive shells minted — ling-twohost-b/offdrive-0, gate-twohost-b/offdrive-0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1629224Z ACCESS_STORE_MINTED /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3/.tmpwzB7nA/identity/trust/access.json — no access store was present at first load in this process, so an EMPTY baseline was written (everything open that the chain leaves open). If this node had access rules, they are GONE: the store was removed while the daemon was down, and this mint replaced it. Re-apply them (`spt endpoint access ...`); a restart cannot tell a wipe from a first boot.
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1633164Z TWOHOST role B: NAMEPLATE fixtures seeded (legacy/named/engine-room/minter)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1872198Z SPAWN_PHASE:ling-twohost-b phase=received t_ms=0 fresh=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1873897Z SPAWN_PHASE:ling-twohost-b phase=gate_claimed t_ms=0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1874508Z SPAWN_PHASE:ling-twohost-b phase=pty_creating t_ms=0 program=cat
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1885926Z SPAWN_PHASE:ling-twohost-b phase=pty_created t_ms=1 pid=Some(2211814)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1888251Z SPAWN_PHASE:ling-twohost-b phase=input_writer t_ms=1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1893509Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local wall_ms=1788930610189 mono_ms=0 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1972330Z SPAWN_PHASE:ling-twohost-b phase=log_ready t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1973131Z SPAWN_PHASE:ling-twohost-b phase=drain_armed t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1973822Z SPAWN_PHASE:ling-twohost-b phase=waiter_armed t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1974409Z SPAWN_PHASE:ling-twohost-b phase=translation_ready t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1977243Z SPAWN_PHASE:ling-twohost-b phase=row_inserted t_ms=10 session=1
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.1978210Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local wall_ms=1788930610197 mono_ms=8 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2032599Z PAIR_MEET_UP:twohost step=59631020 id=4e71eb0ff19d6436c6169767fee7d63d3273a95193bfc32b393d2e5c5c023a77 addr=EndpointAddr { id: PublicKey(4e71eb0ff19d6436c6169767fee7d63d3273a95193bfc32b393d2e5c5c023a77), addrs: {Ip(100.98.197.12:37539), Ip(192.168.1.168:37539)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2388700Z SPAWN_PHASE:engine-room phase=received t_ms=0 fresh=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2389639Z TWOHOST role B: drive session 1 ready
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2390294Z SPAWN_PHASE:engine-room phase=gate_claimed t_ms=0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2391012Z SPAWN_PHASE:engine-room phase=pty_creating t_ms=0 program=cat
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2403892Z SPAWN_PHASE:engine-room phase=pty_created t_ms=1 pid=Some(2211821)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2406713Z SPAWN_PHASE:engine-room phase=input_writer t_ms=2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2412737Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local wall_ms=1788930610241 mono_ms=51 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2493162Z SPAWN_PHASE:engine-room phase=log_ready t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2493873Z SPAWN_PHASE:engine-room phase=drain_armed t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2494507Z SPAWN_PHASE:engine-room phase=waiter_armed t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2495170Z SPAWN_PHASE:engine-room phase=translation_ready t_ms=10
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2495954Z SPAWN_PHASE:engine-room phase=row_inserted t_ms=10 session=2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:10.2497422Z TWOHOST role B: NAMEPLATE engine-room session 2 ready
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:10:30.2057439Z PAIR_MEET_UP:twohost step=59631021 id=5e65be0a20beaf2a155b67ec587a9446627668e201ff14eb78ab202d763f55ec addr=EndpointAddr { id: PublicKey(5e65be0a20beaf2a155b67ec587a9446627668e201ff14eb78ab202d763f55ec), addrs: {Ip(100.98.197.12:53587), Ip(192.168.1.168:53587)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:11:00.2082459Z PAIR_MEET_UP:twohost step=59631022 id=6c293b59108f82a62dee88a79eb3d5f3fc22783b056baf1a9bf13817145c01fd addr=EndpointAddr { id: PublicKey(6c293b59108f82a62dee88a79eb3d5f3fc22783b056baf1a9bf13817145c01fd), addrs: {Ip(100.98.197.12:48118), Ip(192.168.1.168:48118)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:11:09.9184712Z test two_host_ladder_role_b has been running for over 60 seconds
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:11:30.2102399Z PAIR_MEET_UP:twohost step=59631023 id=0e90adda10adb98cc06f368634ac7cd81921ae9845eb4d5ea0dcfcec0eb9ed53 addr=EndpointAddr { id: PublicKey(0e90adda10adb98cc06f368634ac7cd81921ae9845eb4d5ea0dcfcec0eb9ed53), addrs: {Ip(100.98.197.12:37668), Ip(192.168.1.168:37668)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:12:00.2125054Z PAIR_MEET_UP:twohost step=59631024 id=50ca43c073065535f652881de39f53d04e769ab29bb533a9751bfd0033bf25c5 addr=EndpointAddr { id: PublicKey(50ca43c073065535f652881de39f53d04e769ab29bb533a9751bfd0033bf25c5), addrs: {Ip(100.98.197.12:34056), Ip(192.168.1.168:34056)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:12:30.2148390Z PAIR_MEET_UP:twohost step=59631025 id=c4fdd44043b616b3e9928fd73bcf38ed0527be5dd0a8512b5e0d44da43965106 addr=EndpointAddr { id: PublicKey(c4fdd44043b616b3e9928fd73bcf38ed0527be5dd0a8512b5e0d44da43965106), addrs: {Ip(100.98.197.12:57659), Ip(192.168.1.168:57659)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:13:00.2155237Z PAIR_MEET_UP:twohost step=59631026 id=f5cd8204c8fb262b10ea6a76a2966cff664dde1ffa0352c57b91510e3ca98c49 addr=EndpointAddr { id: PublicKey(f5cd8204c8fb262b10ea6a76a2966cff664dde1ffa0352c57b91510e3ca98c49), addrs: {Ip(100.98.197.12:52770), Ip(192.168.1.168:52770)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:13:30.2165022Z PAIR_MEET_UP:twohost step=59631027 id=c093e351d7f638c8454fcbaec7e4990471018cabcf1d0f5370f35cef62cb67ad addr=EndpointAddr { id: PublicKey(c093e351d7f638c8454fcbaec7e4990471018cabcf1d0f5370f35cef62cb67ad), addrs: {Ip(100.98.197.12:53198), Ip(192.168.1.168:53198)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:14:00.2179814Z PAIR_MEET_UP:twohost step=59631028 id=419c8889ad0c7a1622ef4eff7ffb34bcd2f74b060757dbab1e7b7cb0f21bce5d addr=EndpointAddr { id: PublicKey(419c8889ad0c7a1622ef4eff7ffb34bcd2f74b060757dbab1e7b7cb0f21bce5d), addrs: {Ip(100.98.197.12:33197), Ip(192.168.1.168:33197)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:14:30.2213909Z PAIR_MEET_UP:twohost step=59631029 id=25de098db2d340f02a40ab055118e03406de2e76cd14ba48d5ab1d0b25976b44 addr=EndpointAddr { id: PublicKey(25de098db2d340f02a40ab055118e03406de2e76cd14ba48d5ab1d0b25976b44), addrs: {Ip(100.98.197.12:36521), Ip(192.168.1.168:36521)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:15:00.2249397Z PAIR_MEET_UP:twohost step=59631030 id=2afcd19bbeec08028884007b6debe4d365b3c86a1e3538aadeea61b4d9d0f357 addr=EndpointAddr { id: PublicKey(2afcd19bbeec08028884007b6debe4d365b3c86a1e3538aadeea61b4d9d0f357), addrs: {Ip(100.98.197.12:36779), Ip(192.168.1.168:36779)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:15:30.2229118Z PAIR_MEET_UP:twohost step=59631031 id=8d36582ab1266da74221e161173b107da8ba975b80e580e1bae1cc125659debb addr=EndpointAddr { id: PublicKey(8d36582ab1266da74221e161173b107da8ba975b80e580e1bae1cc125659debb), addrs: {Ip(100.98.197.12:59438), Ip(192.168.1.168:59438)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:16:00.2261704Z PAIR_MEET_UP:twohost step=59631032 id=c57885cf89304b424d5eecdfc86e492a5ba499a8f2fc09da5d9d4b340096b10c addr=EndpointAddr { id: PublicKey(c57885cf89304b424d5eecdfc86e492a5ba499a8f2fc09da5d9d4b340096b10c), addrs: {Ip(100.98.197.12:47815), Ip(192.168.1.168:47815)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:16:30.2287337Z PAIR_MEET_UP:twohost step=59631033 id=56cb7e2f8b5d85849a7c4377383ec5025a04fd916af5b0592558bbe3a18a1635 addr=EndpointAddr { id: PublicKey(56cb7e2f8b5d85849a7c4377383ec5025a04fd916af5b0592558bbe3a18a1635), addrs: {Ip(100.98.197.12:54990), Ip(192.168.1.168:54990)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:17:00.2303841Z PAIR_MEET_UP:twohost step=59631034 id=453de1fe5a62550e45976ea879fed56faa33005a4bfada69f96601ebba71b162 addr=EndpointAddr { id: PublicKey(453de1fe5a62550e45976ea879fed56faa33005a4bfada69f96601ebba71b162), addrs: {Ip(100.98.197.12:44370), Ip(192.168.1.168:44370)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:17:30.2315227Z PAIR_MEET_UP:twohost step=59631035 id=081c3ba9527694763c8b5b9e602fe8aff5922880b16d2155b88915fb75597f73 addr=EndpointAddr { id: PublicKey(081c3ba9527694763c8b5b9e602fe8aff5922880b16d2155b88915fb75597f73), addrs: {Ip(100.98.197.12:46442), Ip(192.168.1.168:46442)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:18:00.2335970Z PAIR_MEET_UP:twohost step=59631036 id=d51e8e2dd871f8234ba341a69b7874d8a249f3bfee035185daddd3d97f19ba91 addr=EndpointAddr { id: PublicKey(d51e8e2dd871f8234ba341a69b7874d8a249f3bfee035185daddd3d97f19ba91), addrs: {Ip(100.98.197.12:38289), Ip(192.168.1.168:38289)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:18:30.2351762Z PAIR_MEET_UP:twohost step=59631037 id=67ba368e3c10d15ad986fc538fb68552f7bfc9fe6c2733ddea3e60d992c457c5 addr=EndpointAddr { id: PublicKey(67ba368e3c10d15ad986fc538fb68552f7bfc9fe6c2733ddea3e60d992c457c5), addrs: {Ip(100.98.197.12:44470), Ip(192.168.1.168:44470)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:19:00.2406663Z PAIR_MEET_UP:twohost step=59631038 id=0a0e913819f5dfce30266329454e70a2ca018f73403b301c0993a9255b96dcac addr=EndpointAddr { id: PublicKey(0a0e913819f5dfce30266329454e70a2ca018f73403b301c0993a9255b96dcac), addrs: {Ip(100.98.197.12:48900), Ip(192.168.1.168:48900)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:19:30.2400984Z PAIR_MEET_UP:twohost step=59631039 id=50334043e205c474de86f19840e53955f06d7691797795b21f3821b2d973643e addr=EndpointAddr { id: PublicKey(50334043e205c474de86f19840e53955f06d7691797795b21f3821b2d973643e), addrs: {Ip(100.98.197.12:52640), Ip(192.168.1.168:52640)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:00.2423562Z PAIR_MEET_UP:twohost step=59631040 id=0a068fe0d37b801878b229b030a52e2a9d9d05a44fc902389a2615b73ed60c3f addr=EndpointAddr { id: PublicKey(0a068fe0d37b801878b229b030a52e2a9d9d05a44fc902389a2615b73ed60c3f), addrs: {Ip(100.98.197.12:54441), Ip(192.168.1.168:54441)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.2275493Z PAIRED: joiner bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a recorded in subnet 'twohost'
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4741688Z TWOHOST OK: pairing: A rostered via the daemon-hosted responder
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4746379Z TWOHOST OK: pairing (responder, daemon-hosted)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4751205Z PUMP_IPC_READER: spawned
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4751910Z PUMP_IPC_READER: spawned
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4752820Z CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788931216475 mono_ms=606285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4755949Z CONN_LIFECYCLE: conn=4 role=brain presence-subscriber wall_ms=1788931216475 mono_ms=606286 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4893270Z EPOCH_FAST_FORWARD:0->1: our fleet-replicated roster row holds lease 0 — jumping past it so our own advertisements are admitted again (KNOWN-HAZARDS 7.60) [REQ-ROSTER-SELF-LEASE-HEAL]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4912295Z CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788931216491 mono_ms=606301 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.4919471Z SELF_ADDR_REBIND:9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612: live endpoint address differs from our advertised roster row — re-authored at lease 1, advertise requested [REQ-SELF-ADDR-REBIND-READVERTISE]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.5567987Z PUMP_DIAL_SUBMIT:bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a:leg=cache addr={"id":"bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a","addrs":[{"Ip":"192.168.1.81:7460"}]} wall_ms=1788931216556 mono_ms=0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.5804780Z CONN_LIFECYCLE: conn=4 role=brain presence-subscriber wall_ms=1788931216580 mono_ms=606391 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:16.6055554Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 wall_ms=1788931216605 mono_ms=606416 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8428078Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931222842 mono_ms=612653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8429569Z CONN_LIFECYCLE: conn=6 role=brain wall_ms=1788931222842 mono_ms=612653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8430637Z CONN_LIFECYCLE: conn=6 role=brain wall_ms=1788931222842 mono_ms=612653 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8431957Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931222842 mono_ms=612653 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8433185Z CONN_LIFECYCLE: conn=7 role=brain stream-subscriber stream=4 wall_ms=1788931222843 mono_ms=612653 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8435276Z CONN_LIFECYCLE: conn=7 role=brain stream-subscriber stream=4 wall_ms=1788931222843 mono_ms=612654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8439387Z CONN_LIFECYCLE: conn=8 role=brain wall_ms=1788931222843 mono_ms=612654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8441660Z CONN_LIFECYCLE: conn=8 role=brain stream-subscriber stream=5 wall_ms=1788931222844 mono_ms=612654 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8447880Z CONN_LIFECYCLE: conn=7 role=brain stream-subscriber stream=4 wall_ms=1788931222844 mono_ms=612655 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8449971Z CONN_LIFECYCLE: conn=9 role=brain wall_ms=1788931222844 mono_ms=612655 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.8451090Z CONN_LIFECYCLE: conn=9 role=brain wall_ms=1788931222844 mono_ms=612655 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.9447313Z CONN_LIFECYCLE: conn=8 role=brain stream-subscriber stream=5 wall_ms=1788931222944 mono_ms=612755 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.9449489Z CONN_LIFECYCLE: conn=10 role=brain wall_ms=1788931222944 mono_ms=612755 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.9452055Z CONN_LIFECYCLE: conn=10 role=brain wall_ms=1788931222945 mono_ms=612755 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:22.9828364Z TWOHOST OK: register: A's perch row replicated to B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0513987Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 wall_ms=1788931223051 mono_ms=612861 event=stream-sub-release stream=3 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0753587Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 wall_ms=1788931223075 mono_ms=612885 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0966424Z CONN_LIFECYCLE: conn=11 role=brain wall_ms=1788931223096 mono_ms=612907 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0967472Z CONN_LIFECYCLE: conn=12 role=brain wall_ms=1788931223096 mono_ms=612907 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0968397Z CONN_LIFECYCLE: conn=13 role=brain wall_ms=1788931223096 mono_ms=612907 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0969628Z CONN_LIFECYCLE: conn=11 role=brain wall_ms=1788931223096 mono_ms=612907 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0970838Z CONN_LIFECYCLE: conn=12 role=brain wall_ms=1788931223096 mono_ms=612907 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0971977Z CONN_LIFECYCLE: conn=13 role=brain wall_ms=1788931223096 mono_ms=612907 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0973168Z CONN_LIFECYCLE: conn=14 role=brain stream-subscriber stream=7 wall_ms=1788931223097 mono_ms=612907 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0974432Z CONN_LIFECYCLE: conn=16 role=brain stream-subscriber stream=6 wall_ms=1788931223097 mono_ms=612907 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0975470Z CONN_LIFECYCLE: conn=15 role=brain wall_ms=1788931223097 mono_ms=612908 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0976429Z CONN_LIFECYCLE: conn=16 role=brain stream-subscriber stream=6 wall_ms=1788931223097 mono_ms=612908 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0977488Z CONN_LIFECYCLE: conn=14 role=brain stream-subscriber stream=7 wall_ms=1788931223097 mono_ms=612908 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0979109Z CONN_LIFECYCLE: conn=15 role=brain stream-subscriber stream=9 wall_ms=1788931223097 mono_ms=612908 event=stream-sub-attach stream=9 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0980135Z ATTACH_INTENT_CHOSEN: site=serve_dispatch session=1 intent=control from_seq=0 gen=1788931223085 coded=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0981471Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local wall_ms=1788931223097 mono_ms=612908 event=controller-replaced session=1 new_conn=15 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0983641Z CONN_LIFECYCLE: conn=15 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931223097 mono_ms=612908 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0985978Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local wall_ms=1788931223097 mono_ms=612908 event=writer-exit role=controller session=1 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0987374Z ATTACH_INTENT_CHOSEN: site=serve_dispatch session=1 intent=control from_seq=0 gen=1788931223085 coded=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0988448Z CONN_LIFECYCLE: conn=14 role=brain stream-subscriber stream=7 wall_ms=1788931223098 mono_ms=612909 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0989635Z CONN_LIFECYCLE: conn=18 role=brain wall_ms=1788931223098 mono_ms=612909 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.0990643Z CONN_LIFECYCLE: conn=18 role=brain wall_ms=1788931223098 mono_ms=612909 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1074030Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 wall_ms=1788931223107 mono_ms=612917 event=stream-sub-release stream=8 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1096590Z SUBSCRIBE_DECISION: session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=15 intent=control old_by=- old_gen=0 req_gen=1788931223085 decision=controller
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1098506Z SUBSCRIBE_DECISION: session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=15 intent=control old_by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a old_gen=1788931223085 req_gen=1788931223085 decision=idempotent
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1428489Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 wall_ms=1788931223142 mono_ms=612953 event=stream-sub-attach stream=12 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1535465Z HELPER_SERVE_FOR: target=ling-twohost-b outcome=declined reason=the delivered body is not an envelope
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1544985Z CONN_LIFECYCLE: conn=16 role=brain stream-subscriber stream=6 wall_ms=1788931223154 mono_ms=612965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1546636Z CONN_LIFECYCLE: conn=19 role=brain wall_ms=1788931223154 mono_ms=612965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.1547852Z CONN_LIFECYCLE: conn=19 role=brain wall_ms=1788931223154 mono_ms=612965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.2359906Z TWOHOST OK: message: A's WAN message spooled at B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.2361210Z TWOHOST OK: knock: A's knock reached B's inbox
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.2362069Z TWOHOST OK: knock landed at B from ling-twohost-a (bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.2363886Z TWOHOST OK: knock approved at B, rule admits A and no one else
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.2369876Z TWOHOST OK: notif: A's insert fired on B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.2454473Z TWOHOST OK: notif dismissed at B (bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a:1788931222751) — replicating back
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6054483Z CONN_LIFECYCLE: conn=20 role=brain wall_ms=1788931223605 mono_ms=613416 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6056109Z CONN_LIFECYCLE: conn=20 role=brain wall_ms=1788931223605 mono_ms=613416 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6060538Z CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=13 wall_ms=1788931223605 mono_ms=613416 event=stream-sub-attach stream=13 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6063414Z CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=13 wall_ms=1788931223606 mono_ms=613416 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6396980Z CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=13 wall_ms=1788931223639 mono_ms=613450 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6398807Z CONN_LIFECYCLE: conn=22 role=brain wall_ms=1788931223639 mono_ms=613450 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:23.6400462Z CONN_LIFECYCLE: conn=22 role=brain wall_ms=1788931223639 mono_ms=613450 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:24.6383731Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 wall_ms=1788931224638 mono_ms=614448 event=stream-sub-release stream=12 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:24.6524881Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 wall_ms=1788931224652 mono_ms=614463 event=stream-sub-attach stream=14 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:24.6766428Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 wall_ms=1788931224676 mono_ms=614487 event=stream-sub-release stream=14 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:24.7023101Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 wall_ms=1788931224701 mono_ms=614512 event=stream-sub-attach stream=17 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:24.8257557Z TWOHOST OK: sync: B pulled A's mind
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:25.8450108Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 wall_ms=1788931225844 mono_ms=615655 event=stream-sub-release stream=17 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:25.8713195Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 wall_ms=1788931225870 mono_ms=615681 event=stream-sub-attach stream=18 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:25.8897081Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 wall_ms=1788931225889 mono_ms=615700 event=stream-sub-release stream=18 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:26.6021414Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 wall_ms=1788931226601 mono_ms=616412 event=stream-sub-attach stream=22 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:30.2451230Z PAIR_MEET_UP:twohost step=59631041 id=4567ba10319ca964cdb452672ce2b817babbea9c79de1054041a021c0c4838c6 addr=EndpointAddr { id: PublicKey(4567ba10319ca964cdb452672ce2b817babbea9c79de1054041a021c0c4838c6), addrs: {Ip(100.98.197.12:39707), Ip(192.168.1.168:39707)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:31.0725826Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 wall_ms=1788931231072 mono_ms=620883 event=stream-sub-release stream=22 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:31.0996779Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23 wall_ms=1788931231099 mono_ms=620910 event=stream-sub-attach stream=23 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:31.1319059Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23 wall_ms=1788931231131 mono_ms=620942 event=stream-sub-release stream=23 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:31.8065156Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931231806 mono_ms=621616 event=stream-sub-attach stream=26 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1203543Z CONN_LIFECYCLE: conn=23 role=brain wall_ms=1788931234120 mono_ms=623930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1205257Z CONN_LIFECYCLE: conn=23 role=brain wall_ms=1788931234120 mono_ms=623931 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1209508Z CONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=27 wall_ms=1788931234120 mono_ms=623931 event=stream-sub-attach stream=27 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1211391Z CONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=27 wall_ms=1788931234121 mono_ms=623931 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1303699Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931234130 mono_ms=623940 event=stream-sub-release stream=26 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1383266Z CONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=27 wall_ms=1788931234138 mono_ms=623948 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1385574Z CONN_LIFECYCLE: conn=25 role=brain wall_ms=1788931234138 mono_ms=623949 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1386950Z CONN_LIFECYCLE: conn=25 role=brain wall_ms=1788931234138 mono_ms=623949 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1530289Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931234152 mono_ms=623963 event=stream-sub-attach stream=28 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.1696148Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931234169 mono_ms=623980 event=stream-sub-release stream=28 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2735055Z CONN_LIFECYCLE: conn=27 role=brain wall_ms=1788931234273 mono_ms=624084 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2736265Z CONN_LIFECYCLE: conn=28 role=brain wall_ms=1788931234273 mono_ms=624084 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2737627Z CONN_LIFECYCLE: conn=26 role=brain wall_ms=1788931234273 mono_ms=624084 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2739081Z CONN_LIFECYCLE: conn=27 role=brain wall_ms=1788931234273 mono_ms=624084 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2740852Z CONN_LIFECYCLE: conn=26 role=brain wall_ms=1788931234273 mono_ms=624084 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2742576Z CONN_LIFECYCLE: conn=28 role=brain wall_ms=1788931234273 mono_ms=624084 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2743671Z CONN_LIFECYCLE: conn=29 role=brain wall_ms=1788931234273 mono_ms=624084 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2744706Z CONN_LIFECYCLE: conn=29 role=brain wall_ms=1788931234273 mono_ms=624084 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2745916Z CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=32 wall_ms=1788931234273 mono_ms=624084 event=stream-sub-attach stream=32 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2747317Z CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=31 wall_ms=1788931234274 mono_ms=624084 event=stream-sub-attach stream=31 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2748621Z CONN_LIFECYCLE: conn=33 role=brain stream-subscriber stream=29 wall_ms=1788931234274 mono_ms=624085 event=stream-sub-attach stream=29 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2749927Z CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=32 wall_ms=1788931234274 mono_ms=624085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2751011Z CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=31 wall_ms=1788931234274 mono_ms=624085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2752075Z CONN_LIFECYCLE: conn=33 role=brain stream-subscriber stream=29 wall_ms=1788931234274 mono_ms=624085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2753539Z CONN_LIFECYCLE: conn=32 role=brain wall_ms=1788931234274 mono_ms=624085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2755028Z CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=30 wall_ms=1788931234274 mono_ms=624085 event=stream-sub-attach stream=30 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2757201Z CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=31 wall_ms=1788931234275 mono_ms=624085 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2758932Z CONN_LIFECYCLE: conn=34 role=brain wall_ms=1788931234275 mono_ms=624086 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2760073Z CONN_LIFECYCLE: conn=34 role=brain wall_ms=1788931234275 mono_ms=624086 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2768443Z CONN_LIFECYCLE: conn=33 role=brain stream-subscriber stream=29 wall_ms=1788931234275 mono_ms=624086 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2769855Z CONN_LIFECYCLE: conn=35 role=brain wall_ms=1788931234275 mono_ms=624086 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2770958Z CONN_LIFECYCLE: conn=35 role=brain wall_ms=1788931234276 mono_ms=624086 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2772275Z CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=30 wall_ms=1788931234276 mono_ms=624087 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2773667Z CONN_LIFECYCLE: conn=36 role=brain wall_ms=1788931234276 mono_ms=624087 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2774770Z CONN_LIFECYCLE: conn=36 role=brain wall_ms=1788931234276 mono_ms=624087 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2855621Z CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=32 wall_ms=1788931234285 mono_ms=624096 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2857092Z CONN_LIFECYCLE: conn=37 role=brain wall_ms=1788931234285 mono_ms=624096 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.2858703Z CONN_LIFECYCLE: conn=37 role=brain wall_ms=1788931234285 mono_ms=624096 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.3431740Z TWOHOST OK: rest: A's remote suspend landed (B suspended)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.7829264Z CONN_LIFECYCLE: conn=38 role=brain wall_ms=1788931234782 mono_ms=624593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.7830906Z CONN_LIFECYCLE: conn=38 role=brain wall_ms=1788931234782 mono_ms=624593 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.7834826Z CONN_LIFECYCLE: conn=39 role=brain stream-subscriber stream=34 wall_ms=1788931234783 mono_ms=624594 event=stream-sub-attach stream=34 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.7836681Z CONN_LIFECYCLE: conn=39 role=brain stream-subscriber stream=34 wall_ms=1788931234783 mono_ms=624594 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.8259176Z CONN_LIFECYCLE: conn=39 role=brain stream-subscriber stream=34 wall_ms=1788931234825 mono_ms=624636 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.8260742Z CONN_LIFECYCLE: conn=40 role=brain wall_ms=1788931234825 mono_ms=624636 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.8261909Z CONN_LIFECYCLE: conn=40 role=brain wall_ms=1788931234826 mono_ms=624636 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.8334042Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931234833 mono_ms=624643 event=stream-sub-attach stream=37 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.8436790Z TWOHOST OK: rest: A's remote wake landed (B active again)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:34.9066967Z CONN_LIFECYCLE: conn=41 role=brain wall_ms=1788931234906 mono_ms=624717 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0312942Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235030 mono_ms=624841 event=stream-sub-release stream=37 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0341598Z CONN_LIFECYCLE: conn=42 role=brain wall_ms=1788931235034 mono_ms=624844 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0342752Z CONN_LIFECYCLE: conn=42 role=brain wall_ms=1788931235034 mono_ms=624844 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0345625Z CONN_LIFECYCLE: conn=43 role=brain stream-subscriber stream=38 wall_ms=1788931235034 mono_ms=624845 event=stream-sub-attach stream=38 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0346947Z CONN_LIFECYCLE: conn=43 role=brain stream-subscriber stream=38 wall_ms=1788931235034 mono_ms=624845 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0436674Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235043 mono_ms=624854 event=stream-sub-attach stream=39 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0568071Z CONN_LIFECYCLE: conn=43 role=brain stream-subscriber stream=38 wall_ms=1788931235056 mono_ms=624867 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0569715Z CONN_LIFECYCLE: conn=44 role=brain wall_ms=1788931235056 mono_ms=624867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0570602Z CONN_LIFECYCLE: conn=44 role=brain wall_ms=1788931235056 mono_ms=624867 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.0816967Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235081 mono_ms=624892 event=stream-sub-release stream=39 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1349785Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235134 mono_ms=624945 event=stream-sub-attach stream=42 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1351439Z CONN_LIFECYCLE: conn=45 role=brain wall_ms=1788931235134 mono_ms=624945 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1352393Z CONN_LIFECYCLE: conn=46 role=brain stream-subscriber stream=40 wall_ms=1788931235135 mono_ms=624945 event=stream-sub-attach stream=40 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1353431Z CONN_LIFECYCLE: conn=45 role=brain wall_ms=1788931235135 mono_ms=624945 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1354394Z CONN_LIFECYCLE: conn=46 role=brain stream-subscriber stream=40 wall_ms=1788931235135 mono_ms=624946 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1361985Z CONN_LIFECYCLE: conn=46 role=brain stream-subscriber stream=40 wall_ms=1788931235136 mono_ms=624946 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1363075Z CONN_LIFECYCLE: conn=47 role=brain wall_ms=1788931235136 mono_ms=624947 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1364058Z CONN_LIFECYCLE: conn=47 role=brain wall_ms=1788931235136 mono_ms=624947 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1852765Z CONN_LIFECYCLE: conn=48 role=brain wall_ms=1788931235185 mono_ms=624995 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1853812Z CONN_LIFECYCLE: conn=48 role=brain wall_ms=1788931235185 mono_ms=624996 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1855278Z CONN_LIFECYCLE: conn=49 role=brain stream-subscriber stream=43 wall_ms=1788931235185 mono_ms=624996 event=stream-sub-attach stream=43 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1857589Z CONN_LIFECYCLE: conn=49 role=brain stream-subscriber stream=43 wall_ms=1788931235185 mono_ms=624996 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1867333Z CONN_LIFECYCLE: conn=49 role=brain stream-subscriber stream=43 wall_ms=1788931235186 mono_ms=624997 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1868262Z CONN_LIFECYCLE: conn=50 role=brain wall_ms=1788931235186 mono_ms=624997 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.1869122Z CONN_LIFECYCLE: conn=50 role=brain wall_ms=1788931235186 mono_ms=624997 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.5855082Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235585 mono_ms=625395 event=stream-sub-release stream=42 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.6046677Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235604 mono_ms=625415 event=stream-sub-attach stream=46 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.6381511Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931235637 mono_ms=625448 event=stream-sub-release stream=46 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8408070Z CONN_LIFECYCLE: conn=51 role=brain wall_ms=1788931235840 mono_ms=625651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8409487Z CONN_LIFECYCLE: conn=52 role=brain wall_ms=1788931235840 mono_ms=625651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8410412Z CONN_LIFECYCLE: conn=53 role=brain wall_ms=1788931235840 mono_ms=625651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8411741Z CONN_LIFECYCLE: conn=51 role=brain wall_ms=1788931235840 mono_ms=625651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8413117Z CONN_LIFECYCLE: conn=52 role=brain wall_ms=1788931235840 mono_ms=625651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8414165Z CONN_LIFECYCLE: conn=53 role=brain wall_ms=1788931235840 mono_ms=625651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8415350Z CONN_LIFECYCLE: conn=54 role=brain stream-subscriber stream=49 wall_ms=1788931235841 mono_ms=625651 event=stream-sub-attach stream=49 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8416790Z CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=47 wall_ms=1788931235841 mono_ms=625651 event=stream-sub-attach stream=47 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8418177Z CONN_LIFECYCLE: conn=54 role=brain stream-subscriber stream=49 wall_ms=1788931235841 mono_ms=625651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8419291Z CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=47 wall_ms=1788931235841 mono_ms=625652 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8420162Z CONN_LIFECYCLE: conn=56 role=brain wall_ms=1788931235841 mono_ms=625652 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8421134Z CONN_LIFECYCLE: conn=56 role=brain stream-subscriber stream=48 wall_ms=1788931235841 mono_ms=625652 event=stream-sub-attach stream=48 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8422480Z CONN_LIFECYCLE: conn=54 role=brain stream-subscriber stream=49 wall_ms=1788931235841 mono_ms=625652 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8423425Z CONN_LIFECYCLE: conn=57 role=brain wall_ms=1788931235841 mono_ms=625652 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8424102Z CONN_LIFECYCLE: conn=57 role=brain wall_ms=1788931235841 mono_ms=625652 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8424953Z CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=47 wall_ms=1788931235842 mono_ms=625652 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8425949Z CONN_LIFECYCLE: conn=58 role=brain wall_ms=1788931235842 mono_ms=625652 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8426626Z CONN_LIFECYCLE: conn=58 role=brain wall_ms=1788931235842 mono_ms=625653 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8807324Z CONN_LIFECYCLE: conn=56 role=brain stream-subscriber stream=48 wall_ms=1788931235880 mono_ms=625691 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8808723Z CONN_LIFECYCLE: conn=59 role=brain wall_ms=1788931235880 mono_ms=625691 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:35.8810086Z CONN_LIFECYCLE: conn=59 role=brain wall_ms=1788931235880 mono_ms=625691 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.1023110Z TWOHOST OK: presence: A's redirected notif surfaced at B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.1023683Z TWOHOST OK: presence: the surfacing node owns the marks
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.3011585Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931236300 mono_ms=626111 event=stream-sub-attach stream=53 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.3950570Z CONN_LIFECYCLE: conn=60 role=brain wall_ms=1788931236394 mono_ms=626205 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.3951790Z CONN_LIFECYCLE: conn=60 role=brain wall_ms=1788931236395 mono_ms=626205 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.3953070Z CONN_LIFECYCLE: conn=61 role=brain stream-subscriber stream=55 wall_ms=1788931236395 mono_ms=626205 event=stream-sub-attach stream=55 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.3954314Z CONN_LIFECYCLE: conn=61 role=brain stream-subscriber stream=55 wall_ms=1788931236395 mono_ms=626206 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4024648Z CONN_LIFECYCLE: conn=61 role=brain stream-subscriber stream=55 wall_ms=1788931236402 mono_ms=626213 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4026226Z CONN_LIFECYCLE: conn=62 role=brain wall_ms=1788931236402 mono_ms=626213 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4027143Z CONN_LIFECYCLE: conn=62 role=brain wall_ms=1788931236402 mono_ms=626213 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4457228Z CONN_LIFECYCLE: conn=63 role=brain wall_ms=1788931236445 mono_ms=626256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4458696Z CONN_LIFECYCLE: conn=63 role=brain wall_ms=1788931236445 mono_ms=626256 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4462140Z CONN_LIFECYCLE: conn=64 role=brain stream-subscriber stream=56 wall_ms=1788931236446 mono_ms=626256 event=stream-sub-attach stream=56 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4463700Z CONN_LIFECYCLE: conn=64 role=brain stream-subscriber stream=56 wall_ms=1788931236446 mono_ms=626256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4752346Z CONN_LIFECYCLE: conn=64 role=brain stream-subscriber stream=56 wall_ms=1788931236475 mono_ms=626285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4753951Z CONN_LIFECYCLE: conn=65 role=brain wall_ms=1788931236475 mono_ms=626286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4755415Z CONN_LIFECYCLE: conn=65 role=brain wall_ms=1788931236475 mono_ms=626286 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4960806Z CONN_LIFECYCLE: conn=66 role=brain wall_ms=1788931236495 mono_ms=626306 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4962561Z CONN_LIFECYCLE: conn=66 role=brain wall_ms=1788931236496 mono_ms=626306 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4964246Z CONN_LIFECYCLE: conn=67 role=brain stream-subscriber stream=57 wall_ms=1788931236496 mono_ms=626307 event=stream-sub-attach stream=57 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4965960Z CONN_LIFECYCLE: conn=67 role=brain stream-subscriber stream=57 wall_ms=1788931236496 mono_ms=626307 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4979778Z CONN_LIFECYCLE: conn=67 role=brain stream-subscriber stream=57 wall_ms=1788931236497 mono_ms=626308 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4981259Z CONN_LIFECYCLE: conn=68 role=brain wall_ms=1788931236498 mono_ms=626308 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.4982369Z CONN_LIFECYCLE: conn=68 role=brain wall_ms=1788931236498 mono_ms=626308 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5467120Z CONN_LIFECYCLE: conn=69 role=brain wall_ms=1788931236546 mono_ms=626357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5468621Z CONN_LIFECYCLE: conn=69 role=brain wall_ms=1788931236546 mono_ms=626357 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5472389Z CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=58 wall_ms=1788931236546 mono_ms=626357 event=stream-sub-attach stream=58 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5474284Z CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=58 wall_ms=1788931236547 mono_ms=626357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5497055Z CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=58 wall_ms=1788931236549 mono_ms=626360 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5498797Z CONN_LIFECYCLE: conn=71 role=brain wall_ms=1788931236549 mono_ms=626360 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5499851Z CONN_LIFECYCLE: conn=71 role=brain wall_ms=1788931236549 mono_ms=626360 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5971723Z CONN_LIFECYCLE: conn=72 role=brain wall_ms=1788931236596 mono_ms=626407 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5972752Z CONN_LIFECYCLE: conn=72 role=brain wall_ms=1788931236597 mono_ms=626407 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5975009Z CONN_LIFECYCLE: conn=73 role=brain stream-subscriber stream=59 wall_ms=1788931236597 mono_ms=626408 event=stream-sub-attach stream=59 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.5976560Z CONN_LIFECYCLE: conn=73 role=brain stream-subscriber stream=59 wall_ms=1788931236597 mono_ms=626408 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6023025Z TWOHOST OK: shell: A's cross-node notify command RENDERED at B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6023509Z TWOHOST OK: toast: A's notify rendered via the shell template at B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6666822Z CONN_LIFECYCLE: conn=73 role=brain stream-subscriber stream=59 wall_ms=1788931236666 mono_ms=626477 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6669120Z CONN_LIFECYCLE: conn=74 role=brain wall_ms=1788931236666 mono_ms=626477 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6670152Z CONN_LIFECYCLE: conn=74 role=brain wall_ms=1788931236666 mono_ms=626477 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6817004Z TWOHOST OK: gateway: A's cross-node cmd spooled under the gateway-typed owner at B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6822777Z TWOHOST OK: gateway-typed owner cross-node cmd spooled + drive dropped at B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6977580Z CONN_LIFECYCLE: conn=75 role=brain wall_ms=1788931236697 mono_ms=626508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6978628Z CONN_LIFECYCLE: conn=75 role=brain wall_ms=1788931236697 mono_ms=626508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6980334Z CONN_LIFECYCLE: conn=76 role=brain stream-subscriber stream=60 wall_ms=1788931236697 mono_ms=626508 event=stream-sub-attach stream=60 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6982792Z CONN_LIFECYCLE: conn=76 role=brain stream-subscriber stream=60 wall_ms=1788931236698 mono_ms=626508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6997301Z CONN_LIFECYCLE: conn=76 role=brain stream-subscriber stream=60 wall_ms=1788931236699 mono_ms=626510 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.6998787Z CONN_LIFECYCLE: conn=77 role=brain wall_ms=1788931236699 mono_ms=626510 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7000108Z CONN_LIFECYCLE: conn=77 role=brain wall_ms=1788931236699 mono_ms=626510 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7485207Z CONN_LIFECYCLE: conn=78 role=brain wall_ms=1788931236748 mono_ms=626559 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7486552Z CONN_LIFECYCLE: conn=78 role=brain wall_ms=1788931236748 mono_ms=626559 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7490285Z CONN_LIFECYCLE: conn=79 role=brain stream-subscriber stream=54 wall_ms=1788931236748 mono_ms=626559 event=stream-sub-attach stream=54 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7491627Z CONN_LIFECYCLE: conn=79 role=brain stream-subscriber stream=54 wall_ms=1788931236749 mono_ms=626559 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7707492Z CONN_LIFECYCLE: conn=79 role=brain stream-subscriber stream=54 wall_ms=1788931236770 mono_ms=626581 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7709555Z CONN_LIFECYCLE: conn=80 role=brain wall_ms=1788931236770 mono_ms=626581 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7710470Z CONN_LIFECYCLE: conn=80 role=brain wall_ms=1788931236770 mono_ms=626581 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7761843Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931236775 mono_ms=626586 event=stream-sub-release stream=53 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7881323Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931236787 mono_ms=626598 event=stream-sub-attach stream=61 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.7990830Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931236798 mono_ms=626609 event=stream-sub-release stream=61 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8492661Z CONN_LIFECYCLE: conn=81 role=brain wall_ms=1788931236849 mono_ms=626659 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8494310Z CONN_LIFECYCLE: conn=81 role=brain wall_ms=1788931236849 mono_ms=626660 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8496053Z CONN_LIFECYCLE: conn=82 role=brain stream-subscriber stream=62 wall_ms=1788931236849 mono_ms=626660 event=stream-sub-attach stream=62 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8497586Z CONN_LIFECYCLE: conn=82 role=brain stream-subscriber stream=62 wall_ms=1788931236849 mono_ms=626660 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8503957Z CONN_LIFECYCLE: conn=82 role=brain stream-subscriber stream=62 wall_ms=1788931236850 mono_ms=626661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8505063Z CONN_LIFECYCLE: conn=83 role=brain wall_ms=1788931236850 mono_ms=626661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:36.8506026Z CONN_LIFECYCLE: conn=83 role=brain wall_ms=1788931236850 mono_ms=626661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.4631138Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931237462 mono_ms=627273 event=stream-sub-attach stream=66 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5036645Z CONN_LIFECYCLE: conn=84 role=brain wall_ms=1788931237503 mono_ms=627314 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5037474Z CONN_LIFECYCLE: conn=85 role=brain wall_ms=1788931237503 mono_ms=627314 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5038205Z CONN_LIFECYCLE: conn=86 role=brain wall_ms=1788931237503 mono_ms=627314 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5039128Z CONN_LIFECYCLE: conn=84 role=brain wall_ms=1788931237503 mono_ms=627314 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5040097Z CONN_LIFECYCLE: conn=85 role=brain wall_ms=1788931237503 mono_ms=627314 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5041031Z CONN_LIFECYCLE: conn=86 role=brain wall_ms=1788931237503 mono_ms=627314 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5042239Z CONN_LIFECYCLE: conn=87 role=brain stream-subscriber stream=69 wall_ms=1788931237503 mono_ms=627314 event=stream-sub-attach stream=69 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5043821Z CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=67 wall_ms=1788931237503 mono_ms=627314 event=stream-sub-attach stream=67 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5045143Z CONN_LIFECYCLE: conn=87 role=brain stream-subscriber stream=69 wall_ms=1788931237504 mono_ms=627314 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5046026Z CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=67 wall_ms=1788931237504 mono_ms=627314 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5046793Z CONN_LIFECYCLE: conn=89 role=brain wall_ms=1788931237504 mono_ms=627315 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5048107Z CONN_LIFECYCLE: conn=89 role=brain stream-subscriber stream=68 wall_ms=1788931237504 mono_ms=627315 event=stream-sub-attach stream=68 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5049732Z CONN_LIFECYCLE: conn=87 role=brain stream-subscriber stream=69 wall_ms=1788931237504 mono_ms=627315 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5050981Z CONN_LIFECYCLE: conn=90 role=brain wall_ms=1788931237504 mono_ms=627315 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5051829Z CONN_LIFECYCLE: conn=90 role=brain wall_ms=1788931237504 mono_ms=627315 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5052813Z CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=67 wall_ms=1788931237505 mono_ms=627315 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5053926Z CONN_LIFECYCLE: conn=91 role=brain wall_ms=1788931237505 mono_ms=627316 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5054710Z CONN_LIFECYCLE: conn=91 role=brain wall_ms=1788931237505 mono_ms=627316 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5303243Z CONN_LIFECYCLE: conn=89 role=brain stream-subscriber stream=68 wall_ms=1788931237530 mono_ms=627340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5304315Z CONN_LIFECYCLE: conn=92 role=brain wall_ms=1788931237530 mono_ms=627341 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:37.5305155Z CONN_LIFECYCLE: conn=92 role=brain wall_ms=1788931237530 mono_ms=627341 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:38.4473715Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931238447 mono_ms=628257 event=stream-sub-release stream=66 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:38.4696160Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931238469 mono_ms=628280 event=stream-sub-attach stream=70 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:38.5167706Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931238516 mono_ms=628327 event=stream-sub-release stream=70 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.1812446Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931239180 mono_ms=628991 event=stream-sub-attach stream=74 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.2711258Z CONN_LIFECYCLE: conn=93 role=brain wall_ms=1788931239270 mono_ms=629081 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.2712529Z CONN_LIFECYCLE: conn=93 role=brain wall_ms=1788931239271 mono_ms=629081 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.2713625Z CONN_LIFECYCLE: conn=94 role=brain stream-subscriber stream=76 wall_ms=1788931239271 mono_ms=629082 event=stream-sub-attach stream=76 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.2715979Z CONN_LIFECYCLE: conn=94 role=brain stream-subscriber stream=76 wall_ms=1788931239271 mono_ms=629082 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.3348831Z CONN_LIFECYCLE: conn=94 role=brain stream-subscriber stream=76 wall_ms=1788931239334 mono_ms=629145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.3350429Z CONN_LIFECYCLE: conn=95 role=brain wall_ms=1788931239334 mono_ms=629145 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.3351395Z CONN_LIFECYCLE: conn=95 role=brain wall_ms=1788931239335 mono_ms=629145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:39.4340289Z TWOHOST OK: A-3: A's setup suspend landed (B suspended)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2327445Z CONN_LIFECYCLE: conn=96 role=brain wall_ms=1788931240232 mono_ms=630043 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2328913Z CONN_LIFECYCLE: conn=96 role=brain wall_ms=1788931240232 mono_ms=630043 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2332793Z CONN_LIFECYCLE: conn=97 role=brain stream-subscriber stream=75 wall_ms=1788931240233 mono_ms=630043 event=stream-sub-attach stream=75 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2334168Z CONN_LIFECYCLE: conn=97 role=brain stream-subscriber stream=75 wall_ms=1788931240233 mono_ms=630044 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2552477Z CONN_LIFECYCLE: conn=97 role=brain stream-subscriber stream=75 wall_ms=1788931240255 mono_ms=630065 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2554723Z CONN_LIFECYCLE: conn=98 role=brain wall_ms=1788931240255 mono_ms=630066 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.2555901Z CONN_LIFECYCLE: conn=98 role=brain wall_ms=1788931240255 mono_ms=630066 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3841019Z CONN_LIFECYCLE: conn=99 role=brain wall_ms=1788931240383 mono_ms=630194 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3842519Z CONN_LIFECYCLE: conn=99 role=brain wall_ms=1788931240384 mono_ms=630194 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3845420Z CONN_LIFECYCLE: conn=100 role=brain stream-subscriber stream=77 wall_ms=1788931240384 mono_ms=630195 event=stream-sub-attach stream=77 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3846521Z CONN_LIFECYCLE: conn=100 role=brain stream-subscriber stream=77 wall_ms=1788931240384 mono_ms=630195 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3854892Z CONN_LIFECYCLE: conn=100 role=brain stream-subscriber stream=77 wall_ms=1788931240385 mono_ms=630196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3856295Z CONN_LIFECYCLE: conn=101 role=brain wall_ms=1788931240385 mono_ms=630196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.3857116Z CONN_LIFECYCLE: conn=101 role=brain wall_ms=1788931240385 mono_ms=630196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.7544518Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931240754 mono_ms=630564 event=stream-sub-release stream=74 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.7776169Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931240777 mono_ms=630588 event=stream-sub-attach stream=78 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.7877133Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931240787 mono_ms=630598 event=stream-sub-release stream=78 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.8891780Z CONN_LIFECYCLE: conn=102 role=brain wall_ms=1788931240889 mono_ms=630699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.8892732Z CONN_LIFECYCLE: conn=102 role=brain wall_ms=1788931240889 mono_ms=630699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.8895580Z CONN_LIFECYCLE: conn=103 role=brain stream-subscriber stream=80 wall_ms=1788931240889 mono_ms=630700 event=stream-sub-attach stream=80 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.8896687Z CONN_LIFECYCLE: conn=103 role=brain stream-subscriber stream=80 wall_ms=1788931240889 mono_ms=630700 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9347689Z TWOHOST OK: A-3: A's bare-id ROUTED wake landed (B active)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9415202Z TWOHOST OK: A-3 bare-id wake (serve side)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9484189Z SPAWN_PHASE:ling-twohost-b2 phase=received t_ms=0 fresh=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9484630Z SPAWN_PHASE:ling-twohost-b2 phase=gate_claimed t_ms=0
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9485030Z SPAWN_PHASE:ling-twohost-b2 phase=pty_creating t_ms=0 program=sh
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9504214Z SPAWN_PHASE:ling-twohost-b2 phase=pty_created t_ms=2 pid=Some(2213033)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9506009Z SPAWN_PHASE:ling-twohost-b2 phase=input_writer t_ms=2
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9509717Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local controller session=3 endpoint=ling-twohost-b2 by=local wall_ms=1788931240950 mono_ms=630761 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9617096Z SPAWN_PHASE:ling-twohost-b2 phase=log_ready t_ms=13
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9617520Z SPAWN_PHASE:ling-twohost-b2 phase=drain_armed t_ms=13
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9617892Z SPAWN_PHASE:ling-twohost-b2 phase=waiter_armed t_ms=13
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9618280Z SPAWN_PHASE:ling-twohost-b2 phase=translation_ready t_ms=13
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9618707Z SPAWN_PHASE:ling-twohost-b2 phase=row_inserted t_ms=13 session=3
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9685191Z TWOHOST role B: B-2 ticker session 3 ready
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9738900Z CONN_LIFECYCLE: conn=103 role=brain stream-subscriber stream=80 wall_ms=1788931240973 mono_ms=630784 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9740120Z CONN_LIFECYCLE: conn=104 role=brain wall_ms=1788931240973 mono_ms=630784 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:40.9741000Z CONN_LIFECYCLE: conn=104 role=brain wall_ms=1788931240974 mono_ms=630784 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0401739Z CONN_LIFECYCLE: conn=105 role=brain wall_ms=1788931241040 mono_ms=630850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0403180Z CONN_LIFECYCLE: conn=106 role=brain wall_ms=1788931241040 mono_ms=630850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0404444Z CONN_LIFECYCLE: conn=107 role=brain wall_ms=1788931241040 mono_ms=630850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0405417Z CONN_LIFECYCLE: conn=105 role=brain wall_ms=1788931241040 mono_ms=630850 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0406403Z CONN_LIFECYCLE: conn=106 role=brain wall_ms=1788931241040 mono_ms=630850 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0407985Z CONN_LIFECYCLE: conn=107 role=brain wall_ms=1788931241040 mono_ms=630851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0409199Z CONN_LIFECYCLE: conn=108 role=brain stream-subscriber stream=83 wall_ms=1788931241040 mono_ms=630851 event=stream-sub-attach stream=83 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0410296Z CONN_LIFECYCLE: conn=110 role=brain stream-subscriber stream=81 wall_ms=1788931241040 mono_ms=630851 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0411279Z CONN_LIFECYCLE: conn=108 role=brain stream-subscriber stream=83 wall_ms=1788931241040 mono_ms=630851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0412180Z CONN_LIFECYCLE: conn=110 role=brain stream-subscriber stream=81 wall_ms=1788931241040 mono_ms=630851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0413019Z CONN_LIFECYCLE: conn=109 role=brain wall_ms=1788931241040 mono_ms=630851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0414113Z CONN_LIFECYCLE: conn=109 role=brain stream-subscriber stream=82 wall_ms=1788931241040 mono_ms=630851 event=stream-sub-attach stream=82 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0415586Z CONN_LIFECYCLE: conn=108 role=brain stream-subscriber stream=83 wall_ms=1788931241041 mono_ms=630851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0416605Z CONN_LIFECYCLE: conn=111 role=brain wall_ms=1788931241041 mono_ms=630851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0417521Z CONN_LIFECYCLE: conn=111 role=brain wall_ms=1788931241041 mono_ms=630852 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0422531Z CONN_LIFECYCLE: conn=109 role=brain stream-subscriber stream=82 wall_ms=1788931241042 mono_ms=630852 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0424079Z CONN_LIFECYCLE: conn=112 role=brain wall_ms=1788931241042 mono_ms=630853 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0425103Z CONN_LIFECYCLE: conn=112 role=brain wall_ms=1788931241042 mono_ms=630853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0595145Z CONN_LIFECYCLE: conn=110 role=brain stream-subscriber stream=81 wall_ms=1788931241059 mono_ms=630870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0596398Z CONN_LIFECYCLE: conn=113 role=brain wall_ms=1788931241059 mono_ms=630870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0597549Z CONN_LIFECYCLE: conn=113 role=brain wall_ms=1788931241059 mono_ms=630870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:41.0814317Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931241081 mono_ms=630891 event=stream-sub-attach stream=85 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.4478556Z CONN_LIFECYCLE: conn=114 role=brain wall_ms=1788931244447 mono_ms=634258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.4480223Z CONN_LIFECYCLE: conn=114 role=brain wall_ms=1788931244447 mono_ms=634258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.4549351Z CONN_LIFECYCLE: conn=115 role=brain wall_ms=1788931244454 mono_ms=634265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.4550682Z CONN_LIFECYCLE: conn=115 role=brain wall_ms=1788931244454 mono_ms=634265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.5898579Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931244589 mono_ms=634400 event=stream-sub-release stream=85 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.6103192Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931244610 mono_ms=634420 event=stream-sub-attach stream=88 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.6304951Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931244630 mono_ms=634440 event=stream-sub-release stream=88 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9484212Z CONN_LIFECYCLE: conn=117 role=brain wall_ms=1788931244948 mono_ms=634758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9486417Z CONN_LIFECYCLE: conn=118 role=brain presence-subscriber wall_ms=1788931244948 mono_ms=634759 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9491697Z CONN_LIFECYCLE: conn=119 role=brain wall_ms=1788931244949 mono_ms=634759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9493023Z CONN_LIFECYCLE: conn=119 role=brain wall_ms=1788931244949 mono_ms=634760 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9497579Z CONN_LIFECYCLE: conn=120 role=brain wall_ms=1788931244949 mono_ms=634760 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9498542Z CONN_LIFECYCLE: conn=116 role=brain wall_ms=1788931244949 mono_ms=634760 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9501732Z CONN_LIFECYCLE: conn=120 role=brain stream-subscriber stream=9 wall_ms=1788931244950 mono_ms=634760 event=stream-sub-attach stream=9 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9508154Z CONN_LIFECYCLE: conn=15 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931244950 mono_ms=634761 event=controller-replaced session=1 new_conn=120 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9510901Z CONN_LIFECYCLE: conn=120 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931244950 mono_ms=634761 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9513228Z CONN_LIFECYCLE: conn=15 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931244950 mono_ms=634761 event=writer-exit role=controller session=1 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9654515Z SUBSCRIBE_DECISION: session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=120 intent=control old_by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a old_gen=1788931223085 req_gen=1788931223085 decision=controller
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:44.9657339Z SUBSCRIBE_DECISION: session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=120 intent=control old_by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a old_gen=1788931223085 req_gen=1788931223085 decision=idempotent
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0062102Z CONN_LIFECYCLE: conn=118 role=brain presence-subscriber wall_ms=1788931245005 mono_ms=634816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0213398Z CONN_LIFECYCLE: conn=122 role=brain wall_ms=1788931245021 mono_ms=634831 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0214338Z CONN_LIFECYCLE: conn=122 role=brain wall_ms=1788931245021 mono_ms=634832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0216604Z CONN_LIFECYCLE: conn=123 role=brain stream-subscriber stream=89 wall_ms=1788931245021 mono_ms=634832 event=stream-sub-attach stream=89 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0218735Z CONN_LIFECYCLE: conn=123 role=brain stream-subscriber stream=89 wall_ms=1788931245021 mono_ms=634832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0434143Z CONN_LIFECYCLE: conn=123 role=brain stream-subscriber stream=89 wall_ms=1788931245043 mono_ms=634854 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0435499Z CONN_LIFECYCLE: conn=124 role=brain wall_ms=1788931245043 mono_ms=634854 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0436597Z CONN_LIFECYCLE: conn=124 role=brain wall_ms=1788931245043 mono_ms=634854 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0495317Z CONN_LIFECYCLE: conn=125 role=brain wall_ms=1788931245049 mono_ms=634860 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0497286Z CONN_LIFECYCLE: conn=125 role=brain wall_ms=1788931245049 mono_ms=634860 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0501376Z CONN_LIFECYCLE: conn=126 role=brain wall_ms=1788931245050 mono_ms=634860 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0504293Z CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=93 wall_ms=1788931245050 mono_ms=634861 event=stream-sub-attach stream=93 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0512322Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local controller session=3 endpoint=ling-twohost-b2 by=local wall_ms=1788931245051 mono_ms=634861 event=controller-replaced session=3 new_conn=126 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0514906Z CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931245051 mono_ms=634861 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0517250Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local controller session=3 endpoint=ling-twohost-b2 by=local wall_ms=1788931245051 mono_ms=634861 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0593952Z SUBSCRIBE_DECISION: session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=126 intent=control old_by=- old_gen=0 req_gen=1788931245034 decision=controller
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0596405Z SUBSCRIBE_DECISION: session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=126 intent=control old_by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a old_gen=1788931245034 req_gen=1788931245034 decision=idempotent
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0720085Z CONN_LIFECYCLE: conn=128 role=brain wall_ms=1788931245071 mono_ms=634882 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0722032Z CONN_LIFECYCLE: conn=129 role=brain wall_ms=1788931245071 mono_ms=634882 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0723248Z CONN_LIFECYCLE: conn=128 role=brain wall_ms=1788931245071 mono_ms=634882 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0724455Z CONN_LIFECYCLE: conn=129 role=brain wall_ms=1788931245072 mono_ms=634882 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0725731Z CONN_LIFECYCLE: conn=130 role=brain stream-subscriber stream=94 wall_ms=1788931245072 mono_ms=634883 event=stream-sub-attach stream=94 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0727495Z CONN_LIFECYCLE: conn=131 role=brain wall_ms=1788931245072 mono_ms=634883 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0729195Z CONN_LIFECYCLE: conn=130 role=brain stream-subscriber stream=94 wall_ms=1788931245072 mono_ms=634883 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0730484Z CONN_LIFECYCLE: conn=131 role=brain stream-subscriber stream=93 wall_ms=1788931245072 mono_ms=634883 event=stream-sub-attach stream=93 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0734462Z ATTACH_INTENT_CHOSEN: site=serve_dispatch session=3 intent=control from_seq=0 gen=1788931245034 coded=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0736106Z CONN_LIFECYCLE: conn=130 role=brain stream-subscriber stream=94 wall_ms=1788931245073 mono_ms=634884 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0738055Z CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931245073 mono_ms=634884 event=controller-replaced session=3 new_conn=131 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0740903Z CONN_LIFECYCLE: conn=131 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931245073 mono_ms=634884 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0743167Z CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931245073 mono_ms=634884 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0745866Z CONN_LIFECYCLE: conn=133 role=brain wall_ms=1788931245073 mono_ms=634884 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0746971Z CONN_LIFECYCLE: conn=133 role=brain wall_ms=1788931245073 mono_ms=634884 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0747960Z ATTACH_INTENT_CHOSEN: site=serve_dispatch session=3 intent=control from_seq=0 gen=1788931245034 coded=false
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0818010Z SUBSCRIBE_DECISION: session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=131 intent=control old_by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a old_gen=1788931245034 req_gen=1788931245034 decision=controller
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.0821267Z SUBSCRIBE_DECISION: session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a conn=131 intent=control old_by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a old_gen=1788931245034 req_gen=1788931245034 decision=idempotent
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1225818Z CONN_LIFECYCLE: conn=134 role=brain wall_ms=1788931245122 mono_ms=634933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1227249Z CONN_LIFECYCLE: conn=135 role=brain wall_ms=1788931245122 mono_ms=634933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1228804Z CONN_LIFECYCLE: conn=134 role=brain wall_ms=1788931245122 mono_ms=634933 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1230365Z CONN_LIFECYCLE: conn=136 role=brain wall_ms=1788931245122 mono_ms=634933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1231825Z CONN_LIFECYCLE: conn=135 role=brain wall_ms=1788931245122 mono_ms=634933 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1233033Z CONN_LIFECYCLE: conn=136 role=brain wall_ms=1788931245122 mono_ms=634933 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1241254Z CONN_LIFECYCLE: conn=137 role=brain stream-subscriber stream=97 wall_ms=1788931245123 mono_ms=634933 event=stream-sub-attach stream=97 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1242960Z CONN_LIFECYCLE: conn=138 role=brain stream-subscriber stream=95 wall_ms=1788931245123 mono_ms=634933 event=stream-sub-attach stream=95 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1244358Z CONN_LIFECYCLE: conn=137 role=brain stream-subscriber stream=97 wall_ms=1788931245123 mono_ms=634934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1245589Z CONN_LIFECYCLE: conn=138 role=brain stream-subscriber stream=95 wall_ms=1788931245123 mono_ms=634934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1246781Z CONN_LIFECYCLE: conn=139 role=brain wall_ms=1788931245123 mono_ms=634934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1248055Z CONN_LIFECYCLE: conn=137 role=brain stream-subscriber stream=97 wall_ms=1788931245123 mono_ms=634934 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1249862Z CONN_LIFECYCLE: conn=139 role=brain stream-subscriber stream=96 wall_ms=1788931245124 mono_ms=634934 event=stream-sub-attach stream=96 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1250950Z CONN_LIFECYCLE: conn=140 role=brain wall_ms=1788931245124 mono_ms=634934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1251982Z CONN_LIFECYCLE: conn=140 role=brain wall_ms=1788931245124 mono_ms=634935 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1253282Z CONN_LIFECYCLE: conn=138 role=brain stream-subscriber stream=95 wall_ms=1788931245124 mono_ms=634935 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1254674Z CONN_LIFECYCLE: conn=141 role=brain wall_ms=1788931245124 mono_ms=634935 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1255715Z CONN_LIFECYCLE: conn=141 role=brain wall_ms=1788931245124 mono_ms=634935 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1264172Z CONN_LIFECYCLE: conn=139 role=brain stream-subscriber stream=96 wall_ms=1788931245126 mono_ms=634937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1265582Z CONN_LIFECYCLE: conn=142 role=brain wall_ms=1788931245126 mono_ms=634937 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.1266714Z CONN_LIFECYCLE: conn=142 role=brain wall_ms=1788931245126 mono_ms=634937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.2302668Z TWOHOST OK: B-2: the attacher child's control stamps landed
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.2940775Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931245293 mono_ms=635104 event=stream-sub-attach stream=104 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.5539910Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931245553 mono_ms=635364 event=stream-sub-release stream=104 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.5754946Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931245574 mono_ms=635385 event=stream-sub-attach stream=105 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.5905224Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931245590 mono_ms=635400 event=stream-sub-release stream=105 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6292663Z CONN_LIFECYCLE: conn=143 role=brain wall_ms=1788931245629 mono_ms=635439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6294092Z CONN_LIFECYCLE: conn=143 role=brain wall_ms=1788931245629 mono_ms=635440 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6298207Z CONN_LIFECYCLE: conn=144 role=brain stream-subscriber stream=106 wall_ms=1788931245629 mono_ms=635440 event=stream-sub-attach stream=106 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6300727Z CONN_LIFECYCLE: conn=144 role=brain stream-subscriber stream=106 wall_ms=1788931245629 mono_ms=635440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6527587Z CONN_LIFECYCLE: conn=144 role=brain stream-subscriber stream=106 wall_ms=1788931245652 mono_ms=635463 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6529743Z CONN_LIFECYCLE: conn=145 role=brain wall_ms=1788931245652 mono_ms=635463 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.6531099Z CONN_LIFECYCLE: conn=145 role=brain wall_ms=1788931245652 mono_ms=635463 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9345356Z CONN_LIFECYCLE: conn=146 role=brain wall_ms=1788931245934 mono_ms=635745 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9346901Z CONN_LIFECYCLE: conn=146 role=brain wall_ms=1788931245934 mono_ms=635745 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9350824Z CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=107 wall_ms=1788931245934 mono_ms=635745 event=stream-sub-attach stream=107 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9352831Z CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=107 wall_ms=1788931245935 mono_ms=635745 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9365111Z CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=107 wall_ms=1788931245936 mono_ms=635747 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9366424Z CONN_LIFECYCLE: conn=148 role=brain wall_ms=1788931245936 mono_ms=635747 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:45.9367446Z CONN_LIFECYCLE: conn=148 role=brain wall_ms=1788931245936 mono_ms=635747 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.2641645Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931246263 mono_ms=636074 event=stream-sub-attach stream=111 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5953958Z CONN_LIFECYCLE: conn=150 role=brain wall_ms=1788931246595 mono_ms=636405 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5956428Z CONN_LIFECYCLE: conn=149 role=brain wall_ms=1788931246595 mono_ms=636405 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5957431Z CONN_LIFECYCLE: conn=151 role=brain wall_ms=1788931246595 mono_ms=636405 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5958505Z CONN_LIFECYCLE: conn=150 role=brain wall_ms=1788931246595 mono_ms=636406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5960477Z CONN_LIFECYCLE: conn=149 role=brain wall_ms=1788931246595 mono_ms=636406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5961744Z CONN_LIFECYCLE: conn=151 role=brain wall_ms=1788931246595 mono_ms=636406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5963979Z CONN_LIFECYCLE: conn=152 role=brain stream-subscriber stream=112 wall_ms=1788931246595 mono_ms=636406 event=stream-sub-attach stream=112 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5966335Z CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=114 wall_ms=1788931246595 mono_ms=636406 event=stream-sub-attach stream=114 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5968461Z CONN_LIFECYCLE: conn=152 role=brain stream-subscriber stream=112 wall_ms=1788931246596 mono_ms=636406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5970610Z CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=114 wall_ms=1788931246596 mono_ms=636406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5971928Z CONN_LIFECYCLE: conn=154 role=brain wall_ms=1788931246596 mono_ms=636407 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5973533Z CONN_LIFECYCLE: conn=154 role=brain stream-subscriber stream=113 wall_ms=1788931246596 mono_ms=636407 event=stream-sub-attach stream=113 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5974982Z CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=114 wall_ms=1788931246596 mono_ms=636407 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5976098Z CONN_LIFECYCLE: conn=155 role=brain wall_ms=1788931246597 mono_ms=636407 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5977326Z CONN_LIFECYCLE: conn=155 role=brain wall_ms=1788931246597 mono_ms=636408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5978803Z CONN_LIFECYCLE: conn=152 role=brain stream-subscriber stream=112 wall_ms=1788931246597 mono_ms=636408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5980053Z CONN_LIFECYCLE: conn=156 role=brain wall_ms=1788931246597 mono_ms=636408 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.5981051Z CONN_LIFECYCLE: conn=156 role=brain wall_ms=1788931246597 mono_ms=636408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.6243030Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931246623 mono_ms=636434 event=stream-sub-release stream=111 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.6360990Z CONN_LIFECYCLE: conn=154 role=brain stream-subscriber stream=113 wall_ms=1788931246635 mono_ms=636446 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.6362961Z CONN_LIFECYCLE: conn=157 role=brain wall_ms=1788931246636 mono_ms=636446 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.6364497Z CONN_LIFECYCLE: conn=157 role=brain wall_ms=1788931246636 mono_ms=636447 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.6404607Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931246640 mono_ms=636450 event=stream-sub-attach stream=115 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:46.6507170Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931246650 mono_ms=636461 event=stream-sub-release stream=115 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1053318Z CONN_LIFECYCLE: conn=158 role=brain wall_ms=1788931247105 mono_ms=636915 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1054875Z CONN_LIFECYCLE: conn=158 role=brain wall_ms=1788931247105 mono_ms=636916 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1059249Z CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=116 wall_ms=1788931247105 mono_ms=636916 event=stream-sub-attach stream=116 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1063166Z CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=116 wall_ms=1788931247106 mono_ms=636916 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1288336Z CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=116 wall_ms=1788931247128 mono_ms=636939 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1291101Z CONN_LIFECYCLE: conn=160 role=brain wall_ms=1788931247129 mono_ms=636939 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1292699Z CONN_LIFECYCLE: conn=160 role=brain wall_ms=1788931247129 mono_ms=636939 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1563204Z CONN_LIFECYCLE: conn=161 role=brain wall_ms=1788931247156 mono_ms=636966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1564983Z CONN_LIFECYCLE: conn=161 role=brain wall_ms=1788931247156 mono_ms=636967 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1569319Z CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=117 wall_ms=1788931247156 mono_ms=636967 event=stream-sub-attach stream=117 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1571559Z CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=117 wall_ms=1788931247156 mono_ms=636967 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1580485Z CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=117 wall_ms=1788931247157 mono_ms=636968 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1581730Z CONN_LIFECYCLE: conn=163 role=brain wall_ms=1788931247158 mono_ms=636968 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.1582763Z CONN_LIFECYCLE: conn=163 role=brain wall_ms=1788931247158 mono_ms=636968 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.3263835Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931247325 mono_ms=637136 event=stream-sub-attach stream=121 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8158100Z CONN_LIFECYCLE: conn=164 role=brain wall_ms=1788931247815 mono_ms=637626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8160038Z CONN_LIFECYCLE: conn=165 role=brain wall_ms=1788931247815 mono_ms=637626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8161430Z CONN_LIFECYCLE: conn=166 role=brain wall_ms=1788931247815 mono_ms=637626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8162704Z CONN_LIFECYCLE: conn=164 role=brain wall_ms=1788931247815 mono_ms=637626 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8164139Z CONN_LIFECYCLE: conn=166 role=brain wall_ms=1788931247815 mono_ms=637626 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8165375Z CONN_LIFECYCLE: conn=165 role=brain wall_ms=1788931247815 mono_ms=637626 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8166701Z CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=122 wall_ms=1788931247816 mono_ms=637626 event=stream-sub-attach stream=122 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8168003Z CONN_LIFECYCLE: conn=168 role=brain stream-subscriber stream=124 wall_ms=1788931247816 mono_ms=637626 event=stream-sub-attach stream=124 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8169335Z CONN_LIFECYCLE: conn=168 role=brain stream-subscriber stream=124 wall_ms=1788931247816 mono_ms=637627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8170436Z CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=122 wall_ms=1788931247816 mono_ms=637627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8171437Z CONN_LIFECYCLE: conn=167 role=brain wall_ms=1788931247816 mono_ms=637627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8172582Z CONN_LIFECYCLE: conn=167 role=brain stream-subscriber stream=123 wall_ms=1788931247816 mono_ms=637627 event=stream-sub-attach stream=123 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8174562Z CONN_LIFECYCLE: conn=168 role=brain stream-subscriber stream=124 wall_ms=1788931247817 mono_ms=637627 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8176040Z CONN_LIFECYCLE: conn=170 role=brain wall_ms=1788931247817 mono_ms=637628 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8177110Z CONN_LIFECYCLE: conn=170 role=brain wall_ms=1788931247817 mono_ms=637628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8178525Z CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=122 wall_ms=1788931247817 mono_ms=637628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8180034Z CONN_LIFECYCLE: conn=171 role=brain wall_ms=1788931247817 mono_ms=637628 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8181279Z CONN_LIFECYCLE: conn=171 role=brain wall_ms=1788931247817 mono_ms=637628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8195740Z CONN_LIFECYCLE: conn=167 role=brain stream-subscriber stream=123 wall_ms=1788931247819 mono_ms=637630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8197331Z CONN_LIFECYCLE: conn=172 role=brain wall_ms=1788931247819 mono_ms=637630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8198522Z CONN_LIFECYCLE: conn=172 role=brain wall_ms=1788931247819 mono_ms=637630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8367525Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931247836 mono_ms=637647 event=stream-sub-release stream=121 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8489806Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931247848 mono_ms=637659 event=stream-sub-attach stream=125 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:47.8640806Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931247863 mono_ms=637674 event=stream-sub-release stream=125 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3256227Z CONN_LIFECYCLE: conn=173 role=brain wall_ms=1788931248325 mono_ms=638136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3258084Z CONN_LIFECYCLE: conn=173 role=brain wall_ms=1788931248325 mono_ms=638136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3262528Z CONN_LIFECYCLE: conn=174 role=brain stream-subscriber stream=126 wall_ms=1788931248326 mono_ms=638136 event=stream-sub-attach stream=126 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3264132Z CONN_LIFECYCLE: conn=174 role=brain stream-subscriber stream=126 wall_ms=1788931248326 mono_ms=638137 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3487540Z CONN_LIFECYCLE: conn=174 role=brain stream-subscriber stream=126 wall_ms=1788931248348 mono_ms=638159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3489907Z CONN_LIFECYCLE: conn=175 role=brain wall_ms=1788931248348 mono_ms=638159 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.3491324Z CONN_LIFECYCLE: conn=175 role=brain wall_ms=1788931248349 mono_ms=638159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4271568Z CONN_LIFECYCLE: conn=176 role=brain wall_ms=1788931248426 mono_ms=638237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4273396Z CONN_LIFECYCLE: conn=176 role=brain wall_ms=1788931248427 mono_ms=638238 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4277547Z CONN_LIFECYCLE: conn=177 role=brain stream-subscriber stream=127 wall_ms=1788931248427 mono_ms=638238 event=stream-sub-attach stream=127 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4279175Z CONN_LIFECYCLE: conn=177 role=brain stream-subscriber stream=127 wall_ms=1788931248427 mono_ms=638238 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4291817Z CONN_LIFECYCLE: conn=177 role=brain stream-subscriber stream=127 wall_ms=1788931248429 mono_ms=638239 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4294145Z CONN_LIFECYCLE: conn=178 role=brain wall_ms=1788931248429 mono_ms=638240 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.4295323Z CONN_LIFECYCLE: conn=178 role=brain wall_ms=1788931248429 mono_ms=638240 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.5304868Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931248530 mono_ms=638340 event=stream-sub-attach stream=131 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.9009837Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931248900 mono_ms=638711 event=stream-sub-release stream=131 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.9227279Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931248922 mono_ms=638733 event=stream-sub-attach stream=132 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:48.9748846Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931248974 mono_ms=638785 event=stream-sub-release stream=132 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0806318Z CONN_LIFECYCLE: conn=180 role=brain wall_ms=1788931249080 mono_ms=638891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0807492Z CONN_LIFECYCLE: conn=179 role=brain wall_ms=1788931249080 mono_ms=638891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0808799Z CONN_LIFECYCLE: conn=181 role=brain wall_ms=1788931249080 mono_ms=638891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0810292Z CONN_LIFECYCLE: conn=180 role=brain wall_ms=1788931249080 mono_ms=638891 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0811593Z CONN_LIFECYCLE: conn=179 role=brain wall_ms=1788931249080 mono_ms=638891 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0812761Z CONN_LIFECYCLE: conn=181 role=brain wall_ms=1788931249080 mono_ms=638891 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0814086Z CONN_LIFECYCLE: conn=183 role=brain stream-subscriber stream=133 wall_ms=1788931249081 mono_ms=638891 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0815408Z CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=135 wall_ms=1788931249081 mono_ms=638891 event=stream-sub-attach stream=135 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0816987Z CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=135 wall_ms=1788931249081 mono_ms=638892 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0818162Z CONN_LIFECYCLE: conn=183 role=brain stream-subscriber stream=133 wall_ms=1788931249081 mono_ms=638892 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0819374Z CONN_LIFECYCLE: conn=184 role=brain wall_ms=1788931249081 mono_ms=638892 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0820881Z CONN_LIFECYCLE: conn=184 role=brain stream-subscriber stream=134 wall_ms=1788931249081 mono_ms=638892 event=stream-sub-attach stream=134 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0822455Z CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=135 wall_ms=1788931249081 mono_ms=638892 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0823565Z CONN_LIFECYCLE: conn=185 role=brain wall_ms=1788931249082 mono_ms=638892 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0824737Z CONN_LIFECYCLE: conn=185 role=brain wall_ms=1788931249082 mono_ms=638893 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0827720Z CONN_LIFECYCLE: conn=183 role=brain stream-subscriber stream=133 wall_ms=1788931249082 mono_ms=638893 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0829427Z CONN_LIFECYCLE: conn=186 role=brain wall_ms=1788931249082 mono_ms=638893 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0830504Z CONN_LIFECYCLE: conn=186 role=brain wall_ms=1788931249082 mono_ms=638893 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0850348Z CONN_LIFECYCLE: conn=184 role=brain stream-subscriber stream=134 wall_ms=1788931249084 mono_ms=638895 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0851629Z CONN_LIFECYCLE: conn=187 role=brain wall_ms=1788931249085 mono_ms=638895 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.0852673Z CONN_LIFECYCLE: conn=187 role=brain wall_ms=1788931249085 mono_ms=638895 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.4674737Z CONN_LIFECYCLE: conn=188 role=brain wall_ms=1788931249467 mono_ms=639278 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.4676077Z CONN_LIFECYCLE: conn=188 role=brain wall_ms=1788931249467 mono_ms=639278 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:49.6529499Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931249652 mono_ms=639463 event=stream-sub-attach stream=139 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:50.9374304Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931250936 mono_ms=640747 event=stream-sub-release stream=139 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:50.9627743Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931250962 mono_ms=640773 event=stream-sub-attach stream=140 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:50.9833562Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931250982 mono_ms=640793 event=stream-sub-release stream=140 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5336962Z CONN_LIFECYCLE: conn=189 role=brain wall_ms=1788931251533 mono_ms=641344 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5338568Z CONN_LIFECYCLE: conn=189 role=brain wall_ms=1788931251533 mono_ms=641344 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5342606Z CONN_LIFECYCLE: conn=190 role=brain stream-subscriber stream=141 wall_ms=1788931251534 mono_ms=641344 event=stream-sub-attach stream=141 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5344631Z CONN_LIFECYCLE: conn=190 role=brain stream-subscriber stream=141 wall_ms=1788931251534 mono_ms=641345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5569633Z CONN_LIFECYCLE: conn=190 role=brain stream-subscriber stream=141 wall_ms=1788931251556 mono_ms=641367 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5571251Z CONN_LIFECYCLE: conn=191 role=brain wall_ms=1788931251556 mono_ms=641367 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5572540Z CONN_LIFECYCLE: conn=191 role=brain wall_ms=1788931251557 mono_ms=641367 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5840615Z CONN_LIFECYCLE: conn=192 role=brain wall_ms=1788931251583 mono_ms=641394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5842720Z CONN_LIFECYCLE: conn=192 role=brain wall_ms=1788931251584 mono_ms=641394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5845229Z CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=142 wall_ms=1788931251584 mono_ms=641395 event=stream-sub-attach stream=142 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5847584Z CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=142 wall_ms=1788931251584 mono_ms=641395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5857025Z CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=142 wall_ms=1788931251585 mono_ms=641396 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5859219Z CONN_LIFECYCLE: conn=194 role=brain wall_ms=1788931251585 mono_ms=641396 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.5861026Z CONN_LIFECYCLE: conn=194 role=brain wall_ms=1788931251585 mono_ms=641396 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:51.6571723Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931251656 mono_ms=641467 event=stream-sub-attach stream=146 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2974864Z CONN_LIFECYCLE: conn=195 role=brain wall_ms=1788931252297 mono_ms=642108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2976691Z CONN_LIFECYCLE: conn=197 role=brain wall_ms=1788931252297 mono_ms=642108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2978026Z CONN_LIFECYCLE: conn=196 role=brain wall_ms=1788931252297 mono_ms=642108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2979494Z CONN_LIFECYCLE: conn=197 role=brain wall_ms=1788931252297 mono_ms=642108 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2980972Z CONN_LIFECYCLE: conn=195 role=brain wall_ms=1788931252297 mono_ms=642108 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2982447Z CONN_LIFECYCLE: conn=196 role=brain wall_ms=1788931252297 mono_ms=642108 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2984238Z CONN_LIFECYCLE: conn=198 role=brain stream-subscriber stream=147 wall_ms=1788931252297 mono_ms=642108 event=stream-sub-attach stream=147 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2986348Z CONN_LIFECYCLE: conn=200 role=brain stream-subscriber stream=149 wall_ms=1788931252297 mono_ms=642108 event=stream-sub-attach stream=149 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2988286Z CONN_LIFECYCLE: conn=198 role=brain stream-subscriber stream=147 wall_ms=1788931252297 mono_ms=642108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2989916Z CONN_LIFECYCLE: conn=200 role=brain stream-subscriber stream=149 wall_ms=1788931252298 mono_ms=642108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2991560Z CONN_LIFECYCLE: conn=199 role=brain wall_ms=1788931252298 mono_ms=642109 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2992897Z CONN_LIFECYCLE: conn=199 role=brain stream-subscriber stream=148 wall_ms=1788931252298 mono_ms=642109 event=stream-sub-attach stream=148 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2994234Z CONN_LIFECYCLE: conn=200 role=brain stream-subscriber stream=149 wall_ms=1788931252298 mono_ms=642109 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2995373Z CONN_LIFECYCLE: conn=201 role=brain wall_ms=1788931252298 mono_ms=642109 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2996457Z CONN_LIFECYCLE: conn=201 role=brain wall_ms=1788931252299 mono_ms=642109 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2997726Z CONN_LIFECYCLE: conn=198 role=brain stream-subscriber stream=147 wall_ms=1788931252299 mono_ms=642109 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.2998889Z CONN_LIFECYCLE: conn=202 role=brain wall_ms=1788931252299 mono_ms=642110 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.3000039Z CONN_LIFECYCLE: conn=202 role=brain wall_ms=1788931252299 mono_ms=642110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.3010675Z CONN_LIFECYCLE: conn=199 role=brain stream-subscriber stream=148 wall_ms=1788931252300 mono_ms=642111 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.3011891Z CONN_LIFECYCLE: conn=203 role=brain wall_ms=1788931252301 mono_ms=642111 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.3012915Z CONN_LIFECYCLE: conn=203 role=brain wall_ms=1788931252301 mono_ms=642111 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.4731517Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931252472 mono_ms=642283 event=stream-sub-release stream=146 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.4976969Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931252497 mono_ms=642308 event=stream-sub-attach stream=150 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.5029834Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931252502 mono_ms=642313 event=stream-sub-release stream=150 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9600372Z CONN_LIFECYCLE: conn=204 role=brain wall_ms=1788931252959 mono_ms=642770 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9602929Z CONN_LIFECYCLE: conn=204 role=brain wall_ms=1788931252960 mono_ms=642770 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9607103Z CONN_LIFECYCLE: conn=205 role=brain stream-subscriber stream=151 wall_ms=1788931252960 mono_ms=642771 event=stream-sub-attach stream=151 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9608462Z CONN_LIFECYCLE: conn=205 role=brain stream-subscriber stream=151 wall_ms=1788931252960 mono_ms=642771 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9837426Z CONN_LIFECYCLE: conn=205 role=brain stream-subscriber stream=151 wall_ms=1788931252983 mono_ms=642794 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9839604Z CONN_LIFECYCLE: conn=206 role=brain wall_ms=1788931252983 mono_ms=642794 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:52.9840949Z CONN_LIFECYCLE: conn=206 role=brain wall_ms=1788931252983 mono_ms=642794 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0105492Z CONN_LIFECYCLE: conn=207 role=brain wall_ms=1788931253010 mono_ms=642821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0107184Z CONN_LIFECYCLE: conn=207 role=brain wall_ms=1788931253010 mono_ms=642821 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0110713Z CONN_LIFECYCLE: conn=208 role=brain stream-subscriber stream=152 wall_ms=1788931253010 mono_ms=642821 event=stream-sub-attach stream=152 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0112353Z CONN_LIFECYCLE: conn=208 role=brain stream-subscriber stream=152 wall_ms=1788931253011 mono_ms=642821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0121279Z CONN_LIFECYCLE: conn=208 role=brain stream-subscriber stream=152 wall_ms=1788931253011 mono_ms=642822 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0122752Z CONN_LIFECYCLE: conn=209 role=brain wall_ms=1788931253012 mono_ms=642822 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.0123831Z CONN_LIFECYCLE: conn=209 role=brain wall_ms=1788931253012 mono_ms=642823 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.1818657Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931253181 mono_ms=642992 event=stream-sub-attach stream=156 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.4047146Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931253404 mono_ms=643215 event=stream-sub-release stream=156 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.4299915Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931253429 mono_ms=643240 event=stream-sub-attach stream=157 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.4612075Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931253460 mono_ms=643271 event=stream-sub-release stream=157 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7222135Z CONN_LIFECYCLE: conn=211 role=brain wall_ms=1788931253721 mono_ms=643532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7225055Z CONN_LIFECYCLE: conn=210 role=brain wall_ms=1788931253721 mono_ms=643532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7226238Z CONN_LIFECYCLE: conn=212 role=brain wall_ms=1788931253722 mono_ms=643532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7227507Z CONN_LIFECYCLE: conn=211 role=brain wall_ms=1788931253722 mono_ms=643532 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7229960Z CONN_LIFECYCLE: conn=210 role=brain wall_ms=1788931253722 mono_ms=643532 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7231972Z CONN_LIFECYCLE: conn=212 role=brain wall_ms=1788931253722 mono_ms=643533 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7233390Z CONN_LIFECYCLE: conn=213 role=brain stream-subscriber stream=158 wall_ms=1788931253722 mono_ms=643533 event=stream-sub-attach stream=158 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7235482Z CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=160 wall_ms=1788931253722 mono_ms=643533 event=stream-sub-attach stream=160 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7237122Z CONN_LIFECYCLE: conn=213 role=brain stream-subscriber stream=158 wall_ms=1788931253722 mono_ms=643533 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7239156Z CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=160 wall_ms=1788931253722 mono_ms=643533 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7240656Z CONN_LIFECYCLE: conn=215 role=brain wall_ms=1788931253723 mono_ms=643533 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7242542Z CONN_LIFECYCLE: conn=215 role=brain stream-subscriber stream=159 wall_ms=1788931253723 mono_ms=643534 event=stream-sub-attach stream=159 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7244938Z CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=160 wall_ms=1788931253723 mono_ms=643534 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7246868Z CONN_LIFECYCLE: conn=216 role=brain wall_ms=1788931253723 mono_ms=643534 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7248469Z CONN_LIFECYCLE: conn=217 role=brain wall_ms=1788931253723 mono_ms=643534 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7250144Z CONN_LIFECYCLE: conn=218 role=brain wall_ms=1788931253723 mono_ms=643534 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7251278Z CONN_LIFECYCLE: conn=216 role=brain wall_ms=1788931253723 mono_ms=643534 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7252477Z CONN_LIFECYCLE: conn=218 role=brain wall_ms=1788931253723 mono_ms=643534 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7254358Z CONN_LIFECYCLE: conn=217 role=brain wall_ms=1788931253723 mono_ms=643534 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7255397Z CONN_LIFECYCLE: conn=219 role=brain wall_ms=1788931253724 mono_ms=643534 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7256514Z CONN_LIFECYCLE: conn=213 role=brain stream-subscriber stream=158 wall_ms=1788931253724 mono_ms=643534 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7257805Z CONN_LIFECYCLE: conn=219 role=brain wall_ms=1788931253724 mono_ms=643534 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7259385Z CONN_LIFECYCLE: conn=220 role=brain wall_ms=1788931253724 mono_ms=643535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7260795Z CONN_LIFECYCLE: conn=221 role=brain wall_ms=1788931253724 mono_ms=643535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7262572Z CONN_LIFECYCLE: conn=222 role=brain wall_ms=1788931253724 mono_ms=643535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7264093Z CONN_LIFECYCLE: conn=220 role=brain wall_ms=1788931253724 mono_ms=643535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7265314Z CONN_LIFECYCLE: conn=221 role=brain wall_ms=1788931253724 mono_ms=643535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7266444Z CONN_LIFECYCLE: conn=222 role=brain wall_ms=1788931253724 mono_ms=643535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7267698Z CONN_LIFECYCLE: conn=223 role=brain wall_ms=1788931253725 mono_ms=643536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7268770Z CONN_LIFECYCLE: conn=223 role=brain stream-subscriber stream=159 wall_ms=1788931253725 mono_ms=643536 event=stream-sub-attach stream=159 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7270279Z CONN_LIFECYCLE: conn=215 role=brain stream-subscriber stream=159 wall_ms=1788931253726 mono_ms=643537 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7271403Z CONN_LIFECYCLE: conn=224 role=brain wall_ms=1788931253726 mono_ms=643537 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7272404Z CONN_LIFECYCLE: conn=224 role=brain wall_ms=1788931253726 mono_ms=643537 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7280329Z CONN_LIFECYCLE: conn=223 role=brain stream-subscriber stream=159 wall_ms=1788931253727 mono_ms=643538 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7281992Z CONN_LIFECYCLE: conn=225 role=brain wall_ms=1788931253728 mono_ms=643538 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:53.7283134Z CONN_LIFECYCLE: conn=225 role=brain wall_ms=1788931253728 mono_ms=643539 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.1303869Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931254129 mono_ms=643940 event=stream-sub-attach stream=164 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.4836681Z CONN_LIFECYCLE: conn=226 role=brain wall_ms=1788931254483 mono_ms=644294 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.4840032Z CONN_LIFECYCLE: conn=226 role=brain wall_ms=1788931254483 mono_ms=644294 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6074211Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931254606 mono_ms=644417 event=stream-sub-release stream=164 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6318023Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931254631 mono_ms=644442 event=stream-sub-attach stream=166 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6320280Z CONN_LIFECYCLE: conn=227 role=brain wall_ms=1788931254631 mono_ms=644442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6321687Z CONN_LIFECYCLE: conn=227 role=brain wall_ms=1788931254631 mono_ms=644442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6324330Z CONN_LIFECYCLE: conn=228 role=brain stream-subscriber stream=165 wall_ms=1788931254632 mono_ms=644443 event=stream-sub-attach stream=165 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6327669Z CONN_LIFECYCLE: conn=228 role=brain stream-subscriber stream=165 wall_ms=1788931254632 mono_ms=644443 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6356240Z CONN_LIFECYCLE: conn=229 role=brain wall_ms=1788931254635 mono_ms=644446 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6357606Z CONN_LIFECYCLE: conn=229 role=brain wall_ms=1788931254635 mono_ms=644446 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6361184Z CONN_LIFECYCLE: conn=230 role=brain stream-subscriber stream=165 wall_ms=1788931254635 mono_ms=644446 event=stream-sub-attach stream=165 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6363075Z CONN_LIFECYCLE: conn=230 role=brain stream-subscriber stream=165 wall_ms=1788931254636 mono_ms=644446 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6551181Z CONN_LIFECYCLE: conn=228 role=brain stream-subscriber stream=165 wall_ms=1788931254654 mono_ms=644465 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6552775Z CONN_LIFECYCLE: conn=231 role=brain wall_ms=1788931254655 mono_ms=644465 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6554053Z CONN_LIFECYCLE: conn=231 role=brain wall_ms=1788931254655 mono_ms=644466 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6579539Z CONN_LIFECYCLE: conn=230 role=brain stream-subscriber stream=165 wall_ms=1788931254657 mono_ms=644468 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6581045Z CONN_LIFECYCLE: conn=232 role=brain wall_ms=1788931254658 mono_ms=644468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6582343Z CONN_LIFECYCLE: conn=232 role=brain wall_ms=1788931254658 mono_ms=644468 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6707727Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931254670 mono_ms=644481 event=stream-sub-release stream=166 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6862842Z CONN_LIFECYCLE: conn=233 role=brain wall_ms=1788931254686 mono_ms=644496 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6864183Z CONN_LIFECYCLE: conn=233 role=brain wall_ms=1788931254686 mono_ms=644497 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6865999Z CONN_LIFECYCLE: conn=234 role=brain stream-subscriber stream=167 wall_ms=1788931254686 mono_ms=644497 event=stream-sub-attach stream=167 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6867619Z CONN_LIFECYCLE: conn=234 role=brain stream-subscriber stream=167 wall_ms=1788931254686 mono_ms=644497 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6876121Z CONN_LIFECYCLE: conn=234 role=brain stream-subscriber stream=167 wall_ms=1788931254687 mono_ms=644498 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6877937Z CONN_LIFECYCLE: conn=235 role=brain wall_ms=1788931254687 mono_ms=644498 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:54.6879366Z CONN_LIFECYCLE: conn=235 role=brain wall_ms=1788931254687 mono_ms=644498 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3394364Z CONN_LIFECYCLE: conn=236 role=brain wall_ms=1788931255339 mono_ms=645150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3395274Z CONN_LIFECYCLE: conn=237 role=brain wall_ms=1788931255339 mono_ms=645150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3397069Z CONN_LIFECYCLE: conn=238 role=brain wall_ms=1788931255339 mono_ms=645150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3398639Z CONN_LIFECYCLE: conn=236 role=brain wall_ms=1788931255339 mono_ms=645150 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3399913Z CONN_LIFECYCLE: conn=237 role=brain wall_ms=1788931255339 mono_ms=645150 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3400891Z CONN_LIFECYCLE: conn=238 role=brain wall_ms=1788931255339 mono_ms=645150 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3402427Z CONN_LIFECYCLE: conn=239 role=brain stream-subscriber stream=171 wall_ms=1788931255339 mono_ms=645150 event=stream-sub-attach stream=171 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3403614Z CONN_LIFECYCLE: conn=240 role=brain stream-subscriber stream=168 wall_ms=1788931255339 mono_ms=645150 event=stream-sub-attach stream=168 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3404854Z CONN_LIFECYCLE: conn=239 role=brain stream-subscriber stream=171 wall_ms=1788931255339 mono_ms=645150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3406657Z CONN_LIFECYCLE: conn=240 role=brain stream-subscriber stream=168 wall_ms=1788931255339 mono_ms=645150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3408211Z CONN_LIFECYCLE: conn=241 role=brain wall_ms=1788931255340 mono_ms=645150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3409291Z CONN_LIFECYCLE: conn=241 role=brain stream-subscriber stream=170 wall_ms=1788931255340 mono_ms=645151 event=stream-sub-attach stream=170 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3410516Z CONN_LIFECYCLE: conn=239 role=brain stream-subscriber stream=171 wall_ms=1788931255340 mono_ms=645151 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3411542Z CONN_LIFECYCLE: conn=242 role=brain wall_ms=1788931255340 mono_ms=645151 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3412296Z CONN_LIFECYCLE: conn=242 role=brain wall_ms=1788931255340 mono_ms=645151 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3413131Z CONN_LIFECYCLE: conn=240 role=brain stream-subscriber stream=168 wall_ms=1788931255340 mono_ms=645151 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3413884Z CONN_LIFECYCLE: conn=243 role=brain wall_ms=1788931255340 mono_ms=645151 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3419565Z CONN_LIFECYCLE: conn=243 role=brain wall_ms=1788931255341 mono_ms=645151 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3423609Z CONN_LIFECYCLE: conn=241 role=brain stream-subscriber stream=170 wall_ms=1788931255342 mono_ms=645153 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3424609Z CONN_LIFECYCLE: conn=244 role=brain wall_ms=1788931255342 mono_ms=645153 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3425317Z CONN_LIFECYCLE: conn=244 role=brain wall_ms=1788931255342 mono_ms=645153 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.3450428Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931255344 mono_ms=645155 event=stream-sub-attach stream=174 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:55.9931231Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931255992 mono_ms=645803 event=stream-sub-release stream=174 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.0118242Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931256011 mono_ms=645822 event=stream-sub-attach stream=175 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.0383100Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931256037 mono_ms=645848 event=stream-sub-release stream=175 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6740895Z CONN_LIFECYCLE: conn=245 role=brain wall_ms=1788931256673 mono_ms=646484 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6742338Z CONN_LIFECYCLE: conn=245 role=brain wall_ms=1788931256674 mono_ms=646484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6747457Z CONN_LIFECYCLE: conn=246 role=brain stream-subscriber stream=176 wall_ms=1788931256674 mono_ms=646485 event=stream-sub-attach stream=176 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6749404Z CONN_LIFECYCLE: conn=246 role=brain stream-subscriber stream=176 wall_ms=1788931256674 mono_ms=646485 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6969372Z CONN_LIFECYCLE: conn=246 role=brain stream-subscriber stream=176 wall_ms=1788931256696 mono_ms=646507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6970460Z CONN_LIFECYCLE: conn=247 role=brain wall_ms=1788931256696 mono_ms=646507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.6971353Z CONN_LIFECYCLE: conn=247 role=brain wall_ms=1788931256697 mono_ms=646507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7107281Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931256710 mono_ms=646521 event=stream-sub-attach stream=180 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7242684Z CONN_LIFECYCLE: conn=248 role=brain wall_ms=1788931256724 mono_ms=646534 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7244099Z CONN_LIFECYCLE: conn=248 role=brain wall_ms=1788931256724 mono_ms=646535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7246881Z CONN_LIFECYCLE: conn=249 role=brain stream-subscriber stream=181 wall_ms=1788931256724 mono_ms=646535 event=stream-sub-attach stream=181 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7249358Z CONN_LIFECYCLE: conn=249 role=brain stream-subscriber stream=181 wall_ms=1788931256724 mono_ms=646535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7256753Z CONN_LIFECYCLE: conn=249 role=brain stream-subscriber stream=181 wall_ms=1788931256725 mono_ms=646536 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7258361Z CONN_LIFECYCLE: conn=250 role=brain wall_ms=1788931256725 mono_ms=646536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:56.7259589Z CONN_LIFECYCLE: conn=250 role=brain wall_ms=1788931256725 mono_ms=646536 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.2892443Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931257288 mono_ms=647099 event=stream-sub-release stream=180 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.3133912Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931257312 mono_ms=647123 event=stream-sub-attach stream=182 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.3509382Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931257350 mono_ms=647161 event=stream-sub-release stream=182 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5905910Z CONN_LIFECYCLE: conn=252 role=brain wall_ms=1788931257590 mono_ms=647401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5907606Z CONN_LIFECYCLE: conn=251 role=brain wall_ms=1788931257590 mono_ms=647401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5908812Z CONN_LIFECYCLE: conn=253 role=brain wall_ms=1788931257590 mono_ms=647401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5909993Z CONN_LIFECYCLE: conn=252 role=brain wall_ms=1788931257590 mono_ms=647401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5911232Z CONN_LIFECYCLE: conn=251 role=brain wall_ms=1788931257590 mono_ms=647401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5912534Z CONN_LIFECYCLE: conn=253 role=brain wall_ms=1788931257590 mono_ms=647401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5913846Z CONN_LIFECYCLE: conn=254 role=brain stream-subscriber stream=183 wall_ms=1788931257590 mono_ms=647401 event=stream-sub-attach stream=183 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5915214Z CONN_LIFECYCLE: conn=256 role=brain stream-subscriber stream=185 wall_ms=1788931257590 mono_ms=647401 event=stream-sub-attach stream=185 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5917137Z CONN_LIFECYCLE: conn=254 role=brain stream-subscriber stream=183 wall_ms=1788931257591 mono_ms=647401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5919053Z CONN_LIFECYCLE: conn=256 role=brain stream-subscriber stream=185 wall_ms=1788931257591 mono_ms=647402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5920316Z CONN_LIFECYCLE: conn=255 role=brain wall_ms=1788931257591 mono_ms=647402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5922088Z CONN_LIFECYCLE: conn=255 role=brain stream-subscriber stream=184 wall_ms=1788931257591 mono_ms=647402 event=stream-sub-attach stream=184 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5924253Z CONN_LIFECYCLE: conn=256 role=brain stream-subscriber stream=185 wall_ms=1788931257591 mono_ms=647402 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5925421Z CONN_LIFECYCLE: conn=257 role=brain wall_ms=1788931257592 mono_ms=647402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5926443Z CONN_LIFECYCLE: conn=257 role=brain wall_ms=1788931257592 mono_ms=647402 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5927707Z CONN_LIFECYCLE: conn=254 role=brain stream-subscriber stream=183 wall_ms=1788931257592 mono_ms=647403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5928846Z CONN_LIFECYCLE: conn=258 role=brain wall_ms=1788931257592 mono_ms=647403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5930310Z CONN_LIFECYCLE: conn=258 role=brain wall_ms=1788931257592 mono_ms=647403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5940441Z CONN_LIFECYCLE: conn=255 role=brain stream-subscriber stream=184 wall_ms=1788931257593 mono_ms=647404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5941921Z CONN_LIFECYCLE: conn=259 role=brain wall_ms=1788931257594 mono_ms=647404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:57.5942946Z CONN_LIFECYCLE: conn=259 role=brain wall_ms=1788931257594 mono_ms=647405 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.0237012Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931258023 mono_ms=647834 event=stream-sub-attach stream=189 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1513637Z CONN_LIFECYCLE: conn=260 role=brain wall_ms=1788931258151 mono_ms=647961 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1515109Z CONN_LIFECYCLE: conn=260 role=brain wall_ms=1788931258151 mono_ms=647962 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1520562Z CONN_LIFECYCLE: conn=261 role=brain stream-subscriber stream=190 wall_ms=1788931258151 mono_ms=647962 event=stream-sub-attach stream=190 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1523396Z CONN_LIFECYCLE: conn=261 role=brain stream-subscriber stream=190 wall_ms=1788931258152 mono_ms=647962 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1683523Z CONN_LIFECYCLE: conn=262 role=brain wall_ms=1788931258168 mono_ms=647978 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1685910Z CONN_LIFECYCLE: conn=262 role=brain wall_ms=1788931258168 mono_ms=647979 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1689041Z CONN_LIFECYCLE: conn=263 role=brain stream-subscriber stream=190 wall_ms=1788931258168 mono_ms=647979 event=stream-sub-attach stream=190 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1691240Z CONN_LIFECYCLE: conn=263 role=brain stream-subscriber stream=190 wall_ms=1788931258168 mono_ms=647979 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1744333Z CONN_LIFECYCLE: conn=261 role=brain stream-subscriber stream=190 wall_ms=1788931258174 mono_ms=647985 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1746633Z CONN_LIFECYCLE: conn=264 role=brain wall_ms=1788931258174 mono_ms=647985 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1748462Z CONN_LIFECYCLE: conn=264 role=brain wall_ms=1788931258174 mono_ms=647985 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1907865Z CONN_LIFECYCLE: conn=263 role=brain stream-subscriber stream=190 wall_ms=1788931258190 mono_ms=648001 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1909992Z CONN_LIFECYCLE: conn=265 role=brain wall_ms=1788931258190 mono_ms=648001 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.1911538Z CONN_LIFECYCLE: conn=265 role=brain wall_ms=1788931258190 mono_ms=648001 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2014265Z CONN_LIFECYCLE: conn=266 role=brain wall_ms=1788931258201 mono_ms=648011 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2016402Z CONN_LIFECYCLE: conn=266 role=brain wall_ms=1788931258201 mono_ms=648012 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2019191Z CONN_LIFECYCLE: conn=267 role=brain stream-subscriber stream=191 wall_ms=1788931258201 mono_ms=648012 event=stream-sub-attach stream=191 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2021253Z CONN_LIFECYCLE: conn=267 role=brain stream-subscriber stream=191 wall_ms=1788931258201 mono_ms=648012 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2027363Z CONN_LIFECYCLE: conn=267 role=brain stream-subscriber stream=191 wall_ms=1788931258202 mono_ms=648013 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2029338Z CONN_LIFECYCLE: conn=268 role=brain wall_ms=1788931258202 mono_ms=648013 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.2030441Z CONN_LIFECYCLE: conn=268 role=brain wall_ms=1788931258202 mono_ms=648013 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9670948Z CONN_LIFECYCLE: conn=270 role=brain wall_ms=1788931258966 mono_ms=648777 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9672863Z CONN_LIFECYCLE: conn=269 role=brain wall_ms=1788931258966 mono_ms=648777 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9674406Z CONN_LIFECYCLE: conn=271 role=brain wall_ms=1788931258966 mono_ms=648777 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9675531Z CONN_LIFECYCLE: conn=269 role=brain wall_ms=1788931258966 mono_ms=648777 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9676726Z CONN_LIFECYCLE: conn=270 role=brain wall_ms=1788931258967 mono_ms=648777 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9678463Z CONN_LIFECYCLE: conn=271 role=brain wall_ms=1788931258967 mono_ms=648777 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9680232Z CONN_LIFECYCLE: conn=272 role=brain stream-subscriber stream=194 wall_ms=1788931258967 mono_ms=648778 event=stream-sub-attach stream=194 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9681580Z CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=192 wall_ms=1788931258967 mono_ms=648778 event=stream-sub-attach stream=192 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9682806Z CONN_LIFECYCLE: conn=272 role=brain stream-subscriber stream=194 wall_ms=1788931258967 mono_ms=648778 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9683880Z CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=192 wall_ms=1788931258967 mono_ms=648778 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9684890Z CONN_LIFECYCLE: conn=273 role=brain wall_ms=1788931258968 mono_ms=648778 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9686546Z CONN_LIFECYCLE: conn=273 role=brain stream-subscriber stream=193 wall_ms=1788931258968 mono_ms=648779 event=stream-sub-attach stream=193 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9687992Z CONN_LIFECYCLE: conn=272 role=brain stream-subscriber stream=194 wall_ms=1788931258968 mono_ms=648779 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9689269Z CONN_LIFECYCLE: conn=275 role=brain wall_ms=1788931258968 mono_ms=648779 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9690552Z CONN_LIFECYCLE: conn=275 role=brain wall_ms=1788931258968 mono_ms=648779 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9691811Z CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=192 wall_ms=1788931258968 mono_ms=648779 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9692922Z CONN_LIFECYCLE: conn=276 role=brain wall_ms=1788931258969 mono_ms=648779 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9694037Z CONN_LIFECYCLE: conn=276 role=brain wall_ms=1788931258969 mono_ms=648780 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9706894Z CONN_LIFECYCLE: conn=273 role=brain stream-subscriber stream=193 wall_ms=1788931258970 mono_ms=648781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9708349Z CONN_LIFECYCLE: conn=277 role=brain wall_ms=1788931258970 mono_ms=648781 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:58.9709790Z CONN_LIFECYCLE: conn=277 role=brain wall_ms=1788931258970 mono_ms=648781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:59.0845134Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931259084 mono_ms=648894 event=stream-sub-release stream=189 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:59.1043975Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931259104 mono_ms=648914 event=stream-sub-attach stream=195 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:59.1190904Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931259118 mono_ms=648929 event=stream-sub-release stream=195 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:59.4986796Z CONN_LIFECYCLE: conn=278 role=brain wall_ms=1788931259498 mono_ms=649309 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:59.4988906Z CONN_LIFECYCLE: conn=278 role=brain wall_ms=1788931259498 mono_ms=649309 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:20:59.7949971Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931259794 mono_ms=649605 event=stream-sub-attach stream=199 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:00.2484288Z PAIR_MEET_UP:twohost step=59631042 id=0eecd9b3fec97246a1b2105a5f73b9a9e31e43ea3946a6c448fcee18a7a4d0a7 addr=EndpointAddr { id: PublicKey(0eecd9b3fec97246a1b2105a5f73b9a9e31e43ea3946a6c448fcee18a7a4d0a7), addrs: {Ip(100.98.197.12:47795), Ip(192.168.1.168:47795)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:00.8718932Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931260871 mono_ms=650682 event=stream-sub-release stream=199 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:00.8951546Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931260894 mono_ms=650705 event=stream-sub-attach stream=202 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:00.9377075Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931260937 mono_ms=650748 event=stream-sub-release stream=202 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:01.6013770Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931261600 mono_ms=651411 event=stream-sub-attach stream=206 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8371511Z CONN_LIFECYCLE: conn=279 role=brain wall_ms=1788931262836 mono_ms=652647 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8373165Z CONN_LIFECYCLE: conn=279 role=brain wall_ms=1788931262837 mono_ms=652647 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8378144Z CONN_LIFECYCLE: conn=280 role=brain stream-subscriber stream=207 wall_ms=1788931262837 mono_ms=652648 event=stream-sub-attach stream=207 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8380516Z CONN_LIFECYCLE: conn=280 role=brain stream-subscriber stream=207 wall_ms=1788931262837 mono_ms=652648 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8602488Z CONN_LIFECYCLE: conn=280 role=brain stream-subscriber stream=207 wall_ms=1788931262860 mono_ms=652670 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8603570Z CONN_LIFECYCLE: conn=281 role=brain wall_ms=1788931262860 mono_ms=652671 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8604518Z CONN_LIFECYCLE: conn=281 role=brain wall_ms=1788931262860 mono_ms=652671 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8875645Z CONN_LIFECYCLE: conn=282 role=brain wall_ms=1788931262887 mono_ms=652698 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8877557Z CONN_LIFECYCLE: conn=282 role=brain wall_ms=1788931262887 mono_ms=652698 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8880583Z CONN_LIFECYCLE: conn=283 role=brain stream-subscriber stream=208 wall_ms=1788931262887 mono_ms=652698 event=stream-sub-attach stream=208 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8882312Z CONN_LIFECYCLE: conn=283 role=brain stream-subscriber stream=208 wall_ms=1788931262888 mono_ms=652698 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8893417Z CONN_LIFECYCLE: conn=283 role=brain stream-subscriber stream=208 wall_ms=1788931262889 mono_ms=652700 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8895835Z CONN_LIFECYCLE: conn=284 role=brain wall_ms=1788931262889 mono_ms=652700 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.8897147Z CONN_LIFECYCLE: conn=284 role=brain wall_ms=1788931262889 mono_ms=652700 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9105373Z CONN_LIFECYCLE: conn=285 role=brain wall_ms=1788931262910 mono_ms=652721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9106779Z CONN_LIFECYCLE: conn=287 role=brain wall_ms=1788931262910 mono_ms=652721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9108145Z CONN_LIFECYCLE: conn=286 role=brain wall_ms=1788931262910 mono_ms=652721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9109471Z CONN_LIFECYCLE: conn=287 role=brain wall_ms=1788931262910 mono_ms=652721 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9110646Z CONN_LIFECYCLE: conn=285 role=brain wall_ms=1788931262910 mono_ms=652721 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9111816Z CONN_LIFECYCLE: conn=286 role=brain wall_ms=1788931262910 mono_ms=652721 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9113048Z CONN_LIFECYCLE: conn=288 role=brain stream-subscriber stream=209 wall_ms=1788931262910 mono_ms=652721 event=stream-sub-attach stream=209 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9114368Z CONN_LIFECYCLE: conn=290 role=brain stream-subscriber stream=211 wall_ms=1788931262910 mono_ms=652721 event=stream-sub-attach stream=211 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9115952Z CONN_LIFECYCLE: conn=288 role=brain stream-subscriber stream=209 wall_ms=1788931262911 mono_ms=652721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9117044Z CONN_LIFECYCLE: conn=290 role=brain stream-subscriber stream=211 wall_ms=1788931262911 mono_ms=652721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9118046Z CONN_LIFECYCLE: conn=289 role=brain wall_ms=1788931262911 mono_ms=652722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9119267Z CONN_LIFECYCLE: conn=289 role=brain stream-subscriber stream=210 wall_ms=1788931262911 mono_ms=652722 event=stream-sub-attach stream=210 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9120803Z CONN_LIFECYCLE: conn=290 role=brain stream-subscriber stream=211 wall_ms=1788931262911 mono_ms=652722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9122446Z CONN_LIFECYCLE: conn=291 role=brain wall_ms=1788931262912 mono_ms=652722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9123984Z CONN_LIFECYCLE: conn=291 role=brain wall_ms=1788931262912 mono_ms=652722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9125726Z CONN_LIFECYCLE: conn=288 role=brain stream-subscriber stream=209 wall_ms=1788931262912 mono_ms=652723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9127304Z CONN_LIFECYCLE: conn=292 role=brain wall_ms=1788931262912 mono_ms=652723 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9128306Z CONN_LIFECYCLE: conn=292 role=brain wall_ms=1788931262912 mono_ms=652723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9142691Z CONN_LIFECYCLE: conn=289 role=brain stream-subscriber stream=210 wall_ms=1788931262914 mono_ms=652724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9144192Z CONN_LIFECYCLE: conn=293 role=brain wall_ms=1788931262914 mono_ms=652725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:02.9145553Z CONN_LIFECYCLE: conn=293 role=brain wall_ms=1788931262914 mono_ms=652725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:03.6187945Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931263618 mono_ms=653429 event=stream-sub-release stream=206 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:03.6360025Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931263635 mono_ms=653446 event=stream-sub-attach stream=212 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:03.6618021Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931263661 mono_ms=653472 event=stream-sub-release stream=212 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:04.3383289Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931264337 mono_ms=654148 event=stream-sub-attach stream=216 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:04.5153777Z CONN_LIFECYCLE: conn=294 role=brain wall_ms=1788931264515 mono_ms=654325 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:04.5156768Z CONN_LIFECYCLE: conn=294 role=brain wall_ms=1788931264515 mono_ms=654326 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.0144045Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931268013 mono_ms=657824 event=stream-sub-release stream=216 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.0387495Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931268038 mono_ms=657849 event=stream-sub-attach stream=217 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.0580321Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931268057 mono_ms=657868 event=stream-sub-release stream=217 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4359415Z CONN_LIFECYCLE: conn=295 role=brain wall_ms=1788931268435 mono_ms=658246 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4361024Z CONN_LIFECYCLE: conn=295 role=brain wall_ms=1788931268435 mono_ms=658246 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4365942Z CONN_LIFECYCLE: conn=296 role=brain stream-subscriber stream=218 wall_ms=1788931268436 mono_ms=658247 event=stream-sub-attach stream=218 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4367348Z CONN_LIFECYCLE: conn=296 role=brain stream-subscriber stream=218 wall_ms=1788931268436 mono_ms=658247 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4590833Z CONN_LIFECYCLE: conn=296 role=brain stream-subscriber stream=218 wall_ms=1788931268458 mono_ms=658269 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4593511Z CONN_LIFECYCLE: conn=297 role=brain wall_ms=1788931268459 mono_ms=658270 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4595068Z CONN_LIFECYCLE: conn=297 role=brain wall_ms=1788931268459 mono_ms=658270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4863830Z CONN_LIFECYCLE: conn=298 role=brain wall_ms=1788931268486 mono_ms=658296 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4866601Z CONN_LIFECYCLE: conn=298 role=brain wall_ms=1788931268486 mono_ms=658297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4870276Z CONN_LIFECYCLE: conn=299 role=brain stream-subscriber stream=219 wall_ms=1788931268486 mono_ms=658297 event=stream-sub-attach stream=219 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4872127Z CONN_LIFECYCLE: conn=299 role=brain stream-subscriber stream=219 wall_ms=1788931268487 mono_ms=658297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4880498Z CONN_LIFECYCLE: conn=299 role=brain stream-subscriber stream=219 wall_ms=1788931268487 mono_ms=658298 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4882170Z CONN_LIFECYCLE: conn=300 role=brain wall_ms=1788931268488 mono_ms=658298 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.4883232Z CONN_LIFECYCLE: conn=300 role=brain wall_ms=1788931268488 mono_ms=658299 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:08.7376929Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931268737 mono_ms=658547 event=stream-sub-attach stream=223 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1461119Z CONN_LIFECYCLE: conn=301 role=brain wall_ms=1788931269145 mono_ms=658956 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1462461Z CONN_LIFECYCLE: conn=303 role=brain wall_ms=1788931269145 mono_ms=658956 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1463483Z CONN_LIFECYCLE: conn=302 role=brain wall_ms=1788931269145 mono_ms=658956 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1464909Z CONN_LIFECYCLE: conn=301 role=brain wall_ms=1788931269146 mono_ms=658956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1466818Z CONN_LIFECYCLE: conn=303 role=brain wall_ms=1788931269146 mono_ms=658956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1468278Z CONN_LIFECYCLE: conn=302 role=brain wall_ms=1788931269146 mono_ms=658957 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1469669Z CONN_LIFECYCLE: conn=304 role=brain stream-subscriber stream=226 wall_ms=1788931269146 mono_ms=658957 event=stream-sub-attach stream=226 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1471084Z CONN_LIFECYCLE: conn=306 role=brain stream-subscriber stream=224 wall_ms=1788931269146 mono_ms=658957 event=stream-sub-attach stream=224 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1472282Z CONN_LIFECYCLE: conn=304 role=brain stream-subscriber stream=226 wall_ms=1788931269146 mono_ms=658957 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1473447Z CONN_LIFECYCLE: conn=306 role=brain stream-subscriber stream=224 wall_ms=1788931269146 mono_ms=658957 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1474603Z CONN_LIFECYCLE: conn=305 role=brain wall_ms=1788931269147 mono_ms=658957 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1475675Z CONN_LIFECYCLE: conn=305 role=brain stream-subscriber stream=225 wall_ms=1788931269147 mono_ms=658958 event=stream-sub-attach stream=225 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1477085Z CONN_LIFECYCLE: conn=304 role=brain stream-subscriber stream=226 wall_ms=1788931269147 mono_ms=658958 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1478360Z CONN_LIFECYCLE: conn=307 role=brain wall_ms=1788931269147 mono_ms=658958 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1479477Z CONN_LIFECYCLE: conn=307 role=brain wall_ms=1788931269147 mono_ms=658958 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1480901Z CONN_LIFECYCLE: conn=306 role=brain stream-subscriber stream=224 wall_ms=1788931269147 mono_ms=658958 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1482159Z CONN_LIFECYCLE: conn=308 role=brain wall_ms=1788931269148 mono_ms=658958 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1483325Z CONN_LIFECYCLE: conn=308 role=brain wall_ms=1788931269148 mono_ms=658959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1498126Z CONN_LIFECYCLE: conn=305 role=brain stream-subscriber stream=225 wall_ms=1788931269149 mono_ms=658960 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1499495Z CONN_LIFECYCLE: conn=309 role=brain wall_ms=1788931269149 mono_ms=658960 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.1500783Z CONN_LIFECYCLE: conn=309 role=brain wall_ms=1788931269149 mono_ms=658960 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.2547929Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931269254 mono_ms=659065 event=stream-sub-release stream=223 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.2792551Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931269278 mono_ms=659089 event=stream-sub-attach stream=227 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.3281112Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931269327 mono_ms=659138 event=stream-sub-release stream=227 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4725676Z CONN_LIFECYCLE: conn=310 role=brain wall_ms=1788931269472 mono_ms=659283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4727484Z CONN_LIFECYCLE: conn=310 role=brain wall_ms=1788931269472 mono_ms=659283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4732619Z CONN_LIFECYCLE: conn=311 role=brain stream-subscriber stream=228 wall_ms=1788931269473 mono_ms=659283 event=stream-sub-attach stream=228 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4734385Z CONN_LIFECYCLE: conn=311 role=brain stream-subscriber stream=228 wall_ms=1788931269473 mono_ms=659284 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4962711Z CONN_LIFECYCLE: conn=311 role=brain stream-subscriber stream=228 wall_ms=1788931269496 mono_ms=659306 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4964871Z CONN_LIFECYCLE: conn=312 role=brain wall_ms=1788931269496 mono_ms=659307 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.4966187Z CONN_LIFECYCLE: conn=312 role=brain wall_ms=1788931269496 mono_ms=659307 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5332314Z CONN_LIFECYCLE: conn=313 role=brain wall_ms=1788931269533 mono_ms=659343 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5335512Z CONN_LIFECYCLE: conn=313 role=brain wall_ms=1788931269533 mono_ms=659344 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5524114Z CONN_LIFECYCLE: conn=314 role=brain wall_ms=1788931269552 mono_ms=659362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5526377Z CONN_LIFECYCLE: conn=314 role=brain wall_ms=1788931269552 mono_ms=659363 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5530266Z CONN_LIFECYCLE: conn=315 role=brain stream-subscriber stream=229 wall_ms=1788931269552 mono_ms=659363 event=stream-sub-attach stream=229 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5531882Z CONN_LIFECYCLE: conn=315 role=brain stream-subscriber stream=229 wall_ms=1788931269553 mono_ms=659363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5541870Z CONN_LIFECYCLE: conn=315 role=brain stream-subscriber stream=229 wall_ms=1788931269554 mono_ms=659364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5543079Z CONN_LIFECYCLE: conn=316 role=brain wall_ms=1788931269554 mono_ms=659365 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:09.5544203Z CONN_LIFECYCLE: conn=316 role=brain wall_ms=1788931269554 mono_ms=659365 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.0064914Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931270006 mono_ms=659816 event=stream-sub-attach stream=233 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2142736Z CONN_LIFECYCLE: conn=317 role=brain wall_ms=1788931270214 mono_ms=660024 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2143878Z CONN_LIFECYCLE: conn=318 role=brain wall_ms=1788931270214 mono_ms=660024 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2145365Z CONN_LIFECYCLE: conn=319 role=brain wall_ms=1788931270214 mono_ms=660024 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2147410Z CONN_LIFECYCLE: conn=317 role=brain wall_ms=1788931270214 mono_ms=660025 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2149638Z CONN_LIFECYCLE: conn=318 role=brain wall_ms=1788931270214 mono_ms=660025 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2150893Z CONN_LIFECYCLE: conn=319 role=brain wall_ms=1788931270214 mono_ms=660025 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2152204Z CONN_LIFECYCLE: conn=322 role=brain stream-subscriber stream=234 wall_ms=1788931270214 mono_ms=660025 event=stream-sub-attach stream=234 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2153577Z CONN_LIFECYCLE: conn=321 role=brain stream-subscriber stream=236 wall_ms=1788931270214 mono_ms=660025 event=stream-sub-attach stream=236 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2155462Z CONN_LIFECYCLE: conn=322 role=brain stream-subscriber stream=234 wall_ms=1788931270214 mono_ms=660025 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2157074Z CONN_LIFECYCLE: conn=321 role=brain stream-subscriber stream=236 wall_ms=1788931270215 mono_ms=660025 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2158660Z CONN_LIFECYCLE: conn=320 role=brain wall_ms=1788931270215 mono_ms=660025 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2160132Z CONN_LIFECYCLE: conn=320 role=brain stream-subscriber stream=235 wall_ms=1788931270215 mono_ms=660026 event=stream-sub-attach stream=235 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2161593Z CONN_LIFECYCLE: conn=321 role=brain stream-subscriber stream=236 wall_ms=1788931270215 mono_ms=660026 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2162722Z CONN_LIFECYCLE: conn=323 role=brain wall_ms=1788931270215 mono_ms=660026 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2163728Z CONN_LIFECYCLE: conn=323 role=brain wall_ms=1788931270216 mono_ms=660026 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2164965Z CONN_LIFECYCLE: conn=322 role=brain stream-subscriber stream=234 wall_ms=1788931270216 mono_ms=660026 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2166075Z CONN_LIFECYCLE: conn=324 role=brain wall_ms=1788931270216 mono_ms=660027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2167075Z CONN_LIFECYCLE: conn=324 role=brain wall_ms=1788931270216 mono_ms=660027 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2179348Z CONN_LIFECYCLE: conn=320 role=brain stream-subscriber stream=235 wall_ms=1788931270217 mono_ms=660028 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2180598Z CONN_LIFECYCLE: conn=325 role=brain wall_ms=1788931270217 mono_ms=660028 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2181690Z CONN_LIFECYCLE: conn=325 role=brain wall_ms=1788931270218 mono_ms=660028 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2269969Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931270226 mono_ms=660037 event=stream-sub-release stream=233 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2390865Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931270238 mono_ms=660049 event=stream-sub-attach stream=237 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.2876259Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931270287 mono_ms=660097 event=stream-sub-release stream=237 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.7834095Z CONN_LIFECYCLE: conn=326 role=brain wall_ms=1788931270783 mono_ms=660593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.7835793Z CONN_LIFECYCLE: conn=326 role=brain wall_ms=1788931270783 mono_ms=660594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.7840905Z CONN_LIFECYCLE: conn=327 role=brain stream-subscriber stream=238 wall_ms=1788931270783 mono_ms=660594 event=stream-sub-attach stream=238 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.7843869Z CONN_LIFECYCLE: conn=327 role=brain stream-subscriber stream=238 wall_ms=1788931270784 mono_ms=660595 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8073891Z CONN_LIFECYCLE: conn=327 role=brain stream-subscriber stream=238 wall_ms=1788931270807 mono_ms=660617 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8075781Z CONN_LIFECYCLE: conn=328 role=brain wall_ms=1788931270807 mono_ms=660618 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8077112Z CONN_LIFECYCLE: conn=328 role=brain wall_ms=1788931270807 mono_ms=660618 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8744494Z CONN_LIFECYCLE: conn=329 role=brain wall_ms=1788931270874 mono_ms=660684 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8746114Z CONN_LIFECYCLE: conn=329 role=brain wall_ms=1788931270874 mono_ms=660685 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8750388Z CONN_LIFECYCLE: conn=330 role=brain stream-subscriber stream=239 wall_ms=1788931270874 mono_ms=660685 event=stream-sub-attach stream=239 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8752102Z CONN_LIFECYCLE: conn=330 role=brain stream-subscriber stream=239 wall_ms=1788931270875 mono_ms=660685 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8765839Z CONN_LIFECYCLE: conn=330 role=brain stream-subscriber stream=239 wall_ms=1788931270876 mono_ms=660687 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8767649Z CONN_LIFECYCLE: conn=331 role=brain wall_ms=1788931270876 mono_ms=660687 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.8768837Z CONN_LIFECYCLE: conn=331 role=brain wall_ms=1788931270876 mono_ms=660687 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:10.9570155Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931270956 mono_ms=660767 event=stream-sub-attach stream=243 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5217300Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931271521 mono_ms=661332 event=stream-sub-release stream=243 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5362108Z CONN_LIFECYCLE: conn=332 role=brain wall_ms=1788931271535 mono_ms=661346 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5363388Z CONN_LIFECYCLE: conn=333 role=brain wall_ms=1788931271535 mono_ms=661346 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5364598Z CONN_LIFECYCLE: conn=334 role=brain wall_ms=1788931271536 mono_ms=661346 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5366418Z CONN_LIFECYCLE: conn=332 role=brain wall_ms=1788931271536 mono_ms=661346 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5367608Z CONN_LIFECYCLE: conn=333 role=brain wall_ms=1788931271536 mono_ms=661347 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5369091Z CONN_LIFECYCLE: conn=334 role=brain wall_ms=1788931271536 mono_ms=661347 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5370309Z CONN_LIFECYCLE: conn=335 role=brain stream-subscriber stream=246 wall_ms=1788931271536 mono_ms=661347 event=stream-sub-attach stream=246 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5371939Z CONN_LIFECYCLE: conn=336 role=brain stream-subscriber stream=244 wall_ms=1788931271536 mono_ms=661347 event=stream-sub-attach stream=244 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5373405Z CONN_LIFECYCLE: conn=335 role=brain stream-subscriber stream=246 wall_ms=1788931271536 mono_ms=661347 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5374491Z CONN_LIFECYCLE: conn=336 role=brain stream-subscriber stream=244 wall_ms=1788931271536 mono_ms=661347 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5375494Z CONN_LIFECYCLE: conn=337 role=brain wall_ms=1788931271537 mono_ms=661347 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5376706Z CONN_LIFECYCLE: conn=337 role=brain stream-subscriber stream=245 wall_ms=1788931271537 mono_ms=661348 event=stream-sub-attach stream=245 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5378016Z CONN_LIFECYCLE: conn=335 role=brain stream-subscriber stream=246 wall_ms=1788931271537 mono_ms=661348 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5379670Z CONN_LIFECYCLE: conn=338 role=brain wall_ms=1788931271537 mono_ms=661348 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5380687Z CONN_LIFECYCLE: conn=338 role=brain wall_ms=1788931271537 mono_ms=661348 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5381932Z CONN_LIFECYCLE: conn=336 role=brain stream-subscriber stream=244 wall_ms=1788931271537 mono_ms=661348 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5383026Z CONN_LIFECYCLE: conn=339 role=brain wall_ms=1788931271538 mono_ms=661348 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5384027Z CONN_LIFECYCLE: conn=339 role=brain wall_ms=1788931271538 mono_ms=661349 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5399285Z CONN_LIFECYCLE: conn=337 role=brain stream-subscriber stream=245 wall_ms=1788931271539 mono_ms=661350 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5401082Z CONN_LIFECYCLE: conn=340 role=brain wall_ms=1788931271540 mono_ms=661350 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5402238Z CONN_LIFECYCLE: conn=340 role=brain wall_ms=1788931271540 mono_ms=661350 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5444728Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931271544 mono_ms=661354 event=stream-sub-attach stream=247 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:11.5985211Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931271598 mono_ms=661408 event=stream-sub-release stream=247 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0467051Z CONN_LIFECYCLE: conn=341 role=brain wall_ms=1788931272046 mono_ms=661857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0468441Z CONN_LIFECYCLE: conn=341 role=brain wall_ms=1788931272046 mono_ms=661857 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0474110Z CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=248 wall_ms=1788931272047 mono_ms=661857 event=stream-sub-attach stream=248 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0476194Z CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=248 wall_ms=1788931272047 mono_ms=661858 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0700440Z CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=248 wall_ms=1788931272069 mono_ms=661880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0702000Z CONN_LIFECYCLE: conn=343 role=brain wall_ms=1788931272070 mono_ms=661880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0703312Z CONN_LIFECYCLE: conn=343 role=brain wall_ms=1788931272070 mono_ms=661880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0971203Z CONN_LIFECYCLE: conn=344 role=brain wall_ms=1788931272096 mono_ms=661907 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0972299Z CONN_LIFECYCLE: conn=344 role=brain wall_ms=1788931272097 mono_ms=661907 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0975530Z CONN_LIFECYCLE: conn=345 role=brain stream-subscriber stream=249 wall_ms=1788931272097 mono_ms=661908 event=stream-sub-attach stream=249 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0976935Z CONN_LIFECYCLE: conn=345 role=brain stream-subscriber stream=249 wall_ms=1788931272097 mono_ms=661908 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0986114Z CONN_LIFECYCLE: conn=345 role=brain stream-subscriber stream=249 wall_ms=1788931272098 mono_ms=661909 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0987781Z CONN_LIFECYCLE: conn=346 role=brain wall_ms=1788931272098 mono_ms=661909 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.0989244Z CONN_LIFECYCLE: conn=346 role=brain wall_ms=1788931272098 mono_ms=661909 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.2765299Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931272276 mono_ms=662086 event=stream-sub-attach stream=253 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.4978294Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931272497 mono_ms=662308 event=stream-sub-release stream=253 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.5209976Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931272520 mono_ms=662331 event=stream-sub-attach stream=254 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.5571143Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931272556 mono_ms=662367 event=stream-sub-release stream=254 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7591954Z CONN_LIFECYCLE: conn=348 role=brain wall_ms=1788931272758 mono_ms=662569 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7593052Z CONN_LIFECYCLE: conn=349 role=brain wall_ms=1788931272759 mono_ms=662569 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7594589Z CONN_LIFECYCLE: conn=347 role=brain wall_ms=1788931272759 mono_ms=662569 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7596436Z CONN_LIFECYCLE: conn=348 role=brain wall_ms=1788931272759 mono_ms=662570 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7597739Z CONN_LIFECYCLE: conn=349 role=brain wall_ms=1788931272759 mono_ms=662570 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7598909Z CONN_LIFECYCLE: conn=347 role=brain wall_ms=1788931272759 mono_ms=662570 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7600382Z CONN_LIFECYCLE: conn=350 role=brain stream-subscriber stream=255 wall_ms=1788931272759 mono_ms=662570 event=stream-sub-attach stream=255 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7601691Z CONN_LIFECYCLE: conn=352 role=brain stream-subscriber stream=257 wall_ms=1788931272759 mono_ms=662570 event=stream-sub-attach stream=257 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7602877Z CONN_LIFECYCLE: conn=350 role=brain stream-subscriber stream=255 wall_ms=1788931272759 mono_ms=662570 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7603974Z CONN_LIFECYCLE: conn=352 role=brain stream-subscriber stream=257 wall_ms=1788931272759 mono_ms=662570 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7604954Z CONN_LIFECYCLE: conn=351 role=brain wall_ms=1788931272760 mono_ms=662570 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7606049Z CONN_LIFECYCLE: conn=351 role=brain stream-subscriber stream=256 wall_ms=1788931272760 mono_ms=662571 event=stream-sub-attach stream=256 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7608161Z CONN_LIFECYCLE: conn=352 role=brain stream-subscriber stream=257 wall_ms=1788931272760 mono_ms=662571 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7610112Z CONN_LIFECYCLE: conn=353 role=brain wall_ms=1788931272760 mono_ms=662571 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7611501Z CONN_LIFECYCLE: conn=353 role=brain wall_ms=1788931272760 mono_ms=662571 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7612769Z CONN_LIFECYCLE: conn=350 role=brain stream-subscriber stream=255 wall_ms=1788931272760 mono_ms=662571 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7613895Z CONN_LIFECYCLE: conn=354 role=brain wall_ms=1788931272761 mono_ms=662571 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7614922Z CONN_LIFECYCLE: conn=354 role=brain wall_ms=1788931272761 mono_ms=662572 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7628286Z CONN_LIFECYCLE: conn=351 role=brain stream-subscriber stream=256 wall_ms=1788931272762 mono_ms=662573 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7629930Z CONN_LIFECYCLE: conn=355 role=brain wall_ms=1788931272762 mono_ms=662573 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:12.7631434Z CONN_LIFECYCLE: conn=355 role=brain wall_ms=1788931272763 mono_ms=662573 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1150199Z CONN_LIFECYCLE: conn=356 role=brain wall_ms=1788931273114 mono_ms=662925 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1152406Z CONN_LIFECYCLE: conn=356 role=brain wall_ms=1788931273114 mono_ms=662925 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1156590Z CONN_LIFECYCLE: conn=357 role=brain stream-subscriber stream=258 wall_ms=1788931273115 mono_ms=662926 event=stream-sub-attach stream=258 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1159285Z CONN_LIFECYCLE: conn=357 role=brain stream-subscriber stream=258 wall_ms=1788931273115 mono_ms=662926 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1385171Z CONN_LIFECYCLE: conn=357 role=brain stream-subscriber stream=258 wall_ms=1788931273138 mono_ms=662949 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1387949Z CONN_LIFECYCLE: conn=358 role=brain wall_ms=1788931273138 mono_ms=662949 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1389213Z CONN_LIFECYCLE: conn=358 role=brain wall_ms=1788931273138 mono_ms=662949 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1653460Z CONN_LIFECYCLE: conn=359 role=brain wall_ms=1788931273165 mono_ms=662975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1655179Z CONN_LIFECYCLE: conn=359 role=brain wall_ms=1788931273165 mono_ms=662976 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1658202Z CONN_LIFECYCLE: conn=360 role=brain stream-subscriber stream=259 wall_ms=1788931273165 mono_ms=662976 event=stream-sub-attach stream=259 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1659987Z CONN_LIFECYCLE: conn=360 role=brain stream-subscriber stream=259 wall_ms=1788931273165 mono_ms=662976 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1670372Z CONN_LIFECYCLE: conn=360 role=brain stream-subscriber stream=259 wall_ms=1788931273166 mono_ms=662977 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1671893Z CONN_LIFECYCLE: conn=361 role=brain wall_ms=1788931273167 mono_ms=662977 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.1673418Z CONN_LIFECYCLE: conn=361 role=brain wall_ms=1788931273167 mono_ms=662977 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.2221609Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931273221 mono_ms=663032 event=stream-sub-attach stream=263 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.8788660Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931273878 mono_ms=663689 event=stream-sub-release stream=263 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9037112Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931273903 mono_ms=663714 event=stream-sub-attach stream=267 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9110849Z CONN_LIFECYCLE: conn=362 role=brain wall_ms=1788931273910 mono_ms=663721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9112326Z CONN_LIFECYCLE: conn=363 role=brain wall_ms=1788931273911 mono_ms=663721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9113778Z CONN_LIFECYCLE: conn=364 role=brain wall_ms=1788931273911 mono_ms=663721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9116293Z CONN_LIFECYCLE: conn=362 role=brain wall_ms=1788931273911 mono_ms=663721 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9118547Z CONN_LIFECYCLE: conn=363 role=brain wall_ms=1788931273911 mono_ms=663722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9120326Z CONN_LIFECYCLE: conn=364 role=brain wall_ms=1788931273911 mono_ms=663722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9121948Z CONN_LIFECYCLE: conn=365 role=brain stream-subscriber stream=264 wall_ms=1788931273911 mono_ms=663722 event=stream-sub-attach stream=264 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9123775Z CONN_LIFECYCLE: conn=366 role=brain stream-subscriber stream=266 wall_ms=1788931273911 mono_ms=663722 event=stream-sub-attach stream=266 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9125784Z CONN_LIFECYCLE: conn=365 role=brain stream-subscriber stream=264 wall_ms=1788931273911 mono_ms=663722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9127544Z CONN_LIFECYCLE: conn=366 role=brain stream-subscriber stream=266 wall_ms=1788931273911 mono_ms=663722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9128559Z CONN_LIFECYCLE: conn=367 role=brain wall_ms=1788931273912 mono_ms=663723 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9129784Z CONN_LIFECYCLE: conn=367 role=brain stream-subscriber stream=265 wall_ms=1788931273912 mono_ms=663723 event=stream-sub-attach stream=265 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9131107Z CONN_LIFECYCLE: conn=366 role=brain stream-subscriber stream=266 wall_ms=1788931273912 mono_ms=663723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9132275Z CONN_LIFECYCLE: conn=368 role=brain wall_ms=1788931273912 mono_ms=663723 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9133394Z CONN_LIFECYCLE: conn=365 role=brain stream-subscriber stream=264 wall_ms=1788931273912 mono_ms=663723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9134641Z CONN_LIFECYCLE: conn=368 role=brain wall_ms=1788931273913 mono_ms=663723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9135739Z CONN_LIFECYCLE: conn=369 role=brain wall_ms=1788931273913 mono_ms=663723 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9136756Z CONN_LIFECYCLE: conn=369 role=brain wall_ms=1788931273913 mono_ms=663724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9152031Z CONN_LIFECYCLE: conn=367 role=brain stream-subscriber stream=265 wall_ms=1788931273915 mono_ms=663725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9153452Z CONN_LIFECYCLE: conn=370 role=brain wall_ms=1788931273915 mono_ms=663726 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9154728Z CONN_LIFECYCLE: conn=370 role=brain wall_ms=1788931273915 mono_ms=663726 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:13.9192489Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931273918 mono_ms=663729 event=stream-sub-release stream=267 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3162769Z CONN_LIFECYCLE: conn=371 role=brain wall_ms=1788931274316 mono_ms=664126 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3164165Z CONN_LIFECYCLE: conn=371 role=brain wall_ms=1788931274316 mono_ms=664127 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3168894Z CONN_LIFECYCLE: conn=372 role=brain stream-subscriber stream=268 wall_ms=1788931274316 mono_ms=664127 event=stream-sub-attach stream=268 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3171218Z CONN_LIFECYCLE: conn=372 role=brain stream-subscriber stream=268 wall_ms=1788931274317 mono_ms=664127 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3342503Z CONN_LIFECYCLE: conn=373 role=brain wall_ms=1788931274334 mono_ms=664144 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3343878Z CONN_LIFECYCLE: conn=373 role=brain wall_ms=1788931274334 mono_ms=664145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3348343Z CONN_LIFECYCLE: conn=374 role=brain stream-subscriber stream=268 wall_ms=1788931274334 mono_ms=664145 event=stream-sub-attach stream=268 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3350242Z CONN_LIFECYCLE: conn=374 role=brain stream-subscriber stream=268 wall_ms=1788931274334 mono_ms=664145 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3394348Z CONN_LIFECYCLE: conn=372 role=brain stream-subscriber stream=268 wall_ms=1788931274339 mono_ms=664150 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3396135Z CONN_LIFECYCLE: conn=375 role=brain wall_ms=1788931274339 mono_ms=664150 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3397519Z CONN_LIFECYCLE: conn=375 role=brain wall_ms=1788931274339 mono_ms=664150 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3566719Z CONN_LIFECYCLE: conn=374 role=brain stream-subscriber stream=268 wall_ms=1788931274356 mono_ms=664167 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3568407Z CONN_LIFECYCLE: conn=376 role=brain wall_ms=1788931274356 mono_ms=664167 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3569825Z CONN_LIFECYCLE: conn=376 role=brain wall_ms=1788931274356 mono_ms=664167 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3856516Z CONN_LIFECYCLE: conn=377 role=brain wall_ms=1788931274385 mono_ms=664196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3858078Z CONN_LIFECYCLE: conn=377 role=brain wall_ms=1788931274385 mono_ms=664196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3861604Z CONN_LIFECYCLE: conn=378 role=brain stream-subscriber stream=269 wall_ms=1788931274385 mono_ms=664196 event=stream-sub-attach stream=269 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3863185Z CONN_LIFECYCLE: conn=378 role=brain stream-subscriber stream=269 wall_ms=1788931274386 mono_ms=664196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3876413Z CONN_LIFECYCLE: conn=378 role=brain stream-subscriber stream=269 wall_ms=1788931274387 mono_ms=664198 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3879257Z CONN_LIFECYCLE: conn=379 role=brain wall_ms=1788931274387 mono_ms=664198 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.3880494Z CONN_LIFECYCLE: conn=379 role=brain wall_ms=1788931274387 mono_ms=664198 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.5485783Z CONN_LIFECYCLE: conn=380 role=brain wall_ms=1788931274548 mono_ms=664359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.5488306Z CONN_LIFECYCLE: conn=380 role=brain wall_ms=1788931274548 mono_ms=664359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.5931061Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931274592 mono_ms=664403 event=stream-sub-attach stream=273 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.8199144Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931274819 mono_ms=664630 event=stream-sub-release stream=273 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.8448442Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931274844 mono_ms=664655 event=stream-sub-attach stream=274 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:14.8786454Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931274878 mono_ms=664688 event=stream-sub-release stream=274 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0456567Z CONN_LIFECYCLE: conn=382 role=brain wall_ms=1788931275045 mono_ms=664856 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0458438Z CONN_LIFECYCLE: conn=381 role=brain wall_ms=1788931275045 mono_ms=664856 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0460157Z CONN_LIFECYCLE: conn=383 role=brain wall_ms=1788931275045 mono_ms=664856 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0461345Z CONN_LIFECYCLE: conn=382 role=brain wall_ms=1788931275045 mono_ms=664856 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0462534Z CONN_LIFECYCLE: conn=381 role=brain wall_ms=1788931275045 mono_ms=664856 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0463841Z CONN_LIFECYCLE: conn=383 role=brain wall_ms=1788931275045 mono_ms=664856 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0466040Z CONN_LIFECYCLE: conn=385 role=brain stream-subscriber stream=275 wall_ms=1788931275046 mono_ms=664856 event=stream-sub-attach stream=275 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0468402Z CONN_LIFECYCLE: conn=386 role=brain stream-subscriber stream=277 wall_ms=1788931275046 mono_ms=664856 event=stream-sub-attach stream=277 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0470600Z CONN_LIFECYCLE: conn=385 role=brain stream-subscriber stream=275 wall_ms=1788931275046 mono_ms=664857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0472552Z CONN_LIFECYCLE: conn=386 role=brain stream-subscriber stream=277 wall_ms=1788931275046 mono_ms=664857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0473632Z CONN_LIFECYCLE: conn=384 role=brain wall_ms=1788931275046 mono_ms=664857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0475517Z CONN_LIFECYCLE: conn=384 role=brain stream-subscriber stream=276 wall_ms=1788931275046 mono_ms=664857 event=stream-sub-attach stream=276 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0477463Z CONN_LIFECYCLE: conn=386 role=brain stream-subscriber stream=277 wall_ms=1788931275046 mono_ms=664857 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0479768Z CONN_LIFECYCLE: conn=387 role=brain wall_ms=1788931275047 mono_ms=664857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0480826Z CONN_LIFECYCLE: conn=387 role=brain wall_ms=1788931275047 mono_ms=664858 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0482094Z CONN_LIFECYCLE: conn=385 role=brain stream-subscriber stream=275 wall_ms=1788931275047 mono_ms=664858 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0483277Z CONN_LIFECYCLE: conn=388 role=brain wall_ms=1788931275047 mono_ms=664858 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0484647Z CONN_LIFECYCLE: conn=388 role=brain wall_ms=1788931275047 mono_ms=664858 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0490523Z CONN_LIFECYCLE: conn=384 role=brain stream-subscriber stream=276 wall_ms=1788931275048 mono_ms=664859 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0491934Z CONN_LIFECYCLE: conn=389 role=brain wall_ms=1788931275049 mono_ms=664859 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.0492955Z CONN_LIFECYCLE: conn=389 role=brain wall_ms=1788931275049 mono_ms=664859 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5051840Z CONN_LIFECYCLE: conn=390 role=brain wall_ms=1788931275504 mono_ms=665315 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5054318Z CONN_LIFECYCLE: conn=390 role=brain wall_ms=1788931275505 mono_ms=665315 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5058028Z CONN_LIFECYCLE: conn=391 role=brain stream-subscriber stream=281 wall_ms=1788931275505 mono_ms=665316 event=stream-sub-attach stream=281 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5061546Z CONN_LIFECYCLE: conn=391 role=brain stream-subscriber stream=281 wall_ms=1788931275505 mono_ms=665316 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5259411Z CONN_LIFECYCLE: conn=392 role=brain wall_ms=1788931275525 mono_ms=665336 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5260776Z CONN_LIFECYCLE: conn=392 role=brain wall_ms=1788931275525 mono_ms=665336 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5264785Z CONN_LIFECYCLE: conn=393 role=brain stream-subscriber stream=281 wall_ms=1788931275526 mono_ms=665337 event=stream-sub-attach stream=281 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5266194Z CONN_LIFECYCLE: conn=393 role=brain stream-subscriber stream=281 wall_ms=1788931275526 mono_ms=665337 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5280508Z CONN_LIFECYCLE: conn=391 role=brain stream-subscriber stream=281 wall_ms=1788931275527 mono_ms=665338 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5282545Z CONN_LIFECYCLE: conn=394 role=brain wall_ms=1788931275528 mono_ms=665338 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5283943Z CONN_LIFECYCLE: conn=394 role=brain wall_ms=1788931275528 mono_ms=665339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5482485Z CONN_LIFECYCLE: conn=393 role=brain stream-subscriber stream=281 wall_ms=1788931275548 mono_ms=665358 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5484312Z CONN_LIFECYCLE: conn=395 role=brain wall_ms=1788931275548 mono_ms=665359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5485610Z CONN_LIFECYCLE: conn=395 role=brain wall_ms=1788931275548 mono_ms=665359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5505195Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931275550 mono_ms=665361 event=stream-sub-attach stream=285 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5552238Z CONN_LIFECYCLE: conn=396 role=brain wall_ms=1788931275555 mono_ms=665365 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5553575Z CONN_LIFECYCLE: conn=396 role=brain wall_ms=1788931275555 mono_ms=665366 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5555812Z CONN_LIFECYCLE: conn=397 role=brain stream-subscriber stream=286 wall_ms=1788931275555 mono_ms=665366 event=stream-sub-attach stream=286 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5557350Z CONN_LIFECYCLE: conn=397 role=brain stream-subscriber stream=286 wall_ms=1788931275555 mono_ms=665366 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5565454Z CONN_LIFECYCLE: conn=397 role=brain stream-subscriber stream=286 wall_ms=1788931275556 mono_ms=665367 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5566944Z CONN_LIFECYCLE: conn=398 role=brain wall_ms=1788931275556 mono_ms=665367 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.5568011Z CONN_LIFECYCLE: conn=398 role=brain wall_ms=1788931275556 mono_ms=665367 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.9120445Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931275911 mono_ms=665722 event=stream-sub-release stream=285 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.9361782Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931275935 mono_ms=665746 event=stream-sub-attach stream=287 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:15.9903692Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931275989 mono_ms=665800 event=stream-sub-release stream=287 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2166683Z CONN_LIFECYCLE: conn=400 role=brain wall_ms=1788931276216 mono_ms=666027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2168297Z CONN_LIFECYCLE: conn=399 role=brain wall_ms=1788931276216 mono_ms=666027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2169479Z CONN_LIFECYCLE: conn=401 role=brain wall_ms=1788931276216 mono_ms=666027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2170500Z CONN_LIFECYCLE: conn=399 role=brain wall_ms=1788931276216 mono_ms=666027 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2171651Z CONN_LIFECYCLE: conn=400 role=brain wall_ms=1788931276216 mono_ms=666027 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2172777Z CONN_LIFECYCLE: conn=401 role=brain wall_ms=1788931276216 mono_ms=666027 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2174014Z CONN_LIFECYCLE: conn=402 role=brain stream-subscriber stream=290 wall_ms=1788931276216 mono_ms=666027 event=stream-sub-attach stream=290 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2175716Z CONN_LIFECYCLE: conn=403 role=brain stream-subscriber stream=288 wall_ms=1788931276217 mono_ms=666027 event=stream-sub-attach stream=288 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2176948Z CONN_LIFECYCLE: conn=402 role=brain stream-subscriber stream=290 wall_ms=1788931276217 mono_ms=666027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2178054Z CONN_LIFECYCLE: conn=403 role=brain stream-subscriber stream=288 wall_ms=1788931276217 mono_ms=666028 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2179157Z CONN_LIFECYCLE: conn=404 role=brain wall_ms=1788931276217 mono_ms=666028 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2180258Z CONN_LIFECYCLE: conn=404 role=brain stream-subscriber stream=289 wall_ms=1788931276217 mono_ms=666028 event=stream-sub-attach stream=289 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2181779Z CONN_LIFECYCLE: conn=402 role=brain stream-subscriber stream=290 wall_ms=1788931276217 mono_ms=666028 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2185379Z CONN_LIFECYCLE: conn=405 role=brain wall_ms=1788931276218 mono_ms=666029 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2186978Z CONN_LIFECYCLE: conn=403 role=brain stream-subscriber stream=288 wall_ms=1788931276218 mono_ms=666029 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2188285Z CONN_LIFECYCLE: conn=405 role=brain wall_ms=1788931276218 mono_ms=666029 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2189450Z CONN_LIFECYCLE: conn=406 role=brain wall_ms=1788931276218 mono_ms=666029 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2190480Z CONN_LIFECYCLE: conn=406 role=brain wall_ms=1788931276218 mono_ms=666029 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2201499Z CONN_LIFECYCLE: conn=404 role=brain stream-subscriber stream=289 wall_ms=1788931276220 mono_ms=666030 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2202975Z CONN_LIFECYCLE: conn=407 role=brain wall_ms=1788931276220 mono_ms=666031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.2203981Z CONN_LIFECYCLE: conn=407 role=brain wall_ms=1788931276220 mono_ms=666031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.6575469Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931276657 mono_ms=666467 event=stream-sub-attach stream=294 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8267761Z CONN_LIFECYCLE: conn=408 role=brain wall_ms=1788931276826 mono_ms=666637 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8268869Z CONN_LIFECYCLE: conn=408 role=brain wall_ms=1788931276826 mono_ms=666637 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8271822Z CONN_LIFECYCLE: conn=409 role=brain stream-subscriber stream=295 wall_ms=1788931276827 mono_ms=666637 event=stream-sub-attach stream=295 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8273401Z CONN_LIFECYCLE: conn=409 role=brain stream-subscriber stream=295 wall_ms=1788931276827 mono_ms=666638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8371833Z CONN_LIFECYCLE: conn=410 role=brain wall_ms=1788931276837 mono_ms=666647 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8372965Z CONN_LIFECYCLE: conn=410 role=brain wall_ms=1788931276837 mono_ms=666648 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8375899Z CONN_LIFECYCLE: conn=411 role=brain stream-subscriber stream=295 wall_ms=1788931276837 mono_ms=666648 event=stream-sub-attach stream=295 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8377335Z CONN_LIFECYCLE: conn=411 role=brain stream-subscriber stream=295 wall_ms=1788931276837 mono_ms=666648 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8491060Z CONN_LIFECYCLE: conn=409 role=brain stream-subscriber stream=295 wall_ms=1788931276848 mono_ms=666659 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8492583Z CONN_LIFECYCLE: conn=412 role=brain wall_ms=1788931276849 mono_ms=666659 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8493859Z CONN_LIFECYCLE: conn=412 role=brain wall_ms=1788931276849 mono_ms=666660 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8592709Z CONN_LIFECYCLE: conn=411 role=brain stream-subscriber stream=295 wall_ms=1788931276859 mono_ms=666669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8594479Z CONN_LIFECYCLE: conn=413 role=brain wall_ms=1788931276859 mono_ms=666670 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8596001Z CONN_LIFECYCLE: conn=413 role=brain wall_ms=1788931276859 mono_ms=666670 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8771044Z CONN_LIFECYCLE: conn=414 role=brain wall_ms=1788931276876 mono_ms=666687 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8772125Z CONN_LIFECYCLE: conn=414 role=brain wall_ms=1788931276877 mono_ms=666687 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8774353Z CONN_LIFECYCLE: conn=415 role=brain stream-subscriber stream=296 wall_ms=1788931276877 mono_ms=666688 event=stream-sub-attach stream=296 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8777097Z CONN_LIFECYCLE: conn=415 role=brain stream-subscriber stream=296 wall_ms=1788931276877 mono_ms=666688 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8785048Z CONN_LIFECYCLE: conn=415 role=brain stream-subscriber stream=296 wall_ms=1788931276878 mono_ms=666689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8786806Z CONN_LIFECYCLE: conn=416 role=brain wall_ms=1788931276878 mono_ms=666689 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8787876Z CONN_LIFECYCLE: conn=416 role=brain wall_ms=1788931276878 mono_ms=666689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.8966426Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931276896 mono_ms=666707 event=stream-sub-release stream=294 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.9215813Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931276921 mono_ms=666731 event=stream-sub-attach stream=297 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:16.9489356Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931276948 mono_ms=666759 event=stream-sub-release stream=297 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5919787Z CONN_LIFECYCLE: conn=417 role=brain wall_ms=1788931277591 mono_ms=667402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5921074Z CONN_LIFECYCLE: conn=418 role=brain wall_ms=1788931277591 mono_ms=667402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5923006Z CONN_LIFECYCLE: conn=419 role=brain wall_ms=1788931277591 mono_ms=667402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5924298Z CONN_LIFECYCLE: conn=417 role=brain wall_ms=1788931277591 mono_ms=667402 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5925482Z CONN_LIFECYCLE: conn=418 role=brain wall_ms=1788931277592 mono_ms=667402 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5926617Z CONN_LIFECYCLE: conn=419 role=brain wall_ms=1788931277592 mono_ms=667402 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5928095Z CONN_LIFECYCLE: conn=420 role=brain stream-subscriber stream=298 wall_ms=1788931277592 mono_ms=667403 event=stream-sub-attach stream=298 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5929713Z CONN_LIFECYCLE: conn=422 role=brain stream-subscriber stream=300 wall_ms=1788931277592 mono_ms=667403 event=stream-sub-attach stream=300 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5930925Z CONN_LIFECYCLE: conn=420 role=brain stream-subscriber stream=298 wall_ms=1788931277592 mono_ms=667403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5931996Z CONN_LIFECYCLE: conn=422 role=brain stream-subscriber stream=300 wall_ms=1788931277592 mono_ms=667403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5933045Z CONN_LIFECYCLE: conn=421 role=brain wall_ms=1788931277592 mono_ms=667403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5934220Z CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=299 wall_ms=1788931277593 mono_ms=667403 event=stream-sub-attach stream=299 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5935769Z CONN_LIFECYCLE: conn=422 role=brain stream-subscriber stream=300 wall_ms=1788931277593 mono_ms=667404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5936900Z CONN_LIFECYCLE: conn=423 role=brain wall_ms=1788931277593 mono_ms=667404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5937907Z CONN_LIFECYCLE: conn=423 role=brain wall_ms=1788931277593 mono_ms=667404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5954399Z CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=299 wall_ms=1788931277595 mono_ms=667406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5955955Z CONN_LIFECYCLE: conn=424 role=brain wall_ms=1788931277595 mono_ms=667406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5957242Z CONN_LIFECYCLE: conn=424 role=brain wall_ms=1788931277595 mono_ms=667406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5978870Z CONN_LIFECYCLE: conn=420 role=brain stream-subscriber stream=298 wall_ms=1788931277597 mono_ms=667408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5980759Z CONN_LIFECYCLE: conn=425 role=brain wall_ms=1788931277597 mono_ms=667408 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.5982023Z CONN_LIFECYCLE: conn=425 role=brain wall_ms=1788931277598 mono_ms=667408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.6225149Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931277622 mono_ms=667433 event=stream-sub-attach stream=304 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.8479986Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931277847 mono_ms=667658 event=stream-sub-release stream=304 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.8732072Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931277872 mono_ms=667683 event=stream-sub-attach stream=305 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:17.9092932Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931277908 mono_ms=667719 event=stream-sub-release stream=305 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:18.5873196Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931278586 mono_ms=668397 event=stream-sub-attach stream=309 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:18.8906286Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931278890 mono_ms=668700 event=stream-sub-release stream=309 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:18.9165224Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931278916 mono_ms=668726 event=stream-sub-attach stream=310 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:18.9671614Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931278966 mono_ms=668777 event=stream-sub-release stream=310 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:19.5645885Z CONN_LIFECYCLE: conn=426 role=brain wall_ms=1788931279564 mono_ms=669375 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:19.5647430Z CONN_LIFECYCLE: conn=426 role=brain wall_ms=1788931279564 mono_ms=669375 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:19.6438708Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931279643 mono_ms=669454 event=stream-sub-attach stream=314 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:20.4738475Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931280473 mono_ms=670284 event=stream-sub-release stream=314 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:20.4996564Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931280499 mono_ms=670309 event=stream-sub-attach stream=315 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:20.5427111Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931280542 mono_ms=670352 event=stream-sub-release stream=315 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.0803804Z CONN_LIFECYCLE: conn=427 role=brain wall_ms=1788931281080 mono_ms=670890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.0806126Z CONN_LIFECYCLE: conn=427 role=brain wall_ms=1788931281080 mono_ms=670891 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.0810854Z CONN_LIFECYCLE: conn=428 role=brain stream-subscriber stream=316 wall_ms=1788931281080 mono_ms=670891 event=stream-sub-attach stream=316 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.0812475Z CONN_LIFECYCLE: conn=428 role=brain stream-subscriber stream=316 wall_ms=1788931281081 mono_ms=670891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1034518Z CONN_LIFECYCLE: conn=429 role=brain wall_ms=1788931281103 mono_ms=670914 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1035768Z CONN_LIFECYCLE: conn=429 role=brain wall_ms=1788931281103 mono_ms=670914 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1037523Z CONN_LIFECYCLE: conn=428 role=brain stream-subscriber stream=316 wall_ms=1788931281103 mono_ms=670914 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1038678Z CONN_LIFECYCLE: conn=430 role=brain wall_ms=1788931281103 mono_ms=670914 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1039862Z CONN_LIFECYCLE: conn=430 role=brain wall_ms=1788931281103 mono_ms=670914 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1040873Z CONN_LIFECYCLE: conn=431 role=brain wall_ms=1788931281103 mono_ms=670914 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1041895Z CONN_LIFECYCLE: conn=431 role=brain wall_ms=1788931281104 mono_ms=670914 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1551093Z CONN_LIFECYCLE: conn=432 role=brain wall_ms=1788931281154 mono_ms=670965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1552728Z CONN_LIFECYCLE: conn=432 role=brain wall_ms=1788931281155 mono_ms=670965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1556088Z CONN_LIFECYCLE: conn=433 role=brain stream-subscriber stream=317 wall_ms=1788931281155 mono_ms=670966 event=stream-sub-attach stream=317 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1557766Z CONN_LIFECYCLE: conn=433 role=brain stream-subscriber stream=317 wall_ms=1788931281155 mono_ms=670966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1571833Z CONN_LIFECYCLE: conn=433 role=brain stream-subscriber stream=317 wall_ms=1788931281156 mono_ms=670967 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1573538Z CONN_LIFECYCLE: conn=434 role=brain wall_ms=1788931281157 mono_ms=670968 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.1575038Z CONN_LIFECYCLE: conn=434 role=brain wall_ms=1788931281157 mono_ms=670968 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.2079582Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931281207 mono_ms=671018 event=stream-sub-attach stream=321 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8668174Z CONN_LIFECYCLE: conn=435 role=brain wall_ms=1788931281866 mono_ms=671677 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8669954Z CONN_LIFECYCLE: conn=436 role=brain wall_ms=1788931281866 mono_ms=671677 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8671104Z CONN_LIFECYCLE: conn=437 role=brain wall_ms=1788931281866 mono_ms=671677 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8672156Z CONN_LIFECYCLE: conn=437 role=brain wall_ms=1788931281866 mono_ms=671677 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8673402Z CONN_LIFECYCLE: conn=435 role=brain wall_ms=1788931281866 mono_ms=671677 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8674913Z CONN_LIFECYCLE: conn=436 role=brain wall_ms=1788931281866 mono_ms=671677 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8676149Z CONN_LIFECYCLE: conn=438 role=brain stream-subscriber stream=324 wall_ms=1788931281867 mono_ms=671677 event=stream-sub-attach stream=324 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8677451Z CONN_LIFECYCLE: conn=439 role=brain stream-subscriber stream=322 wall_ms=1788931281867 mono_ms=671677 event=stream-sub-attach stream=322 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8678653Z CONN_LIFECYCLE: conn=439 role=brain stream-subscriber stream=322 wall_ms=1788931281867 mono_ms=671678 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8679954Z CONN_LIFECYCLE: conn=438 role=brain stream-subscriber stream=324 wall_ms=1788931281867 mono_ms=671678 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8681027Z CONN_LIFECYCLE: conn=440 role=brain wall_ms=1788931281867 mono_ms=671678 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8682131Z CONN_LIFECYCLE: conn=440 role=brain stream-subscriber stream=323 wall_ms=1788931281868 mono_ms=671678 event=stream-sub-attach stream=323 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8683599Z CONN_LIFECYCLE: conn=438 role=brain stream-subscriber stream=324 wall_ms=1788931281868 mono_ms=671678 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8684930Z CONN_LIFECYCLE: conn=441 role=brain wall_ms=1788931281868 mono_ms=671679 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8686032Z CONN_LIFECYCLE: conn=441 role=brain wall_ms=1788931281868 mono_ms=671679 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8687301Z CONN_LIFECYCLE: conn=439 role=brain stream-subscriber stream=322 wall_ms=1788931281868 mono_ms=671679 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8688428Z CONN_LIFECYCLE: conn=442 role=brain wall_ms=1788931281868 mono_ms=671679 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8689653Z CONN_LIFECYCLE: conn=442 role=brain wall_ms=1788931281868 mono_ms=671679 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8704705Z CONN_LIFECYCLE: conn=440 role=brain stream-subscriber stream=323 wall_ms=1788931281870 mono_ms=671681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8706208Z CONN_LIFECYCLE: conn=443 role=brain wall_ms=1788931281870 mono_ms=671681 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:21.8707372Z CONN_LIFECYCLE: conn=443 role=brain wall_ms=1788931281870 mono_ms=671681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:24.1112766Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931284110 mono_ms=673921 event=stream-sub-release stream=321 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:24.1241078Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931284123 mono_ms=673934 event=stream-sub-attach stream=325 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:24.1842771Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931284183 mono_ms=673994 event=stream-sub-release stream=325 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:24.5836774Z CONN_LIFECYCLE: conn=444 role=brain wall_ms=1788931284583 mono_ms=674394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:24.5839446Z CONN_LIFECYCLE: conn=444 role=brain wall_ms=1788931284583 mono_ms=674394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:24.8573383Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931284856 mono_ms=674667 event=stream-sub-attach stream=329 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.2788042Z CONN_LIFECYCLE: conn=445 role=brain wall_ms=1788931285278 mono_ms=675089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.2789652Z CONN_LIFECYCLE: conn=445 role=brain wall_ms=1788931285278 mono_ms=675089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.2794147Z CONN_LIFECYCLE: conn=446 role=brain stream-subscriber stream=330 wall_ms=1788931285279 mono_ms=675089 event=stream-sub-attach stream=330 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.2795849Z CONN_LIFECYCLE: conn=446 role=brain stream-subscriber stream=330 wall_ms=1788931285279 mono_ms=675090 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3020165Z CONN_LIFECYCLE: conn=446 role=brain stream-subscriber stream=330 wall_ms=1788931285301 mono_ms=675112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3022762Z CONN_LIFECYCLE: conn=447 role=brain wall_ms=1788931285302 mono_ms=675112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3024080Z CONN_LIFECYCLE: conn=447 role=brain wall_ms=1788931285302 mono_ms=675113 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3288769Z CONN_LIFECYCLE: conn=448 role=brain wall_ms=1788931285328 mono_ms=675139 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3290795Z CONN_LIFECYCLE: conn=448 role=brain wall_ms=1788931285328 mono_ms=675139 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3293727Z CONN_LIFECYCLE: conn=449 role=brain stream-subscriber stream=331 wall_ms=1788931285329 mono_ms=675140 event=stream-sub-attach stream=331 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3296063Z CONN_LIFECYCLE: conn=449 role=brain stream-subscriber stream=331 wall_ms=1788931285329 mono_ms=675140 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3304650Z CONN_LIFECYCLE: conn=449 role=brain stream-subscriber stream=331 wall_ms=1788931285330 mono_ms=675141 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3306089Z CONN_LIFECYCLE: conn=450 role=brain wall_ms=1788931285330 mono_ms=675141 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.3307143Z CONN_LIFECYCLE: conn=450 role=brain wall_ms=1788931285330 mono_ms=675141 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.8984286Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931285898 mono_ms=675708 event=stream-sub-release stream=329 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9243624Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931285923 mono_ms=675734 event=stream-sub-attach stream=332 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9646506Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931285964 mono_ms=675775 event=stream-sub-release stream=332 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9919409Z CONN_LIFECYCLE: conn=451 role=brain wall_ms=1788931285991 mono_ms=675802 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9920397Z CONN_LIFECYCLE: conn=452 role=brain wall_ms=1788931285991 mono_ms=675802 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9921590Z CONN_LIFECYCLE: conn=453 role=brain wall_ms=1788931285991 mono_ms=675802 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9923166Z CONN_LIFECYCLE: conn=451 role=brain wall_ms=1788931285991 mono_ms=675802 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9924386Z CONN_LIFECYCLE: conn=452 role=brain wall_ms=1788931285991 mono_ms=675802 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9926013Z CONN_LIFECYCLE: conn=453 role=brain wall_ms=1788931285992 mono_ms=675802 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9928167Z CONN_LIFECYCLE: conn=454 role=brain stream-subscriber stream=333 wall_ms=1788931285992 mono_ms=675803 event=stream-sub-attach stream=333 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9930027Z CONN_LIFECYCLE: conn=456 role=brain stream-subscriber stream=335 wall_ms=1788931285992 mono_ms=675803 event=stream-sub-attach stream=335 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9931959Z CONN_LIFECYCLE: conn=454 role=brain stream-subscriber stream=333 wall_ms=1788931285992 mono_ms=675803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9933160Z CONN_LIFECYCLE: conn=456 role=brain stream-subscriber stream=335 wall_ms=1788931285992 mono_ms=675803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9934144Z CONN_LIFECYCLE: conn=455 role=brain wall_ms=1788931285992 mono_ms=675803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9935233Z CONN_LIFECYCLE: conn=455 role=brain stream-subscriber stream=334 wall_ms=1788931285992 mono_ms=675803 event=stream-sub-attach stream=334 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9936569Z CONN_LIFECYCLE: conn=456 role=brain stream-subscriber stream=335 wall_ms=1788931285993 mono_ms=675804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9937694Z CONN_LIFECYCLE: conn=457 role=brain wall_ms=1788931285993 mono_ms=675804 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9938713Z CONN_LIFECYCLE: conn=457 role=brain wall_ms=1788931285993 mono_ms=675804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9940119Z CONN_LIFECYCLE: conn=454 role=brain stream-subscriber stream=333 wall_ms=1788931285993 mono_ms=675804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9941289Z CONN_LIFECYCLE: conn=458 role=brain wall_ms=1788931285993 mono_ms=675804 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9942653Z CONN_LIFECYCLE: conn=458 role=brain wall_ms=1788931285993 mono_ms=675804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9954736Z CONN_LIFECYCLE: conn=455 role=brain stream-subscriber stream=334 wall_ms=1788931285995 mono_ms=675806 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9955947Z CONN_LIFECYCLE: conn=459 role=brain wall_ms=1788931285995 mono_ms=675806 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:25.9957005Z CONN_LIFECYCLE: conn=459 role=brain wall_ms=1788931285995 mono_ms=675806 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.6423765Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931286641 mono_ms=676452 event=stream-sub-attach stream=339 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8067408Z CONN_LIFECYCLE: conn=460 role=brain wall_ms=1788931286806 mono_ms=676617 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8068605Z CONN_LIFECYCLE: conn=460 role=brain wall_ms=1788931286806 mono_ms=676617 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8073688Z CONN_LIFECYCLE: conn=461 role=brain stream-subscriber stream=340 wall_ms=1788931286807 mono_ms=676617 event=stream-sub-attach stream=340 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8075510Z CONN_LIFECYCLE: conn=461 role=brain stream-subscriber stream=340 wall_ms=1788931286807 mono_ms=676618 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8303734Z CONN_LIFECYCLE: conn=461 role=brain stream-subscriber stream=340 wall_ms=1788931286830 mono_ms=676640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8305839Z CONN_LIFECYCLE: conn=462 role=brain wall_ms=1788931286830 mono_ms=676641 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8307169Z CONN_LIFECYCLE: conn=462 role=brain wall_ms=1788931286830 mono_ms=676641 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8570839Z CONN_LIFECYCLE: conn=463 role=brain wall_ms=1788931286856 mono_ms=676667 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8572533Z CONN_LIFECYCLE: conn=463 role=brain wall_ms=1788931286857 mono_ms=676667 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8575424Z CONN_LIFECYCLE: conn=464 role=brain stream-subscriber stream=341 wall_ms=1788931286857 mono_ms=676668 event=stream-sub-attach stream=341 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8576959Z CONN_LIFECYCLE: conn=464 role=brain stream-subscriber stream=341 wall_ms=1788931286857 mono_ms=676668 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8585603Z CONN_LIFECYCLE: conn=464 role=brain stream-subscriber stream=341 wall_ms=1788931286858 mono_ms=676669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8586838Z CONN_LIFECYCLE: conn=465 role=brain wall_ms=1788931286858 mono_ms=676669 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:26.8587890Z CONN_LIFECYCLE: conn=465 role=brain wall_ms=1788931286858 mono_ms=676669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.1144606Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931287113 mono_ms=676924 event=stream-sub-release stream=339 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.1301767Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931287129 mono_ms=676940 event=stream-sub-attach stream=342 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.1703249Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931287169 mono_ms=676980 event=stream-sub-release stream=342 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6224741Z CONN_LIFECYCLE: conn=466 role=brain wall_ms=1788931287622 mono_ms=677433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6225819Z CONN_LIFECYCLE: conn=467 role=brain wall_ms=1788931287622 mono_ms=677433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6227425Z CONN_LIFECYCLE: conn=468 role=brain wall_ms=1788931287622 mono_ms=677433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6229602Z CONN_LIFECYCLE: conn=466 role=brain wall_ms=1788931287622 mono_ms=677433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6231120Z CONN_LIFECYCLE: conn=467 role=brain wall_ms=1788931287622 mono_ms=677433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6232330Z CONN_LIFECYCLE: conn=468 role=brain wall_ms=1788931287622 mono_ms=677433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6233646Z CONN_LIFECYCLE: conn=469 role=brain stream-subscriber stream=343 wall_ms=1788931287622 mono_ms=677433 event=stream-sub-attach stream=343 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6234972Z CONN_LIFECYCLE: conn=470 role=brain stream-subscriber stream=345 wall_ms=1788931287622 mono_ms=677433 event=stream-sub-attach stream=345 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6236188Z CONN_LIFECYCLE: conn=469 role=brain stream-subscriber stream=343 wall_ms=1788931287623 mono_ms=677433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6237309Z CONN_LIFECYCLE: conn=470 role=brain stream-subscriber stream=345 wall_ms=1788931287623 mono_ms=677433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6238424Z CONN_LIFECYCLE: conn=471 role=brain wall_ms=1788931287623 mono_ms=677434 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6239866Z CONN_LIFECYCLE: conn=471 role=brain stream-subscriber stream=344 wall_ms=1788931287623 mono_ms=677434 event=stream-sub-attach stream=344 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6241671Z CONN_LIFECYCLE: conn=470 role=brain stream-subscriber stream=345 wall_ms=1788931287623 mono_ms=677434 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6242958Z CONN_LIFECYCLE: conn=472 role=brain wall_ms=1788931287623 mono_ms=677434 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6244138Z CONN_LIFECYCLE: conn=472 role=brain wall_ms=1788931287624 mono_ms=677434 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6245527Z CONN_LIFECYCLE: conn=469 role=brain stream-subscriber stream=343 wall_ms=1788931287624 mono_ms=677435 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6246734Z CONN_LIFECYCLE: conn=473 role=brain wall_ms=1788931287624 mono_ms=677435 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6247765Z CONN_LIFECYCLE: conn=473 role=brain wall_ms=1788931287624 mono_ms=677435 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6261159Z CONN_LIFECYCLE: conn=471 role=brain stream-subscriber stream=344 wall_ms=1788931287625 mono_ms=677436 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6262835Z CONN_LIFECYCLE: conn=474 role=brain wall_ms=1788931287626 mono_ms=677437 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.6263958Z CONN_LIFECYCLE: conn=474 role=brain wall_ms=1788931287626 mono_ms=677437 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:27.8458296Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931287845 mono_ms=677656 event=stream-sub-attach stream=349 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.3638361Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931288363 mono_ms=678174 event=stream-sub-release stream=349 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.3853877Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931288385 mono_ms=678195 event=stream-sub-attach stream=350 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.4316247Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931288431 mono_ms=678241 event=stream-sub-release stream=350 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.9968425Z CONN_LIFECYCLE: conn=475 role=brain wall_ms=1788931288996 mono_ms=678807 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.9970095Z CONN_LIFECYCLE: conn=475 role=brain wall_ms=1788931288996 mono_ms=678807 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.9975537Z CONN_LIFECYCLE: conn=476 role=brain stream-subscriber stream=351 wall_ms=1788931288997 mono_ms=678808 event=stream-sub-attach stream=351 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:28.9977057Z CONN_LIFECYCLE: conn=476 role=brain stream-subscriber stream=351 wall_ms=1788931288997 mono_ms=678808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.0204172Z CONN_LIFECYCLE: conn=476 role=brain stream-subscriber stream=351 wall_ms=1788931289020 mono_ms=678831 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.0205793Z CONN_LIFECYCLE: conn=477 role=brain wall_ms=1788931289020 mono_ms=678831 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.0207115Z CONN_LIFECYCLE: conn=477 role=brain wall_ms=1788931289020 mono_ms=678831 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.1044592Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931289104 mono_ms=678914 event=stream-sub-attach stream=355 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.5994042Z CONN_LIFECYCLE: conn=478 role=brain wall_ms=1788931289599 mono_ms=679409 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.5996291Z CONN_LIFECYCLE: conn=478 role=brain wall_ms=1788931289599 mono_ms=679410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6340526Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931289633 mono_ms=679444 event=stream-sub-release stream=355 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6468524Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931289646 mono_ms=679457 event=stream-sub-attach stream=357 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6587270Z CONN_LIFECYCLE: conn=479 role=brain wall_ms=1788931289658 mono_ms=679469 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6589254Z CONN_LIFECYCLE: conn=479 role=brain wall_ms=1788931289658 mono_ms=679469 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6592502Z CONN_LIFECYCLE: conn=480 role=brain wall_ms=1788931289659 mono_ms=679469 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6594575Z CONN_LIFECYCLE: conn=481 role=brain stream-subscriber stream=356 wall_ms=1788931289659 mono_ms=679469 event=stream-sub-attach stream=356 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6596198Z CONN_LIFECYCLE: conn=480 role=brain wall_ms=1788931289659 mono_ms=679470 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6597366Z CONN_LIFECYCLE: conn=481 role=brain stream-subscriber stream=356 wall_ms=1788931289659 mono_ms=679470 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6599714Z CONN_LIFECYCLE: conn=482 role=brain stream-subscriber stream=356 wall_ms=1788931289659 mono_ms=679470 event=stream-sub-attach stream=356 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6601656Z CONN_LIFECYCLE: conn=482 role=brain stream-subscriber stream=356 wall_ms=1788931289659 mono_ms=679470 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6604063Z CONN_LIFECYCLE: conn=481 role=brain stream-subscriber stream=356 wall_ms=1788931289660 mono_ms=679471 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6605731Z CONN_LIFECYCLE: conn=482 role=brain stream-subscriber stream=356 wall_ms=1788931289660 mono_ms=679471 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6607316Z CONN_LIFECYCLE: conn=483 role=brain wall_ms=1788931289660 mono_ms=679471 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6608232Z CONN_LIFECYCLE: conn=484 role=brain wall_ms=1788931289660 mono_ms=679471 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6609380Z CONN_LIFECYCLE: conn=483 role=brain wall_ms=1788931289660 mono_ms=679471 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6610555Z CONN_LIFECYCLE: conn=484 role=brain wall_ms=1788931289660 mono_ms=679471 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:29.6938361Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931289693 mono_ms=679504 event=stream-sub-release stream=357 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.2476332Z PAIR_MEET_UP:twohost step=59631043 id=e0b71222965552cc8fa5c9ec9778c07ea11557bb4bd3c6f4602456a12d9f0708 addr=EndpointAddr { id: PublicKey(e0b71222965552cc8fa5c9ec9778c07ea11557bb4bd3c6f4602456a12d9f0708), addrs: {Ip(100.98.197.12:51473), Ip(192.168.1.168:51473)} }
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3183494Z CONN_LIFECYCLE: conn=486 role=brain wall_ms=1788931290318 mono_ms=680128 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3184931Z CONN_LIFECYCLE: conn=485 role=brain wall_ms=1788931290318 mono_ms=680128 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3185831Z CONN_LIFECYCLE: conn=487 role=brain wall_ms=1788931290318 mono_ms=680128 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3186854Z CONN_LIFECYCLE: conn=486 role=brain wall_ms=1788931290318 mono_ms=680129 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3188011Z CONN_LIFECYCLE: conn=485 role=brain wall_ms=1788931290318 mono_ms=680129 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3189600Z CONN_LIFECYCLE: conn=487 role=brain wall_ms=1788931290318 mono_ms=680129 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3190858Z CONN_LIFECYCLE: conn=488 role=brain stream-subscriber stream=358 wall_ms=1788931290318 mono_ms=680129 event=stream-sub-attach stream=358 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3192185Z CONN_LIFECYCLE: conn=489 role=brain stream-subscriber stream=360 wall_ms=1788931290318 mono_ms=680129 event=stream-sub-attach stream=360 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3193373Z CONN_LIFECYCLE: conn=488 role=brain stream-subscriber stream=358 wall_ms=1788931290318 mono_ms=680129 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3194464Z CONN_LIFECYCLE: conn=489 role=brain stream-subscriber stream=360 wall_ms=1788931290318 mono_ms=680129 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3195642Z CONN_LIFECYCLE: conn=490 role=brain wall_ms=1788931290319 mono_ms=680129 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3196736Z CONN_LIFECYCLE: conn=490 role=brain stream-subscriber stream=359 wall_ms=1788931290319 mono_ms=680130 event=stream-sub-attach stream=359 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3198062Z CONN_LIFECYCLE: conn=489 role=brain stream-subscriber stream=360 wall_ms=1788931290319 mono_ms=680130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3199273Z CONN_LIFECYCLE: conn=491 role=brain wall_ms=1788931290319 mono_ms=680130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3200275Z CONN_LIFECYCLE: conn=491 role=brain wall_ms=1788931290319 mono_ms=680130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3217594Z CONN_LIFECYCLE: conn=490 role=brain stream-subscriber stream=359 wall_ms=1788931290321 mono_ms=680132 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3219535Z CONN_LIFECYCLE: conn=492 role=brain wall_ms=1788931290321 mono_ms=680132 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3221038Z CONN_LIFECYCLE: conn=492 role=brain wall_ms=1788931290321 mono_ms=680132 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3422228Z CONN_LIFECYCLE: conn=488 role=brain stream-subscriber stream=358 wall_ms=1788931290342 mono_ms=680152 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3423942Z CONN_LIFECYCLE: conn=493 role=brain wall_ms=1788931290342 mono_ms=680153 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3425057Z CONN_LIFECYCLE: conn=493 role=brain wall_ms=1788931290342 mono_ms=680153 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:30.3665030Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931290366 mono_ms=680176 event=stream-sub-attach stream=364 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:31.4473722Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931291446 mono_ms=681257 event=stream-sub-release stream=364 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:31.4701734Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931291469 mono_ms=681280 event=stream-sub-attach stream=367 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:31.5125219Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931291511 mono_ms=681322 event=stream-sub-release stream=367 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:32.1834536Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931292182 mono_ms=681993 event=stream-sub-attach stream=371 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5787641Z CONN_LIFECYCLE: conn=494 role=brain wall_ms=1788931293578 mono_ms=683389 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5789639Z CONN_LIFECYCLE: conn=494 role=brain wall_ms=1788931293578 mono_ms=683389 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5795195Z CONN_LIFECYCLE: conn=495 role=brain stream-subscriber stream=372 wall_ms=1788931293579 mono_ms=683390 event=stream-sub-attach stream=372 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5797070Z CONN_LIFECYCLE: conn=495 role=brain stream-subscriber stream=372 wall_ms=1788931293579 mono_ms=683390 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5961600Z CONN_LIFECYCLE: conn=496 role=brain wall_ms=1788931293595 mono_ms=683406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5963168Z CONN_LIFECYCLE: conn=496 role=brain wall_ms=1788931293596 mono_ms=683406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5966894Z CONN_LIFECYCLE: conn=497 role=brain stream-subscriber stream=372 wall_ms=1788931293596 mono_ms=683407 event=stream-sub-attach stream=372 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.5968746Z CONN_LIFECYCLE: conn=497 role=brain stream-subscriber stream=372 wall_ms=1788931293596 mono_ms=683407 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6016294Z CONN_LIFECYCLE: conn=495 role=brain stream-subscriber stream=372 wall_ms=1788931293601 mono_ms=683412 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6018299Z CONN_LIFECYCLE: conn=498 role=brain wall_ms=1788931293601 mono_ms=683412 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6019691Z CONN_LIFECYCLE: conn=498 role=brain wall_ms=1788931293601 mono_ms=683412 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6188380Z CONN_LIFECYCLE: conn=497 role=brain stream-subscriber stream=372 wall_ms=1788931293618 mono_ms=683429 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6190049Z CONN_LIFECYCLE: conn=499 role=brain wall_ms=1788931293618 mono_ms=683429 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6191371Z CONN_LIFECYCLE: conn=499 role=brain wall_ms=1788931293618 mono_ms=683429 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6289243Z CONN_LIFECYCLE: conn=500 role=brain wall_ms=1788931293628 mono_ms=683439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6290440Z CONN_LIFECYCLE: conn=500 role=brain wall_ms=1788931293628 mono_ms=683439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6293067Z CONN_LIFECYCLE: conn=501 role=brain stream-subscriber stream=373 wall_ms=1788931293629 mono_ms=683439 event=stream-sub-attach stream=373 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6294757Z CONN_LIFECYCLE: conn=501 role=brain stream-subscriber stream=373 wall_ms=1788931293629 mono_ms=683440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6303084Z CONN_LIFECYCLE: conn=501 role=brain stream-subscriber stream=373 wall_ms=1788931293630 mono_ms=683440 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6304534Z CONN_LIFECYCLE: conn=502 role=brain wall_ms=1788931293630 mono_ms=683441 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.6305582Z CONN_LIFECYCLE: conn=502 role=brain wall_ms=1788931293630 mono_ms=683441 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.8019598Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931293801 mono_ms=683612 event=stream-sub-release stream=371 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.8258335Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931293825 mono_ms=683636 event=stream-sub-attach stream=374 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:33.8828403Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931293882 mono_ms=683693 event=stream-sub-release stream=374 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3439917Z CONN_LIFECYCLE: conn=504 role=brain wall_ms=1788931294343 mono_ms=684154 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3441572Z CONN_LIFECYCLE: conn=505 role=brain wall_ms=1788931294343 mono_ms=684154 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3443835Z CONN_LIFECYCLE: conn=503 role=brain wall_ms=1788931294343 mono_ms=684154 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3446177Z CONN_LIFECYCLE: conn=504 role=brain wall_ms=1788931294343 mono_ms=684154 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3447786Z CONN_LIFECYCLE: conn=505 role=brain wall_ms=1788931294343 mono_ms=684154 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3449468Z CONN_LIFECYCLE: conn=503 role=brain wall_ms=1788931294344 mono_ms=684154 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3451093Z CONN_LIFECYCLE: conn=506 role=brain stream-subscriber stream=377 wall_ms=1788931294344 mono_ms=684155 event=stream-sub-attach stream=377 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3453217Z CONN_LIFECYCLE: conn=508 role=brain stream-subscriber stream=375 wall_ms=1788931294344 mono_ms=684155 event=stream-sub-attach stream=375 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3455099Z CONN_LIFECYCLE: conn=506 role=brain stream-subscriber stream=377 wall_ms=1788931294344 mono_ms=684155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3457024Z CONN_LIFECYCLE: conn=508 role=brain stream-subscriber stream=375 wall_ms=1788931294344 mono_ms=684155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3458426Z CONN_LIFECYCLE: conn=507 role=brain wall_ms=1788931294344 mono_ms=684155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3459671Z CONN_LIFECYCLE: conn=507 role=brain stream-subscriber stream=376 wall_ms=1788931294345 mono_ms=684155 event=stream-sub-attach stream=376 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3460986Z CONN_LIFECYCLE: conn=506 role=brain stream-subscriber stream=377 wall_ms=1788931294345 mono_ms=684156 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3462384Z CONN_LIFECYCLE: conn=509 role=brain wall_ms=1788931294345 mono_ms=684156 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3463430Z CONN_LIFECYCLE: conn=509 role=brain wall_ms=1788931294345 mono_ms=684156 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3464721Z CONN_LIFECYCLE: conn=508 role=brain stream-subscriber stream=375 wall_ms=1788931294345 mono_ms=684156 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3465877Z CONN_LIFECYCLE: conn=510 role=brain wall_ms=1788931294345 mono_ms=684156 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3466874Z CONN_LIFECYCLE: conn=510 role=brain wall_ms=1788931294346 mono_ms=684156 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3475545Z CONN_LIFECYCLE: conn=507 role=brain stream-subscriber stream=376 wall_ms=1788931294347 mono_ms=684158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3476839Z CONN_LIFECYCLE: conn=511 role=brain wall_ms=1788931294347 mono_ms=684158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.3478268Z CONN_LIFECYCLE: conn=511 role=brain wall_ms=1788931294347 mono_ms=684158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.5558259Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931294555 mono_ms=684366 event=stream-sub-attach stream=381 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.6160308Z CONN_LIFECYCLE: conn=512 role=brain wall_ms=1788931294615 mono_ms=684426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:34.6162681Z CONN_LIFECYCLE: conn=512 role=brain wall_ms=1788931294616 mono_ms=684426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.1614504Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931297161 mono_ms=686971 event=stream-sub-release stream=381 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.1740753Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931297173 mono_ms=686984 event=stream-sub-attach stream=382 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.2202579Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931297219 mono_ms=687030 event=stream-sub-release stream=382 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6604920Z CONN_LIFECYCLE: conn=513 role=brain wall_ms=1788931297660 mono_ms=687470 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6606339Z CONN_LIFECYCLE: conn=513 role=brain wall_ms=1788931297660 mono_ms=687471 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6610413Z CONN_LIFECYCLE: conn=514 role=brain stream-subscriber stream=383 wall_ms=1788931297660 mono_ms=687471 event=stream-sub-attach stream=383 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6615059Z CONN_LIFECYCLE: conn=514 role=brain stream-subscriber stream=383 wall_ms=1788931297661 mono_ms=687472 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6834884Z CONN_LIFECYCLE: conn=514 role=brain stream-subscriber stream=383 wall_ms=1788931297683 mono_ms=687494 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6837160Z CONN_LIFECYCLE: conn=515 role=brain wall_ms=1788931297683 mono_ms=687494 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.6838497Z CONN_LIFECYCLE: conn=515 role=brain wall_ms=1788931297683 mono_ms=687494 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7105737Z CONN_LIFECYCLE: conn=516 role=brain wall_ms=1788931297710 mono_ms=687521 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7107111Z CONN_LIFECYCLE: conn=516 role=brain wall_ms=1788931297710 mono_ms=687521 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7109325Z CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=384 wall_ms=1788931297710 mono_ms=687521 event=stream-sub-attach stream=384 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7111253Z CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=384 wall_ms=1788931297711 mono_ms=687521 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7119810Z CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=384 wall_ms=1788931297711 mono_ms=687522 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7121049Z CONN_LIFECYCLE: conn=518 role=brain wall_ms=1788931297712 mono_ms=687522 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.7122100Z CONN_LIFECYCLE: conn=518 role=brain wall_ms=1788931297712 mono_ms=687522 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:37.8954150Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931297894 mono_ms=687705 event=stream-sub-attach stream=388 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:38.6761837Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931298675 mono_ms=688486 event=stream-sub-release stream=388 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:38.6892870Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931298688 mono_ms=688499 event=stream-sub-attach stream=389 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:38.7429939Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931298742 mono_ms=688553 event=stream-sub-release stream=389 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4175256Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931299416 mono_ms=689227 event=stream-sub-attach stream=396 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4407842Z CONN_LIFECYCLE: conn=519 role=brain wall_ms=1788931299440 mono_ms=689251 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4409187Z CONN_LIFECYCLE: conn=520 role=brain wall_ms=1788931299440 mono_ms=689251 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4410638Z CONN_LIFECYCLE: conn=521 role=brain wall_ms=1788931299440 mono_ms=689251 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4413009Z CONN_LIFECYCLE: conn=519 role=brain wall_ms=1788931299440 mono_ms=689251 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4414595Z CONN_LIFECYCLE: conn=520 role=brain wall_ms=1788931299440 mono_ms=689251 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4415807Z CONN_LIFECYCLE: conn=521 role=brain wall_ms=1788931299440 mono_ms=689251 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4417106Z CONN_LIFECYCLE: conn=523 role=brain stream-subscriber stream=395 wall_ms=1788931299441 mono_ms=689251 event=stream-sub-attach stream=395 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4418431Z CONN_LIFECYCLE: conn=524 role=brain stream-subscriber stream=393 wall_ms=1788931299441 mono_ms=689252 event=stream-sub-attach stream=393 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4419758Z CONN_LIFECYCLE: conn=523 role=brain stream-subscriber stream=395 wall_ms=1788931299441 mono_ms=689252 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4420851Z CONN_LIFECYCLE: conn=524 role=brain stream-subscriber stream=393 wall_ms=1788931299441 mono_ms=689252 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4422148Z CONN_LIFECYCLE: conn=522 role=brain wall_ms=1788931299441 mono_ms=689252 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4423812Z CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=394 wall_ms=1788931299441 mono_ms=689252 event=stream-sub-attach stream=394 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4425719Z CONN_LIFECYCLE: conn=523 role=brain stream-subscriber stream=395 wall_ms=1788931299442 mono_ms=689252 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4427131Z CONN_LIFECYCLE: conn=525 role=brain wall_ms=1788931299442 mono_ms=689253 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4428152Z CONN_LIFECYCLE: conn=525 role=brain wall_ms=1788931299442 mono_ms=689253 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4429573Z CONN_LIFECYCLE: conn=524 role=brain stream-subscriber stream=393 wall_ms=1788931299442 mono_ms=689253 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4430748Z CONN_LIFECYCLE: conn=526 role=brain wall_ms=1788931299442 mono_ms=689253 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4431750Z CONN_LIFECYCLE: conn=526 role=brain wall_ms=1788931299442 mono_ms=689253 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4442813Z CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=394 wall_ms=1788931299444 mono_ms=689254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4443999Z CONN_LIFECYCLE: conn=527 role=brain wall_ms=1788931299444 mono_ms=689255 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.4445014Z CONN_LIFECYCLE: conn=527 role=brain wall_ms=1788931299444 mono_ms=689255 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.6326537Z CONN_LIFECYCLE: conn=528 role=brain wall_ms=1788931299632 mono_ms=689443 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.6328818Z CONN_LIFECYCLE: conn=528 role=brain wall_ms=1788931299632 mono_ms=689443 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:39.9885459Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931299988 mono_ms=689798 event=stream-sub-release stream=396 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0011594Z CONN_LIFECYCLE: conn=529 role=brain wall_ms=1788931300000 mono_ms=689811 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0013253Z CONN_LIFECYCLE: conn=529 role=brain wall_ms=1788931300001 mono_ms=689812 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0017644Z CONN_LIFECYCLE: conn=530 role=brain stream-subscriber stream=397 wall_ms=1788931300001 mono_ms=689812 event=stream-sub-attach stream=397 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0019539Z CONN_LIFECYCLE: conn=530 role=brain stream-subscriber stream=397 wall_ms=1788931300001 mono_ms=689812 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0110835Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931300010 mono_ms=689821 event=stream-sub-attach stream=398 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0242978Z CONN_LIFECYCLE: conn=530 role=brain stream-subscriber stream=397 wall_ms=1788931300024 mono_ms=689834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0244799Z CONN_LIFECYCLE: conn=531 role=brain wall_ms=1788931300024 mono_ms=689835 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0246260Z CONN_LIFECYCLE: conn=531 role=brain wall_ms=1788931300024 mono_ms=689835 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0518876Z CONN_LIFECYCLE: conn=532 role=brain wall_ms=1788931300051 mono_ms=689862 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0520504Z CONN_LIFECYCLE: conn=532 role=brain wall_ms=1788931300051 mono_ms=689862 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0524445Z CONN_LIFECYCLE: conn=533 role=brain stream-subscriber stream=399 wall_ms=1788931300052 mono_ms=689863 event=stream-sub-attach stream=399 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0526401Z CONN_LIFECYCLE: conn=533 role=brain stream-subscriber stream=399 wall_ms=1788931300052 mono_ms=689863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0536290Z CONN_LIFECYCLE: conn=533 role=brain stream-subscriber stream=399 wall_ms=1788931300053 mono_ms=689864 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0538464Z CONN_LIFECYCLE: conn=534 role=brain wall_ms=1788931300053 mono_ms=689864 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0539935Z CONN_LIFECYCLE: conn=534 role=brain wall_ms=1788931300053 mono_ms=689864 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.0555138Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931300055 mono_ms=689866 event=stream-sub-release stream=398 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7122876Z CONN_LIFECYCLE: conn=535 role=brain wall_ms=1788931300712 mono_ms=690522 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7124299Z CONN_LIFECYCLE: conn=537 role=brain wall_ms=1788931300712 mono_ms=690522 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7125998Z CONN_LIFECYCLE: conn=536 role=brain wall_ms=1788931300712 mono_ms=690522 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7127752Z CONN_LIFECYCLE: conn=537 role=brain wall_ms=1788931300712 mono_ms=690523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7129348Z CONN_LIFECYCLE: conn=535 role=brain wall_ms=1788931300712 mono_ms=690523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7130901Z CONN_LIFECYCLE: conn=536 role=brain wall_ms=1788931300712 mono_ms=690523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7132864Z CONN_LIFECYCLE: conn=538 role=brain stream-subscriber stream=400 wall_ms=1788931300712 mono_ms=690523 event=stream-sub-attach stream=400 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7134796Z CONN_LIFECYCLE: conn=539 role=brain stream-subscriber stream=402 wall_ms=1788931300712 mono_ms=690523 event=stream-sub-attach stream=402 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7136753Z CONN_LIFECYCLE: conn=538 role=brain stream-subscriber stream=400 wall_ms=1788931300712 mono_ms=690523 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7138007Z CONN_LIFECYCLE: conn=539 role=brain stream-subscriber stream=402 wall_ms=1788931300712 mono_ms=690523 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7139681Z CONN_LIFECYCLE: conn=540 role=brain wall_ms=1788931300713 mono_ms=690524 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7140790Z CONN_LIFECYCLE: conn=540 role=brain stream-subscriber stream=401 wall_ms=1788931300713 mono_ms=690524 event=stream-sub-attach stream=401 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7142131Z CONN_LIFECYCLE: conn=539 role=brain stream-subscriber stream=402 wall_ms=1788931300713 mono_ms=690524 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7143257Z CONN_LIFECYCLE: conn=541 role=brain wall_ms=1788931300713 mono_ms=690524 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7144272Z CONN_LIFECYCLE: conn=541 role=brain wall_ms=1788931300713 mono_ms=690524 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7145515Z CONN_LIFECYCLE: conn=538 role=brain stream-subscriber stream=400 wall_ms=1788931300713 mono_ms=690524 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7146679Z CONN_LIFECYCLE: conn=542 role=brain wall_ms=1788931300714 mono_ms=690524 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7147738Z CONN_LIFECYCLE: conn=542 role=brain wall_ms=1788931300714 mono_ms=690525 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7161258Z CONN_LIFECYCLE: conn=540 role=brain stream-subscriber stream=401 wall_ms=1788931300715 mono_ms=690526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7163373Z CONN_LIFECYCLE: conn=543 role=brain wall_ms=1788931300716 mono_ms=690527 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7164392Z CONN_LIFECYCLE: conn=543 role=brain wall_ms=1788931300716 mono_ms=690527 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:40.7211886Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931300720 mono_ms=690531 event=stream-sub-attach stream=406 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:41.7330857Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931301732 mono_ms=691543 event=stream-sub-release stream=406 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:41.7482750Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931301747 mono_ms=691558 event=stream-sub-attach stream=407 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:41.7952384Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931301794 mono_ms=691605 event=stream-sub-release stream=407 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:42.4687580Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931302468 mono_ms=692279 event=stream-sub-attach stream=411 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0574838Z CONN_LIFECYCLE: conn=544 role=brain wall_ms=1788931303057 mono_ms=692867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0576701Z CONN_LIFECYCLE: conn=544 role=brain wall_ms=1788931303057 mono_ms=692868 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0582115Z CONN_LIFECYCLE: conn=545 role=brain stream-subscriber stream=412 wall_ms=1788931303057 mono_ms=692868 event=stream-sub-attach stream=412 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0583979Z CONN_LIFECYCLE: conn=545 role=brain stream-subscriber stream=412 wall_ms=1788931303058 mono_ms=692869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0809806Z CONN_LIFECYCLE: conn=545 role=brain stream-subscriber stream=412 wall_ms=1788931303080 mono_ms=692891 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0811604Z CONN_LIFECYCLE: conn=546 role=brain wall_ms=1788931303081 mono_ms=692891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.0812680Z CONN_LIFECYCLE: conn=546 role=brain wall_ms=1788931303081 mono_ms=692891 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1080268Z CONN_LIFECYCLE: conn=547 role=brain wall_ms=1788931303107 mono_ms=692918 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1082156Z CONN_LIFECYCLE: conn=547 role=brain wall_ms=1788931303108 mono_ms=692918 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1085924Z CONN_LIFECYCLE: conn=548 role=brain stream-subscriber stream=413 wall_ms=1788931303108 mono_ms=692919 event=stream-sub-attach stream=413 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1087330Z CONN_LIFECYCLE: conn=548 role=brain stream-subscriber stream=413 wall_ms=1788931303108 mono_ms=692919 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1098327Z CONN_LIFECYCLE: conn=548 role=brain stream-subscriber stream=413 wall_ms=1788931303109 mono_ms=692920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1100826Z CONN_LIFECYCLE: conn=549 role=brain wall_ms=1788931303109 mono_ms=692920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.1101878Z CONN_LIFECYCLE: conn=549 role=brain wall_ms=1788931303110 mono_ms=692920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.4169272Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931303416 mono_ms=693227 event=stream-sub-release stream=411 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.4382564Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931303437 mono_ms=693248 event=stream-sub-attach stream=414 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.4443660Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931303444 mono_ms=693254 event=stream-sub-release stream=414 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7711515Z CONN_LIFECYCLE: conn=550 role=brain wall_ms=1788931303770 mono_ms=693581 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7712683Z CONN_LIFECYCLE: conn=552 role=brain wall_ms=1788931303770 mono_ms=693581 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7714101Z CONN_LIFECYCLE: conn=551 role=brain wall_ms=1788931303770 mono_ms=693581 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7715426Z CONN_LIFECYCLE: conn=551 role=brain wall_ms=1788931303771 mono_ms=693581 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7717240Z CONN_LIFECYCLE: conn=552 role=brain wall_ms=1788931303771 mono_ms=693582 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7718824Z CONN_LIFECYCLE: conn=550 role=brain wall_ms=1788931303771 mono_ms=693582 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7720241Z CONN_LIFECYCLE: conn=554 role=brain stream-subscriber stream=415 wall_ms=1788931303771 mono_ms=693582 event=stream-sub-attach stream=415 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7721927Z CONN_LIFECYCLE: conn=553 role=brain stream-subscriber stream=417 wall_ms=1788931303771 mono_ms=693582 event=stream-sub-attach stream=417 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7723311Z CONN_LIFECYCLE: conn=554 role=brain stream-subscriber stream=415 wall_ms=1788931303771 mono_ms=693582 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7731454Z CONN_LIFECYCLE: conn=553 role=brain stream-subscriber stream=417 wall_ms=1788931303771 mono_ms=693582 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7732540Z CONN_LIFECYCLE: conn=555 role=brain wall_ms=1788931303772 mono_ms=693582 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7733661Z CONN_LIFECYCLE: conn=555 role=brain stream-subscriber stream=416 wall_ms=1788931303772 mono_ms=693583 event=stream-sub-attach stream=416 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7735050Z CONN_LIFECYCLE: conn=553 role=brain stream-subscriber stream=417 wall_ms=1788931303772 mono_ms=693583 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7736162Z CONN_LIFECYCLE: conn=556 role=brain wall_ms=1788931303772 mono_ms=693583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7737182Z CONN_LIFECYCLE: conn=556 role=brain wall_ms=1788931303772 mono_ms=693583 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7738419Z CONN_LIFECYCLE: conn=554 role=brain stream-subscriber stream=415 wall_ms=1788931303772 mono_ms=693583 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7739940Z CONN_LIFECYCLE: conn=557 role=brain wall_ms=1788931303773 mono_ms=693583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7741052Z CONN_LIFECYCLE: conn=557 role=brain wall_ms=1788931303773 mono_ms=693583 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7747255Z CONN_LIFECYCLE: conn=555 role=brain stream-subscriber stream=416 wall_ms=1788931303774 mono_ms=693585 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7749260Z CONN_LIFECYCLE: conn=558 role=brain wall_ms=1788931303774 mono_ms=693585 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:43.7750680Z CONN_LIFECYCLE: conn=558 role=brain wall_ms=1788931303774 mono_ms=693585 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:44.1130859Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931304112 mono_ms=693923 event=stream-sub-attach stream=421 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:44.6504065Z CONN_LIFECYCLE: conn=559 role=brain wall_ms=1788931304650 mono_ms=694460 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:44.6507305Z CONN_LIFECYCLE: conn=559 role=brain wall_ms=1788931304650 mono_ms=694461 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.0064000Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931305005 mono_ms=694816 event=stream-sub-release stream=421 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.0288000Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931305028 mono_ms=694839 event=stream-sub-attach stream=422 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.0623227Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931305061 mono_ms=694872 event=stream-sub-release stream=422 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4662721Z CONN_LIFECYCLE: conn=132 role=brain wall_ms=1788931305466 mono_ms=695276 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4709558Z CONN_LIFECYCLE: conn=132 role=brain wall_ms=1788931305470 mono_ms=695281 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4713435Z CONN_LIFECYCLE: conn=131 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931305470 mono_ms=695281 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4786601Z CONN_LIFECYCLE: conn=131 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931305478 mono_ms=695289 event=session-detach session=3 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4790085Z CONN_LIFECYCLE: conn=131 role=brain stream-subscriber stream=93 controller session=3 endpoint=ling-twohost-b2 by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931305478 mono_ms=695289 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4792578Z CONN_LIFECYCLE: conn=560 role=brain wall_ms=1788931305479 mono_ms=695289 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.4793897Z CONN_LIFECYCLE: conn=560 role=brain wall_ms=1788931305479 mono_ms=695290 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.5139411Z TWOHOST OK: B-2: the severed controller's stamps CLEAR (reap + converge)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.5140298Z TWOHOST OK: B-2 dead-controller reap cleared the stamps
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.5142058Z TWOHOST OK: ER conjunction: A measured the withheld advertisement
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.5144994Z TWOHOST OK: engine-room whitelist now names A (the earned-positive arm)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.7301666Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931305729 mono_ms=695540 event=stream-sub-attach stream=429 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9589883Z CONN_LIFECYCLE: conn=561 role=brain wall_ms=1788931305958 mono_ms=695769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9591038Z CONN_LIFECYCLE: conn=561 role=brain wall_ms=1788931305958 mono_ms=695769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9594920Z CONN_LIFECYCLE: conn=562 role=brain stream-subscriber stream=430 wall_ms=1788931305959 mono_ms=695770 event=stream-sub-attach stream=430 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9597579Z CONN_LIFECYCLE: conn=562 role=brain stream-subscriber stream=430 wall_ms=1788931305959 mono_ms=695770 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9613018Z CONN_LIFECYCLE: conn=562 role=brain stream-subscriber stream=430 wall_ms=1788931305961 mono_ms=695771 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9614565Z CONN_LIFECYCLE: conn=563 role=brain wall_ms=1788931305961 mono_ms=695772 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:45.9615842Z CONN_LIFECYCLE: conn=563 role=brain wall_ms=1788931305961 mono_ms=695772 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.0160272Z TWOHOST OK: courtesy: A's plain knock reached B's inbox
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.0161836Z PUMP_IPC_READER: spawned
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.0353170Z CONN_LIFECYCLE: conn=564 role=brain wall_ms=1788931306035 mono_ms=695845 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.0361060Z CONN_LIFECYCLE: conn=564 role=brain stream-subscriber stream=431 wall_ms=1788931306035 mono_ms=695846 event=stream-sub-attach stream=431 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.1161642Z TWOHOST OK: approval receipt sent to A (ack=Ignored — A asserts the courtesy)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2105137Z CONN_LIFECYCLE: conn=565 role=brain wall_ms=1788931306210 mono_ms=696021 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2106878Z CONN_LIFECYCLE: conn=565 role=brain wall_ms=1788931306210 mono_ms=696021 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2112311Z CONN_LIFECYCLE: conn=566 role=brain stream-subscriber stream=432 wall_ms=1788931306211 mono_ms=696021 event=stream-sub-attach stream=432 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2114658Z CONN_LIFECYCLE: conn=566 role=brain stream-subscriber stream=432 wall_ms=1788931306211 mono_ms=696022 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2119947Z CONN_LIFECYCLE: conn=567 role=brain wall_ms=1788931306211 mono_ms=696022 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2121476Z CONN_LIFECYCLE: conn=567 role=brain wall_ms=1788931306212 mono_ms=696022 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2124322Z CONN_LIFECYCLE: conn=568 role=brain stream-subscriber stream=432 wall_ms=1788931306212 mono_ms=696023 event=stream-sub-attach stream=432 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2125566Z CONN_LIFECYCLE: conn=568 role=brain stream-subscriber stream=432 wall_ms=1788931306212 mono_ms=696023 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2336368Z CONN_LIFECYCLE: conn=566 role=brain stream-subscriber stream=432 wall_ms=1788931306233 mono_ms=696044 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2338160Z CONN_LIFECYCLE: conn=569 role=brain wall_ms=1788931306233 mono_ms=696044 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2340154Z CONN_LIFECYCLE: conn=569 role=brain wall_ms=1788931306233 mono_ms=696044 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2341462Z CONN_LIFECYCLE: conn=568 role=brain stream-subscriber stream=432 wall_ms=1788931306233 mono_ms=696044 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2342625Z CONN_LIFECYCLE: conn=570 role=brain wall_ms=1788931306234 mono_ms=696044 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.2343670Z CONN_LIFECYCLE: conn=570 role=brain wall_ms=1788931306234 mono_ms=696045 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3115652Z CONN_LIFECYCLE: conn=572 role=brain wall_ms=1788931306311 mono_ms=696122 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3117447Z CONN_LIFECYCLE: conn=571 role=brain wall_ms=1788931306311 mono_ms=696122 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3118524Z CONN_LIFECYCLE: conn=572 role=brain wall_ms=1788931306311 mono_ms=696122 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3120196Z CONN_LIFECYCLE: conn=571 role=brain wall_ms=1788931306311 mono_ms=696122 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3121465Z CONN_LIFECYCLE: conn=573 role=brain stream-subscriber stream=434 wall_ms=1788931306311 mono_ms=696122 event=stream-sub-attach stream=434 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3122782Z CONN_LIFECYCLE: conn=574 role=brain stream-subscriber stream=433 wall_ms=1788931306312 mono_ms=696122 event=stream-sub-attach stream=433 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3124400Z CONN_LIFECYCLE: conn=574 role=brain stream-subscriber stream=433 wall_ms=1788931306312 mono_ms=696123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3126351Z CONN_LIFECYCLE: conn=573 role=brain stream-subscriber stream=434 wall_ms=1788931306312 mono_ms=696123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3129901Z CONN_LIFECYCLE: conn=575 role=brain wall_ms=1788931306312 mono_ms=696123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3131453Z CONN_LIFECYCLE: conn=576 role=brain wall_ms=1788931306312 mono_ms=696123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3133281Z CONN_LIFECYCLE: conn=575 role=brain wall_ms=1788931306313 mono_ms=696123 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3135392Z CONN_LIFECYCLE: conn=576 role=brain wall_ms=1788931306313 mono_ms=696123 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3137546Z CONN_LIFECYCLE: conn=578 role=brain stream-subscriber stream=434 wall_ms=1788931306313 mono_ms=696124 event=stream-sub-attach stream=434 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3139683Z CONN_LIFECYCLE: conn=577 role=brain wall_ms=1788931306313 mono_ms=696124 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3141733Z CONN_LIFECYCLE: conn=574 role=brain stream-subscriber stream=433 wall_ms=1788931306313 mono_ms=696124 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3144241Z CONN_LIFECYCLE: conn=578 role=brain stream-subscriber stream=434 wall_ms=1788931306313 mono_ms=696124 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3145588Z DISPATCH:433:Failed("no such stream 433")
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3146857Z DISPATCH_EV: gen=1788931216474 stream=433 family=Update attempt=0 conn=6 event=worker-outcome detail=Failed("no such stream 433") elapsed_ms=1 endpoint=-
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3148291Z CONN_LIFECYCLE: conn=577 role=brain wall_ms=1788931306313 mono_ms=696124 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3149714Z CONN_LIFECYCLE: conn=579 role=brain wall_ms=1788931306313 mono_ms=696124 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3150736Z CONN_LIFECYCLE: conn=579 role=brain wall_ms=1788931306313 mono_ms=696124 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3152055Z CONN_LIFECYCLE: conn=578 role=brain stream-subscriber stream=434 wall_ms=1788931306314 mono_ms=696125 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3153242Z CONN_LIFECYCLE: conn=580 role=brain wall_ms=1788931306314 mono_ms=696125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3154240Z CONN_LIFECYCLE: conn=580 role=brain wall_ms=1788931306314 mono_ms=696125 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3635790Z CONN_LIFECYCLE: conn=582 role=brain wall_ms=1788931306363 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3637005Z CONN_LIFECYCLE: conn=581 role=brain wall_ms=1788931306363 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3637778Z CONN_LIFECYCLE: conn=583 role=brain wall_ms=1788931306363 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3638621Z CONN_LIFECYCLE: conn=584 role=brain wall_ms=1788931306363 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3639590Z CONN_LIFECYCLE: conn=581 role=brain wall_ms=1788931306363 mono_ms=696174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3640650Z CONN_LIFECYCLE: conn=582 role=brain wall_ms=1788931306363 mono_ms=696174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3641642Z CONN_LIFECYCLE: conn=584 role=brain wall_ms=1788931306363 mono_ms=696174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3642621Z CONN_LIFECYCLE: conn=583 role=brain wall_ms=1788931306363 mono_ms=696174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3643655Z CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=437 wall_ms=1788931306363 mono_ms=696174 event=stream-sub-attach stream=437 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3644745Z CONN_LIFECYCLE: conn=585 role=brain stream-subscriber stream=435 wall_ms=1788931306363 mono_ms=696174 event=stream-sub-attach stream=435 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3646160Z CONN_LIFECYCLE: conn=587 role=brain stream-subscriber stream=438 wall_ms=1788931306363 mono_ms=696174 event=stream-sub-attach stream=438 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3647622Z CONN_LIFECYCLE: conn=585 role=brain stream-subscriber stream=435 wall_ms=1788931306363 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3649081Z CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=437 wall_ms=1788931306364 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3650328Z CONN_LIFECYCLE: conn=587 role=brain stream-subscriber stream=438 wall_ms=1788931306364 mono_ms=696174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3651467Z CONN_LIFECYCLE: conn=588 role=brain wall_ms=1788931306364 mono_ms=696175 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3652474Z CONN_LIFECYCLE: conn=588 role=brain stream-subscriber stream=436 wall_ms=1788931306364 mono_ms=696175 event=stream-sub-attach stream=436 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3653695Z CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=437 wall_ms=1788931306364 mono_ms=696175 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3654717Z CONN_LIFECYCLE: conn=589 role=brain wall_ms=1788931306364 mono_ms=696175 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3655738Z CONN_LIFECYCLE: conn=589 role=brain wall_ms=1788931306364 mono_ms=696175 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3656581Z CONN_LIFECYCLE: conn=585 role=brain stream-subscriber stream=435 wall_ms=1788931306364 mono_ms=696175 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3657326Z CONN_LIFECYCLE: conn=590 role=brain wall_ms=1788931306365 mono_ms=696175 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3657998Z CONN_LIFECYCLE: conn=590 role=brain wall_ms=1788931306365 mono_ms=696175 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3662242Z CONN_LIFECYCLE: conn=588 role=brain stream-subscriber stream=436 wall_ms=1788931306366 mono_ms=696176 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3663423Z CONN_LIFECYCLE: conn=591 role=brain wall_ms=1788931306366 mono_ms=696177 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.3664319Z CONN_LIFECYCLE: conn=591 role=brain wall_ms=1788931306366 mono_ms=696177 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4118631Z CONN_LIFECYCLE: conn=592 role=brain wall_ms=1788931306411 mono_ms=696222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4120727Z CONN_LIFECYCLE: conn=592 role=brain wall_ms=1788931306411 mono_ms=696222 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4124512Z CONN_LIFECYCLE: conn=593 role=brain stream-subscriber stream=438 wall_ms=1788931306412 mono_ms=696223 event=stream-sub-attach stream=438 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4126305Z CONN_LIFECYCLE: conn=593 role=brain stream-subscriber stream=438 wall_ms=1788931306412 mono_ms=696223 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4275051Z CONN_LIFECYCLE: conn=573 role=brain stream-subscriber stream=434 wall_ms=1788931306427 mono_ms=696238 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4276866Z CONN_LIFECYCLE: conn=594 role=brain wall_ms=1788931306427 mono_ms=696238 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4278186Z CONN_LIFECYCLE: conn=594 role=brain wall_ms=1788931306427 mono_ms=696238 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4545199Z HELPER_SERVE_FOR: target=ling-twohost-replier outcome=declined reason=the delivered body is not an envelope
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4557590Z CONN_LIFECYCLE: conn=587 role=brain stream-subscriber stream=438 wall_ms=1788931306455 mono_ms=696266 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4558841Z CONN_LIFECYCLE: conn=595 role=brain wall_ms=1788931306455 mono_ms=696266 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4560053Z CONN_LIFECYCLE: conn=595 role=brain wall_ms=1788931306455 mono_ms=696266 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4760779Z CONN_LIFECYCLE: conn=593 role=brain stream-subscriber stream=438 wall_ms=1788931306475 mono_ms=696286 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4762636Z CONN_LIFECYCLE: conn=596 role=brain wall_ms=1788931306476 mono_ms=696286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.4763943Z CONN_LIFECYCLE: conn=596 role=brain wall_ms=1788931306476 mono_ms=696286 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.6169207Z TWOHOST OK: courtesy: the cross-node redemption notified the MINTER
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:46.6184244Z TWOHOST OK: redemption courtesy addressed to the minter (never the MRA bystander)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:47.3545702Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931307354 mono_ms=697164 event=stream-sub-release stream=429 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:47.3804407Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931307380 mono_ms=697190 event=stream-sub-attach stream=439 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:47.4334375Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931307433 mono_ms=697243 event=stream-sub-release stream=439 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:48.1161859Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931308115 mono_ms=697926 event=stream-sub-attach stream=443 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:49.6672049Z CONN_LIFECYCLE: conn=597 role=brain wall_ms=1788931309666 mono_ms=699477 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:49.6674450Z CONN_LIFECYCLE: conn=597 role=brain wall_ms=1788931309667 mono_ms=699478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3566496Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931311356 mono_ms=701167 event=stream-sub-release stream=443 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3573688Z CONN_LIFECYCLE: conn=598 role=brain wall_ms=1788931311357 mono_ms=701167 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3576041Z CONN_LIFECYCLE: conn=598 role=brain wall_ms=1788931311357 mono_ms=701168 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3579114Z CONN_LIFECYCLE: conn=599 role=brain stream-subscriber stream=444 wall_ms=1788931311357 mono_ms=701168 event=stream-sub-attach stream=444 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3581261Z CONN_LIFECYCLE: conn=599 role=brain stream-subscriber stream=444 wall_ms=1788931311357 mono_ms=701168 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3803891Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931311380 mono_ms=701190 event=stream-sub-attach stream=445 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3806722Z CONN_LIFECYCLE: conn=599 role=brain stream-subscriber stream=444 wall_ms=1788931311380 mono_ms=701191 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3807895Z CONN_LIFECYCLE: conn=600 role=brain wall_ms=1788931311380 mono_ms=701191 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.3808927Z CONN_LIFECYCLE: conn=600 role=brain wall_ms=1788931311380 mono_ms=701191 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4241905Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931311423 mono_ms=701234 event=stream-sub-release stream=445 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4580273Z CONN_LIFECYCLE: conn=601 role=brain wall_ms=1788931311457 mono_ms=701268 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4581707Z CONN_LIFECYCLE: conn=601 role=brain wall_ms=1788931311458 mono_ms=701268 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4585393Z CONN_LIFECYCLE: conn=602 role=brain stream-subscriber stream=446 wall_ms=1788931311458 mono_ms=701269 event=stream-sub-attach stream=446 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4587003Z CONN_LIFECYCLE: conn=602 role=brain stream-subscriber stream=446 wall_ms=1788931311458 mono_ms=701269 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4597711Z CONN_LIFECYCLE: conn=602 role=brain stream-subscriber stream=446 wall_ms=1788931311459 mono_ms=701270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4599525Z CONN_LIFECYCLE: conn=603 role=brain wall_ms=1788931311459 mono_ms=701270 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.4600903Z CONN_LIFECYCLE: conn=603 role=brain wall_ms=1788931311459 mono_ms=701270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5053496Z CONN_LIFECYCLE: conn=604 role=brain wall_ms=1788931311505 mono_ms=701315 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5054712Z CONN_LIFECYCLE: conn=605 role=brain wall_ms=1788931311505 mono_ms=701315 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5055683Z CONN_LIFECYCLE: conn=606 role=brain wall_ms=1788931311505 mono_ms=701316 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5057527Z CONN_LIFECYCLE: conn=604 role=brain wall_ms=1788931311505 mono_ms=701316 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5059666Z CONN_LIFECYCLE: conn=605 role=brain wall_ms=1788931311505 mono_ms=701316 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5061116Z CONN_LIFECYCLE: conn=606 role=brain wall_ms=1788931311505 mono_ms=701316 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5062342Z CONN_LIFECYCLE: conn=608 role=brain stream-subscriber stream=449 wall_ms=1788931311505 mono_ms=701316 event=stream-sub-attach stream=449 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5063659Z CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=447 wall_ms=1788931311505 mono_ms=701316 event=stream-sub-attach stream=447 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5065039Z CONN_LIFECYCLE: conn=608 role=brain stream-subscriber stream=449 wall_ms=1788931311505 mono_ms=701316 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5066330Z CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=447 wall_ms=1788931311505 mono_ms=701316 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5067826Z CONN_LIFECYCLE: conn=607 role=brain wall_ms=1788931311506 mono_ms=701316 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5069583Z CONN_LIFECYCLE: conn=607 role=brain stream-subscriber stream=448 wall_ms=1788931311506 mono_ms=701317 event=stream-sub-attach stream=448 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5071040Z CONN_LIFECYCLE: conn=608 role=brain stream-subscriber stream=449 wall_ms=1788931311506 mono_ms=701317 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5072259Z CONN_LIFECYCLE: conn=610 role=brain wall_ms=1788931311506 mono_ms=701317 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5073295Z CONN_LIFECYCLE: conn=610 role=brain wall_ms=1788931311506 mono_ms=701317 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5074811Z CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=447 wall_ms=1788931311507 mono_ms=701317 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5075933Z CONN_LIFECYCLE: conn=611 role=brain wall_ms=1788931311507 mono_ms=701318 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5076928Z CONN_LIFECYCLE: conn=611 role=brain wall_ms=1788931311507 mono_ms=701318 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5348147Z CONN_LIFECYCLE: conn=607 role=brain stream-subscriber stream=448 wall_ms=1788931311534 mono_ms=701345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5349858Z CONN_LIFECYCLE: conn=612 role=brain wall_ms=1788931311534 mono_ms=701345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.5351168Z CONN_LIFECYCLE: conn=612 role=brain wall_ms=1788931311534 mono_ms=701345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.6344488Z TWOHOST OK: reply exemption: A recorded its outbound (its own read-back, not our guess)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.6559430Z CONN_LIFECYCLE: conn=613 role=brain wall_ms=1788931311655 mono_ms=701466 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.6566913Z CONN_LIFECYCLE: conn=613 role=brain stream-subscriber stream=450 wall_ms=1788931311656 mono_ms=701467 event=stream-sub-attach stream=450 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.6801464Z CONN_LIFECYCLE: conn=613 role=brain stream-subscriber stream=450 stream-subscriber stream=451 wall_ms=1788931311679 mono_ms=701490 event=stream-sub-attach stream=451 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.7855969Z TWOHOST OK: reply exemption — the invited answer passed A's closed gate, its control twin did not
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.7857583Z CONN_LIFECYCLE: conn=613 role=brain stream-subscriber stream=450 stream-subscriber stream=451 wall_ms=1788931311785 mono_ms=701596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.7858964Z TWOHOST OK: seal: A's record replicated into B's store
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.7859969Z TWOHOST OK: seal replicated — describe and verify answer on B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.7860536Z TWOHOST OK: enroll: A's record replicated into B's store
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.7861165Z TWOHOST OK: enrollment replicated — the (node, subnet) lookup answers on B
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9606679Z CONN_LIFECYCLE: conn=614 role=brain wall_ms=1788931311960 mono_ms=701771 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9607699Z CONN_LIFECYCLE: conn=615 role=brain wall_ms=1788931311960 mono_ms=701771 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9608752Z CONN_LIFECYCLE: conn=614 role=brain wall_ms=1788931311960 mono_ms=701771 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9610217Z CONN_LIFECYCLE: conn=615 role=brain wall_ms=1788931311960 mono_ms=701771 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9611458Z CONN_LIFECYCLE: conn=616 role=brain stream-subscriber stream=452 wall_ms=1788931311960 mono_ms=701771 event=stream-sub-attach stream=452 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9613366Z CONN_LIFECYCLE: conn=617 role=brain stream-subscriber stream=452 wall_ms=1788931311961 mono_ms=701771 event=stream-sub-attach stream=452 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9614624Z CONN_LIFECYCLE: conn=616 role=brain stream-subscriber stream=452 wall_ms=1788931311961 mono_ms=701771 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9615713Z CONN_LIFECYCLE: conn=617 role=brain stream-subscriber stream=452 wall_ms=1788931311961 mono_ms=701772 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9632536Z CONN_LIFECYCLE: conn=616 role=brain stream-subscriber stream=452 wall_ms=1788931311963 mono_ms=701773 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9634783Z CONN_LIFECYCLE: conn=617 role=brain stream-subscriber stream=452 wall_ms=1788931311963 mono_ms=701774 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9636232Z CONN_LIFECYCLE: conn=618 role=brain wall_ms=1788931311963 mono_ms=701774 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9637350Z CONN_LIFECYCLE: conn=619 role=brain wall_ms=1788931311963 mono_ms=701774 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9638655Z CONN_LIFECYCLE: conn=618 role=brain wall_ms=1788931311963 mono_ms=701774 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:51.9640290Z CONN_LIFECYCLE: conn=619 role=brain wall_ms=1788931311963 mono_ms=701774 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0114194Z CONN_LIFECYCLE: conn=620 role=brain wall_ms=1788931312011 mono_ms=701821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0116369Z CONN_LIFECYCLE: conn=620 role=brain wall_ms=1788931312011 mono_ms=701822 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0118386Z CONN_LIFECYCLE: conn=621 role=brain stream-subscriber stream=453 wall_ms=1788931312011 mono_ms=701822 event=stream-sub-attach stream=453 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0119517Z CONN_LIFECYCLE: conn=621 role=brain stream-subscriber stream=453 wall_ms=1788931312011 mono_ms=701822 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0134108Z CONN_LIFECYCLE: conn=621 role=brain stream-subscriber stream=453 wall_ms=1788931312013 mono_ms=701824 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0135161Z CONN_LIFECYCLE: conn=622 role=brain wall_ms=1788931312013 mono_ms=701824 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0135958Z CONN_LIFECYCLE: conn=622 role=brain wall_ms=1788931312013 mono_ms=701824 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0612463Z CONN_LIFECYCLE: conn=623 role=brain wall_ms=1788931312061 mono_ms=701871 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0613669Z CONN_LIFECYCLE: conn=624 role=brain wall_ms=1788931312061 mono_ms=701871 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0615312Z CONN_LIFECYCLE: conn=623 role=brain wall_ms=1788931312061 mono_ms=701872 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0616626Z CONN_LIFECYCLE: conn=624 role=brain wall_ms=1788931312061 mono_ms=701872 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0618187Z CONN_LIFECYCLE: conn=625 role=brain wall_ms=1788931312061 mono_ms=701872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0620033Z CONN_LIFECYCLE: conn=626 role=brain wall_ms=1788931312061 mono_ms=701872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0621519Z CONN_LIFECYCLE: conn=625 role=brain wall_ms=1788931312061 mono_ms=701872 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0623089Z CONN_LIFECYCLE: conn=627 role=brain stream-subscriber stream=454 wall_ms=1788931312061 mono_ms=701872 event=stream-sub-attach stream=454 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0624338Z CONN_LIFECYCLE: conn=626 role=brain wall_ms=1788931312061 mono_ms=701872 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0625546Z CONN_LIFECYCLE: conn=628 role=brain stream-subscriber stream=455 wall_ms=1788931312061 mono_ms=701872 event=stream-sub-attach stream=455 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0626929Z CONN_LIFECYCLE: conn=627 role=brain stream-subscriber stream=454 wall_ms=1788931312061 mono_ms=701872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0628012Z CONN_LIFECYCLE: conn=628 role=brain stream-subscriber stream=455 wall_ms=1788931312061 mono_ms=701872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0629363Z CONN_LIFECYCLE: conn=630 role=brain stream-subscriber stream=454 wall_ms=1788931312061 mono_ms=701872 event=stream-sub-attach stream=454 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0630679Z CONN_LIFECYCLE: conn=629 role=brain stream-subscriber stream=455 wall_ms=1788931312061 mono_ms=701872 event=stream-sub-attach stream=455 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0631869Z CONN_LIFECYCLE: conn=630 role=brain stream-subscriber stream=454 wall_ms=1788931312062 mono_ms=701872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0632947Z CONN_LIFECYCLE: conn=629 role=brain stream-subscriber stream=455 wall_ms=1788931312062 mono_ms=701872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0785225Z CONN_LIFECYCLE: conn=627 role=brain stream-subscriber stream=454 wall_ms=1788931312078 mono_ms=701889 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0786782Z CONN_LIFECYCLE: conn=631 role=brain wall_ms=1788931312078 mono_ms=701889 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0787834Z CONN_LIFECYCLE: conn=631 role=brain wall_ms=1788931312078 mono_ms=701889 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0840083Z CONN_LIFECYCLE: conn=629 role=brain stream-subscriber stream=455 wall_ms=1788931312083 mono_ms=701894 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0841857Z CONN_LIFECYCLE: conn=628 role=brain stream-subscriber stream=455 wall_ms=1788931312084 mono_ms=701894 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0843468Z CONN_LIFECYCLE: conn=632 role=brain wall_ms=1788931312084 mono_ms=701894 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0844729Z CONN_LIFECYCLE: conn=632 role=brain wall_ms=1788931312084 mono_ms=701894 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0845996Z CONN_LIFECYCLE: conn=633 role=brain wall_ms=1788931312084 mono_ms=701895 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0847031Z CONN_LIFECYCLE: conn=633 role=brain wall_ms=1788931312084 mono_ms=701895 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0862988Z HELPER_SERVE_FOR: target=ling-twohost-b outcome=declined reason=envelope type is "msg", not a user-msg
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0865841Z CONN_LIFECYCLE: conn=630 role=brain stream-subscriber stream=454 wall_ms=1788931312086 mono_ms=701897 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0867188Z CONN_LIFECYCLE: conn=634 role=brain wall_ms=1788931312086 mono_ms=701897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0868655Z CONN_LIFECYCLE: conn=634 role=brain wall_ms=1788931312086 mono_ms=701897 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.0998069Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=3 stream-subscriber stream=8 stream-subscriber stream=12 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=18 stream-subscriber stream=22 stream-subscriber stream=23… wall_ms=1788931312099 mono_ms=701910 event=stream-sub-attach stream=459 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1119355Z CONN_LIFECYCLE: conn=635 role=brain wall_ms=1788931312111 mono_ms=701922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1121037Z CONN_LIFECYCLE: conn=636 role=brain wall_ms=1788931312111 mono_ms=701922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1122740Z CONN_LIFECYCLE: conn=635 role=brain wall_ms=1788931312111 mono_ms=701922 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1123898Z CONN_LIFECYCLE: conn=636 role=brain wall_ms=1788931312111 mono_ms=701922 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1125150Z CONN_LIFECYCLE: conn=637 role=brain stream-subscriber stream=461 wall_ms=1788931312112 mono_ms=701922 event=stream-sub-attach stream=461 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1126475Z CONN_LIFECYCLE: conn=638 role=brain stream-subscriber stream=460 wall_ms=1788931312112 mono_ms=701923 event=stream-sub-attach stream=460 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1127938Z CONN_LIFECYCLE: conn=637 role=brain stream-subscriber stream=461 wall_ms=1788931312112 mono_ms=701923 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1129311Z CONN_LIFECYCLE: conn=638 role=brain stream-subscriber stream=460 wall_ms=1788931312112 mono_ms=701923 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1132293Z CONN_LIFECYCLE: conn=637 role=brain stream-subscriber stream=461 wall_ms=1788931312113 mono_ms=701923 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1133863Z CONN_LIFECYCLE: conn=639 role=brain wall_ms=1788931312113 mono_ms=701924 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1134918Z CONN_LIFECYCLE: conn=639 role=brain wall_ms=1788931312113 mono_ms=701924 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1266434Z HELPER_SERVE_FOR: target=ling-twohost-b outcome=declined reason=the delivered body is not an envelope
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1272634Z CONN_LIFECYCLE: conn=638 role=brain stream-subscriber stream=460 wall_ms=1788931312127 mono_ms=701937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1274192Z CONN_LIFECYCLE: conn=640 role=brain wall_ms=1788931312127 mono_ms=701938 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1275268Z CONN_LIFECYCLE: conn=640 role=brain wall_ms=1788931312127 mono_ms=701938 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1350473Z CONN_LIFECYCLE: conn=121 role=brain wall_ms=1788931312134 mono_ms=701945 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1352739Z CONN_LIFECYCLE: conn=120 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931312134 mono_ms=701945 event=writer-exit role=controller session=1 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1424796Z CONN_LIFECYCLE: conn=120 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931312142 mono_ms=701953 event=session-detach session=1 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1427577Z CONN_LIFECYCLE: conn=120 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931312142 mono_ms=701953 event=stream-sub-release stream=9 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1430177Z CONN_LIFECYCLE: conn=120 role=brain stream-subscriber stream=9 controller session=1 endpoint=ling-twohost-b by=bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a wall_ms=1788931312142 mono_ms=701953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1431748Z CONN_LIFECYCLE: conn=641 role=brain wall_ms=1788931312142 mono_ms=701953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1433049Z CONN_LIFECYCLE: conn=641 role=brain wall_ms=1788931312142 mono_ms=701953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1615124Z CONN_LIFECYCLE: conn=642 role=brain wall_ms=1788931312161 mono_ms=701972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1616614Z CONN_LIFECYCLE: conn=643 role=brain wall_ms=1788931312161 mono_ms=701972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1618006Z CONN_LIFECYCLE: conn=644 role=brain wall_ms=1788931312161 mono_ms=701972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1619229Z CONN_LIFECYCLE: conn=642 role=brain wall_ms=1788931312161 mono_ms=701972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1620383Z CONN_LIFECYCLE: conn=643 role=brain wall_ms=1788931312161 mono_ms=701972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1621881Z CONN_LIFECYCLE: conn=644 role=brain wall_ms=1788931312161 mono_ms=701972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1623187Z CONN_LIFECYCLE: conn=647 role=brain stream-subscriber stream=464 wall_ms=1788931312161 mono_ms=701972 event=stream-sub-attach stream=464 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1625520Z CONN_LIFECYCLE: conn=646 role=brain stream-subscriber stream=462 wall_ms=1788931312161 mono_ms=701972 event=stream-sub-attach stream=462 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1627518Z CONN_LIFECYCLE: conn=647 role=brain stream-subscriber stream=464 wall_ms=1788931312162 mono_ms=701972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1629612Z CONN_LIFECYCLE: conn=646 role=brain stream-subscriber stream=462 wall_ms=1788931312162 mono_ms=701972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1631311Z CONN_LIFECYCLE: conn=648 role=brain wall_ms=1788931312162 mono_ms=701973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1632417Z CONN_LIFECYCLE: conn=649 role=brain wall_ms=1788931312162 mono_ms=701973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1634244Z CONN_LIFECYCLE: conn=648 role=brain wall_ms=1788931312162 mono_ms=701973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1636070Z CONN_LIFECYCLE: conn=650 role=brain wall_ms=1788931312162 mono_ms=701973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1637993Z CONN_LIFECYCLE: conn=649 role=brain wall_ms=1788931312162 mono_ms=701973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1639973Z CONN_LIFECYCLE: conn=645 role=brain wall_ms=1788931312162 mono_ms=701973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1641852Z CONN_LIFECYCLE: conn=650 role=brain wall_ms=1788931312162 mono_ms=701973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1644099Z CONN_LIFECYCLE: conn=645 role=brain stream-subscriber stream=463 wall_ms=1788931312162 mono_ms=701973 event=stream-sub-attach stream=463 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1645671Z CONN_LIFECYCLE: conn=652 role=brain stream-subscriber stream=462 wall_ms=1788931312162 mono_ms=701973 event=stream-sub-attach stream=462 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1647418Z CONN_LIFECYCLE: conn=653 role=brain wall_ms=1788931312162 mono_ms=701973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1648738Z CONN_LIFECYCLE: conn=652 role=brain stream-subscriber stream=462 wall_ms=1788931312163 mono_ms=701973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1650105Z CONN_LIFECYCLE: conn=647 role=brain stream-subscriber stream=464 wall_ms=1788931312163 mono_ms=701973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1650981Z DISPATCH:464:Failed("no such stream 464")
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1651954Z DISPATCH_EV: gen=1788931216474 stream=464 family=Seal attempt=0 conn=9 event=worker-outcome detail=Failed("no such stream 464") elapsed_ms=0 endpoint=-
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1653105Z CONN_LIFECYCLE: conn=653 role=brain wall_ms=1788931312163 mono_ms=701974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1654115Z CONN_LIFECYCLE: conn=654 role=brain wall_ms=1788931312163 mono_ms=701974 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1655174Z CONN_LIFECYCLE: conn=654 role=brain wall_ms=1788931312163 mono_ms=701974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1656246Z CONN_LIFECYCLE: conn=651 role=brain wall_ms=1788931312163 mono_ms=701974 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1657328Z CONN_LIFECYCLE: conn=651 role=brain stream-subscriber stream=463 wall_ms=1788931312163 mono_ms=701974 event=stream-sub-attach stream=463 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1658655Z CONN_LIFECYCLE: conn=646 role=brain stream-subscriber stream=462 wall_ms=1788931312163 mono_ms=701974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1659876Z CONN_LIFECYCLE: conn=655 role=brain wall_ms=1788931312163 mono_ms=701974 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1660878Z CONN_LIFECYCLE: conn=655 role=brain wall_ms=1788931312164 mono_ms=701974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1662128Z CONN_LIFECYCLE: conn=652 role=brain stream-subscriber stream=462 wall_ms=1788931312164 mono_ms=701975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1663232Z CONN_LIFECYCLE: conn=656 role=brain wall_ms=1788931312164 mono_ms=701975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1664223Z CONN_LIFECYCLE: conn=656 role=brain wall_ms=1788931312164 mono_ms=701975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1665472Z CONN_LIFECYCLE: conn=651 role=brain stream-subscriber stream=463 wall_ms=1788931312166 mono_ms=701977 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1666587Z CONN_LIFECYCLE: conn=657 role=brain wall_ms=1788931312166 mono_ms=701977 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1667588Z CONN_LIFECYCLE: conn=657 role=brain wall_ms=1788931312166 mono_ms=701977 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1691561Z CONN_LIFECYCLE: conn=645 role=brain stream-subscriber stream=463 wall_ms=1788931312169 mono_ms=701979 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1693284Z CONN_LIFECYCLE: conn=658 role=brain wall_ms=1788931312169 mono_ms=701979 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.1694644Z CONN_LIFECYCLE: conn=658 role=brain wall_ms=1788931312169 mono_ms=701980 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.2886679Z TWOHOST OK: seal: the sealed message reached ID_B's spool
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.2887446Z TWOHOST OK: sealed message arrived with the seal attr intact and BOUND
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.2891166Z TWOHOST OK: ladder-done sent by A (ladder complete on A)
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.2891476Z TWOHOST role B: ladder complete
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.2947912Z CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=ling-twohost-b by=local controller session=2 endpoint=engine-room by=local controller session=3 endpoint=ling-twohost-b2 by=local wall_ms=1788931312294 mono_ms=702105 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.3000523Z test two_host_ladder_role_b ... ok
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.3000743Z 
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.3001081Z test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 702.38s
twohost-b	Two-host ladder — role B (seed-holder/server)	2026-09-09T05:21:52.3007940Z 
twohost-b	Two-host web serving — role B (owner)	﻿2026-09-09T05:21:52.3316561Z ##[group]Run bash .github/bench/wrap.sh twohost-web-b -- cargo test -p spt-daemon --test twohost_web -- --nocapture
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3317224Z [36;1mbash .github/bench/wrap.sh twohost-web-b -- cargo test -p spt-daemon --test twohost_web -- --nocapture[0m
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3329918Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3330194Z env:
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3330494Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3330947Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3331362Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3331780Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3332107Z   SPT_TWO_HOST: 1
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3332293Z   SPT_TWO_HOST_ROLE: b
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3332499Z   SPT_TWO_HOST_SECRET: rig-twohost-ci
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3332770Z   SPT_TWO_HOST_PEER_IP: 100.68.35.65
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3332998Z   SPT_TWO_HOST_WAIT_SECS: 900
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.3333208Z ##[endgroup]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:52.5791238Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.0816535Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.72s
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1002232Z      Running tests/twohost_web.rs (target/debug/deps/twohost_web-faf8108c04874cf8)
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1034623Z 
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1035062Z running 5 tests
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1038168Z test two_host_web_helper_role_a ... ok
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1038712Z test two_host_web_fetch_role_a ... ok
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1039085Z test two_host_web_deny_role_a ... ok
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1039376Z test two_host_web_range_role_a ... ok
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1042801Z TWOHOST-WEB role B: node 9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612 serving on udp 7481
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1187954Z ACCESS_STORE_MINTED /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3/.tmp159Qst/identity/trust/access.json — no access store was present at first load in this process, so an EMPTY baseline was written (everything open that the chain leaves open). If this node had access rules, they are GONE: the store was removed while the daemon was down, and this mint replaced it. Re-apply them (`spt endpoint access ...`); a restart cannot tell a wipe from a first boot.
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1331171Z TWOHOST-WEB role B: audience row merged, verdicts [Merged(Inserted)]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1336572Z CONN_LIFECYCLE: conn=1 role=brain wall_ms=1788931314133 mono_ms=0 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:21:54.1484784Z PAIR_MEET_UP:twohost step=59631043 id=e0b71222965552cc8fa5c9ec9778c07ea11557bb4bd3c6f4602456a12d9f0708 addr=EndpointAddr { id: PublicKey(e0b71222965552cc8fa5c9ec9778c07ea11557bb4bd3c6f4602456a12d9f0708), addrs: {Ip(100.98.197.12:46822), Ip(192.168.1.168:46822)} }
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:00.1519401Z PAIR_MEET_UP:twohost step=59631044 id=63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11 addr=EndpointAddr { id: PublicKey(63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11), addrs: {Ip(100.98.197.12:55624), Ip(192.168.1.168:55624)} }
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0369218Z CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788931321036 mono_ms=6903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0369999Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931321036 mono_ms=6903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0370964Z CONN_LIFECYCLE: conn=4 role=brain wall_ms=1788931321036 mono_ms=6903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0371743Z CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788931321036 mono_ms=6903 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0372625Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931321036 mono_ms=6903 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0373828Z CONN_LIFECYCLE: conn=4 role=brain wall_ms=1788931321036 mono_ms=6903 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0374913Z ACCESS_REFUSED WEB to w1-locked from 0cef34af5151a8a2b534f6d29a543b3ad35e2c1a4b2fe91bf60f027232a135fd (tier EndpointRule(Node { node: "0cef34af5151a8a2b534f6d29a543b3ad35e2c1a4b2fe91bf60f027232a135fd" }))
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0376110Z WEB_STREAM: stream=1 origin=0cef34af5151a8a2b534f6d29a543b3ad35e2c1a4b2fe91bf60f027232a135fd outcome=refused reason=ACCESS_DENIED: WEB: the owning node's access rules refuse this request
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0377150Z WEB_STREAM: stream=3 origin=cff883e9631ed98668018c069cbc265a97217b942f5276e4f19ac15bdef5f349 outcome=sent status=200 bytes=35 path=/kitsubito/f/open.md
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0378069Z WEB_STREAM: stream=2 origin=6609402a9c961143ce5f22103095f4c4a2ff884dccdfc49b7e88b12c29c7d04e outcome=sent status=206 bytes=4 path=/kitsubito/f/open.md
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0378859Z CONN_LIFECYCLE: conn=8 role=brain wall_ms=1788931321037 mono_ms=6904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0379921Z CONN_LIFECYCLE: conn=8 role=brain wall_ms=1788931321037 mono_ms=6904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0381258Z CONN_LIFECYCLE: conn=7 role=brain wall_ms=1788931321037 mono_ms=6904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0382421Z CONN_LIFECYCLE: conn=9 role=brain wall_ms=1788931321037 mono_ms=6904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0383665Z CONN_LIFECYCLE: conn=7 role=brain wall_ms=1788931321037 mono_ms=6904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0385066Z CONN_LIFECYCLE: conn=9 role=brain wall_ms=1788931321037 mono_ms=6904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0386289Z CONN_LIFECYCLE: conn=6 role=brain wall_ms=1788931321038 mono_ms=6904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0387299Z CONN_LIFECYCLE: conn=10 role=brain wall_ms=1788931321038 mono_ms=6904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0388468Z CONN_LIFECYCLE: conn=6 role=brain wall_ms=1788931321038 mono_ms=6904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0389943Z CONN_LIFECYCLE: conn=10 role=brain wall_ms=1788931321038 mono_ms=6904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0391120Z CONN_LIFECYCLE: conn=11 role=brain wall_ms=1788931321038 mono_ms=6904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:01.0392000Z CONN_LIFECYCLE: conn=11 role=brain wall_ms=1788931321038 mono_ms=6904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:04.1396218Z CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788931324139 mono_ms=10005 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:04.1398481Z TWOHOST-WEB role B: A not ready for the message yet (broker QUIC op exceeded the 10s bound (peer unresponsive) — failing as an ordinary per-peer error)
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.1635325Z CONN_LIFECYCLE: conn=2 role=brain stream-subscriber stream=4 wall_ms=1788931326163 mono_ms=12029 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.3399797Z F1_ARM=vi: waiting for A's ingress to register on its user's authority
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.3400455Z TWOHOST-WEB role B: the user's message was ADMITTED by A (Spooled)
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.3401873Z CONN_LIFECYCLE: conn=2 role=brain stream-subscriber stream=4 wall_ms=1788931326339 mono_ms=12206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4148899Z CONN_LIFECYCLE: conn=12 role=brain wall_ms=1788931326414 mono_ms=12281 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4150969Z CONN_LIFECYCLE: conn=12 role=brain wall_ms=1788931326414 mono_ms=12281 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4198129Z WEB_SERVE_FOR: stream=5 origin=a819392896e272997e2841a1d6db43fb8a4aae82b3983456c8791770f9d3c083 outcome=registered name=quoted-by-the-user.md ttl_ms=86400000 audience=w2-helper-audience
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4200784Z CONN_LIFECYCLE: conn=13 role=brain wall_ms=1788931326419 mono_ms=12286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4203237Z CONN_LIFECYCLE: conn=13 role=brain wall_ms=1788931326420 mono_ms=12286 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4206773Z CONN_LIFECYCLE: conn=14 role=brain wall_ms=1788931326420 mono_ms=12287 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.4207811Z CONN_LIFECYCLE: conn=14 role=brain wall_ms=1788931326420 mono_ms=12287 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.8413481Z TWOHOST OK: role B registered quoted-by-the-user.md for w2-helper-audience on its user's authority in 501 ms (kind=File ttl=Some(86400000) origin=Some("BCDFGH23"))
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.8415726Z TWOHOST OK: role B serving open.md + locked.md (waiting for 5 served cells)
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.8416734Z TWOHOST-WEB role B: served cell 1/5
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.8417420Z TWOHOST-WEB role B: served cell 2/5
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.8418093Z TWOHOST-WEB role B: served cell 3/5
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.8418737Z TWOHOST-WEB role B: served cell 4/5
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9741073Z CONN_LIFECYCLE: conn=15 role=brain wall_ms=1788931326973 mono_ms=12840 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9743032Z CONN_LIFECYCLE: conn=15 role=brain wall_ms=1788931326974 mono_ms=12840 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9752750Z WEB_STREAM: stream=6 origin=a819392896e272997e2841a1d6db43fb8a4aae82b3983456c8791770f9d3c083 outcome=sent status=200 bytes=31 path=/kitsubito/f/quoted-by-the-user.md
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9761527Z CONN_LIFECYCLE: conn=16 role=brain wall_ms=1788931326975 mono_ms=12842 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9764485Z CONN_LIFECYCLE: conn=16 role=brain wall_ms=1788931326976 mono_ms=12842 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9767429Z CONN_LIFECYCLE: conn=17 role=brain wall_ms=1788931326976 mono_ms=12843 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9768541Z CONN_LIFECYCLE: conn=17 role=brain wall_ms=1788931326976 mono_ms=12843 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:06.9917788Z TWOHOST-WEB role B: served cell 5/5
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:16.9923486Z TWOHOST OK: role B served all 5 requester cells
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:16.9982022Z test two_host_web_role_b ... ok
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:16.9982786Z 
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:16.9983310Z test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 22.89s
twohost-b	Two-host web serving — role B (owner)	2026-09-09T05:22:16.9984062Z 
twohost-b	Build mock-session (gated-step resume harness)	﻿2026-09-09T05:22:17.0276603Z ##[group]Run cargo build -p mock-adapter --bin mock-session
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0276992Z [36;1mcargo build -p mock-adapter --bin mock-session[0m
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0289917Z shell: /usr/bin/bash -e {0}
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0290122Z env:
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0290416Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0290862Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0291259Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0291674Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.0291998Z ##[endgroup]
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.1265824Z    Compiling typenum v1.20.1
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.1266238Z    Compiling subtle v2.6.1
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.4789634Z    Compiling generic-array v0.14.7
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.7395721Z    Compiling block-buffer v0.10.4
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.7396069Z    Compiling crypto-common v0.1.7
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.7783646Z    Compiling digest v0.10.7
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.8578646Z    Compiling hmac v0.12.1
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:17.8579427Z    Compiling sha2 v0.10.9
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:18.0293020Z    Compiling mock-adapter v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/adapters/mock)
twohost-b	Build mock-session (gated-step resume harness)	2026-09-09T05:22:18.2110249Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.17s
twohost-b	Two-host gated CLI step — role B (server)	﻿2026-09-09T05:22:18.2235615Z ##[group]Run bash .github/bench/wrap.sh twohost-cli-b -- cargo test -p spt --test twohost_cli -- --nocapture
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2236226Z [36;1mbash .github/bench/wrap.sh twohost-cli-b -- cargo test -p spt --test twohost_cli -- --nocapture[0m
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2249200Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2249492Z env:
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2249792Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2250231Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2250655Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2251066Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2251391Z   SPT_TWO_HOST: 1
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2251571Z   SPT_TWO_HOST_ROLE: b
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2251776Z   SPT_TWO_HOST_SECRET: rig-twohost-ci
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2252001Z   SPT_TWO_HOST_WAIT_SECS: 900
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.2252225Z ##[endgroup]
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.4914661Z    Compiling n0-future v0.3.2
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.4960481Z    Compiling rustix v1.1.4
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.4977422Z    Compiling spt-store v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-store)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.5039207Z    Compiling backon v1.6.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.5343419Z    Compiling n0-watcher v0.6.1
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.5344133Z    Compiling iroh-dns v0.98.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.6389942Z    Compiling netwatch v0.16.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:18.7547713Z    Compiling iroh-relay v0.98.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:19.2433358Z    Compiling portmapper v0.16.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:19.8846559Z    Compiling terminal_size v0.4.4
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:19.8847132Z    Compiling tempfile v3.27.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:19.9344803Z    Compiling clap_builder v4.6.0
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:20.0423723Z    Compiling spt-test-support v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-test-support)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:21.3535962Z    Compiling clap v4.6.1
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:21.7843414Z    Compiling iroh v0.98.2
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:22.5784115Z    Compiling spt-msg v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-msg)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:22.7411105Z    Compiling spt-runtime v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-runtime)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:22.7412013Z    Compiling spt-term v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-term)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:24.5442796Z    Compiling spt-live v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-live)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:29.8063497Z    Compiling spt-net v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-net)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:31.5355673Z    Compiling spt-daemon v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt-daemon)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:42.6898388Z    Compiling spt v0.68.0 (/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/crates/spt)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:49.7585161Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 31.51s
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:49.7808020Z      Running tests/twohost_cli.rs (target/debug/deps/twohost_cli-958c93a19edbc1cc)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:49.7825946Z 
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:49.7826172Z running 2 tests
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:49.7826942Z test gated_cli_role_a ... ok
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:49.7831816Z GATED role B: node 989b0dbaa74de8e5c747af19c65f49211f08235717e8d322ec082ab0cbfb48ee
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:50.2219999Z MANIFEST_DEAD_KEY:gatedresume: [session.psyche_init] references `{psyche_dir}`, not a fillable key — this role is retired (never spawned); remove the dead reference
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:22:59.8755364Z GATED role B: ticker session 1 ready
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:24.6832620Z GATED OK: bring-up: A's target row replicated to B
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:49.7833386Z test gated_cli_role_b has been running for over 60 seconds
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:52.2296162Z GATED OK: C-2: A's wake flipped the rest intent to Active
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:55.2337666Z GATED OK: C-2: the [session.resume] template relaunched the harness
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:55.2344040Z GATED OK: C-2: the revived harness self-bound (status online)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:55.2344740Z GATED OK: C-2 revive (serve side)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:23:55.6025766Z GATED OK: E-1 send confirmed —  SENT(WAN):ling-gated-tgt@cc45247c71dc683e9c6505b72142e1976f898f7acf064beb27e35d2993ace09c (spooled)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:24:32.0531358Z GATED OK: E-1: A confirmed the from-stamp
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:24:44.0773491Z GATED OK: W4 fork: A's cross-node fork landed here
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:24:44.1090072Z GATED OK: W4 fork — whole endpoint minted here, source intact
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:02.2282670Z GATED OK: fork-pair: A's undiscoverable knock left A
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:02.2285699Z GATED OK: evidence route: the knock A could not RESOLVE us by still landed here
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:02.2491982Z GATED OK: fork-pair prescription printed on the real knock listing
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:02.2910231Z GATED OK: fork-pair consequence stated, policy refusal and sovereign acceptance pinned
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:17.3917841Z GATED OK: B-3: A's viewport is attached
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:17.4129568Z GATED: daemon stop rc=Some(3) out= err=DAEMON_STOP_REFUSED: a broker-stopping command is never run by an spt endpoint (this process runs inside hosted session 'ling-gated-e1'). this would kill the running session(s) of all 2 spt-hosted endpoint(s) on this node, including your own: ling-gated-c2, ling-gated-rc. No flag overrides this, `--force` included. run this from a terminal of your own — a shell that is not descended from an agent's hosted session
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:17.4193831Z GATED role B: daemon DOWN (honest stop) — restarting
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:25:27.0576088Z GATED role B: ticker respawned (2) after the bounce
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:28:31.8588051Z GATED OK: B-3: A finished (reheal proven)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:28:46.9647364Z GATED role B: step complete — bye ack observed (A dismissed the row)
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:28:47.0650617Z test gated_cli_role_b ... ok
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:28:47.0653941Z 
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:28:47.0654472Z test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 357.28s
twohost-b	Two-host gated CLI step — role B (server)	2026-09-09T05:28:47.0654889Z 
twohost-b	DISK end floor	﻿2026-09-09T05:28:47.0908180Z ##[group]Run set -euo pipefail
twohost-b	DISK end floor	2026-09-09T05:28:47.0908469Z [36;1mset -euo pipefail[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0908695Z [36;1mfloor_bytes=$((32 * 1024 * 1024 * 1024))[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0909077Z [36;1mdrive=$(df -P "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $1 }')[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0909459Z [36;1mfree_bytes=$(df -PB1 "$GITHUB_WORKSPACE" | awk 'NR == 2 { print $4 }')[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0909769Z [36;1mverdict=PASS[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0910207Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then verdict=RED; fi[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0910661Z [36;1mprintf 'FLOOR_END job=twohost-b runner=Linux free_bytes=%s floor_bytes=%s verdict=%s sample=INSTANT\n' \[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0911086Z [36;1m  "$free_bytes" "$floor_bytes" "$verdict"[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0911360Z [36;1mif [ "$free_bytes" -lt "$floor_bytes" ]; then[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0911814Z [36;1m  echo "::error title=Insufficient free disk::RESOURCE=disk drive=$drive free_bytes=$free_bytes floor_bytes=$floor_bytes"[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0912266Z [36;1m  exit 1[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0912437Z [36;1mfi[0m
twohost-b	DISK end floor	2026-09-09T05:28:47.0924912Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	DISK end floor	2026-09-09T05:28:47.0925184Z env:
twohost-b	DISK end floor	2026-09-09T05:28:47.0925475Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	DISK end floor	2026-09-09T05:28:47.0925913Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	DISK end floor	2026-09-09T05:28:47.0926333Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	DISK end floor	2026-09-09T05:28:47.0926763Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	DISK end floor	2026-09-09T05:28:47.0927090Z ##[endgroup]
twohost-b	DISK end floor	2026-09-09T05:28:47.0987248Z FLOOR_END job=twohost-b runner=Linux free_bytes=216761896960 floor_bytes=34359738368 verdict=PASS sample=INSTANT
twohost-b	Reap test-spawned daemons + census (job end)	﻿2026-09-09T05:28:47.1010047Z ##[group]Run bash .github/ci/reap-census.sh end
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1010348Z [36;1mbash .github/ci/reap-census.sh end[0m
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1021385Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1021652Z env:
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1021941Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1022392Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1022803Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1023226Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1023551Z ##[endgroup]
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1062453Z CI-CENSUS scope roots:
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1062815Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1063268Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1063773Z   root: /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1064278Z   root: /home/reavus/actions-runner/_work/_temp
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1064595Z   root: /home/reavus/spt-n1-oldbroker
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:47.1106707Z CI-CENSUS self-check OK: walked 369 /proc entries, exe resolution live
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5264492Z CI-CENSUS phase=pre-reap box_procs=367 box_fds=8576 family_total=2 scoped=2 unscoped=0 unreadable_path=0 flood_orphans=0
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5265420Z   SCOPED   pid=2212610 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5266177Z   SCOPED   pid=2213025 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target/debug/notify-shell
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5266835Z CI-REAP: settling 5s so cleanly-exiting daemons are not counted as leaks
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:54.9649600Z CI-CENSUS phase=post-settle box_procs=366 box_fds=8608 family_total=2 scoped=2 unscoped=0 unreadable_path=0 flood_orphans=0
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:54.9650283Z   SCOPED   pid=2212610 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:54.9650852Z   SCOPED   pid=2213025 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target/debug/notify-shell
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:55.3999918Z   REAP  pid=2212610 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/target/debug/spt
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:55.4025933Z   REAP  pid=2213025 /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/target/debug/notify-shell
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:58.5203712Z CI-CENSUS phase=end box_procs=363 box_fds=8672 family_total=0 scoped=0 unscoped=0 unreadable_path=0 flood_orphans=0
twohost-b	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:58.5208128Z CI-REAP summary: killed=2 kill_failed=0 flood_orphans=none scoped_survivors=0 observed_scoped=0 unreadable_path=0
twohost-b	Remove run-scoped test temp sandbox	﻿2026-09-09T05:28:58.5235786Z ##[group]Run bash .github/ci/test-temp-sandbox.sh cleanup
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5236162Z [36;1mbash .github/ci/test-temp-sandbox.sh cleanup[0m
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5248442Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5248718Z env:
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5249114Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5249556Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5249955Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5250365Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5250703Z ##[endgroup]
twohost-b	Remove run-scoped test temp sandbox	2026-09-09T05:28:58.5319465Z CI-TMP cleanup: removed /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3 on attempt 1/5
twohost-b	Upload bench ledger	﻿2026-09-09T05:28:58.5375328Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5376313Z ##[group]Run actions/upload-artifact@v4
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5376548Z with:
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5376730Z   name: bench-ledger-twohost-b
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5376945Z   path: bench-ledger/
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5377149Z   if-no-files-found: warn
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5377350Z   retention-days: 30
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5377542Z   compression-level: 6
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5377737Z   overwrite: false
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5377923Z   include-hidden-files: false
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5378117Z env:
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5378422Z   SPT_CI_TEST_TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5378863Z   TEMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5379469Z   TMP: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5379879Z   TMPDIR: /home/reavus/actions-runner/_work/_temp/spt-test-tmp-34310511612-1-DDBSE3
twohost-b	Upload bench ledger	2026-09-09T05:28:58.5380194Z ##[endgroup]
twohost-b	Upload bench ledger	2026-09-09T05:28:58.6722994Z (node:2236858) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
twohost-b	Upload bench ledger	2026-09-09T05:28:58.6723618Z (Use `node --trace-deprecation ...` to show where the warning was created)
twohost-b	Upload bench ledger	2026-09-09T05:28:58.6761474Z With the provided path, there will be 1 file uploaded
twohost-b	Upload bench ledger	2026-09-09T05:28:58.6765526Z Artifact name is valid!
twohost-b	Upload bench ledger	2026-09-09T05:28:58.6765935Z Root directory input is valid!
twohost-b	Upload bench ledger	2026-09-09T05:28:59.1034426Z Beginning upload of artifact content to blob storage
twohost-b	Upload bench ledger	2026-09-09T05:28:59.1177891Z (node:2236858) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
twohost-b	Upload bench ledger	2026-09-09T05:28:59.4014169Z Uploaded bytes 377
twohost-b	Upload bench ledger	2026-09-09T05:28:59.4868220Z Finished uploading artifact content to blob storage!
twohost-b	Upload bench ledger	2026-09-09T05:28:59.4869389Z SHA256 digest of uploaded artifact zip is 12b75732766946653ec7a93833081d8d1f8ff94b8fd77716759d59fb9bd8dfbc
twohost-b	Upload bench ledger	2026-09-09T05:28:59.4870133Z Finalizing artifact upload
twohost-b	Upload bench ledger	2026-09-09T05:28:59.7586109Z Artifact bench-ledger-twohost-b.zip successfully finalized. Artifact ID 10089745652
twohost-b	Upload bench ledger	2026-09-09T05:28:59.7587354Z Artifact bench-ledger-twohost-b has been successfully uploaded! Final size is 377 bytes. Artifact ID is 10089745652
twohost-b	Upload bench ledger	2026-09-09T05:28:59.7593797Z Artifact download URL: https://github.com/BigscreenVR/spt-bs-core/actions/runs/34310511612/artifacts/10089745652
twohost-b	Post Checkout spt-shell-notify (toast rung)	﻿2026-09-09T05:28:59.7787217Z Post job cleanup.
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8475834Z [command]/usr/bin/git version
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8507261Z git version 2.43.0
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8532227Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/233d0db2-7cf9-4c06-9839-582c56e36444/.gitconfig'
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8539760Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/233d0db2-7cf9-4c06-9839-582c56e36444' before making global git config changes
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8540659Z Adding repository directory to the temporary git global config as a safe directory
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8543176Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8592922Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8618515Z [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' || :"
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8801837Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8820468Z http.https://github.com/.extraheader
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8827260Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.8849597Z [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' || :"
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.9029106Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-b	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:59.9052974Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
twohost-b	Post Run actions/checkout@v5	﻿2026-09-09T05:28:59.9375569Z Post job cleanup.
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0042047Z [command]/usr/bin/git version
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0074620Z git version 2.43.0
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0099795Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/51be67b0-1a5d-4602-a78c-c544378d78c3/.gitconfig'
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0107269Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/51be67b0-1a5d-4602-a78c-c544378d78c3' before making global git config changes
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0108166Z Adding repository directory to the temporary git global config as a safe directory
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0111143Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0140089Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0167136Z [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' || :"
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0353607Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0373170Z http.https://github.com/.extraheader
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0380328Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0404311Z [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' || :"
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0591857Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-b	Post Run actions/checkout@v5	2026-09-09T05:29:00.0615526Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
twohost-b	Complete job	﻿2026-09-09T05:29:00.0921830Z Cleaning up orphan processes
twohost-b	Complete job	2026-09-09T05:29:00.1473617Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
twohost-a	Set up job	﻿2026-09-09T05:13:52.1489094Z Current runner version: '2.337.0'
twohost-a	Set up job	2026-09-09T05:13:52.1499385Z Runner name: 'hfenduleam'
twohost-a	Set up job	2026-09-09T05:13:52.1500068Z Runner group name: 'Default'
twohost-a	Set up job	2026-09-09T05:13:52.1500844Z Machine name: 'HFENDULEAM'
twohost-a	Set up job	2026-09-09T05:13:52.1505644Z ##[group]GITHUB_TOKEN Permissions
twohost-a	Set up job	2026-09-09T05:13:52.1507640Z Actions: write
twohost-a	Set up job	2026-09-09T05:13:52.1508149Z ArtifactMetadata: write
twohost-a	Set up job	2026-09-09T05:13:52.1508683Z Attestations: write
twohost-a	Set up job	2026-09-09T05:13:52.1509181Z Checks: write
twohost-a	Set up job	2026-09-09T05:13:52.1509632Z CodeQuality: write
twohost-a	Set up job	2026-09-09T05:13:52.1510160Z Contents: write
twohost-a	Set up job	2026-09-09T05:13:52.1510710Z CopilotRequests: write
twohost-a	Set up job	2026-09-09T05:13:52.1511301Z Deployments: write
twohost-a	Set up job	2026-09-09T05:13:52.1511800Z Discussions: write
twohost-a	Set up job	2026-09-09T05:13:52.1512270Z Drives: write
twohost-a	Set up job	2026-09-09T05:13:52.1512741Z Issues: write
twohost-a	Set up job	2026-09-09T05:13:52.1513185Z Metadata: read
twohost-a	Set up job	2026-09-09T05:13:52.1513650Z Models: read
twohost-a	Set up job	2026-09-09T05:13:52.1513976Z Packages: write
twohost-a	Set up job	2026-09-09T05:13:52.1514278Z Pages: write
twohost-a	Set up job	2026-09-09T05:13:52.1514622Z PullRequests: write
twohost-a	Set up job	2026-09-09T05:13:52.1515267Z RepositoryProjects: write
twohost-a	Set up job	2026-09-09T05:13:52.1515683Z SecurityEvents: write
twohost-a	Set up job	2026-09-09T05:13:52.1516061Z Statuses: write
twohost-a	Set up job	2026-09-09T05:13:52.1516457Z VulnerabilityAlerts: read
twohost-a	Set up job	2026-09-09T05:13:52.1516957Z ##[endgroup]
twohost-a	Set up job	2026-09-09T05:13:52.1518524Z Secret source: Actions
twohost-a	Set up job	2026-09-09T05:13:52.1519196Z Prepare workflow directory
twohost-a	Set up job	2026-09-09T05:13:52.2176031Z Prepare all required actions
twohost-a	Set up job	2026-09-09T05:13:52.2209737Z Getting action download info
twohost-a	Set up job	2026-09-09T05:13:52.5883496Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
twohost-a	Set up job	2026-09-09T05:13:52.9761952Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02)
twohost-a	Set up job	2026-09-09T05:13:53.8480965Z Complete job name: twohost-a
twohost-a	Run actions/checkout@v5	﻿2026-09-09T05:13:54.2278190Z ##[group]Run actions/checkout@v5
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2278864Z with:
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2279147Z   repository: BigscreenVR/spt-bs-core
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2280891Z   token: ***
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2281173Z   ssh-strict: true
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2281414Z   ssh-user: git
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2281658Z   persist-credentials: true
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2281928Z   clean: true
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2282166Z   sparse-checkout-cone-mode: true
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2282482Z   fetch-depth: 1
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2282733Z   fetch-tags: false
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2283057Z   show-progress: true
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2283430Z   lfs: false
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2283687Z   submodules: false
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2283974Z   set-safe-directory: true
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2284275Z   allow-unsafe-pr-checkout: false
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:54.2284696Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.2001484Z Syncing repository: BigscreenVR/spt-bs-core
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.2002829Z ##[group]Getting Git version info
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.2003206Z Working directory is 'C:\actions-runner\_work\spt-bs-core\spt-bs-core'
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.2302226Z [command]"C:\Program Files\Git\cmd\git.exe" version
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6120496Z git version 2.43.0.windows.1
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6147065Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6158587Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\3c7af54d-3765-4736-9b75-517036a44ab2\.gitconfig'
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6176942Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\3c7af54d-3765-4736-9b75-517036a44ab2' before making global git config changes
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6177968Z Adding repository directory to the temporary git global config as a safe directory
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6184238Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6543871Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --get remote.origin.url
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6806737Z https://github.com/BigscreenVR/spt-bs-core
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6832137Z ##[group]Removing previously created refs, to avoid conflicts
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.6837439Z [command]"C:\Program Files\Git\cmd\git.exe" rev-parse --symbolic-full-name --verify --quiet HEAD
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.7114805Z refs/heads/golden/webserve-272-r3
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.7136936Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --detach
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:56.7620420Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:57.0378591Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:57.0383863Z [command]"C:\Program Files\Git\cmd\git.exe" submodule status
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:58.1853824Z ##[group]Cleaning the repository
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:58.1859325Z [command]"C:\Program Files\Git\cmd\git.exe" clean -ffdx
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:59.9411663Z Removing bench-ledger/
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:59.9412098Z Removing target/
twohost-a	Run actions/checkout@v5	2026-09-09T05:13:59.9444175Z [command]"C:\Program Files\Git\cmd\git.exe" reset --hard HEAD
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1052436Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1080472Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1085028Z ##[group]Disabling automatic garbage collection
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1090190Z [command]"C:\Program Files\Git\cmd\git.exe" config --local gc.auto 0
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1384798Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1385500Z ##[group]Setting up auth
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.1391973Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:00.4571679Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:06.9112644Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:06.9401180Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:08.0314409Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:08.0617265Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:09.4138978Z [command]"C:\Program Files\Git\cmd\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:09.4534775Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:09.4535274Z ##[group]Fetching the repository
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:09.4545320Z [command]"C:\Program Files\Git\cmd\git.exe" -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d:refs/remotes/origin/golden/webserve-272-r3
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.2404933Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.2405806Z ##[group]Determining the checkout info
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.2406439Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.2412187Z [command]"C:\Program Files\Git\cmd\git.exe" sparse-checkout disable
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.5483661Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all extensions.worktreeConfig
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.5811917Z ##[group]Checking out the ref
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.5817432Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --progress --force -B golden/webserve-272-r3 refs/remotes/origin/golden/webserve-272-r3
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.6494492Z branch 'golden/webserve-272-r3' set up to track 'origin/golden/webserve-272-r3'.
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.6494949Z Your branch is up to date with 'origin/golden/webserve-272-r3'.
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.6495337Z Switched to and reset branch 'golden/webserve-272-r3'
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.6518442Z ##[endgroup]
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.6909281Z [command]"C:\Program Files\Git\cmd\git.exe" log -1 --format=%H
twohost-a	Run actions/checkout@v5	2026-09-09T05:14:10.7239312Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
twohost-a	DISK start floor	﻿2026-09-09T05:14:10.7600114Z ##[group]Run $floorBytes = 32GB
twohost-a	DISK start floor	2026-09-09T05:14:10.7600490Z [36;1m$floorBytes = 32GB[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7601304Z [36;1m$drive = (Get-Item $env:GITHUB_WORKSPACE).PSDrive[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7601678Z [36;1m$freeBytes = [int64]$drive.Free[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7601969Z [36;1m$verdict = if ($freeBytes -lt $floorBytes) { "RED" } else { "PASS" }[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7602456Z [36;1mWrite-Host "FLOOR_START job=twohost-a runner=Windows free_bytes=$freeBytes floor_bytes=$floorBytes verdict=$verdict sample=INSTANT"[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7602903Z [36;1mif ($freeBytes -lt $floorBytes) {[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7603248Z [36;1m  Write-Error "RESOURCE=disk drive=$($drive.Root) free_bytes=$freeBytes floor_bytes=$floorBytes"[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7603579Z [36;1m  exit 1[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7603760Z [36;1m}[0m
twohost-a	DISK start floor	2026-09-09T05:14:10.7610736Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	DISK start floor	2026-09-09T05:14:10.7611047Z ##[endgroup]
twohost-a	DISK start floor	2026-09-09T05:14:10.9897560Z FLOOR_START job=twohost-a runner=Windows free_bytes=153275121664 floor_bytes=34359738368 verdict=PASS sample=INSTANT
twohost-a	Create run-scoped test temp sandbox	﻿2026-09-09T05:14:11.0677050Z ##[group]Run .github/ci/test-temp-sandbox.ps1 -Phase setup
twohost-a	Create run-scoped test temp sandbox	2026-09-09T05:14:11.0677734Z [36;1m.github/ci/test-temp-sandbox.ps1 -Phase setup[0m
twohost-a	Create run-scoped test temp sandbox	2026-09-09T05:14:11.0683104Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Create run-scoped test temp sandbox	2026-09-09T05:14:11.0683486Z ##[endgroup]
twohost-a	Create run-scoped test temp sandbox	2026-09-09T05:14:11.3486483Z CI-TMP setup: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Checkout spt-shell-notify (toast rung)	﻿2026-09-09T05:14:11.4233099Z ##[group]Run actions/checkout@v5
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4233430Z with:
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4233676Z   repository: SaberMage/spt-shell-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4233943Z   path: .adapter-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4235492Z   token: ***
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4235712Z   ssh-strict: true
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4235936Z   ssh-user: git
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4236109Z   persist-credentials: true
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4236303Z   clean: true
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4236477Z   sparse-checkout-cone-mode: true
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4236686Z   fetch-depth: 1
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4236884Z   fetch-tags: false
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4237075Z   show-progress: true
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4237304Z   lfs: false
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4237466Z   submodules: false
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4237670Z   set-safe-directory: true
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4237876Z   allow-unsafe-pr-checkout: false
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4238111Z env:
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4238413Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4238946Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4239376Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4239671Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4993429Z Syncing repository: SaberMage/spt-shell-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4998891Z ##[group]Getting Git version info
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.4999345Z Working directory is 'C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify'
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.5367409Z [command]"C:\Program Files\Git\cmd\git.exe" version
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8407530Z git version 2.43.0.windows.1
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8472455Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8484254Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\6d7b3a31-5c95-4b46-8fdb-1dae706e1717\.gitconfig'
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8505755Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\6d7b3a31-5c95-4b46-8fdb-1dae706e1717' before making global git config changes
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8506840Z Adding repository directory to the temporary git global config as a safe directory
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8514167Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8879967Z ##[group]Initializing the repository
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.8885664Z [command]"C:\Program Files\Git\cmd\git.exe" init C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9260397Z Initialized empty Git repository in C:/actions-runner/_work/spt-bs-core/spt-bs-core/.adapter-notify/.git/
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9283992Z [command]"C:\Program Files\Git\cmd\git.exe" remote add origin https://github.com/SaberMage/spt-shell-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9588805Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9589359Z ##[group]Disabling automatic garbage collection
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9593571Z [command]"C:\Program Files\Git\cmd\git.exe" config --local gc.auto 0
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9872777Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9873096Z ##[group]Setting up auth
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:11.9879625Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:12.0153910Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:13.3736629Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:13.4046518Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:16.6784325Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:16.9810505Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:23.5942747Z [command]"C:\Program Files\Git\cmd\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:23.9463728Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:23.9464134Z ##[group]Determining the default branch
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:23.9465794Z Retrieving the default branch name
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:24.2304448Z Default branch 'main'
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:24.2305199Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:24.2305692Z ##[group]Fetching the repository
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:24.2311110Z [command]"C:\Program Files\Git\cmd\git.exe" -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +refs/heads/main:refs/remotes/origin/main
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.5153389Z From https://github.com/SaberMage/spt-shell-notify
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.5153933Z  * [new branch]      main       -> origin/main
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.5628271Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.5628882Z ##[group]Determining the checkout info
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.5630087Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.5637893Z [command]"C:\Program Files\Git\cmd\git.exe" sparse-checkout disable
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.6049690Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all extensions.worktreeConfig
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.6353929Z ##[group]Checking out the ref
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.6359335Z [command]"C:\Program Files\Git\cmd\git.exe" checkout --progress --force -B main refs/remotes/origin/main
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.6738993Z branch 'main' set up to track 'origin/main'.
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.6739444Z Reset branch 'main'
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.6758750Z ##[endgroup]
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.7074123Z [command]"C:\Program Files\Git\cmd\git.exe" log -1 --format=%H
twohost-a	Checkout spt-shell-notify (toast rung)	2026-09-09T05:14:25.7331947Z ee2d37eadc730c0019e0af82d683074c509634a2
twohost-a	Build notify-shell	﻿2026-09-09T05:14:25.7598706Z ##[group]Run cargo build --manifest-path .adapter-notify/Cargo.toml
twohost-a	Build notify-shell	2026-09-09T05:14:25.7599420Z [36;1mcargo build --manifest-path .adapter-notify/Cargo.toml[0m
twohost-a	Build notify-shell	2026-09-09T05:14:25.7662873Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Build notify-shell	2026-09-09T05:14:25.7663097Z env:
twohost-a	Build notify-shell	2026-09-09T05:14:25.7663354Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build notify-shell	2026-09-09T05:14:25.7663768Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build notify-shell	2026-09-09T05:14:25.7664140Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build notify-shell	2026-09-09T05:14:25.7664575Z ##[endgroup]
twohost-a	Build notify-shell	2026-09-09T05:14:26.3768853Z     Updating crates.io index
twohost-a	Build notify-shell	2026-09-09T05:14:26.4768449Z      Locking 11 packages to latest compatible versions
twohost-a	Build notify-shell	2026-09-09T05:14:27.9015646Z    Compiling zmij v1.0.23
twohost-a	Build notify-shell	2026-09-09T05:14:27.9015937Z    Compiling serde_core v1.0.229
twohost-a	Build notify-shell	2026-09-09T05:14:27.9016141Z    Compiling serde_json v1.0.151
twohost-a	Build notify-shell	2026-09-09T05:14:27.9016361Z    Compiling memchr v2.8.3
twohost-a	Build notify-shell	2026-09-09T05:14:28.5892555Z    Compiling itoa v1.0.18
twohost-a	Build notify-shell	2026-09-09T05:14:31.5808146Z    Compiling spt-shell-notify v0.1.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify)
twohost-a	Build notify-shell	2026-09-09T05:14:32.0009297Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.97s
twohost-a	Build spt binary (toast rung)	﻿2026-09-09T05:14:32.0970460Z ##[group]Run .github/bench/wrap.ps1 -Step "build-spt-bin" -Command "cargo build -p spt --bin spt"
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0971149Z [36;1m.github/bench/wrap.ps1 -Step "build-spt-bin" -Command "cargo build -p spt --bin spt"[0m
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0975798Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0976050Z env:
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0976315Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0976749Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0977126Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:32.0977390Z ##[endgroup]
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:35.9481036Z    Compiling proc-macro2 v1.0.106
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:35.9481426Z    Compiling quote v1.0.45
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:35.9481709Z    Compiling unicode-ident v1.0.24
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:35.9482047Z    Compiling cfg-if v1.0.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:36.2506089Z    Compiling serde_core v1.0.228
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:36.2657793Z    Compiling serde v1.0.228
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:36.7353402Z    Compiling windows-link v0.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:36.8071637Z    Compiling typenum v1.20.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:36.8882552Z    Compiling windows-sys v0.61.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:37.5564047Z    Compiling version_check v0.9.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:37.6665796Z    Compiling syn v2.0.117
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:37.8182421Z    Compiling getrandom v0.3.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:38.5348532Z    Compiling portable-atomic v1.13.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:38.5627980Z    Compiling pin-project-lite v0.2.17
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:39.5518453Z    Compiling subtle v2.6.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:39.8475833Z    Compiling jobserver v0.1.34
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:40.3440992Z    Compiling memchr v2.8.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:40.5446111Z    Compiling find-msvc-tools v0.1.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:41.2087331Z    Compiling shlex v2.0.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:41.8152565Z    Compiling cc v1.2.63
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:41.8683138Z    Compiling critical-section v1.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:41.8972438Z    Compiling serde_derive v1.0.228
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:44.2896274Z    Compiling zeroize_derive v1.4.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:44.2942374Z    Compiling generic-array v0.14.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:44.4612024Z    Compiling smallvec v1.15.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:44.7765100Z    Compiling futures-core v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.0992369Z    Compiling equivalent v1.0.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.1622836Z    Compiling bytes v1.11.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.1907518Z    Compiling zeroize v1.8.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.3996813Z    Compiling itoa v1.0.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.6896802Z    Compiling getrandom v0.2.17
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.7019019Z    Compiling semver v1.0.28
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.8016207Z    Compiling crypto-common v0.1.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.8026116Z    Compiling synstructure v0.13.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.9123731Z    Compiling rustc_version v0.4.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:45.9494046Z    Compiling stable_deref_trait v1.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:46.2090026Z    Compiling socket2 v0.6.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:46.3397290Z    Compiling log v0.4.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:46.3839489Z    Compiling autocfg v1.5.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:46.4952490Z    Compiling zerofrom-derive v0.1.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:46.6614089Z    Compiling yoke-derive v0.8.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:46.6918767Z    Compiling mio v1.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:47.5686133Z    Compiling tokio-macros v2.7.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:47.6310636Z    Compiling futures-sink v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:47.8179792Z    Compiling once_cell v1.21.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:47.9550533Z    Compiling futures-io v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.0617933Z    Compiling zerofrom v0.1.8
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.0719340Z    Compiling slab v0.4.12
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.0979516Z    Compiling futures-channel v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.1036288Z    Compiling tokio v1.52.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.2065226Z    Compiling futures-macro v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.2369333Z    Compiling yoke v0.8.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.2721583Z    Compiling hashbrown v0.17.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.6631637Z    Compiling rand_core v0.10.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.9099164Z    Compiling rustversion v1.0.22
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:48.9325615Z    Compiling futures-task v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:49.0597645Z    Compiling scopeguard v1.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:49.0637725Z    Compiling cpufeatures v0.2.17
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:49.1282658Z    Compiling lock_api v0.4.14
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:49.1323786Z    Compiling futures-util v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:49.5536241Z    Compiling indexmap v2.14.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:49.6287921Z    Compiling zerovec-derive v0.11.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:50.7046127Z    Compiling displaydoc v0.2.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:50.7366471Z    Compiling zerovec v0.11.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:51.4548145Z    Compiling hybrid-array v0.4.12
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:51.5587701Z    Compiling getrandom v0.4.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:51.7144563Z    Compiling libm v0.2.16
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:51.7839103Z    Compiling fnv v1.0.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:51.9717394Z    Compiling num-traits v0.2.19
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:52.1213122Z    Compiling libc v0.2.186
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:52.8261199Z    Compiling strsim v0.11.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:52.8985922Z    Compiling cfg_aliases v0.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:53.1584877Z    Compiling const-oid v0.9.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:53.4973384Z    Compiling block-buffer v0.12.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:53.7683557Z    Compiling crypto-common v0.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:53.7944378Z    Compiling tinystr v0.8.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:53.8589021Z    Compiling tracing-core v0.1.36
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:54.1823284Z    Compiling tracing-attributes v0.1.31
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:54.2141643Z    Compiling litemap v0.8.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:54.7667841Z    Compiling writeable v0.6.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:54.8795661Z    Compiling zerotrie v0.2.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.0241011Z    Compiling potential_utf v0.1.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.0958529Z    Compiling icu_locale_core v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.1788582Z    Compiling cmake v0.1.58
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.3788445Z    Compiling utf8_iter v1.0.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.4263172Z    Compiling tracing v0.1.44
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.6807261Z    Compiling icu_normalizer_data v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:55.8486024Z    Compiling icu_properties_data v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:56.1304849Z    Compiling fs_extra v1.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:56.2750728Z    Compiling dunce v1.0.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:56.2889125Z    Compiling ident_case v1.0.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:56.8418986Z    Compiling aws-lc-sys v0.41.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:57.0891798Z    Compiling icu_provider v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:57.3106748Z    Compiling icu_collections v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:57.5756617Z    Compiling tokio-util v0.7.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:58.8168741Z    Compiling block-buffer v0.10.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:59.3177156Z    Compiling percent-encoding v2.3.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:14:59.4527042Z    Compiling icu_normalizer v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:01.2846553Z    Compiling digest v0.10.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:01.3743318Z    Compiling icu_properties v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:01.7474421Z    Compiling inout v0.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:01.8942609Z    Compiling spin v0.9.8
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:02.0570177Z    Compiling http v1.4.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:02.1292933Z    Compiling ring v0.17.14
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:02.8999862Z    Compiling aws-lc-rs v1.17.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:02.9450030Z    Compiling thiserror v2.0.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:03.3342246Z    Compiling unicode-segmentation v1.13.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:03.5127465Z    Compiling cpufeatures v0.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:03.5158679Z    Compiling zerocopy v0.8.50
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:04.4342202Z    Compiling idna_adapter v1.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:04.7888466Z    Compiling cipher v0.5.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:04.8590811Z    Compiling rand_core v0.6.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:04.9830351Z    Compiling curve25519-dalek-derive v0.1.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:05.0242260Z    Compiling thiserror-impl v2.0.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:05.7633151Z    Compiling chacha20 v0.10.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:06.1501997Z    Compiling idna v1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:07.0637719Z    Compiling form_urlencoded v1.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:07.3894003Z    Compiling ipnet v2.12.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:08.0881877Z    Compiling rustls-pki-types v1.14.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:08.6173779Z    Compiling untrusted v0.9.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:08.8574821Z    Compiling winapi v0.3.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:09.2808422Z    Compiling bitflags v2.12.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:09.5122734Z    Compiling url v2.5.8
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:09.6520035Z    Compiling rand v0.10.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:10.9193511Z    Compiling darling_core v0.20.11
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:11.2032734Z    Compiling windows-result v0.4.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:12.5393193Z    Compiling windows-strings v0.5.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:13.2996220Z    Compiling heck v0.5.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:13.6960665Z    Compiling rustls v0.23.40
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:14.6475236Z    Compiling darling_macro v0.20.11
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:16.9788755Z    Compiling convert_case v0.10.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:17.1369021Z    Compiling atomic-waker v1.1.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:17.2244228Z    Compiling anyhow v1.0.102
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:17.3975292Z    Compiling unicode-xid v0.2.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:17.4795496Z    Compiling const-oid v0.10.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:17.6483728Z    Compiling derive_more-impl v2.1.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:17.9843039Z    Compiling darling v0.20.11
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:18.1364375Z    Compiling parking_lot_core v0.9.12
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:18.4111279Z    Compiling httparse v1.10.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:18.8225478Z    Compiling derive_builder_core v0.20.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:19.8780711Z    Compiling h2 v0.4.14
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:20.4499618Z    Compiling http-body v1.0.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:20.7812453Z    Compiling curve25519-dalek v4.1.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:20.8658919Z    Compiling derive_more v2.1.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:21.2063111Z    Compiling ahash v0.8.12
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:21.4389545Z    Compiling base64ct v1.8.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:21.7880640Z    Compiling either v1.16.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:22.3328456Z    Compiling powerfmt v0.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:22.6370892Z    Compiling deranged v0.5.8
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:23.0784460Z    Compiling pem-rfc7468 v1.0.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:23.7834458Z    Compiling derive_builder_macro v0.20.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:24.9362411Z    Compiling ppv-lite86 v0.2.21
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:25.0035186Z    Compiling signature v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:25.5522428Z    Compiling lazy_static v1.5.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:26.1005006Z    Compiling sha2 v0.10.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:26.2648877Z    Compiling der v0.7.10
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:26.5053868Z    Compiling uuid v1.23.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:27.2707131Z    Compiling n0-error-macros v0.1.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:28.3701027Z    Compiling windows-implement v0.60.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:28.5662315Z    Compiling windows-interface v0.59.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:31.6219230Z    Compiling spez v0.1.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:32.9143996Z    Compiling fastrand v2.4.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:34.9674893Z    Compiling time-core v0.1.8
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:35.6062361Z    Compiling base64 v0.22.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:35.6280679Z    Compiling tower-service v0.3.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:35.6289845Z    Compiling pkg-config v0.3.33
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:35.9290088Z    Compiling tinyvec_macros v0.1.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:35.9816608Z    Compiling vcpkg v0.2.15
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:36.1432291Z    Compiling data-encoding v2.11.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:36.3211090Z    Compiling try-lock v0.2.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:36.5094070Z    Compiling zmij v1.0.21
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:36.5798800Z    Compiling num-conv v0.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:36.6961310Z    Compiling libsqlite3-sys v0.30.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.0467196Z    Compiling want v0.3.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.1900268Z    Compiling tinyvec v1.11.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.3330136Z    Compiling n0-error v0.1.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.3811866Z    Compiling windows-core v0.62.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.4429211Z    Compiling spki v0.7.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.6767499Z    Compiling rand_chacha v0.3.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.9151585Z    Compiling parking_lot v0.12.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:37.9401863Z    Compiling derive_builder v0.20.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:38.2326363Z    Compiling der v0.8.0-rc.10
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:38.7706465Z    Compiling num-integer v0.1.47
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:39.2351619Z    Compiling n0-future v0.3.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:39.2663839Z    Compiling vergen-lib v9.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:39.5140235Z    Compiling inout v0.1.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:39.7070257Z    Compiling pin-project-internal v1.1.13
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:39.7268740Z    Compiling httpdate v1.0.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:39.7308164Z    Compiling winnow v1.0.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:40.1469671Z    Compiling diatomic-waker v0.2.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:40.3886567Z    Compiling spin v0.10.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:40.6701801Z    Compiling crossbeam-utils v0.8.21
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:40.8592601Z    Compiling cordyceps v0.3.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:41.0167370Z    Compiling serde_json v1.0.150
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:41.0751770Z    Compiling parking v2.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:41.5804459Z    Compiling num-bigint-dig v0.8.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:41.5924848Z    Compiling windows_x86_64_msvc v0.52.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:42.1511374Z    Compiling spt-procident v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-procident)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:43.0778991Z    Compiling spt-poolguard v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-poolguard)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:44.2267700Z    Compiling futures-lite v2.6.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:44.7868286Z    Compiling futures-buffered v0.2.13
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:45.6025193Z    Compiling pin-project v1.1.13
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:46.6185643Z    Compiling toml_parser v1.1.2+spec-1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:47.4218688Z    Compiling hyper v1.10.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:50.7047781Z    Compiling cipher v0.4.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:51.0143606Z    Compiling num-iter v0.1.46
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:51.1819657Z    Compiling spki v0.8.0-rc.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:51.2290316Z    Compiling hashbrown v0.14.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:51.6264366Z    Compiling rand v0.8.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:51.9374903Z    Compiling pkcs8 v0.10.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:52.5440036Z    Compiling ed25519 v2.2.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:52.7219511Z    Compiling digest v0.11.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:52.7676958Z    Compiling noq-udp v0.10.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:52.9120025Z    Compiling vergen-lib v0.1.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:53.2001029Z    Compiling vergen v9.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:53.2480325Z    Compiling curve25519-dalek v5.0.0-pre.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:53.3819498Z    Compiling heapless v0.7.17
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:53.7761113Z    Compiling universal-hash v0.5.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:53.8499236Z    Compiling sync_wrapper v1.0.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:54.1180473Z    Compiling aho-corasick v1.1.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:54.1425439Z    Compiling opaque-debug v0.3.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:54.1477717Z    Compiling toml_datetime v1.1.1+spec-1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:54.4653333Z    Compiling byteorder v1.5.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:54.6016323Z    Compiling regex-syntax v0.8.10
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:54.6134678Z    Compiling allocator-api2 v0.2.21
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:55.1364938Z    Compiling hash32 v0.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:55.3009679Z    Compiling toml_edit v0.25.12+spec-1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:56.4470395Z    Compiling regex-automata v0.4.14
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:56.8589150Z    Compiling polyval v0.6.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:58.7061939Z    Compiling ed25519-dalek v2.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:15:59.8360851Z    Compiling pkcs1 v0.7.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:00.0333740Z    Compiling hashlink v0.9.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:00.3251805Z    Compiling hyper-util v0.1.20
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:01.5513688Z    Compiling pkcs8 v0.11.0-rc.10
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:02.1787595Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:02.4648379Z    Compiling prefix-trie v0.8.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:02.4792207Z    Compiling futures-executor v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:02.7310453Z    Compiling vergen-gitcl v1.0.8
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:02.9056737Z    Compiling windows-threading v0.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.0441104Z    Compiling ryu v1.0.23
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.0890268Z    Compiling signature v3.0.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.1884544Z    Compiling fallible-iterator v0.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.2591538Z    Compiling tower-layer v0.3.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.3778169Z    Compiling fallible-streaming-iterator v0.1.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.4330526Z    Compiling ed25519 v3.0.0-rc.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.6952793Z    Compiling rusqlite v0.32.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:03.8904424Z    Compiling data-encoding-macro-internal v0.1.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:04.1497053Z    Compiling windows-future v0.3.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:04.4805341Z    Compiling hickory-proto v0.26.0-beta.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:04.6857968Z    Compiling futures v0.3.32
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:04.8371503Z    Compiling windows-targets v0.52.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:04.8965353Z    Compiling rsa v0.9.10
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:04.9023162Z    Compiling spt-proto v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-proto)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:06.4417360Z    Compiling regex v1.12.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:07.3687130Z    Compiling ghash v0.5.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:07.5822930Z    Compiling proc-macro-crate v3.5.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:07.7149081Z    Compiling sha2 v0.11.0-rc.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:08.1140008Z    Compiling ctr v0.9.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:08.4041395Z    Compiling aes v0.8.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:08.4790908Z    Compiling windows-numerics v0.3.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:08.7524581Z    Compiling windows-collections v0.3.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:08.9181222Z    Compiling time v0.3.47
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:08.9355516Z    Compiling http-body-util v0.1.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:09.1555639Z    Compiling fs2 v0.4.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:09.3280772Z    Compiling cobs v0.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:09.3454699Z    Compiling aead v0.5.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:09.4271429Z    Compiling postcard-derive v0.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:09.4642346Z    Compiling ipconfig v0.3.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:09.8476775Z    Compiling arrayvec v0.7.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:10.2725103Z    Compiling widestring v1.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:10.2753898Z    Compiling utf8parse v0.2.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:10.3548947Z    Compiling postcard v1.1.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:11.0191647Z    Compiling aes-gcm v0.10.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:11.2583089Z    Compiling windows v0.62.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:11.4222119Z    Compiling ed25519-dalek v3.0.0-pre.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:11.6649213Z    Compiling num_enum_derive v0.7.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:12.6240893Z    Compiling windows-sys v0.59.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:14.2552985Z    Compiling data-encoding-macro v0.1.20
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:14.4701628Z    Compiling tower v0.5.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:15.0252479Z    Compiling crossbeam-channel v0.5.15
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:15.6727950Z    Compiling crossbeam-epoch v0.9.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:16.0942397Z    Compiling iroh-metrics-derive v0.4.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:17.1357066Z    Compiling strum_macros v0.28.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:18.8872056Z    Compiling windows-registry v0.6.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:19.7750616Z    Compiling chrono v0.4.45
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:21.9438997Z    Compiling netwatch v0.16.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:23.4920517Z    Compiling noq v0.18.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:24.1667226Z    Compiling memoffset v0.6.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:24.1673923Z    Compiling acto v0.8.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:24.5894622Z    Compiling blake3 v1.8.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:24.9823291Z    Compiling enum-assoc v1.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:25.3548957Z    Compiling async-trait v0.1.89
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:25.9564750Z    Compiling rustc-hash v2.1.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:25.9988472Z    Compiling lru-slab v0.1.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.0539969Z    Compiling identity-hash v0.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.1062367Z    Compiling sorted-index-buffer v0.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.1313671Z    Compiling ref-cast v1.0.25
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.1980675Z    Compiling thiserror v1.0.69
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.4833165Z    Compiling foldhash v0.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.6171314Z    Compiling xml-rs v0.8.28
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.6465423Z    Compiling tagptr v0.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.6466720Z    Compiling mac-addr v0.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.7656586Z    Compiling moka v0.12.15
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:26.7944843Z    Compiling netdev v0.42.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:27.2983422Z    Compiling xmltree v0.10.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:27.4879993Z    Compiling hashbrown v0.16.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:28.2252187Z    Compiling wmi v0.18.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:28.5587018Z    Compiling strum v0.28.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:28.8738145Z    Compiling iroh-metrics v0.38.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:29.1891185Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:29.6350986Z    Compiling tower-http v0.6.11
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:29.9081262Z    Compiling iroh-base v0.98.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:29.9582584Z    Compiling num_enum v0.7.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:30.0545241Z    Compiling iroh-relay v0.98.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:30.1375868Z    Compiling n0-watcher v0.6.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:30.4800769Z    Compiling attohttpc v0.30.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:30.6306008Z    Compiling simple-dns v0.9.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:31.1454042Z    Compiling tokio-stream v0.1.18
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:31.6687148Z    Compiling serial-core v0.4.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:31.7954079Z    Compiling serde_spanned v0.6.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:31.9070423Z    Compiling toml_datetime v0.6.11
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:32.0675024Z    Compiling thiserror-impl v1.0.69
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:32.3764766Z    Compiling ref-cast-impl v1.0.25
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:32.8838221Z    Compiling serde_derive_internals v0.29.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:32.9988659Z    Compiling constant_time_eq v0.4.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:33.0870626Z    Compiling arrayref v0.3.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:33.3732054Z    Compiling winnow v0.7.15
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:33.4335845Z    Compiling toml_write v0.1.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:33.6312203Z    Compiling resolv-conf v0.7.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:33.8627659Z    Compiling simdutf8 v0.1.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:34.0960675Z    Compiling winreg v0.10.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:34.2897468Z    Compiling sha1_smol v1.0.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:34.7233690Z    Compiling smol_str v0.1.24
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:34.8222294Z    Compiling toml_edit v0.22.27
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:35.0181903Z    Compiling schemars_derive v1.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:36.9320633Z    Compiling iroh-dns v0.98.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:37.1842096Z    Compiling serial-windows v0.4.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:37.7221098Z    Compiling igd-next v0.17.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:40.0140402Z    Compiling lru v0.16.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:40.1243669Z    Compiling webpki-roots v1.0.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:40.2253401Z    Compiling hmac v0.12.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:40.2379742Z    Compiling darling_core v0.23.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:40.6352139Z    Compiling seize v0.5.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:41.2397378Z    Compiling iroh v0.98.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:41.8399178Z    Compiling serde_bytes v0.11.19
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:42.2575446Z    Compiling dyn-clone v1.0.20
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:42.3976300Z    Compiling cmov v0.5.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:42.6544684Z    Compiling anstyle v1.0.14
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:42.7463093Z    Compiling bitflags v1.3.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:43.3214169Z    Compiling pin-utils v0.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:43.5445849Z    Compiling once_cell_polyfill v1.70.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:43.7388846Z    Compiling anstyle-wincon v3.0.11
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:43.7679713Z    Compiling nix v0.25.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:43.7706868Z    Compiling darling_macro v0.23.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.0821979Z    Compiling ctutils v0.4.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.2050798Z    Compiling schemars v1.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.2941483Z    Compiling papaya v0.2.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.5762678Z    Compiling hkdf v0.12.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.5918046Z    Compiling portmapper v0.16.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.7163141Z    Compiling serial v0.4.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:44.7745424Z    Compiling filedescriptor v0.8.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:45.1695522Z    Compiling toml v0.8.23
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:45.8604310Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:46.4497460Z    Compiling anstyle-parse v1.0.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:46.8026324Z    Compiling backon v1.6.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:47.2161796Z    Compiling shared_library v0.1.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:47.6919328Z    Compiling anstyle-query v1.1.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:47.9596882Z    Compiling vte_generate_state_changes v0.1.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:48.6974296Z    Compiling foldhash v0.1.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:48.9335301Z    Compiling instability v0.3.12
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:49.0368140Z    Compiling colorchoice v1.0.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:49.5796437Z    Compiling paste v1.0.15
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:50.0481887Z    Compiling downcast-rs v1.2.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:51.0243347Z    Compiling unicode-width v0.2.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:51.1039345Z    Compiling is_terminal_polyfill v1.70.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:51.3947271Z    Compiling shell-words v1.1.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:51.6139388Z    Compiling anstream v1.0.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:51.9619057Z    Compiling portable-pty v0.8.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:53.7164790Z    Compiling hashbrown v0.15.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:54.3732851Z    Compiling vte v0.13.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:54.8488337Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:54.9361180Z    Compiling spake2 v0.4.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:55.6537785Z    Compiling darling v0.23.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:56.0308732Z    Compiling itertools v0.13.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:56.0985165Z    Compiling crossterm_winapi v0.9.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:56.6202781Z    Compiling strum_macros v0.26.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:57.0820631Z    Compiling sha1 v0.10.6
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:57.3369947Z    Compiling castaway v0.2.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:57.5800877Z    Compiling terminal_size v0.4.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:57.9616980Z    Compiling recvmsg v1.0.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:58.3617931Z    Compiling static_assertions v1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:58.4380488Z    Compiling unicode-width v0.1.14
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:58.5906876Z    Compiling doctest-file v1.1.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:58.7402989Z    Compiling clap_lex v1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:59.0901906Z    Compiling indoc v2.0.7
twohost-a	Build spt binary (toast rung)	2026-09-09T05:16:59.3159148Z    Compiling interprocess v2.4.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:00.4352811Z    Compiling clap_builder v4.6.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:00.4574179Z    Compiling unicode-truncate v1.1.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:00.8098009Z    Compiling compact_str v0.8.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:01.5338654Z    Compiling strum v0.26.3
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:02.0131114Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:03.0474270Z    Compiling crossterm v0.28.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:03.8880481Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:04.5400155Z    Compiling lru v0.12.5
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:05.1185464Z    Compiling clap_derive v4.6.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:06.1027568Z    Compiling error-code v3.3.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:07.8224002Z    Compiling cassowary v0.3.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:07.8375295Z    Compiling clipboard-win v5.4.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:08.1452092Z    Compiling ratatui v0.29.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:08.4243909Z    Compiling nucleo-matcher v0.3.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:08.9365915Z    Compiling clap v4.6.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:09.0769116Z    Compiling qrcode v0.14.1
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:30.6300752Z    Compiling rustls-webpki v0.103.13
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:33.5103210Z    Compiling tokio-rustls v0.26.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:33.5103586Z    Compiling noq-proto v0.17.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:33.5103863Z    Compiling rustls-platform-verifier v0.7.0
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:33.7764559Z    Compiling hickory-net v0.26.0-beta.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:34.4300780Z    Compiling hyper-rustls v0.27.9
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:35.7682265Z    Compiling reqwest v0.13.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:36.5839528Z    Compiling hickory-resolver v0.26.0-beta.4
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:40.5528558Z    Compiling tokio-websockets v0.13.2
twohost-a	Build spt binary (toast rung)	2026-09-09T05:17:59.4847413Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:18:01.8016033Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:18:21.4832726Z    Compiling spt v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt)
twohost-a	Build spt binary (toast rung)	2026-09-09T05:18:36.3421837Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 03s
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	﻿2026-09-09T05:18:36.7452447Z ##[group]Run .github/bench/link-probe.ps1 -Peer kitsubito
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7452853Z [36;1m.github/bench/link-probe.ps1 -Peer kitsubito[0m
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7457791Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7458011Z env:
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7458273Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7458685Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7459057Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:36.7459315Z ##[endgroup]
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:43.9032950Z pong from kitsubito (100.98.197.12) via 192.168.1.168:38881 in 105ms
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:43.9036296Z pong from kitsubito (100.98.197.12) via 192.168.1.168:38881 in 25ms
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:43.9040271Z pong from kitsubito (100.98.197.12) via 192.168.1.168:38881 in 93ms
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:43.9043114Z pong from kitsubito (100.98.197.12) via 192.168.1.168:38881 in 3ms
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:43.9046147Z pong from kitsubito (100.98.197.12) via 192.168.1.168:38881 in 2ms
twohost-a	Link health probe — peer kitsubito (tailscale RTT)	2026-09-09T05:18:43.9280900Z LINK peer=kitsubito ip=100.98.197.12 path=direct samples=5/5 min=2ms med=25ms max=105ms rtts=2,3,25,93,105
twohost-a	Two-host ladder — role A (joiner/driver)	﻿2026-09-09T05:18:44.1541288Z ##[group]Run .github/bench/wrap.ps1 -Step "twohost-ladder-a" -Command "cargo test -p spt-daemon --test twohost -- --nocapture"
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1542286Z [36;1m.github/bench/wrap.ps1 -Step "twohost-ladder-a" -Command "cargo test -p spt-daemon --test twohost -- --nocapture"[0m
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1549051Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1549388Z env:
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1549822Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1550535Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1551200Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1551672Z   SPT_TWO_HOST: 1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1551867Z   SPT_TWO_HOST_ROLE: a
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1552086Z   SPT_TWO_HOST_SECRET: rig-twohost-ci
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1552329Z   SPT_TWO_HOST_PEER_IP: 100.98.197.12
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1552602Z   SPT_TWO_HOST_WAIT_SECS: 900
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1553106Z   SPT_TWO_HOST_NOTIFY_BIN: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target\debug\notify-shell.exe
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:44.1553649Z ##[endgroup]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:46.6472688Z    Compiling windows-sys v0.61.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:46.6486779Z    Compiling cc v1.2.63
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:46.6584164Z    Compiling strsim v0.11.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:46.6587455Z    Compiling unicode-segmentation v1.13.3
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:48.7840399Z    Compiling ring v0.17.14
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:48.8597274Z    Compiling darling_core v0.20.11
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:49.7042279Z    Compiling rustls v0.23.40
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:51.5878382Z    Compiling convert_case v0.10.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:52.1053122Z    Compiling socket2 v0.6.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:52.6217003Z    Compiling mio v1.2.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:53.4514336Z    Compiling tokio v1.52.3
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:53.6173365Z    Compiling darling_macro v0.20.11
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:53.7080630Z    Compiling derive_more-impl v2.1.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:54.8640762Z    Compiling darling v0.20.11
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:55.1969290Z    Compiling fastrand v2.4.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:55.5837812Z    Compiling derive_builder_core v0.20.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:56.4769753Z    Compiling tokio-util v0.7.18
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:57.0878835Z    Compiling rustls-webpki v0.103.13
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:58.1833376Z    Compiling h2 v0.4.14
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:59.0682892Z    Compiling derive_more v2.1.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:59.4904746Z    Compiling derive_builder_macro v0.20.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:59.7960479Z    Compiling ppv-lite86 v0.2.21
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:18:59.9430482Z    Compiling libsqlite3-sys v0.30.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:00.0600901Z    Compiling rand_chacha v0.3.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:00.4397781Z    Compiling derive_builder v0.20.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:00.5769340Z    Compiling futures-lite v2.6.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:01.1675078Z    Compiling hyper v1.10.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:02.7205616Z    Compiling tokio-rustls v0.26.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:02.9046771Z    Compiling rand v0.8.7
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:02.9364946Z    Compiling either v1.16.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:03.3810481Z    Compiling prefix-trie v0.8.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:03.4233025Z    Compiling num-bigint-dig v0.8.6
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:03.4629748Z    Compiling hyper-util v0.1.20
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:03.8890941Z    Compiling n0-future v0.3.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:04.2698261Z    Compiling vergen-lib v9.1.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:04.6813478Z    Compiling rusqlite v0.32.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:04.7799342Z    Compiling windows-future v0.3.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:05.4892821Z    Compiling vergen v9.1.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:05.5558146Z    Compiling rsa v0.9.10
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:05.5662669Z    Compiling hickory-proto v0.26.0-beta.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:05.7186907Z    Compiling vergen-lib v0.1.6
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:06.1268887Z    Compiling noq-udp v0.10.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:06.2241263Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:06.4855014Z    Compiling vergen-gitcl v1.0.8
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:06.5385996Z    Compiling windows v0.62.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:07.2929003Z    Compiling windows-sys v0.59.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:08.1007959Z    Compiling tower v0.5.3
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:08.7616316Z    Compiling blake3 v1.8.5
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:09.5854177Z    Compiling noq-proto v0.17.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:15.8367009Z    Compiling wmi v0.18.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:16.8547142Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:17.6241128Z    Compiling netdev v0.42.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:17.9215935Z    Compiling hickory-net v0.26.0-beta.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:18.1457663Z    Compiling ipconfig v0.3.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:18.4802961Z    Compiling tower-http v0.6.11
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:18.8717421Z    Compiling iroh-base v0.98.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:19.3962523Z    Compiling iroh-relay v0.98.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:19.7802321Z    Compiling hyper-rustls v0.27.9
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:19.7957921Z    Compiling n0-watcher v0.6.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:19.9711423Z    Compiling rustls-platform-verifier v0.7.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:20.0041547Z    Compiling tokio-stream v0.1.18
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:20.0841935Z    Compiling hickory-resolver v0.26.0-beta.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:20.4369767Z    Compiling reqwest v0.13.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:20.5516221Z    Compiling noq v0.18.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:21.7798297Z    Compiling tokio-websockets v0.13.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:23.1935513Z    Compiling acto v0.8.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:23.3565896Z    Compiling iroh-dns v0.98.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:23.6809495Z    Compiling igd-next v0.17.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:23.9265267Z    Compiling netwatch v0.16.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:24.4583305Z    Compiling seize v0.5.1
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:24.7774715Z    Compiling papaya v0.2.4
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:25.3013161Z    Compiling portmapper v0.16.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:25.7777677Z    Compiling swarm-discovery v0.6.0-alpha.2 (https://github.com/SaberMage/swarm-discovery?rev=89a2200d54a4e3cab2f46cc75ebff49a1fb07614#89a2200d)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:27.9386193Z    Compiling backon v1.6.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:28.2655966Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:30.0694765Z    Compiling interprocess v2.4.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:30.2757862Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:31.3734940Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:31.3909867Z    Compiling bytemuck v1.25.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:33.5621662Z    Compiling rgb v0.8.53
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:34.0076086Z    Compiling tempfile v3.27.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:34.1340813Z    Compiling avt v0.18.0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:34.6541042Z    Compiling spt-test-support v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-test-support)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:35.1755371Z    Compiling iroh v0.98.2
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:46.9691303Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:19:49.1612090Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:14.2505959Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 29s
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:14.2850980Z      Running tests\twohost.rs (target\debug\deps\twohost-2e3cba7c9bd795cc.exe)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.0113760Z 
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.0114191Z running 3 tests
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.0116103Z test b2_attacher_child ... ok
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.0116407Z test two_host_ladder_role_b ... ok
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.0125965Z TWOHOST role A: node bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.2364134Z ACCESS_STORE_MINTED C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698\.tmpVVVRPJ\identity\trust\access.json — no access store was present at first load in this process, so an EMPTY baseline was written (everything open that the chain leaves open). If this node had access rules, they are GONE: the store was removed while the daemon was down, and this mint replaced it. Re-apply them (`spt endpoint access ...`); a restart cannot tell a wipe from a first boot.
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.2372456Z CONN_LIFECYCLE: conn=1 role=brain wall_ms=1788931216237 mono_ms=0 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.2373608Z TWOHOST OK: pairing (initiator, product surface) — joined subnet 'twohost'
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:16.2375531Z CONN_LIFECYCLE: conn=1 role=brain wall_ms=1788931216237 mono_ms=0 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7557068Z PUMP_IPC_READER: spawned
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7557426Z PUMP_IPC_READER: spawned
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7557952Z CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788931222755 mono_ms=6518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7558684Z CONN_LIFECYCLE: conn=4 role=brain presence-subscriber wall_ms=1788931222755 mono_ms=6518 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7562225Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931222756 mono_ms=6518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7563290Z CONN_LIFECYCLE: conn=6 role=brain wall_ms=1788931222756 mono_ms=6519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7564143Z CONN_LIFECYCLE: conn=7 role=brain wall_ms=1788931222756 mono_ms=6519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7565710Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931222756 mono_ms=6519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7567634Z CONN_LIFECYCLE: conn=7 role=brain wall_ms=1788931222756 mono_ms=6519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7568524Z CONN_LIFECYCLE: conn=6 role=brain wall_ms=1788931222756 mono_ms=6519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7569552Z CONN_LIFECYCLE: conn=8 role=brain stream-subscriber stream=1 wall_ms=1788931222756 mono_ms=6519 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7570714Z CONN_LIFECYCLE: conn=8 role=brain stream-subscriber stream=1 wall_ms=1788931222756 mono_ms=6519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7571736Z CONN_LIFECYCLE: conn=10 role=brain stream-subscriber stream=3 wall_ms=1788931222756 mono_ms=6519 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7572358Z CONN_LIFECYCLE: conn=10 role=brain stream-subscriber stream=3 wall_ms=1788931222757 mono_ms=6519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7589809Z CONN_LIFECYCLE: conn=8 role=brain stream-subscriber stream=1 wall_ms=1788931222758 mono_ms=6521 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7591769Z CONN_LIFECYCLE: conn=11 role=brain wall_ms=1788931222759 mono_ms=6521 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7592747Z CONN_LIFECYCLE: conn=11 role=brain wall_ms=1788931222759 mono_ms=6522 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7624155Z CONN_LIFECYCLE: conn=9 role=brain wall_ms=1788931222762 mono_ms=6525 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7625758Z CONN_LIFECYCLE: conn=9 role=brain stream-subscriber stream=2 wall_ms=1788931222762 mono_ms=6525 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7634125Z EPOCH_FAST_FORWARD:0->1: our fleet-replicated roster row holds lease 0 — jumping past it so our own advertisements are admitted again (KNOWN-HAZARDS 7.60) [REQ-ROSTER-SELF-LEASE-HEAL]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7675589Z CONN_LIFECYCLE: conn=9 role=brain stream-subscriber stream=2 wall_ms=1788931222767 mono_ms=6530 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7676921Z CONN_LIFECYCLE: conn=12 role=brain wall_ms=1788931222767 mono_ms=6530 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7678335Z CONN_LIFECYCLE: conn=12 role=brain wall_ms=1788931222767 mono_ms=6530 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7680479Z CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788931222767 mono_ms=6530 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.7693144Z SELF_ADDR_REBIND:bcead52b862344aef51998ca5d8f15dce1e38e6cee3795b219a5849f6ad4b41a: live endpoint address differs from our advertised roster row — re-authored at lease 1, advertise requested [REQ-SELF-ADDR-REBIND-READVERTISE]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.8271301Z PUMP_DIAL_SUBMIT:9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612:leg=cache addr={"id":"9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612","addrs":[{"Ip":"192.168.1.168:7461"}]} wall_ms=1788931222826 mono_ms=0
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:22.8350319Z CONN_LIFECYCLE: conn=4 role=brain presence-subscriber wall_ms=1788931222834 mono_ms=6597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0058723Z TWOHOST OK: register: B's perch row replicated to A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0068251Z TWOHOST OK: seal minted on A (yenatvaakz); the pump replicates it
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0078222Z TWOHOST OK: enrollment minted on A (node bcead52b); the seal feed replicates it
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0411359Z CONN_LIFECYCLE: conn=13 role=brain wall_ms=1788931223040 mono_ms=6803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0536617Z CONN_LIFECYCLE: conn=10 role=brain stream-subscriber stream=3 wall_ms=1788931223053 mono_ms=6816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0538081Z CONN_LIFECYCLE: conn=14 role=brain wall_ms=1788931223053 mono_ms=6816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0538781Z CONN_LIFECYCLE: conn=14 role=brain wall_ms=1788931223053 mono_ms=6816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0547699Z TWOHOST OK: message sent (B asserts the spool)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0698297Z TWOHOST OK: knock sent (B asserts its inbox + the approval)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0699740Z TWOHOST OK: B published its drive session id
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0853010Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 wall_ms=1788931223085 mono_ms=6848 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.0999771Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 wall_ms=1788931223099 mono_ms=6862 event=stream-sub-attach stream=10 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1091314Z CONN_LIFECYCLE: conn=15 role=brain wall_ms=1788931223109 mono_ms=6871 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1092825Z CONN_LIFECYCLE: conn=15 role=brain wall_ms=1788931223109 mono_ms=6872 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1095075Z CONN_LIFECYCLE: conn=16 role=brain stream-subscriber stream=9 wall_ms=1788931223109 mono_ms=6872 event=stream-sub-attach stream=9 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1096391Z CONN_LIFECYCLE: conn=16 role=brain stream-subscriber stream=9 wall_ms=1788931223109 mono_ms=6872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1101993Z CONN_LIFECYCLE: conn=16 role=brain stream-subscriber stream=9 wall_ms=1788931223110 mono_ms=6872 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1103351Z CONN_LIFECYCLE: conn=17 role=brain wall_ms=1788931223110 mono_ms=6873 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1104251Z CONN_LIFECYCLE: conn=17 role=brain wall_ms=1788931223110 mono_ms=6873 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1159803Z TWOHOST OK: remote-drive (attach echo)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1601039Z CONN_LIFECYCLE: conn=18 role=brain wall_ms=1788931223159 mono_ms=6922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1602263Z CONN_LIFECYCLE: conn=19 role=brain wall_ms=1788931223160 mono_ms=6922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1603185Z CONN_LIFECYCLE: conn=18 role=brain wall_ms=1788931223160 mono_ms=6922 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1604157Z CONN_LIFECYCLE: conn=19 role=brain wall_ms=1788931223160 mono_ms=6923 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1605870Z CONN_LIFECYCLE: conn=20 role=brain stream-subscriber stream=11 wall_ms=1788931223160 mono_ms=6923 event=stream-sub-attach stream=11 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1607753Z CONN_LIFECYCLE: conn=20 role=brain stream-subscriber stream=11 wall_ms=1788931223160 mono_ms=6923 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1613568Z CONN_LIFECYCLE: conn=21 role=brain wall_ms=1788931223161 mono_ms=6924 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1615462Z CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=12 wall_ms=1788931223161 mono_ms=6924 event=stream-sub-attach stream=12 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1627613Z CONN_LIFECYCLE: conn=20 role=brain stream-subscriber stream=11 wall_ms=1788931223162 mono_ms=6925 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1629327Z CONN_LIFECYCLE: conn=22 role=brain wall_ms=1788931223162 mono_ms=6925 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1630500Z CONN_LIFECYCLE: conn=22 role=brain wall_ms=1788931223162 mono_ms=6925 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1661878Z CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=12 wall_ms=1788931223166 mono_ms=6928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1663499Z CONN_LIFECYCLE: conn=23 role=brain wall_ms=1788931223166 mono_ms=6929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.1664359Z CONN_LIFECYCLE: conn=23 role=brain wall_ms=1788931223166 mono_ms=6929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.2106263Z CONN_LIFECYCLE: conn=24 role=brain wall_ms=1788931223210 mono_ms=6973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.2107046Z CONN_LIFECYCLE: conn=24 role=brain wall_ms=1788931223210 mono_ms=6973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.2111163Z CONN_LIFECYCLE: conn=25 role=brain stream-subscriber stream=13 wall_ms=1788931223211 mono_ms=6973 event=stream-sub-attach stream=13 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:23.2112978Z CONN_LIFECYCLE: conn=25 role=brain stream-subscriber stream=13 wall_ms=1788931223211 mono_ms=6974 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.4741835Z CONN_LIFECYCLE: conn=25 role=brain stream-subscriber stream=13 wall_ms=1788931224473 mono_ms=8236 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.4744121Z CONN_LIFECYCLE: conn=26 role=brain wall_ms=1788931224474 mono_ms=8237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.4745189Z CONN_LIFECYCLE: conn=26 role=brain wall_ms=1788931224474 mono_ms=8237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6775939Z CONN_LIFECYCLE: conn=27 role=brain wall_ms=1788931224677 mono_ms=8440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6776862Z CONN_LIFECYCLE: conn=27 role=brain wall_ms=1788931224677 mono_ms=8440 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6779009Z CONN_LIFECYCLE: conn=28 role=brain stream-subscriber stream=14 wall_ms=1788931224677 mono_ms=8440 event=stream-sub-attach stream=14 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6780755Z CONN_LIFECYCLE: conn=28 role=brain stream-subscriber stream=14 wall_ms=1788931224677 mono_ms=8440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6786358Z CONN_LIFECYCLE: conn=28 role=brain stream-subscriber stream=14 wall_ms=1788931224678 mono_ms=8441 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6787974Z CONN_LIFECYCLE: conn=29 role=brain wall_ms=1788931224678 mono_ms=8441 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.6788869Z CONN_LIFECYCLE: conn=29 role=brain wall_ms=1788931224678 mono_ms=8441 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7282566Z CONN_LIFECYCLE: conn=30 role=brain wall_ms=1788931224728 mono_ms=8490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7283317Z CONN_LIFECYCLE: conn=31 role=brain wall_ms=1788931224728 mono_ms=8490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7284158Z CONN_LIFECYCLE: conn=31 role=brain wall_ms=1788931224728 mono_ms=8491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7285140Z CONN_LIFECYCLE: conn=30 role=brain wall_ms=1788931224728 mono_ms=8491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7287376Z CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=15 wall_ms=1788931224728 mono_ms=8491 event=stream-sub-attach stream=15 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7289008Z CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=15 wall_ms=1788931224728 mono_ms=8491 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7293777Z CONN_LIFECYCLE: conn=33 role=brain wall_ms=1788931224729 mono_ms=8492 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7295477Z CONN_LIFECYCLE: conn=33 role=brain stream-subscriber stream=16 wall_ms=1788931224729 mono_ms=8492 event=stream-sub-attach stream=16 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7307720Z CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=15 wall_ms=1788931224730 mono_ms=8493 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7309264Z CONN_LIFECYCLE: conn=34 role=brain wall_ms=1788931224730 mono_ms=8493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7310226Z CONN_LIFECYCLE: conn=34 role=brain wall_ms=1788931224730 mono_ms=8493 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7407945Z CONN_LIFECYCLE: conn=33 role=brain stream-subscriber stream=16 wall_ms=1788931224740 mono_ms=8503 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7410083Z CONN_LIFECYCLE: conn=35 role=brain wall_ms=1788931224740 mono_ms=8503 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7410817Z CONN_LIFECYCLE: conn=35 role=brain wall_ms=1788931224741 mono_ms=8503 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7786522Z CONN_LIFECYCLE: conn=36 role=brain wall_ms=1788931224778 mono_ms=8541 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7787727Z CONN_LIFECYCLE: conn=36 role=brain wall_ms=1788931224778 mono_ms=8541 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7794014Z CONN_LIFECYCLE: conn=37 role=brain stream-subscriber stream=17 wall_ms=1788931224779 mono_ms=8542 event=stream-sub-attach stream=17 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:24.7795977Z CONN_LIFECYCLE: conn=37 role=brain stream-subscriber stream=17 wall_ms=1788931224779 mono_ms=8542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.7511904Z CONN_LIFECYCLE: conn=37 role=brain stream-subscriber stream=17 wall_ms=1788931225751 mono_ms=9513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.7513685Z CONN_LIFECYCLE: conn=38 role=brain wall_ms=1788931225751 mono_ms=9514 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.7514917Z CONN_LIFECYCLE: conn=38 role=brain wall_ms=1788931225751 mono_ms=9514 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8874794Z CONN_LIFECYCLE: conn=39 role=brain wall_ms=1788931225887 mono_ms=9650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8875870Z CONN_LIFECYCLE: conn=39 role=brain wall_ms=1788931225887 mono_ms=9650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8878089Z CONN_LIFECYCLE: conn=40 role=brain stream-subscriber stream=18 wall_ms=1788931225887 mono_ms=9650 event=stream-sub-attach stream=18 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8879497Z CONN_LIFECYCLE: conn=40 role=brain stream-subscriber stream=18 wall_ms=1788931225887 mono_ms=9650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8884602Z CONN_LIFECYCLE: conn=40 role=brain stream-subscriber stream=18 wall_ms=1788931225888 mono_ms=9651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8886217Z CONN_LIFECYCLE: conn=41 role=brain wall_ms=1788931225888 mono_ms=9651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.8888826Z CONN_LIFECYCLE: conn=41 role=brain wall_ms=1788931225888 mono_ms=9651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9378811Z CONN_LIFECYCLE: conn=42 role=brain wall_ms=1788931225937 mono_ms=9700 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9379912Z CONN_LIFECYCLE: conn=42 role=brain wall_ms=1788931225937 mono_ms=9700 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9382664Z CONN_LIFECYCLE: conn=43 role=brain stream-subscriber stream=19 wall_ms=1788931225938 mono_ms=9701 event=stream-sub-attach stream=19 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9383786Z CONN_LIFECYCLE: conn=43 role=brain stream-subscriber stream=19 wall_ms=1788931225938 mono_ms=9701 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9404138Z CONN_LIFECYCLE: conn=43 role=brain stream-subscriber stream=19 wall_ms=1788931225940 mono_ms=9703 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9405857Z CONN_LIFECYCLE: conn=44 role=brain wall_ms=1788931225940 mono_ms=9703 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:25.9407006Z CONN_LIFECYCLE: conn=44 role=brain wall_ms=1788931225940 mono_ms=9703 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5934711Z CONN_LIFECYCLE: conn=45 role=brain wall_ms=1788931226593 mono_ms=10356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5936450Z CONN_LIFECYCLE: conn=46 role=brain wall_ms=1788931226593 mono_ms=10356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5937660Z CONN_LIFECYCLE: conn=45 role=brain wall_ms=1788931226593 mono_ms=10356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5938870Z CONN_LIFECYCLE: conn=46 role=brain wall_ms=1788931226593 mono_ms=10356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5940260Z CONN_LIFECYCLE: conn=48 role=brain stream-subscriber stream=20 wall_ms=1788931226593 mono_ms=10356 event=stream-sub-attach stream=20 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5941639Z CONN_LIFECYCLE: conn=48 role=brain stream-subscriber stream=20 wall_ms=1788931226594 mono_ms=10356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5948957Z CONN_LIFECYCLE: conn=47 role=brain wall_ms=1788931226594 mono_ms=10357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5951359Z CONN_LIFECYCLE: conn=47 role=brain stream-subscriber stream=21 wall_ms=1788931226595 mono_ms=10357 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5970675Z CONN_LIFECYCLE: conn=48 role=brain stream-subscriber stream=20 wall_ms=1788931226596 mono_ms=10359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5971891Z CONN_LIFECYCLE: conn=49 role=brain wall_ms=1788931226596 mono_ms=10359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.5972915Z CONN_LIFECYCLE: conn=49 role=brain wall_ms=1788931226597 mono_ms=10359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6021984Z CONN_LIFECYCLE: conn=47 role=brain stream-subscriber stream=21 wall_ms=1788931226602 mono_ms=10364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6025070Z CONN_LIFECYCLE: conn=50 role=brain wall_ms=1788931226602 mono_ms=10365 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6029178Z CONN_LIFECYCLE: conn=50 role=brain wall_ms=1788931226602 mono_ms=10365 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6943103Z CONN_LIFECYCLE: conn=51 role=brain wall_ms=1788931226694 mono_ms=10457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6944006Z CONN_LIFECYCLE: conn=51 role=brain wall_ms=1788931226694 mono_ms=10457 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6948149Z CONN_LIFECYCLE: conn=52 role=brain stream-subscriber stream=22 wall_ms=1788931226694 mono_ms=10457 event=stream-sub-attach stream=22 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:26.6950646Z CONN_LIFECYCLE: conn=52 role=brain stream-subscriber stream=22 wall_ms=1788931226694 mono_ms=10457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:27.9932956Z TWOHOST OK: sync: A pulled B's mind
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:30.1078697Z PAIR_MEET_UP:twohost step=59631041 id=4567ba10319ca964cdb452672ce2b817babbea9c79de1054041a021c0c4838c6 addr=EndpointAddr { id: PublicKey(4567ba10319ca964cdb452672ce2b817babbea9c79de1054041a021c0c4838c6), addrs: {Ip(100.68.35.65:57074), Ip(192.168.1.81:57074)} }
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:30.9914976Z CONN_LIFECYCLE: conn=52 role=brain stream-subscriber stream=22 wall_ms=1788931230991 mono_ms=14754 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:30.9916339Z CONN_LIFECYCLE: conn=53 role=brain wall_ms=1788931230991 mono_ms=14754 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:30.9917474Z CONN_LIFECYCLE: conn=53 role=brain wall_ms=1788931230991 mono_ms=14754 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1325056Z CONN_LIFECYCLE: conn=54 role=brain wall_ms=1788931231132 mono_ms=14895 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1325983Z CONN_LIFECYCLE: conn=54 role=brain wall_ms=1788931231132 mono_ms=14895 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1328007Z CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=23 wall_ms=1788931231132 mono_ms=14895 event=stream-sub-attach stream=23 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1329077Z CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=23 wall_ms=1788931231132 mono_ms=14895 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1335165Z CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=23 wall_ms=1788931231133 mono_ms=14896 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1336664Z CONN_LIFECYCLE: conn=56 role=brain wall_ms=1788931231133 mono_ms=14896 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.1337400Z CONN_LIFECYCLE: conn=56 role=brain wall_ms=1788931231133 mono_ms=14896 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8388322Z CONN_LIFECYCLE: conn=57 role=brain wall_ms=1788931231838 mono_ms=15601 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8389087Z CONN_LIFECYCLE: conn=58 role=brain wall_ms=1788931231838 mono_ms=15601 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8389972Z CONN_LIFECYCLE: conn=58 role=brain wall_ms=1788931231838 mono_ms=15601 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8390868Z CONN_LIFECYCLE: conn=57 role=brain wall_ms=1788931231838 mono_ms=15601 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8392767Z CONN_LIFECYCLE: conn=59 role=brain stream-subscriber stream=24 wall_ms=1788931231839 mono_ms=15601 event=stream-sub-attach stream=24 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8394196Z CONN_LIFECYCLE: conn=59 role=brain stream-subscriber stream=24 wall_ms=1788931231839 mono_ms=15602 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8401558Z CONN_LIFECYCLE: conn=60 role=brain wall_ms=1788931231840 mono_ms=15602 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8403161Z CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=25 wall_ms=1788931231840 mono_ms=15603 event=stream-sub-attach stream=25 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8417791Z CONN_LIFECYCLE: conn=59 role=brain stream-subscriber stream=24 wall_ms=1788931231841 mono_ms=15604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8419422Z CONN_LIFECYCLE: conn=61 role=brain wall_ms=1788931231841 mono_ms=15604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8420188Z CONN_LIFECYCLE: conn=61 role=brain wall_ms=1788931231841 mono_ms=15604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8457252Z CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=25 wall_ms=1788931231845 mono_ms=15608 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8458853Z CONN_LIFECYCLE: conn=62 role=brain wall_ms=1788931231845 mono_ms=15608 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.8459625Z CONN_LIFECYCLE: conn=62 role=brain wall_ms=1788931231845 mono_ms=15608 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.9399387Z CONN_LIFECYCLE: conn=63 role=brain wall_ms=1788931231939 mono_ms=15702 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.9400737Z CONN_LIFECYCLE: conn=63 role=brain wall_ms=1788931231939 mono_ms=15702 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.9404325Z CONN_LIFECYCLE: conn=64 role=brain stream-subscriber stream=26 wall_ms=1788931231940 mono_ms=15703 event=stream-sub-attach stream=26 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:31.9406063Z CONN_LIFECYCLE: conn=64 role=brain stream-subscriber stream=26 wall_ms=1788931231940 mono_ms=15703 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.0509928Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 wall_ms=1788931234050 mono_ms=17813 event=stream-sub-release stream=10 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.0768078Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 wall_ms=1788931234076 mono_ms=17839 event=stream-sub-attach stream=27 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1320764Z CONN_LIFECYCLE: conn=64 role=brain stream-subscriber stream=26 wall_ms=1788931234131 mono_ms=17894 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1322985Z CONN_LIFECYCLE: conn=65 role=brain wall_ms=1788931234132 mono_ms=17894 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1326746Z CONN_LIFECYCLE: conn=65 role=brain wall_ms=1788931234132 mono_ms=17895 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1579926Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 wall_ms=1788931234157 mono_ms=17920 event=stream-sub-release stream=27 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1620394Z UPDATE_STAGED:6:BrainOnly (from 9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1703345Z CONN_LIFECYCLE: conn=66 role=brain wall_ms=1788931234170 mono_ms=17933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1704446Z CONN_LIFECYCLE: conn=66 role=brain wall_ms=1788931234170 mono_ms=17933 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1706478Z CONN_LIFECYCLE: conn=67 role=brain stream-subscriber stream=28 wall_ms=1788931234170 mono_ms=17933 event=stream-sub-attach stream=28 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1708015Z CONN_LIFECYCLE: conn=67 role=brain stream-subscriber stream=28 wall_ms=1788931234170 mono_ms=17933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1713894Z CONN_LIFECYCLE: conn=67 role=brain stream-subscriber stream=28 wall_ms=1788931234171 mono_ms=17934 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1715698Z CONN_LIFECYCLE: conn=68 role=brain wall_ms=1788931234171 mono_ms=17934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.1717209Z CONN_LIFECYCLE: conn=68 role=brain wall_ms=1788931234171 mono_ms=17934 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.2522280Z TWOHOST OK: update: B's v6 staged at A through the verify gate
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.2523373Z TWOHOST OK: update: consent notif surfaced at A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.2523858Z TWOHOST OK: notif: B's dismissal replicated to A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.2647142Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 wall_ms=1788931234264 mono_ms=18027 event=stream-sub-attach stream=32 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.2908330Z TWOHOST REST remote suspend: EDGE at 1788931234290 — Active->Suspended
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4225715Z CONN_LIFECYCLE: conn=69 role=brain wall_ms=1788931234422 mono_ms=18185 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4226677Z CONN_LIFECYCLE: conn=69 role=brain wall_ms=1788931234422 mono_ms=18185 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4230439Z CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=33 wall_ms=1788931234422 mono_ms=18185 event=stream-sub-attach stream=33 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4232190Z CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=33 wall_ms=1788931234423 mono_ms=18185 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4258481Z CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=33 wall_ms=1788931234425 mono_ms=18188 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4261855Z CONN_LIFECYCLE: conn=71 role=brain wall_ms=1788931234426 mono_ms=18188 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.4266580Z CONN_LIFECYCLE: conn=71 role=brain wall_ms=1788931234426 mono_ms=18189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.5413342Z TWOHOST OK: rest: B's row advertises Suspended at A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.6831678Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 wall_ms=1788931234682 mono_ms=18445 event=stream-sub-attach stream=34 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.6952053Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 wall_ms=1788931234695 mono_ms=18457 event=stream-sub-attach stream=35 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8306416Z TWOHOST REST remote wake: EDGE at 1788931234830 — Suspended->Active
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8310460Z CONN_LIFECYCLE: conn=72 role=brain wall_ms=1788931234830 mono_ms=18593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8311325Z CONN_LIFECYCLE: conn=73 role=brain wall_ms=1788931234831 mono_ms=18593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8312214Z CONN_LIFECYCLE: conn=72 role=brain wall_ms=1788931234831 mono_ms=18593 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8313691Z CONN_LIFECYCLE: conn=73 role=brain wall_ms=1788931234831 mono_ms=18593 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8315701Z CONN_LIFECYCLE: conn=75 role=brain stream-subscriber stream=37 wall_ms=1788931234831 mono_ms=18594 event=stream-sub-attach stream=37 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8317371Z CONN_LIFECYCLE: conn=75 role=brain stream-subscriber stream=37 wall_ms=1788931234831 mono_ms=18594 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8322540Z CONN_LIFECYCLE: conn=74 role=brain wall_ms=1788931234832 mono_ms=18595 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8323432Z CONN_LIFECYCLE: conn=75 role=brain stream-subscriber stream=37 wall_ms=1788931234832 mono_ms=18595 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8324633Z CONN_LIFECYCLE: conn=74 role=brain stream-subscriber stream=36 wall_ms=1788931234832 mono_ms=18595 event=stream-sub-attach stream=36 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8325413Z CONN_LIFECYCLE: conn=76 role=brain wall_ms=1788931234832 mono_ms=18595 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8326628Z CONN_LIFECYCLE: conn=76 role=brain wall_ms=1788931234832 mono_ms=18595 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8335516Z CONN_LIFECYCLE: conn=74 role=brain stream-subscriber stream=36 wall_ms=1788931234833 mono_ms=18596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8337090Z CONN_LIFECYCLE: conn=77 role=brain wall_ms=1788931234833 mono_ms=18596 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.8337772Z CONN_LIFECYCLE: conn=77 role=brain wall_ms=1788931234833 mono_ms=18596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.9323099Z CONN_LIFECYCLE: conn=78 role=brain wall_ms=1788931234932 mono_ms=18694 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.9324238Z CONN_LIFECYCLE: conn=78 role=brain wall_ms=1788931234932 mono_ms=18695 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.9330861Z CONN_LIFECYCLE: conn=79 role=brain stream-subscriber stream=38 wall_ms=1788931234932 mono_ms=18695 event=stream-sub-attach stream=38 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:34.9333399Z CONN_LIFECYCLE: conn=79 role=brain stream-subscriber stream=38 wall_ms=1788931234933 mono_ms=18695 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0334072Z CONN_LIFECYCLE: conn=79 role=brain stream-subscriber stream=38 wall_ms=1788931235033 mono_ms=18796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0335645Z CONN_LIFECYCLE: conn=80 role=brain wall_ms=1788931235033 mono_ms=18796 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0336461Z CONN_LIFECYCLE: conn=80 role=brain wall_ms=1788931235033 mono_ms=18796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0620870Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 wall_ms=1788931235061 mono_ms=18824 event=stream-sub-release stream=35 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0829832Z CONN_LIFECYCLE: conn=81 role=brain wall_ms=1788931235082 mono_ms=18845 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0830735Z CONN_LIFECYCLE: conn=81 role=brain wall_ms=1788931235082 mono_ms=18845 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0832934Z CONN_LIFECYCLE: conn=82 role=brain stream-subscriber stream=39 wall_ms=1788931235083 mono_ms=18845 event=stream-sub-attach stream=39 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0834177Z CONN_LIFECYCLE: conn=82 role=brain stream-subscriber stream=39 wall_ms=1788931235083 mono_ms=18846 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0841856Z CONN_LIFECYCLE: conn=82 role=brain stream-subscriber stream=39 wall_ms=1788931235084 mono_ms=18846 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0843610Z CONN_LIFECYCLE: conn=83 role=brain wall_ms=1788931235084 mono_ms=18847 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0844447Z CONN_LIFECYCLE: conn=83 role=brain wall_ms=1788931235084 mono_ms=18847 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.0912885Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 wall_ms=1788931235091 mono_ms=18853 event=stream-sub-attach stream=40 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1331540Z CONN_LIFECYCLE: conn=84 role=brain wall_ms=1788931235133 mono_ms=18895 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1332580Z CONN_LIFECYCLE: conn=84 role=brain wall_ms=1788931235133 mono_ms=18896 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1335425Z CONN_LIFECYCLE: conn=85 role=brain stream-subscriber stream=41 wall_ms=1788931235133 mono_ms=18896 event=stream-sub-attach stream=41 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1337085Z CONN_LIFECYCLE: conn=85 role=brain stream-subscriber stream=41 wall_ms=1788931235133 mono_ms=18896 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1356760Z CONN_LIFECYCLE: conn=85 role=brain stream-subscriber stream=41 wall_ms=1788931235135 mono_ms=18898 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1358344Z CONN_LIFECYCLE: conn=86 role=brain wall_ms=1788931235135 mono_ms=18898 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1359417Z CONN_LIFECYCLE: conn=86 role=brain wall_ms=1788931235135 mono_ms=18898 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.1414120Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 wall_ms=1788931235141 mono_ms=18904 event=stream-sub-release stream=40 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.2345606Z CONN_LIFECYCLE: conn=87 role=brain wall_ms=1788931235234 mono_ms=18997 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.2347078Z CONN_LIFECYCLE: conn=87 role=brain wall_ms=1788931235234 mono_ms=18997 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.2351065Z CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=43 wall_ms=1788931235235 mono_ms=18997 event=stream-sub-attach stream=43 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.2352603Z CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=43 wall_ms=1788931235235 mono_ms=18998 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.3312208Z TWOHOST OK: rest: B's row advertises Active again at A (with a presence stamp)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.3313090Z TWOHOST OK: remote suspend/wake round trip
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.5870937Z CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=43 wall_ms=1788931235586 mono_ms=19349 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.5872105Z CONN_LIFECYCLE: conn=89 role=brain wall_ms=1788931235587 mono_ms=19349 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.5873021Z CONN_LIFECYCLE: conn=89 role=brain wall_ms=1788931235587 mono_ms=19350 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6390196Z CONN_LIFECYCLE: conn=90 role=brain wall_ms=1788931235638 mono_ms=19401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6391099Z CONN_LIFECYCLE: conn=91 role=brain wall_ms=1788931235638 mono_ms=19401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6391939Z CONN_LIFECYCLE: conn=92 role=brain wall_ms=1788931235638 mono_ms=19401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6392615Z CONN_LIFECYCLE: conn=91 role=brain wall_ms=1788931235639 mono_ms=19401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6393422Z CONN_LIFECYCLE: conn=90 role=brain wall_ms=1788931235639 mono_ms=19401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6394070Z CONN_LIFECYCLE: conn=92 role=brain wall_ms=1788931235639 mono_ms=19401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6394710Z CONN_LIFECYCLE: conn=93 role=brain stream-subscriber stream=46 wall_ms=1788931235639 mono_ms=19402 event=stream-sub-attach stream=46 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6396514Z CONN_LIFECYCLE: conn=94 role=brain stream-subscriber stream=45 wall_ms=1788931235639 mono_ms=19402 event=stream-sub-attach stream=45 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6397188Z CONN_LIFECYCLE: conn=93 role=brain stream-subscriber stream=46 wall_ms=1788931235639 mono_ms=19402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6397900Z CONN_LIFECYCLE: conn=94 role=brain stream-subscriber stream=45 wall_ms=1788931235639 mono_ms=19402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6402684Z CONN_LIFECYCLE: conn=93 role=brain stream-subscriber stream=46 wall_ms=1788931235640 mono_ms=19402 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6403758Z CONN_LIFECYCLE: conn=94 role=brain stream-subscriber stream=45 wall_ms=1788931235640 mono_ms=19403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6405096Z CONN_LIFECYCLE: conn=96 role=brain wall_ms=1788931235640 mono_ms=19403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6405817Z CONN_LIFECYCLE: conn=96 role=brain wall_ms=1788931235640 mono_ms=19403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6406499Z CONN_LIFECYCLE: conn=97 role=brain wall_ms=1788931235640 mono_ms=19403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6407026Z CONN_LIFECYCLE: conn=97 role=brain wall_ms=1788931235640 mono_ms=19403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6442721Z CONN_LIFECYCLE: conn=95 role=brain wall_ms=1788931235644 mono_ms=19407 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6444292Z CONN_LIFECYCLE: conn=95 role=brain stream-subscriber stream=44 wall_ms=1788931235644 mono_ms=19407 event=stream-sub-attach stream=44 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6492243Z CONN_LIFECYCLE: conn=95 role=brain stream-subscriber stream=44 wall_ms=1788931235649 mono_ms=19411 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6494467Z CONN_LIFECYCLE: conn=98 role=brain wall_ms=1788931235649 mono_ms=19412 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.6495669Z CONN_LIFECYCLE: conn=98 role=brain wall_ms=1788931235649 mono_ms=19412 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:35.9718027Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 wall_ms=1788931235971 mono_ms=19734 event=stream-sub-attach stream=50 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2938200Z CONN_LIFECYCLE: conn=99 role=brain wall_ms=1788931236293 mono_ms=20056 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2939005Z CONN_LIFECYCLE: conn=100 role=brain wall_ms=1788931236293 mono_ms=20056 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2939674Z CONN_LIFECYCLE: conn=101 role=brain wall_ms=1788931236293 mono_ms=20056 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2940603Z CONN_LIFECYCLE: conn=100 role=brain wall_ms=1788931236293 mono_ms=20056 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2941691Z CONN_LIFECYCLE: conn=101 role=brain wall_ms=1788931236293 mono_ms=20056 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2942767Z CONN_LIFECYCLE: conn=99 role=brain wall_ms=1788931236293 mono_ms=20056 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2943946Z CONN_LIFECYCLE: conn=102 role=brain stream-subscriber stream=51 wall_ms=1788931236294 mono_ms=20056 event=stream-sub-attach stream=51 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2945099Z CONN_LIFECYCLE: conn=103 role=brain stream-subscriber stream=53 wall_ms=1788931236294 mono_ms=20057 event=stream-sub-attach stream=53 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2946311Z CONN_LIFECYCLE: conn=102 role=brain stream-subscriber stream=51 wall_ms=1788931236294 mono_ms=20057 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2947275Z CONN_LIFECYCLE: conn=103 role=brain stream-subscriber stream=53 wall_ms=1788931236294 mono_ms=20057 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2951465Z CONN_LIFECYCLE: conn=103 role=brain stream-subscriber stream=53 wall_ms=1788931236295 mono_ms=20057 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2952311Z CONN_LIFECYCLE: conn=104 role=brain wall_ms=1788931236295 mono_ms=20057 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2953267Z CONN_LIFECYCLE: conn=105 role=brain wall_ms=1788931236295 mono_ms=20058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2954064Z CONN_LIFECYCLE: conn=104 role=brain stream-subscriber stream=52 wall_ms=1788931236295 mono_ms=20058 event=stream-sub-attach stream=52 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2954950Z CONN_LIFECYCLE: conn=105 role=brain wall_ms=1788931236295 mono_ms=20058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2966822Z CONN_LIFECYCLE: conn=102 role=brain stream-subscriber stream=51 wall_ms=1788931236296 mono_ms=20059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2968362Z CONN_LIFECYCLE: conn=106 role=brain wall_ms=1788931236296 mono_ms=20059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.2969053Z CONN_LIFECYCLE: conn=106 role=brain wall_ms=1788931236296 mono_ms=20059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3017147Z CONN_LIFECYCLE: conn=104 role=brain stream-subscriber stream=52 wall_ms=1788931236301 mono_ms=20064 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3018851Z CONN_LIFECYCLE: conn=107 role=brain wall_ms=1788931236301 mono_ms=20064 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3019992Z CONN_LIFECYCLE: conn=107 role=brain wall_ms=1788931236301 mono_ms=20064 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3450925Z TWOHOST OK: presence: B's surface marks replicated back to A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3578553Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 wall_ms=1788931236357 mono_ms=20120 event=stream-sub-attach stream=54 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3968092Z CONN_LIFECYCLE: conn=108 role=brain wall_ms=1788931236396 mono_ms=20159 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3975026Z CONN_LIFECYCLE: conn=108 role=brain wall_ms=1788931236396 mono_ms=20159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3980363Z CONN_LIFECYCLE: conn=109 role=brain stream-subscriber stream=55 wall_ms=1788931236397 mono_ms=20160 event=stream-sub-attach stream=55 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.3985271Z CONN_LIFECYCLE: conn=109 role=brain stream-subscriber stream=55 wall_ms=1788931236398 mono_ms=20161 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.4211015Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 wall_ms=1788931236420 mono_ms=20183 event=stream-sub-attach stream=56 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.4807243Z TWOHOST OK: cross-node shell relink + drive (B asserts the render)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.4934150Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 wall_ms=1788931236493 mono_ms=20256 event=stream-sub-attach stream=57 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.5046884Z TWOHOST OK: cross-node drive drops an offline persistent shell (no wake, no spool)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.5114239Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 stream-subscriber stream=58 wall_ms=1788931236511 mono_ms=20274 event=stream-sub-attach stream=58 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.5617765Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 stream-subscriber stream=58 stream-subscriber stream=59 wall_ms=1788931236561 mono_ms=20324 event=stream-sub-attach stream=59 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.6788810Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 stream-subscriber stream=58 stream-subscriber stream=59… wall_ms=1788931236678 mono_ms=20441 event=stream-sub-attach stream=60 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.7059495Z TWOHOST OK: gateway-typed owner cross-node cmd+drive (owner-type-agnostic across a real link)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.7763174Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 wall_ms=1788931236776 mono_ms=20538 event=stream-sub-release stream=50 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.7790309Z CONN_LIFECYCLE: conn=109 role=brain stream-subscriber stream=55 wall_ms=1788931236778 mono_ms=20541 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.7792418Z CONN_LIFECYCLE: conn=110 role=brain wall_ms=1788931236779 mono_ms=20542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.7793657Z CONN_LIFECYCLE: conn=110 role=brain wall_ms=1788931236779 mono_ms=20542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8002160Z CONN_LIFECYCLE: conn=111 role=brain wall_ms=1788931236800 mono_ms=20562 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8003389Z CONN_LIFECYCLE: conn=111 role=brain wall_ms=1788931236800 mono_ms=20563 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8006785Z CONN_LIFECYCLE: conn=112 role=brain stream-subscriber stream=61 wall_ms=1788931236800 mono_ms=20563 event=stream-sub-attach stream=61 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8007977Z CONN_LIFECYCLE: conn=112 role=brain stream-subscriber stream=61 wall_ms=1788931236800 mono_ms=20563 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8013985Z CONN_LIFECYCLE: conn=112 role=brain stream-subscriber stream=61 wall_ms=1788931236801 mono_ms=20564 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8015570Z CONN_LIFECYCLE: conn=113 role=brain wall_ms=1788931236801 mono_ms=20564 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8016511Z CONN_LIFECYCLE: conn=113 role=brain wall_ms=1788931236801 mono_ms=20564 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8023271Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 wall_ms=1788931236802 mono_ms=20564 event=stream-sub-attach stream=62 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:36.8557591Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 wall_ms=1788931236855 mono_ms=20618 event=stream-sub-release stream=62 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4564672Z CONN_LIFECYCLE: conn=114 role=brain wall_ms=1788931237456 mono_ms=21219 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4565456Z CONN_LIFECYCLE: conn=115 role=brain wall_ms=1788931237456 mono_ms=21219 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4566303Z CONN_LIFECYCLE: conn=116 role=brain wall_ms=1788931237456 mono_ms=21219 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4567274Z CONN_LIFECYCLE: conn=114 role=brain wall_ms=1788931237456 mono_ms=21219 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4568663Z CONN_LIFECYCLE: conn=115 role=brain wall_ms=1788931237456 mono_ms=21219 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4569436Z CONN_LIFECYCLE: conn=116 role=brain wall_ms=1788931237456 mono_ms=21219 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4570338Z CONN_LIFECYCLE: conn=117 role=brain stream-subscriber stream=63 wall_ms=1788931237456 mono_ms=21219 event=stream-sub-attach stream=63 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4571537Z CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=65 wall_ms=1788931237456 mono_ms=21219 event=stream-sub-attach stream=65 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4572225Z CONN_LIFECYCLE: conn=117 role=brain stream-subscriber stream=63 wall_ms=1788931237457 mono_ms=21219 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4573031Z CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=65 wall_ms=1788931237457 mono_ms=21219 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4578472Z CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=65 wall_ms=1788931237457 mono_ms=21220 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4579662Z CONN_LIFECYCLE: conn=119 role=brain wall_ms=1788931237457 mono_ms=21220 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4580604Z CONN_LIFECYCLE: conn=119 role=brain stream-subscriber stream=64 wall_ms=1788931237457 mono_ms=21220 event=stream-sub-attach stream=64 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4581545Z CONN_LIFECYCLE: conn=120 role=brain wall_ms=1788931237457 mono_ms=21220 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4582256Z CONN_LIFECYCLE: conn=120 role=brain wall_ms=1788931237458 mono_ms=21220 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4593815Z CONN_LIFECYCLE: conn=117 role=brain stream-subscriber stream=63 wall_ms=1788931237459 mono_ms=21222 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4595714Z CONN_LIFECYCLE: conn=121 role=brain wall_ms=1788931237459 mono_ms=21222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4596732Z CONN_LIFECYCLE: conn=121 role=brain wall_ms=1788931237459 mono_ms=21222 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4626743Z CONN_LIFECYCLE: conn=119 role=brain stream-subscriber stream=64 wall_ms=1788931237462 mono_ms=21225 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4628368Z CONN_LIFECYCLE: conn=122 role=brain wall_ms=1788931237462 mono_ms=21225 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.4629068Z CONN_LIFECYCLE: conn=122 role=brain wall_ms=1788931237462 mono_ms=21225 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.5576863Z CONN_LIFECYCLE: conn=123 role=brain wall_ms=1788931237557 mono_ms=21320 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.5577803Z CONN_LIFECYCLE: conn=123 role=brain wall_ms=1788931237557 mono_ms=21320 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.5582086Z CONN_LIFECYCLE: conn=124 role=brain stream-subscriber stream=69 wall_ms=1788931237558 mono_ms=21320 event=stream-sub-attach stream=69 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.5583793Z CONN_LIFECYCLE: conn=124 role=brain stream-subscriber stream=69 wall_ms=1788931237558 mono_ms=21321 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:37.8177679Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 wall_ms=1788931237817 mono_ms=21580 event=stream-sub-attach stream=70 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.3934430Z CONN_LIFECYCLE: conn=124 role=brain stream-subscriber stream=69 wall_ms=1788931238393 mono_ms=22156 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.3935738Z CONN_LIFECYCLE: conn=125 role=brain wall_ms=1788931238393 mono_ms=22156 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.3936801Z CONN_LIFECYCLE: conn=125 role=brain wall_ms=1788931238393 mono_ms=22156 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5178452Z CONN_LIFECYCLE: conn=126 role=brain wall_ms=1788931238517 mono_ms=22280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5179354Z CONN_LIFECYCLE: conn=126 role=brain wall_ms=1788931238517 mono_ms=22280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5181592Z CONN_LIFECYCLE: conn=127 role=brain stream-subscriber stream=71 wall_ms=1788931238518 mono_ms=22280 event=stream-sub-attach stream=71 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5182839Z CONN_LIFECYCLE: conn=127 role=brain stream-subscriber stream=71 wall_ms=1788931238518 mono_ms=22281 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5189507Z CONN_LIFECYCLE: conn=127 role=brain stream-subscriber stream=71 wall_ms=1788931238518 mono_ms=22281 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5191066Z CONN_LIFECYCLE: conn=128 role=brain wall_ms=1788931238519 mono_ms=22281 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:38.5191971Z CONN_LIFECYCLE: conn=128 role=brain wall_ms=1788931238519 mono_ms=22281 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1741339Z CONN_LIFECYCLE: conn=129 role=brain wall_ms=1788931239173 mono_ms=22936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1742168Z CONN_LIFECYCLE: conn=130 role=brain wall_ms=1788931239174 mono_ms=22936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1743073Z CONN_LIFECYCLE: conn=131 role=brain wall_ms=1788931239174 mono_ms=22936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1744134Z CONN_LIFECYCLE: conn=129 role=brain wall_ms=1788931239174 mono_ms=22936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1745098Z CONN_LIFECYCLE: conn=131 role=brain wall_ms=1788931239174 mono_ms=22936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1745748Z CONN_LIFECYCLE: conn=130 role=brain wall_ms=1788931239174 mono_ms=22937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1746827Z CONN_LIFECYCLE: conn=132 role=brain stream-subscriber stream=72 wall_ms=1788931239174 mono_ms=22937 event=stream-sub-attach stream=72 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1747757Z CONN_LIFECYCLE: conn=134 role=brain stream-subscriber stream=74 wall_ms=1788931239174 mono_ms=22937 event=stream-sub-attach stream=74 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1748916Z CONN_LIFECYCLE: conn=132 role=brain stream-subscriber stream=72 wall_ms=1788931239174 mono_ms=22937 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1749600Z CONN_LIFECYCLE: conn=134 role=brain stream-subscriber stream=74 wall_ms=1788931239174 mono_ms=22937 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1753124Z CONN_LIFECYCLE: conn=133 role=brain wall_ms=1788931239175 mono_ms=22938 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1755312Z CONN_LIFECYCLE: conn=134 role=brain stream-subscriber stream=74 wall_ms=1788931239175 mono_ms=22938 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1757227Z CONN_LIFECYCLE: conn=133 role=brain stream-subscriber stream=73 wall_ms=1788931239175 mono_ms=22938 event=stream-sub-attach stream=73 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1758188Z CONN_LIFECYCLE: conn=135 role=brain wall_ms=1788931239175 mono_ms=22938 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1759053Z CONN_LIFECYCLE: conn=135 role=brain wall_ms=1788931239175 mono_ms=22938 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1769565Z CONN_LIFECYCLE: conn=132 role=brain stream-subscriber stream=72 wall_ms=1788931239176 mono_ms=22939 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1771107Z CONN_LIFECYCLE: conn=136 role=brain wall_ms=1788931239177 mono_ms=22939 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1772085Z CONN_LIFECYCLE: conn=136 role=brain wall_ms=1788931239177 mono_ms=22939 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1850586Z CONN_LIFECYCLE: conn=133 role=brain stream-subscriber stream=73 wall_ms=1788931239184 mono_ms=22947 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1852275Z CONN_LIFECYCLE: conn=137 role=brain wall_ms=1788931239185 mono_ms=22947 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.1853137Z CONN_LIFECYCLE: conn=137 role=brain wall_ms=1788931239185 mono_ms=22948 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.2230115Z TWOHOST OK: toast: B's surface marks replicated back to A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.2295433Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 stream-subscriber stream=58 stream-subscriber stream=59… wall_ms=1788931239229 mono_ms=22992 event=stream-sub-attach stream=75 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.2746008Z CONN_LIFECYCLE: conn=138 role=brain wall_ms=1788931239274 mono_ms=23037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.2747053Z CONN_LIFECYCLE: conn=138 role=brain wall_ms=1788931239274 mono_ms=23037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.2751948Z CONN_LIFECYCLE: conn=139 role=brain stream-subscriber stream=76 wall_ms=1788931239275 mono_ms=23037 event=stream-sub-attach stream=76 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.2753659Z CONN_LIFECYCLE: conn=139 role=brain stream-subscriber stream=76 wall_ms=1788931239275 mono_ms=23038 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:39.3398648Z TWOHOST REST A-3 setup suspend: EDGE at 1788931239339 — Active->Suspended
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.2605971Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 wall_ms=1788931240260 mono_ms=24023 event=stream-sub-release stream=70 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.3647554Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77 wall_ms=1788931240364 mono_ms=24127 event=stream-sub-attach stream=77 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.3906284Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77 wall_ms=1788931240390 mono_ms=24153 event=stream-sub-release stream=77 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7568027Z CONN_LIFECYCLE: conn=139 role=brain stream-subscriber stream=76 wall_ms=1788931240756 mono_ms=24519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7569419Z CONN_LIFECYCLE: conn=140 role=brain wall_ms=1788931240756 mono_ms=24519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7570367Z CONN_LIFECYCLE: conn=140 role=brain wall_ms=1788931240756 mono_ms=24519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7891273Z CONN_LIFECYCLE: conn=141 role=brain wall_ms=1788931240789 mono_ms=24551 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7892323Z CONN_LIFECYCLE: conn=141 role=brain wall_ms=1788931240789 mono_ms=24551 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7894305Z CONN_LIFECYCLE: conn=142 role=brain stream-subscriber stream=78 wall_ms=1788931240789 mono_ms=24552 event=stream-sub-attach stream=78 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7895329Z CONN_LIFECYCLE: conn=142 role=brain stream-subscriber stream=78 wall_ms=1788931240789 mono_ms=24552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7902758Z CONN_LIFECYCLE: conn=142 role=brain stream-subscriber stream=78 wall_ms=1788931240790 mono_ms=24552 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7904379Z CONN_LIFECYCLE: conn=143 role=brain wall_ms=1788931240790 mono_ms=24553 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.7905309Z CONN_LIFECYCLE: conn=143 role=brain wall_ms=1788931240790 mono_ms=24553 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8397977Z CONN_LIFECYCLE: conn=144 role=brain wall_ms=1788931240839 mono_ms=24602 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8399026Z CONN_LIFECYCLE: conn=144 role=brain wall_ms=1788931240839 mono_ms=24602 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8402150Z CONN_LIFECYCLE: conn=145 role=brain stream-subscriber stream=79 wall_ms=1788931240840 mono_ms=24602 event=stream-sub-attach stream=79 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8403358Z CONN_LIFECYCLE: conn=145 role=brain stream-subscriber stream=79 wall_ms=1788931240840 mono_ms=24603 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8418942Z TWOHOST OK: A-3: B advertises Suspended at A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8424266Z CONN_LIFECYCLE: conn=145 role=brain stream-subscriber stream=79 wall_ms=1788931240842 mono_ms=24605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8426065Z CONN_LIFECYCLE: conn=146 role=brain wall_ms=1788931240842 mono_ms=24605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8426914Z CONN_LIFECYCLE: conn=146 role=brain wall_ms=1788931240842 mono_ms=24605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.8491382Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 stream-subscriber stream=58 stream-subscriber stream=59… wall_ms=1788931240848 mono_ms=24611 event=stream-sub-attach stream=80 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:40.9789671Z TWOHOST REST A-3 routed wake: EDGE at 1788931240978 — Suspended->Active
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0922691Z CONN_LIFECYCLE: conn=147 role=brain wall_ms=1788931241092 mono_ms=24854 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0923710Z CONN_LIFECYCLE: conn=147 role=brain wall_ms=1788931241092 mono_ms=24855 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0927058Z CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=84 wall_ms=1788931241092 mono_ms=24855 event=stream-sub-attach stream=84 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0928401Z CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=84 wall_ms=1788931241092 mono_ms=24855 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0947910Z CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=84 wall_ms=1788931241094 mono_ms=24857 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0949570Z CONN_LIFECYCLE: conn=149 role=brain wall_ms=1788931241094 mono_ms=24857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.0950344Z CONN_LIFECYCLE: conn=149 role=brain wall_ms=1788931241094 mono_ms=24857 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.1933083Z CONN_LIFECYCLE: conn=150 role=brain wall_ms=1788931241193 mono_ms=24955 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.1934116Z CONN_LIFECYCLE: conn=150 role=brain wall_ms=1788931241193 mono_ms=24956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.1938612Z CONN_LIFECYCLE: conn=151 role=brain stream-subscriber stream=85 wall_ms=1788931241193 mono_ms=24956 event=stream-sub-attach stream=85 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.1939845Z CONN_LIFECYCLE: conn=151 role=brain stream-subscriber stream=85 wall_ms=1788931241193 mono_ms=24956 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.2294805Z TWOHOST OK: A-3: B advertises Active again at A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:41.2295248Z TWOHOST OK: A-3 bare-id wake routed via the production assembly
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:43.4279421Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931243427 mono_ms=27190 event=stream-sub-attach stream=86 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.5553713Z CONN_LIFECYCLE: conn=151 role=brain stream-subscriber stream=85 wall_ms=1788931244555 mono_ms=28318 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.5555028Z CONN_LIFECYCLE: conn=152 role=brain wall_ms=1788931244555 mono_ms=28318 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.5556689Z CONN_LIFECYCLE: conn=152 role=brain wall_ms=1788931244555 mono_ms=28318 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6312526Z CONN_LIFECYCLE: conn=153 role=brain wall_ms=1788931244631 mono_ms=28393 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6313960Z CONN_LIFECYCLE: conn=154 role=brain wall_ms=1788931244631 mono_ms=28393 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6315161Z CONN_LIFECYCLE: conn=155 role=brain wall_ms=1788931244631 mono_ms=28393 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6316206Z CONN_LIFECYCLE: conn=153 role=brain wall_ms=1788931244631 mono_ms=28394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6317317Z CONN_LIFECYCLE: conn=154 role=brain wall_ms=1788931244631 mono_ms=28394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6318448Z CONN_LIFECYCLE: conn=155 role=brain wall_ms=1788931244631 mono_ms=28394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6319517Z CONN_LIFECYCLE: conn=157 role=brain stream-subscriber stream=89 wall_ms=1788931244631 mono_ms=28394 event=stream-sub-attach stream=89 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6320540Z CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=88 wall_ms=1788931244631 mono_ms=28394 event=stream-sub-attach stream=88 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6321822Z CONN_LIFECYCLE: conn=157 role=brain stream-subscriber stream=89 wall_ms=1788931244631 mono_ms=28394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6322816Z CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=88 wall_ms=1788931244631 mono_ms=28394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6324887Z CONN_LIFECYCLE: conn=157 role=brain stream-subscriber stream=89 wall_ms=1788931244632 mono_ms=28395 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6326495Z CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=88 wall_ms=1788931244632 mono_ms=28395 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6327700Z CONN_LIFECYCLE: conn=158 role=brain wall_ms=1788931244632 mono_ms=28395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6328507Z CONN_LIFECYCLE: conn=159 role=brain wall_ms=1788931244632 mono_ms=28395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6329223Z CONN_LIFECYCLE: conn=160 role=brain wall_ms=1788931244632 mono_ms=28395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6330234Z CONN_LIFECYCLE: conn=159 role=brain wall_ms=1788931244632 mono_ms=28395 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6331716Z CONN_LIFECYCLE: conn=158 role=brain stream-subscriber stream=87 wall_ms=1788931244632 mono_ms=28395 event=stream-sub-attach stream=87 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6333038Z CONN_LIFECYCLE: conn=160 role=brain wall_ms=1788931244632 mono_ms=28395 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6406829Z CONN_LIFECYCLE: conn=158 role=brain stream-subscriber stream=87 wall_ms=1788931244640 mono_ms=28403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6408308Z CONN_LIFECYCLE: conn=161 role=brain wall_ms=1788931244640 mono_ms=28403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.6409127Z CONN_LIFECYCLE: conn=161 role=brain wall_ms=1788931244640 mono_ms=28403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.7365008Z TWOHOST OK: B published its B-2 ticker session id
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.8862019Z 
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.8862542Z running 1 test
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:44.9889112Z PAIR_MEET_UP:twohost step=59631041 id=4567ba10319ca964cdb452672ce2b817babbea9c79de1054041a021c0c4838c6 addr=EndpointAddr { id: PublicKey(4567ba10319ca964cdb452672ce2b817babbea9c79de1054041a021c0c4838c6), addrs: {Ip(100.68.35.65:61568), Ip(192.168.1.81:61568)} }
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0053666Z CONN_LIFECYCLE: conn=1 role=brain wall_ms=1788931245005 mono_ms=0 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0351521Z B2 CHILD: controlling sid 3 — parking until killed
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0352565Z CONN_LIFECYCLE: conn=1 role=brain stream-subscriber stream=1 wall_ms=1788931245035 mono_ms=29 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0355980Z CONN_LIFECYCLE: conn=162 role=brain wall_ms=1788931245035 mono_ms=28798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0357543Z CONN_LIFECYCLE: conn=163 role=brain wall_ms=1788931245035 mono_ms=28798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0360276Z CONN_LIFECYCLE: conn=164 role=brain wall_ms=1788931245035 mono_ms=28798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0362984Z CONN_LIFECYCLE: conn=162 role=brain wall_ms=1788931245035 mono_ms=28798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0365486Z CONN_LIFECYCLE: conn=164 role=brain wall_ms=1788931245035 mono_ms=28798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0369613Z CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=90 wall_ms=1788931245036 mono_ms=28798 event=stream-sub-attach stream=90 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0371161Z CONN_LIFECYCLE: conn=163 role=brain wall_ms=1788931245036 mono_ms=28799 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0372693Z CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=90 wall_ms=1788931245036 mono_ms=28799 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0374137Z CONN_LIFECYCLE: conn=166 role=brain wall_ms=1788931245037 mono_ms=28799 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0375268Z CONN_LIFECYCLE: conn=167 role=brain stream-subscriber stream=92 wall_ms=1788931245037 mono_ms=28800 event=stream-sub-attach stream=92 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0376505Z CONN_LIFECYCLE: conn=166 role=brain stream-subscriber stream=91 wall_ms=1788931245037 mono_ms=28800 event=stream-sub-attach stream=91 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0377676Z CONN_LIFECYCLE: conn=167 role=brain stream-subscriber stream=92 wall_ms=1788931245037 mono_ms=28800 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0384454Z CONN_LIFECYCLE: conn=167 role=brain stream-subscriber stream=92 wall_ms=1788931245038 mono_ms=28801 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0387217Z CONN_LIFECYCLE: conn=168 role=brain wall_ms=1788931245038 mono_ms=28801 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0390012Z CONN_LIFECYCLE: conn=168 role=brain wall_ms=1788931245038 mono_ms=28801 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0413190Z CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=90 wall_ms=1788931245041 mono_ms=28804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0415028Z CONN_LIFECYCLE: conn=169 role=brain wall_ms=1788931245041 mono_ms=28804 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0416175Z CONN_LIFECYCLE: conn=169 role=brain wall_ms=1788931245041 mono_ms=28804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0451550Z CONN_LIFECYCLE: conn=166 role=brain stream-subscriber stream=91 wall_ms=1788931245045 mono_ms=28807 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0452830Z CONN_LIFECYCLE: conn=170 role=brain wall_ms=1788931245045 mono_ms=28808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0453886Z CONN_LIFECYCLE: conn=170 role=brain wall_ms=1788931245045 mono_ms=28808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0486538Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245048 mono_ms=28811 event=stream-sub-release stream=86 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0690559Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245068 mono_ms=28831 event=stream-sub-attach stream=93 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.0789033Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245078 mono_ms=28841 event=stream-sub-release stream=93 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.1429776Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245142 mono_ms=28905 event=stream-sub-attach stream=97 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2879180Z CONN_LIFECYCLE: conn=171 role=brain wall_ms=1788931245287 mono_ms=29050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2880235Z CONN_LIFECYCLE: conn=172 role=brain wall_ms=1788931245287 mono_ms=29050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2881015Z CONN_LIFECYCLE: conn=173 role=brain wall_ms=1788931245287 mono_ms=29050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2882246Z CONN_LIFECYCLE: conn=171 role=brain wall_ms=1788931245287 mono_ms=29050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2883142Z CONN_LIFECYCLE: conn=173 role=brain wall_ms=1788931245287 mono_ms=29050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2884055Z CONN_LIFECYCLE: conn=172 role=brain wall_ms=1788931245287 mono_ms=29050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2885521Z CONN_LIFECYCLE: conn=174 role=brain stream-subscriber stream=100 wall_ms=1788931245288 mono_ms=29051 event=stream-sub-attach stream=100 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2886815Z CONN_LIFECYCLE: conn=175 role=brain stream-subscriber stream=98 wall_ms=1788931245288 mono_ms=29051 event=stream-sub-attach stream=98 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2887812Z CONN_LIFECYCLE: conn=174 role=brain stream-subscriber stream=100 wall_ms=1788931245288 mono_ms=29051 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2888676Z CONN_LIFECYCLE: conn=175 role=brain stream-subscriber stream=98 wall_ms=1788931245288 mono_ms=29051 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2890933Z CONN_LIFECYCLE: conn=176 role=brain wall_ms=1788931245289 mono_ms=29051 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2892114Z CONN_LIFECYCLE: conn=174 role=brain stream-subscriber stream=100 wall_ms=1788931245289 mono_ms=29051 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2893148Z CONN_LIFECYCLE: conn=176 role=brain stream-subscriber stream=99 wall_ms=1788931245289 mono_ms=29051 event=stream-sub-attach stream=99 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2893956Z CONN_LIFECYCLE: conn=177 role=brain wall_ms=1788931245289 mono_ms=29052 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2894846Z CONN_LIFECYCLE: conn=177 role=brain wall_ms=1788931245289 mono_ms=29052 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2908397Z CONN_LIFECYCLE: conn=175 role=brain stream-subscriber stream=98 wall_ms=1788931245290 mono_ms=29053 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2910052Z CONN_LIFECYCLE: conn=178 role=brain wall_ms=1788931245290 mono_ms=29053 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2911139Z CONN_LIFECYCLE: conn=178 role=brain wall_ms=1788931245291 mono_ms=29053 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2955041Z CONN_LIFECYCLE: conn=176 role=brain stream-subscriber stream=99 wall_ms=1788931245295 mono_ms=29058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2956709Z CONN_LIFECYCLE: conn=179 role=brain wall_ms=1788931245295 mono_ms=29058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.2958290Z CONN_LIFECYCLE: conn=179 role=brain wall_ms=1788931245295 mono_ms=29058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.3806927Z TWOHOST OK: B-2: B saw the child's control stamps
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.3842754Z TWOHOST OK: B-2 attacher child killed mid-control (B asserts the reap)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.3843492Z TWOHOST OK: advert: B's LEGACY-shape endpoint reached A (blanket close ≠ DISCOVER close)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.4393018Z CONN_LIFECYCLE: conn=180 role=brain wall_ms=1788931245439 mono_ms=29202 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.4394427Z CONN_LIFECYCLE: conn=180 role=brain wall_ms=1788931245439 mono_ms=29202 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.4400936Z CONN_LIFECYCLE: conn=181 role=brain stream-subscriber stream=101 wall_ms=1788931245440 mono_ms=29202 event=stream-sub-attach stream=101 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.4402425Z CONN_LIFECYCLE: conn=181 role=brain stream-subscriber stream=101 wall_ms=1788931245440 mono_ms=29202 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5545975Z CONN_LIFECYCLE: conn=181 role=brain stream-subscriber stream=101 wall_ms=1788931245554 mono_ms=29317 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5547215Z CONN_LIFECYCLE: conn=182 role=brain wall_ms=1788931245554 mono_ms=29317 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5548087Z CONN_LIFECYCLE: conn=182 role=brain wall_ms=1788931245554 mono_ms=29317 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5908605Z CONN_LIFECYCLE: conn=183 role=brain wall_ms=1788931245590 mono_ms=29353 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5909775Z CONN_LIFECYCLE: conn=183 role=brain wall_ms=1788931245590 mono_ms=29353 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5911916Z CONN_LIFECYCLE: conn=184 role=brain stream-subscriber stream=102 wall_ms=1788931245591 mono_ms=29353 event=stream-sub-attach stream=102 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5913623Z CONN_LIFECYCLE: conn=184 role=brain stream-subscriber stream=102 wall_ms=1788931245591 mono_ms=29354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5919608Z CONN_LIFECYCLE: conn=184 role=brain stream-subscriber stream=102 wall_ms=1788931245591 mono_ms=29354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5921282Z CONN_LIFECYCLE: conn=185 role=brain wall_ms=1788931245592 mono_ms=29354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.5922387Z CONN_LIFECYCLE: conn=185 role=brain wall_ms=1788931245592 mono_ms=29354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.6576904Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245657 mono_ms=29420 event=stream-sub-release stream=97 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.9156877Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245915 mono_ms=29677 event=stream-sub-attach stream=103 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:45.9423873Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931245941 mono_ms=29704 event=stream-sub-release stream=103 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2468833Z CONN_LIFECYCLE: conn=186 role=brain wall_ms=1788931246246 mono_ms=30009 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2469953Z CONN_LIFECYCLE: conn=187 role=brain wall_ms=1788931246246 mono_ms=30009 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2471642Z CONN_LIFECYCLE: conn=186 role=brain wall_ms=1788931246246 mono_ms=30009 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2472797Z CONN_LIFECYCLE: conn=187 role=brain wall_ms=1788931246246 mono_ms=30009 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2473724Z CONN_LIFECYCLE: conn=188 role=brain stream-subscriber stream=104 wall_ms=1788931246247 mono_ms=30010 event=stream-sub-attach stream=104 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2475043Z CONN_LIFECYCLE: conn=188 role=brain stream-subscriber stream=104 wall_ms=1788931246247 mono_ms=30010 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2481462Z CONN_LIFECYCLE: conn=189 role=brain wall_ms=1788931246248 mono_ms=30010 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2483068Z CONN_LIFECYCLE: conn=189 role=brain stream-subscriber stream=105 wall_ms=1788931246248 mono_ms=30011 event=stream-sub-attach stream=105 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2498376Z CONN_LIFECYCLE: conn=188 role=brain stream-subscriber stream=104 wall_ms=1788931246249 mono_ms=30012 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2500105Z CONN_LIFECYCLE: conn=190 role=brain wall_ms=1788931246249 mono_ms=30012 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2501523Z CONN_LIFECYCLE: conn=190 role=brain wall_ms=1788931246250 mono_ms=30012 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2536464Z CONN_LIFECYCLE: conn=189 role=brain stream-subscriber stream=105 wall_ms=1788931246253 mono_ms=30016 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2538193Z CONN_LIFECYCLE: conn=191 role=brain wall_ms=1788931246253 mono_ms=30016 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2539138Z CONN_LIFECYCLE: conn=191 role=brain wall_ms=1788931246253 mono_ms=30016 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2971436Z CONN_LIFECYCLE: conn=192 role=brain wall_ms=1788931246297 mono_ms=30059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2972582Z CONN_LIFECYCLE: conn=192 role=brain wall_ms=1788931246297 mono_ms=30059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2975991Z CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=106 wall_ms=1788931246297 mono_ms=30060 event=stream-sub-attach stream=106 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2977388Z CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=106 wall_ms=1788931246297 mono_ms=30060 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2983437Z CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=106 wall_ms=1788931246298 mono_ms=30061 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2985300Z CONN_LIFECYCLE: conn=194 role=brain wall_ms=1788931246298 mono_ms=30061 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.2986338Z CONN_LIFECYCLE: conn=194 role=brain wall_ms=1788931246298 mono_ms=30061 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.3856514Z TWOHOST OK: advert: a SECOND advertisement round crossed (the withheld arm's barrier)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.3857478Z TWOHOST OK: advertisement round — legacy shape disclosed, named close withheld
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.3981248Z CONN_LIFECYCLE: conn=195 role=brain wall_ms=1788931246398 mono_ms=30160 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.3982702Z CONN_LIFECYCLE: conn=195 role=brain wall_ms=1788931246398 mono_ms=30161 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.3987562Z CONN_LIFECYCLE: conn=196 role=brain stream-subscriber stream=107 wall_ms=1788931246398 mono_ms=30161 event=stream-sub-attach stream=107 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.3989023Z CONN_LIFECYCLE: conn=196 role=brain stream-subscriber stream=107 wall_ms=1788931246398 mono_ms=30161 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6260343Z CONN_LIFECYCLE: conn=196 role=brain stream-subscriber stream=107 wall_ms=1788931246625 mono_ms=30388 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6261864Z CONN_LIFECYCLE: conn=197 role=brain wall_ms=1788931246626 mono_ms=30388 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6262745Z CONN_LIFECYCLE: conn=197 role=brain wall_ms=1788931246626 mono_ms=30389 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6469332Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931246646 mono_ms=30409 event=stream-sub-attach stream=111 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6524279Z CONN_LIFECYCLE: conn=198 role=brain wall_ms=1788931246652 mono_ms=30415 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6525442Z CONN_LIFECYCLE: conn=198 role=brain wall_ms=1788931246652 mono_ms=30415 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6527716Z CONN_LIFECYCLE: conn=199 role=brain stream-subscriber stream=112 wall_ms=1788931246652 mono_ms=30415 event=stream-sub-attach stream=112 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6528610Z CONN_LIFECYCLE: conn=199 role=brain stream-subscriber stream=112 wall_ms=1788931246652 mono_ms=30415 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6536453Z CONN_LIFECYCLE: conn=199 role=brain stream-subscriber stream=112 wall_ms=1788931246653 mono_ms=30416 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6538222Z CONN_LIFECYCLE: conn=200 role=brain wall_ms=1788931246653 mono_ms=30416 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:46.6539143Z CONN_LIFECYCLE: conn=200 role=brain wall_ms=1788931246653 mono_ms=30416 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.1344183Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931247134 mono_ms=30896 event=stream-sub-release stream=111 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.1508841Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931247150 mono_ms=30913 event=stream-sub-attach stream=113 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.1633835Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931247163 mono_ms=30925 event=stream-sub-release stream=113 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3083521Z CONN_LIFECYCLE: conn=201 role=brain wall_ms=1788931247308 mono_ms=31071 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3084499Z CONN_LIFECYCLE: conn=201 role=brain wall_ms=1788931247308 mono_ms=31071 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3088154Z CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=114 wall_ms=1788931247308 mono_ms=31071 event=stream-sub-attach stream=114 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3089432Z CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=114 wall_ms=1788931247308 mono_ms=31071 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3115060Z CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=114 wall_ms=1788931247311 mono_ms=31074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3116877Z CONN_LIFECYCLE: conn=203 role=brain wall_ms=1788931247311 mono_ms=31074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3117916Z CONN_LIFECYCLE: conn=203 role=brain wall_ms=1788931247311 mono_ms=31074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3589083Z CONN_LIFECYCLE: conn=204 role=brain wall_ms=1788931247358 mono_ms=31121 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3590419Z CONN_LIFECYCLE: conn=205 role=brain wall_ms=1788931247358 mono_ms=31121 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3592492Z CONN_LIFECYCLE: conn=205 role=brain wall_ms=1788931247358 mono_ms=31121 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3593550Z CONN_LIFECYCLE: conn=204 role=brain wall_ms=1788931247358 mono_ms=31121 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3594694Z CONN_LIFECYCLE: conn=206 role=brain stream-subscriber stream=116 wall_ms=1788931247359 mono_ms=31122 event=stream-sub-attach stream=116 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3595981Z CONN_LIFECYCLE: conn=206 role=brain stream-subscriber stream=116 wall_ms=1788931247359 mono_ms=31122 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3603615Z CONN_LIFECYCLE: conn=207 role=brain wall_ms=1788931247360 mono_ms=31123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3604773Z CONN_LIFECYCLE: conn=206 role=brain stream-subscriber stream=116 wall_ms=1788931247360 mono_ms=31123 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3609732Z CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=115 wall_ms=1788931247360 mono_ms=31123 event=stream-sub-attach stream=115 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3611733Z CONN_LIFECYCLE: conn=208 role=brain wall_ms=1788931247360 mono_ms=31123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3614354Z CONN_LIFECYCLE: conn=208 role=brain wall_ms=1788931247360 mono_ms=31123 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3674188Z CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=115 wall_ms=1788931247367 mono_ms=31130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3675969Z CONN_LIFECYCLE: conn=209 role=brain wall_ms=1788931247367 mono_ms=31130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.3677477Z CONN_LIFECYCLE: conn=209 role=brain wall_ms=1788931247367 mono_ms=31130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.4595610Z CONN_LIFECYCLE: conn=210 role=brain wall_ms=1788931247459 mono_ms=31222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.4596818Z CONN_LIFECYCLE: conn=210 role=brain wall_ms=1788931247459 mono_ms=31222 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.4601618Z CONN_LIFECYCLE: conn=211 role=brain stream-subscriber stream=117 wall_ms=1788931247460 mono_ms=31222 event=stream-sub-attach stream=117 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.4602825Z CONN_LIFECYCLE: conn=211 role=brain stream-subscriber stream=117 wall_ms=1788931247460 mono_ms=31223 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8393330Z CONN_LIFECYCLE: conn=211 role=brain stream-subscriber stream=117 wall_ms=1788931247839 mono_ms=31601 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8395473Z CONN_LIFECYCLE: conn=212 role=brain wall_ms=1788931247839 mono_ms=31602 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8396916Z CONN_LIFECYCLE: conn=212 role=brain wall_ms=1788931247839 mono_ms=31602 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8650110Z CONN_LIFECYCLE: conn=213 role=brain wall_ms=1788931247864 mono_ms=31627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8651290Z CONN_LIFECYCLE: conn=213 role=brain wall_ms=1788931247865 mono_ms=31627 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8653380Z CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=121 wall_ms=1788931247865 mono_ms=31628 event=stream-sub-attach stream=121 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8654786Z CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=121 wall_ms=1788931247865 mono_ms=31628 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8661996Z CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=121 wall_ms=1788931247866 mono_ms=31628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8663724Z CONN_LIFECYCLE: conn=215 role=brain wall_ms=1788931247866 mono_ms=31629 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8664536Z CONN_LIFECYCLE: conn=215 role=brain wall_ms=1788931247866 mono_ms=31629 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:47.8807016Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931247880 mono_ms=31643 event=stream-sub-attach stream=122 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.3635937Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931248363 mono_ms=32126 event=stream-sub-release stream=122 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.3958309Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931248395 mono_ms=32158 event=stream-sub-attach stream=123 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.4350059Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931248434 mono_ms=32197 event=stream-sub-release stream=123 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5204641Z CONN_LIFECYCLE: conn=216 role=brain wall_ms=1788931248520 mono_ms=32283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5205414Z CONN_LIFECYCLE: conn=217 role=brain wall_ms=1788931248520 mono_ms=32283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5207317Z CONN_LIFECYCLE: conn=218 role=brain wall_ms=1788931248520 mono_ms=32283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5208518Z CONN_LIFECYCLE: conn=216 role=brain wall_ms=1788931248520 mono_ms=32283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5209675Z CONN_LIFECYCLE: conn=217 role=brain wall_ms=1788931248520 mono_ms=32283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5210652Z CONN_LIFECYCLE: conn=218 role=brain wall_ms=1788931248520 mono_ms=32283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5211761Z CONN_LIFECYCLE: conn=220 role=brain stream-subscriber stream=126 wall_ms=1788931248520 mono_ms=32283 event=stream-sub-attach stream=126 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5213153Z CONN_LIFECYCLE: conn=219 role=brain stream-subscriber stream=124 wall_ms=1788931248520 mono_ms=32283 event=stream-sub-attach stream=124 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5214494Z CONN_LIFECYCLE: conn=220 role=brain stream-subscriber stream=126 wall_ms=1788931248521 mono_ms=32283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5215611Z CONN_LIFECYCLE: conn=219 role=brain stream-subscriber stream=124 wall_ms=1788931248521 mono_ms=32283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5219263Z CONN_LIFECYCLE: conn=221 role=brain wall_ms=1788931248521 mono_ms=32284 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5220456Z CONN_LIFECYCLE: conn=220 role=brain stream-subscriber stream=126 wall_ms=1788931248521 mono_ms=32284 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5221636Z CONN_LIFECYCLE: conn=222 role=brain wall_ms=1788931248521 mono_ms=32284 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5222728Z CONN_LIFECYCLE: conn=221 role=brain stream-subscriber stream=125 wall_ms=1788931248522 mono_ms=32284 event=stream-sub-attach stream=125 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5223799Z CONN_LIFECYCLE: conn=222 role=brain wall_ms=1788931248522 mono_ms=32284 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5238702Z CONN_LIFECYCLE: conn=219 role=brain stream-subscriber stream=124 wall_ms=1788931248523 mono_ms=32286 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5240154Z CONN_LIFECYCLE: conn=223 role=brain wall_ms=1788931248523 mono_ms=32286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5241238Z CONN_LIFECYCLE: conn=223 role=brain wall_ms=1788931248524 mono_ms=32286 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5284095Z CONN_LIFECYCLE: conn=221 role=brain stream-subscriber stream=125 wall_ms=1788931248528 mono_ms=32291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5286020Z CONN_LIFECYCLE: conn=224 role=brain wall_ms=1788931248528 mono_ms=32291 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.5286998Z CONN_LIFECYCLE: conn=224 role=brain wall_ms=1788931248528 mono_ms=32291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.6716036Z CONN_LIFECYCLE: conn=225 role=brain wall_ms=1788931248671 mono_ms=32434 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.6717167Z CONN_LIFECYCLE: conn=225 role=brain wall_ms=1788931248671 mono_ms=32434 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.6721547Z CONN_LIFECYCLE: conn=226 role=brain stream-subscriber stream=127 wall_ms=1788931248672 mono_ms=32434 event=stream-sub-attach stream=127 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.6722887Z CONN_LIFECYCLE: conn=226 role=brain stream-subscriber stream=127 wall_ms=1788931248672 mono_ms=32435 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9033813Z CONN_LIFECYCLE: conn=226 role=brain stream-subscriber stream=127 wall_ms=1788931248903 mono_ms=32666 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9035280Z CONN_LIFECYCLE: conn=227 role=brain wall_ms=1788931248903 mono_ms=32666 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9036582Z CONN_LIFECYCLE: conn=227 role=brain wall_ms=1788931248903 mono_ms=32666 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9748013Z CONN_LIFECYCLE: conn=228 role=brain wall_ms=1788931248974 mono_ms=32737 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9749088Z CONN_LIFECYCLE: conn=228 role=brain wall_ms=1788931248974 mono_ms=32737 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9751066Z CONN_LIFECYCLE: conn=229 role=brain stream-subscriber stream=128 wall_ms=1788931248975 mono_ms=32737 event=stream-sub-attach stream=128 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9752295Z CONN_LIFECYCLE: conn=229 role=brain stream-subscriber stream=128 wall_ms=1788931248975 mono_ms=32737 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9758583Z CONN_LIFECYCLE: conn=229 role=brain stream-subscriber stream=128 wall_ms=1788931248975 mono_ms=32738 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9760270Z CONN_LIFECYCLE: conn=230 role=brain wall_ms=1788931248975 mono_ms=32738 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:48.9761259Z CONN_LIFECYCLE: conn=230 role=brain wall_ms=1788931248976 mono_ms=32738 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.3211164Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931249320 mono_ms=33083 event=stream-sub-attach stream=132 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7207728Z CONN_LIFECYCLE: conn=231 role=brain wall_ms=1788931249720 mono_ms=33483 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7222735Z CONN_LIFECYCLE: conn=231 role=brain wall_ms=1788931249721 mono_ms=33484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7254202Z CONN_LIFECYCLE: conn=232 role=brain wall_ms=1788931249725 mono_ms=33488 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7260355Z CONN_LIFECYCLE: conn=232 role=brain stream-subscriber stream=134 wall_ms=1788931249725 mono_ms=33488 event=stream-sub-attach stream=134 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7324804Z CONN_LIFECYCLE: conn=233 role=brain wall_ms=1788931249731 mono_ms=33494 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7355381Z CONN_LIFECYCLE: conn=232 role=brain stream-subscriber stream=134 wall_ms=1788931249733 mono_ms=33496 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7359978Z CONN_LIFECYCLE: conn=233 role=brain wall_ms=1788931249735 mono_ms=33497 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7363665Z CONN_LIFECYCLE: conn=235 role=brain wall_ms=1788931249736 mono_ms=33499 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7365569Z CONN_LIFECYCLE: conn=235 role=brain wall_ms=1788931249736 mono_ms=33499 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7382923Z CONN_LIFECYCLE: conn=234 role=brain wall_ms=1788931249737 mono_ms=33499 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7385535Z CONN_LIFECYCLE: conn=234 role=brain wall_ms=1788931249737 mono_ms=33500 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7405072Z CONN_LIFECYCLE: conn=236 role=brain stream-subscriber stream=135 wall_ms=1788931249740 mono_ms=33502 event=stream-sub-attach stream=135 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7416577Z CONN_LIFECYCLE: conn=237 role=brain stream-subscriber stream=133 wall_ms=1788931249741 mono_ms=33503 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7420409Z CONN_LIFECYCLE: conn=236 role=brain stream-subscriber stream=135 wall_ms=1788931249741 mono_ms=33503 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7436157Z CONN_LIFECYCLE: conn=237 role=brain stream-subscriber stream=133 wall_ms=1788931249743 mono_ms=33505 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7466661Z CONN_LIFECYCLE: conn=236 role=brain stream-subscriber stream=135 wall_ms=1788931249746 mono_ms=33508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7477333Z CONN_LIFECYCLE: conn=238 role=brain wall_ms=1788931249747 mono_ms=33510 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7483482Z CONN_LIFECYCLE: conn=238 role=brain wall_ms=1788931249748 mono_ms=33511 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7573095Z CONN_LIFECYCLE: conn=237 role=brain stream-subscriber stream=133 wall_ms=1788931249756 mono_ms=33519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7580557Z CONN_LIFECYCLE: conn=239 role=brain wall_ms=1788931249757 mono_ms=33519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7584854Z CONN_LIFECYCLE: conn=239 role=brain wall_ms=1788931249757 mono_ms=33520 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7706531Z CONN_LIFECYCLE: conn=240 role=brain wall_ms=1788931249770 mono_ms=33533 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7711085Z CONN_LIFECYCLE: conn=240 role=brain wall_ms=1788931249770 mono_ms=33533 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7720660Z CONN_LIFECYCLE: conn=241 role=brain stream-subscriber stream=136 wall_ms=1788931249771 mono_ms=33534 event=stream-sub-attach stream=136 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:49.7727629Z CONN_LIFECYCLE: conn=241 role=brain stream-subscriber stream=136 wall_ms=1788931249772 mono_ms=33534 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9169462Z CONN_LIFECYCLE: conn=241 role=brain stream-subscriber stream=136 wall_ms=1788931250916 mono_ms=34679 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9170642Z CONN_LIFECYCLE: conn=242 role=brain wall_ms=1788931250917 mono_ms=34679 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9171627Z CONN_LIFECYCLE: conn=242 role=brain wall_ms=1788931250917 mono_ms=34679 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9830602Z CONN_LIFECYCLE: conn=243 role=brain wall_ms=1788931250982 mono_ms=34745 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9831783Z CONN_LIFECYCLE: conn=243 role=brain wall_ms=1788931250983 mono_ms=34745 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9833404Z CONN_LIFECYCLE: conn=244 role=brain stream-subscriber stream=137 wall_ms=1788931250983 mono_ms=34746 event=stream-sub-attach stream=137 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9834528Z CONN_LIFECYCLE: conn=244 role=brain stream-subscriber stream=137 wall_ms=1788931250983 mono_ms=34746 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9840747Z CONN_LIFECYCLE: conn=244 role=brain stream-subscriber stream=137 wall_ms=1788931250983 mono_ms=34746 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9842398Z CONN_LIFECYCLE: conn=245 role=brain wall_ms=1788931250984 mono_ms=34746 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:50.9843216Z CONN_LIFECYCLE: conn=245 role=brain wall_ms=1788931250984 mono_ms=34747 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.5620491Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931251561 mono_ms=35324 event=stream-sub-release stream=132 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.5784771Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931251578 mono_ms=35341 event=stream-sub-attach stream=138 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.5904370Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931251590 mono_ms=35352 event=stream-sub-release stream=138 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6384815Z CONN_LIFECYCLE: conn=246 role=brain wall_ms=1788931251638 mono_ms=35401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6386263Z CONN_LIFECYCLE: conn=246 role=brain wall_ms=1788931251638 mono_ms=35401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6388901Z CONN_LIFECYCLE: conn=247 role=brain stream-subscriber stream=139 wall_ms=1788931251638 mono_ms=35401 event=stream-sub-attach stream=139 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6390076Z CONN_LIFECYCLE: conn=247 role=brain stream-subscriber stream=139 wall_ms=1788931251638 mono_ms=35401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6410037Z CONN_LIFECYCLE: conn=247 role=brain stream-subscriber stream=139 wall_ms=1788931251640 mono_ms=35403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6412141Z CONN_LIFECYCLE: conn=248 role=brain wall_ms=1788931251641 mono_ms=35403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6412890Z CONN_LIFECYCLE: conn=248 role=brain wall_ms=1788931251641 mono_ms=35404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6890201Z CONN_LIFECYCLE: conn=249 role=brain wall_ms=1788931251688 mono_ms=35451 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6891114Z CONN_LIFECYCLE: conn=250 role=brain wall_ms=1788931251688 mono_ms=35451 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6891882Z CONN_LIFECYCLE: conn=249 role=brain wall_ms=1788931251689 mono_ms=35451 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6893015Z CONN_LIFECYCLE: conn=250 role=brain wall_ms=1788931251689 mono_ms=35451 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6894847Z CONN_LIFECYCLE: conn=251 role=brain stream-subscriber stream=141 wall_ms=1788931251689 mono_ms=35452 event=stream-sub-attach stream=141 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6896291Z CONN_LIFECYCLE: conn=251 role=brain stream-subscriber stream=141 wall_ms=1788931251689 mono_ms=35452 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6901728Z CONN_LIFECYCLE: conn=252 role=brain wall_ms=1788931251690 mono_ms=35452 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6903064Z CONN_LIFECYCLE: conn=251 role=brain stream-subscriber stream=141 wall_ms=1788931251690 mono_ms=35453 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6952294Z CONN_LIFECYCLE: conn=252 role=brain stream-subscriber stream=140 wall_ms=1788931251690 mono_ms=35453 event=stream-sub-attach stream=140 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6953062Z CONN_LIFECYCLE: conn=253 role=brain wall_ms=1788931251690 mono_ms=35453 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6953668Z CONN_LIFECYCLE: conn=253 role=brain wall_ms=1788931251690 mono_ms=35453 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6954510Z CONN_LIFECYCLE: conn=252 role=brain stream-subscriber stream=140 wall_ms=1788931251692 mono_ms=35455 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6955597Z CONN_LIFECYCLE: conn=254 role=brain wall_ms=1788931251692 mono_ms=35455 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.6956571Z CONN_LIFECYCLE: conn=254 role=brain wall_ms=1788931251692 mono_ms=35455 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.7898509Z CONN_LIFECYCLE: conn=255 role=brain wall_ms=1788931251789 mono_ms=35552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.7899846Z CONN_LIFECYCLE: conn=255 role=brain wall_ms=1788931251789 mono_ms=35552 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.7904687Z CONN_LIFECYCLE: conn=256 role=brain stream-subscriber stream=142 wall_ms=1788931251790 mono_ms=35553 event=stream-sub-attach stream=142 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:51.7906671Z CONN_LIFECYCLE: conn=256 role=brain stream-subscriber stream=142 wall_ms=1788931251790 mono_ms=35553 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.4452480Z CONN_LIFECYCLE: conn=256 role=brain stream-subscriber stream=142 wall_ms=1788931252445 mono_ms=36207 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.4453778Z CONN_LIFECYCLE: conn=257 role=brain wall_ms=1788931252445 mono_ms=36208 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.4454903Z CONN_LIFECYCLE: conn=257 role=brain wall_ms=1788931252445 mono_ms=36208 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5044241Z CONN_LIFECYCLE: conn=258 role=brain wall_ms=1788931252504 mono_ms=36267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5045633Z CONN_LIFECYCLE: conn=258 role=brain wall_ms=1788931252504 mono_ms=36267 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5047254Z CONN_LIFECYCLE: conn=259 role=brain stream-subscriber stream=146 wall_ms=1788931252504 mono_ms=36267 event=stream-sub-attach stream=146 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5049198Z CONN_LIFECYCLE: conn=259 role=brain stream-subscriber stream=146 wall_ms=1788931252504 mono_ms=36267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5056896Z CONN_LIFECYCLE: conn=259 role=brain stream-subscriber stream=146 wall_ms=1788931252505 mono_ms=36268 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5058650Z CONN_LIFECYCLE: conn=260 role=brain wall_ms=1788931252505 mono_ms=36268 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5059607Z CONN_LIFECYCLE: conn=260 role=brain wall_ms=1788931252505 mono_ms=36268 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.5320834Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931252531 mono_ms=36294 event=stream-sub-attach stream=147 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:52.9892816Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931252989 mono_ms=36751 event=stream-sub-release stream=147 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.0046590Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931253004 mono_ms=36767 event=stream-sub-attach stream=148 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.0167437Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931253016 mono_ms=36779 event=stream-sub-release stream=148 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2105152Z CONN_LIFECYCLE: conn=261 role=brain wall_ms=1788931253210 mono_ms=36973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2106545Z CONN_LIFECYCLE: conn=262 role=brain wall_ms=1788931253210 mono_ms=36973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2107422Z CONN_LIFECYCLE: conn=263 role=brain wall_ms=1788931253210 mono_ms=36973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2108524Z CONN_LIFECYCLE: conn=262 role=brain wall_ms=1788931253210 mono_ms=36973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2109805Z CONN_LIFECYCLE: conn=261 role=brain wall_ms=1788931253210 mono_ms=36973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2110899Z CONN_LIFECYCLE: conn=263 role=brain wall_ms=1788931253210 mono_ms=36973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2112014Z CONN_LIFECYCLE: conn=266 role=brain stream-subscriber stream=149 wall_ms=1788931253210 mono_ms=36973 event=stream-sub-attach stream=149 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2113616Z CONN_LIFECYCLE: conn=264 role=brain stream-subscriber stream=151 wall_ms=1788931253210 mono_ms=36973 event=stream-sub-attach stream=151 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2114861Z CONN_LIFECYCLE: conn=266 role=brain stream-subscriber stream=149 wall_ms=1788931253211 mono_ms=36973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2115903Z CONN_LIFECYCLE: conn=264 role=brain stream-subscriber stream=151 wall_ms=1788931253211 mono_ms=36973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2120005Z CONN_LIFECYCLE: conn=264 role=brain stream-subscriber stream=151 wall_ms=1788931253211 mono_ms=36974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2121392Z CONN_LIFECYCLE: conn=265 role=brain wall_ms=1788931253211 mono_ms=36974 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2122314Z CONN_LIFECYCLE: conn=267 role=brain wall_ms=1788931253212 mono_ms=36974 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2123421Z CONN_LIFECYCLE: conn=265 role=brain stream-subscriber stream=150 wall_ms=1788931253212 mono_ms=36975 event=stream-sub-attach stream=150 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2124401Z CONN_LIFECYCLE: conn=267 role=brain wall_ms=1788931253212 mono_ms=36975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2138811Z CONN_LIFECYCLE: conn=266 role=brain stream-subscriber stream=149 wall_ms=1788931253213 mono_ms=36976 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2140711Z CONN_LIFECYCLE: conn=268 role=brain wall_ms=1788931253213 mono_ms=36976 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2142225Z CONN_LIFECYCLE: conn=268 role=brain wall_ms=1788931253214 mono_ms=36976 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2203232Z CONN_LIFECYCLE: conn=265 role=brain stream-subscriber stream=150 wall_ms=1788931253220 mono_ms=36983 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2204673Z CONN_LIFECYCLE: conn=269 role=brain wall_ms=1788931253220 mono_ms=36983 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.2205685Z CONN_LIFECYCLE: conn=269 role=brain wall_ms=1788931253220 mono_ms=36983 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.3115177Z CONN_LIFECYCLE: conn=270 role=brain wall_ms=1788931253311 mono_ms=37074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.3116209Z CONN_LIFECYCLE: conn=270 role=brain wall_ms=1788931253311 mono_ms=37074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.3120690Z CONN_LIFECYCLE: conn=271 role=brain stream-subscriber stream=152 wall_ms=1788931253311 mono_ms=37074 event=stream-sub-attach stream=152 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.3121849Z CONN_LIFECYCLE: conn=271 role=brain stream-subscriber stream=152 wall_ms=1788931253312 mono_ms=37074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4058036Z CONN_LIFECYCLE: conn=271 role=brain stream-subscriber stream=152 wall_ms=1788931253405 mono_ms=37168 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4059496Z CONN_LIFECYCLE: conn=272 role=brain wall_ms=1788931253405 mono_ms=37168 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4060252Z CONN_LIFECYCLE: conn=272 role=brain wall_ms=1788931253405 mono_ms=37168 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4625872Z CONN_LIFECYCLE: conn=273 role=brain wall_ms=1788931253462 mono_ms=37225 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4626861Z CONN_LIFECYCLE: conn=273 role=brain wall_ms=1788931253462 mono_ms=37225 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4628749Z CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=153 wall_ms=1788931253462 mono_ms=37225 event=stream-sub-attach stream=153 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4630000Z CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=153 wall_ms=1788931253462 mono_ms=37225 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4636809Z CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=153 wall_ms=1788931253463 mono_ms=37226 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4638338Z CONN_LIFECYCLE: conn=275 role=brain wall_ms=1788931253463 mono_ms=37226 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.4639243Z CONN_LIFECYCLE: conn=275 role=brain wall_ms=1788931253463 mono_ms=37226 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:53.8483253Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931253848 mono_ms=37610 event=stream-sub-attach stream=157 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1166784Z CONN_LIFECYCLE: conn=277 role=brain wall_ms=1788931254116 mono_ms=37879 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1167954Z CONN_LIFECYCLE: conn=276 role=brain wall_ms=1788931254116 mono_ms=37879 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1168780Z CONN_LIFECYCLE: conn=278 role=brain wall_ms=1788931254116 mono_ms=37879 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1169720Z CONN_LIFECYCLE: conn=277 role=brain wall_ms=1788931254116 mono_ms=37879 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1170732Z CONN_LIFECYCLE: conn=276 role=brain wall_ms=1788931254116 mono_ms=37879 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1171603Z CONN_LIFECYCLE: conn=278 role=brain wall_ms=1788931254116 mono_ms=37879 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1172580Z CONN_LIFECYCLE: conn=279 role=brain stream-subscriber stream=160 wall_ms=1788931254117 mono_ms=37879 event=stream-sub-attach stream=160 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1173467Z CONN_LIFECYCLE: conn=281 role=brain stream-subscriber stream=158 wall_ms=1788931254117 mono_ms=37879 event=stream-sub-attach stream=158 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1174261Z CONN_LIFECYCLE: conn=279 role=brain stream-subscriber stream=160 wall_ms=1788931254117 mono_ms=37880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1175416Z CONN_LIFECYCLE: conn=281 role=brain stream-subscriber stream=158 wall_ms=1788931254117 mono_ms=37880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1179726Z CONN_LIFECYCLE: conn=279 role=brain stream-subscriber stream=160 wall_ms=1788931254117 mono_ms=37880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1180831Z CONN_LIFECYCLE: conn=280 role=brain wall_ms=1788931254117 mono_ms=37880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1181627Z CONN_LIFECYCLE: conn=282 role=brain wall_ms=1788931254118 mono_ms=37880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1182657Z CONN_LIFECYCLE: conn=280 role=brain stream-subscriber stream=159 wall_ms=1788931254118 mono_ms=37880 event=stream-sub-attach stream=159 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1183842Z CONN_LIFECYCLE: conn=282 role=brain wall_ms=1788931254118 mono_ms=37880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1196321Z CONN_LIFECYCLE: conn=281 role=brain stream-subscriber stream=158 wall_ms=1788931254119 mono_ms=37882 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1198061Z CONN_LIFECYCLE: conn=283 role=brain wall_ms=1788931254119 mono_ms=37882 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1199071Z CONN_LIFECYCLE: conn=283 role=brain wall_ms=1788931254119 mono_ms=37882 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1247889Z CONN_LIFECYCLE: conn=280 role=brain stream-subscriber stream=159 wall_ms=1788931254124 mono_ms=37887 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1249427Z CONN_LIFECYCLE: conn=284 role=brain wall_ms=1788931254124 mono_ms=37887 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.1250500Z CONN_LIFECYCLE: conn=284 role=brain wall_ms=1788931254124 mono_ms=37887 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.2680893Z CONN_LIFECYCLE: conn=285 role=brain wall_ms=1788931254267 mono_ms=38030 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.2681733Z CONN_LIFECYCLE: conn=285 role=brain wall_ms=1788931254268 mono_ms=38030 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.2687256Z CONN_LIFECYCLE: conn=286 role=brain stream-subscriber stream=161 wall_ms=1788931254268 mono_ms=38031 event=stream-sub-attach stream=161 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.2688648Z CONN_LIFECYCLE: conn=286 role=brain stream-subscriber stream=161 wall_ms=1788931254268 mono_ms=38031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6086264Z CONN_LIFECYCLE: conn=286 role=brain stream-subscriber stream=161 wall_ms=1788931254608 mono_ms=38371 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6088554Z CONN_LIFECYCLE: conn=287 role=brain wall_ms=1788931254608 mono_ms=38371 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6089461Z CONN_LIFECYCLE: conn=287 role=brain wall_ms=1788931254608 mono_ms=38371 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6601617Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931254659 mono_ms=38422 event=stream-sub-release stream=157 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6717970Z CONN_LIFECYCLE: conn=288 role=brain wall_ms=1788931254671 mono_ms=38434 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6719147Z CONN_LIFECYCLE: conn=288 role=brain wall_ms=1788931254671 mono_ms=38434 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6722167Z CONN_LIFECYCLE: conn=289 role=brain stream-subscriber stream=162 wall_ms=1788931254672 mono_ms=38434 event=stream-sub-attach stream=162 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6723567Z CONN_LIFECYCLE: conn=289 role=brain stream-subscriber stream=162 wall_ms=1788931254672 mono_ms=38435 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6729425Z CONN_LIFECYCLE: conn=289 role=brain stream-subscriber stream=162 wall_ms=1788931254672 mono_ms=38435 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6731101Z CONN_LIFECYCLE: conn=290 role=brain wall_ms=1788931254673 mono_ms=38435 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6731845Z CONN_LIFECYCLE: conn=290 role=brain wall_ms=1788931254673 mono_ms=38435 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6755807Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931254675 mono_ms=38438 event=stream-sub-attach stream=163 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:54.6927963Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931254692 mono_ms=38455 event=stream-sub-release stream=163 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3280385Z CONN_LIFECYCLE: conn=291 role=brain wall_ms=1788931255327 mono_ms=39090 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3281485Z CONN_LIFECYCLE: conn=291 role=brain wall_ms=1788931255328 mono_ms=39090 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3283792Z CONN_LIFECYCLE: conn=292 role=brain stream-subscriber stream=167 wall_ms=1788931255328 mono_ms=39091 event=stream-sub-attach stream=167 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3285505Z CONN_LIFECYCLE: conn=292 role=brain stream-subscriber stream=167 wall_ms=1788931255328 mono_ms=39091 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3302795Z CONN_LIFECYCLE: conn=292 role=brain stream-subscriber stream=167 wall_ms=1788931255330 mono_ms=39092 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3304871Z CONN_LIFECYCLE: conn=293 role=brain wall_ms=1788931255330 mono_ms=39093 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3305758Z CONN_LIFECYCLE: conn=293 role=brain wall_ms=1788931255330 mono_ms=39093 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3786125Z CONN_LIFECYCLE: conn=294 role=brain wall_ms=1788931255378 mono_ms=39141 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3787152Z CONN_LIFECYCLE: conn=295 role=brain wall_ms=1788931255378 mono_ms=39141 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3788213Z CONN_LIFECYCLE: conn=294 role=brain wall_ms=1788931255378 mono_ms=39141 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3789219Z CONN_LIFECYCLE: conn=295 role=brain wall_ms=1788931255378 mono_ms=39141 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3790988Z CONN_LIFECYCLE: conn=297 role=brain stream-subscriber stream=169 wall_ms=1788931255379 mono_ms=39141 event=stream-sub-attach stream=169 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3792039Z CONN_LIFECYCLE: conn=297 role=brain stream-subscriber stream=169 wall_ms=1788931255379 mono_ms=39141 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3797437Z CONN_LIFECYCLE: conn=296 role=brain wall_ms=1788931255379 mono_ms=39142 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3799281Z CONN_LIFECYCLE: conn=297 role=brain stream-subscriber stream=169 wall_ms=1788931255379 mono_ms=39142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3800231Z CONN_LIFECYCLE: conn=296 role=brain stream-subscriber stream=168 wall_ms=1788931255379 mono_ms=39142 event=stream-sub-attach stream=168 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3801159Z CONN_LIFECYCLE: conn=298 role=brain wall_ms=1788931255380 mono_ms=39142 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3802084Z CONN_LIFECYCLE: conn=298 role=brain wall_ms=1788931255380 mono_ms=39142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3821656Z CONN_LIFECYCLE: conn=296 role=brain stream-subscriber stream=168 wall_ms=1788931255382 mono_ms=39144 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3823466Z CONN_LIFECYCLE: conn=299 role=brain wall_ms=1788931255382 mono_ms=39145 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.3824384Z CONN_LIFECYCLE: conn=299 role=brain wall_ms=1788931255382 mono_ms=39145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.4795843Z CONN_LIFECYCLE: conn=300 role=brain wall_ms=1788931255479 mono_ms=39242 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.4796811Z CONN_LIFECYCLE: conn=300 role=brain wall_ms=1788931255479 mono_ms=39242 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.4801175Z CONN_LIFECYCLE: conn=301 role=brain stream-subscriber stream=170 wall_ms=1788931255480 mono_ms=39242 event=stream-sub-attach stream=170 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.4803454Z CONN_LIFECYCLE: conn=301 role=brain stream-subscriber stream=170 wall_ms=1788931255480 mono_ms=39243 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.6204101Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931255620 mono_ms=39382 event=stream-sub-attach stream=171 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.9579548Z CONN_LIFECYCLE: conn=301 role=brain stream-subscriber stream=170 wall_ms=1788931255957 mono_ms=39720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.9580696Z CONN_LIFECYCLE: conn=302 role=brain wall_ms=1788931255958 mono_ms=39720 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:55.9581766Z CONN_LIFECYCLE: conn=302 role=brain wall_ms=1788931255958 mono_ms=39720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0387114Z CONN_LIFECYCLE: conn=303 role=brain wall_ms=1788931256038 mono_ms=39801 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0388093Z CONN_LIFECYCLE: conn=303 role=brain wall_ms=1788931256038 mono_ms=39801 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0390111Z CONN_LIFECYCLE: conn=304 role=brain stream-subscriber stream=172 wall_ms=1788931256038 mono_ms=39801 event=stream-sub-attach stream=172 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0391228Z CONN_LIFECYCLE: conn=304 role=brain stream-subscriber stream=172 wall_ms=1788931256039 mono_ms=39801 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0398041Z CONN_LIFECYCLE: conn=304 role=brain stream-subscriber stream=172 wall_ms=1788931256039 mono_ms=39802 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0399572Z CONN_LIFECYCLE: conn=305 role=brain wall_ms=1788931256039 mono_ms=39802 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.0400349Z CONN_LIFECYCLE: conn=305 role=brain wall_ms=1788931256039 mono_ms=39802 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6943259Z CONN_LIFECYCLE: conn=306 role=brain wall_ms=1788931256694 mono_ms=40457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6944093Z CONN_LIFECYCLE: conn=307 role=brain wall_ms=1788931256694 mono_ms=40457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6944884Z CONN_LIFECYCLE: conn=308 role=brain wall_ms=1788931256694 mono_ms=40457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6945826Z CONN_LIFECYCLE: conn=306 role=brain wall_ms=1788931256694 mono_ms=40457 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6946913Z CONN_LIFECYCLE: conn=307 role=brain wall_ms=1788931256694 mono_ms=40457 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6948076Z CONN_LIFECYCLE: conn=308 role=brain wall_ms=1788931256694 mono_ms=40457 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6949178Z CONN_LIFECYCLE: conn=309 role=brain stream-subscriber stream=173 wall_ms=1788931256694 mono_ms=40457 event=stream-sub-attach stream=173 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6950259Z CONN_LIFECYCLE: conn=310 role=brain stream-subscriber stream=175 wall_ms=1788931256694 mono_ms=40457 event=stream-sub-attach stream=175 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6950922Z CONN_LIFECYCLE: conn=309 role=brain stream-subscriber stream=173 wall_ms=1788931256694 mono_ms=40457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6951525Z CONN_LIFECYCLE: conn=310 role=brain stream-subscriber stream=175 wall_ms=1788931256694 mono_ms=40457 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6956035Z CONN_LIFECYCLE: conn=310 role=brain stream-subscriber stream=175 wall_ms=1788931256695 mono_ms=40458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6956729Z CONN_LIFECYCLE: conn=311 role=brain wall_ms=1788931256695 mono_ms=40458 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6957671Z CONN_LIFECYCLE: conn=311 role=brain stream-subscriber stream=174 wall_ms=1788931256695 mono_ms=40458 event=stream-sub-attach stream=174 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6958636Z CONN_LIFECYCLE: conn=312 role=brain wall_ms=1788931256695 mono_ms=40458 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6959357Z CONN_LIFECYCLE: conn=312 role=brain wall_ms=1788931256695 mono_ms=40458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6968504Z CONN_LIFECYCLE: conn=309 role=brain stream-subscriber stream=173 wall_ms=1788931256696 mono_ms=40459 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6970158Z CONN_LIFECYCLE: conn=313 role=brain wall_ms=1788931256696 mono_ms=40459 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.6970881Z CONN_LIFECYCLE: conn=313 role=brain wall_ms=1788931256697 mono_ms=40459 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.7015265Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931256701 mono_ms=40464 event=stream-sub-release stream=171 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.7017544Z CONN_LIFECYCLE: conn=311 role=brain stream-subscriber stream=174 wall_ms=1788931256701 mono_ms=40464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.7018722Z CONN_LIFECYCLE: conn=314 role=brain wall_ms=1788931256701 mono_ms=40464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.7019754Z CONN_LIFECYCLE: conn=314 role=brain wall_ms=1788931256701 mono_ms=40464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.7179187Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931256717 mono_ms=40480 event=stream-sub-attach stream=176 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.7302733Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931256730 mono_ms=40492 event=stream-sub-release stream=176 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.8456803Z CONN_LIFECYCLE: conn=315 role=brain wall_ms=1788931256845 mono_ms=40608 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.8457749Z CONN_LIFECYCLE: conn=315 role=brain wall_ms=1788931256845 mono_ms=40608 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.8462205Z CONN_LIFECYCLE: conn=316 role=brain stream-subscriber stream=177 wall_ms=1788931256846 mono_ms=40608 event=stream-sub-attach stream=177 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:56.8463419Z CONN_LIFECYCLE: conn=316 role=brain stream-subscriber stream=177 wall_ms=1788931256846 mono_ms=40609 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.1966148Z CONN_LIFECYCLE: conn=316 role=brain stream-subscriber stream=177 wall_ms=1788931257196 mono_ms=40959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.1967554Z CONN_LIFECYCLE: conn=317 role=brain wall_ms=1788931257196 mono_ms=40959 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.1968534Z CONN_LIFECYCLE: conn=317 role=brain wall_ms=1788931257196 mono_ms=40959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3507318Z CONN_LIFECYCLE: conn=318 role=brain wall_ms=1788931257350 mono_ms=41113 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3508823Z CONN_LIFECYCLE: conn=318 role=brain wall_ms=1788931257350 mono_ms=41113 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3510312Z CONN_LIFECYCLE: conn=319 role=brain stream-subscriber stream=178 wall_ms=1788931257350 mono_ms=41113 event=stream-sub-attach stream=178 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3512070Z CONN_LIFECYCLE: conn=319 role=brain stream-subscriber stream=178 wall_ms=1788931257351 mono_ms=41113 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3519398Z CONN_LIFECYCLE: conn=319 role=brain stream-subscriber stream=178 wall_ms=1788931257351 mono_ms=41114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3521270Z CONN_LIFECYCLE: conn=320 role=brain wall_ms=1788931257352 mono_ms=41114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.3522208Z CONN_LIFECYCLE: conn=320 role=brain wall_ms=1788931257352 mono_ms=41114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:57.6965601Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931257696 mono_ms=41459 event=stream-sub-attach stream=182 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0562774Z CONN_LIFECYCLE: conn=321 role=brain wall_ms=1788931258056 mono_ms=41818 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0563665Z CONN_LIFECYCLE: conn=323 role=brain wall_ms=1788931258056 mono_ms=41818 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0564524Z CONN_LIFECYCLE: conn=322 role=brain wall_ms=1788931258056 mono_ms=41819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0565517Z CONN_LIFECYCLE: conn=321 role=brain wall_ms=1788931258056 mono_ms=41819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0566490Z CONN_LIFECYCLE: conn=323 role=brain wall_ms=1788931258056 mono_ms=41819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0567342Z CONN_LIFECYCLE: conn=322 role=brain wall_ms=1788931258056 mono_ms=41819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0568364Z CONN_LIFECYCLE: conn=324 role=brain stream-subscriber stream=183 wall_ms=1788931258056 mono_ms=41819 event=stream-sub-attach stream=183 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0569598Z CONN_LIFECYCLE: conn=325 role=brain stream-subscriber stream=185 wall_ms=1788931258056 mono_ms=41819 event=stream-sub-attach stream=185 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0570248Z CONN_LIFECYCLE: conn=324 role=brain stream-subscriber stream=183 wall_ms=1788931258056 mono_ms=41819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0570974Z CONN_LIFECYCLE: conn=325 role=brain stream-subscriber stream=185 wall_ms=1788931258056 mono_ms=41819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0575547Z CONN_LIFECYCLE: conn=326 role=brain wall_ms=1788931258057 mono_ms=41820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0576270Z CONN_LIFECYCLE: conn=325 role=brain stream-subscriber stream=185 wall_ms=1788931258057 mono_ms=41820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0577460Z CONN_LIFECYCLE: conn=326 role=brain stream-subscriber stream=184 wall_ms=1788931258057 mono_ms=41820 event=stream-sub-attach stream=184 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0578366Z CONN_LIFECYCLE: conn=327 role=brain wall_ms=1788931258057 mono_ms=41820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0579318Z CONN_LIFECYCLE: conn=327 role=brain wall_ms=1788931258057 mono_ms=41820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0591235Z CONN_LIFECYCLE: conn=324 role=brain stream-subscriber stream=183 wall_ms=1788931258059 mono_ms=41821 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0592758Z CONN_LIFECYCLE: conn=328 role=brain wall_ms=1788931258059 mono_ms=41822 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0593641Z CONN_LIFECYCLE: conn=328 role=brain wall_ms=1788931258059 mono_ms=41822 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0646911Z CONN_LIFECYCLE: conn=326 role=brain stream-subscriber stream=184 wall_ms=1788931258064 mono_ms=41827 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0648638Z CONN_LIFECYCLE: conn=329 role=brain wall_ms=1788931258064 mono_ms=41827 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.0649341Z CONN_LIFECYCLE: conn=329 role=brain wall_ms=1788931258064 mono_ms=41827 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.1575434Z CONN_LIFECYCLE: conn=330 role=brain wall_ms=1788931258157 mono_ms=41920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.1576722Z CONN_LIFECYCLE: conn=330 role=brain wall_ms=1788931258157 mono_ms=41920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.1580647Z CONN_LIFECYCLE: conn=331 role=brain stream-subscriber stream=186 wall_ms=1788931258157 mono_ms=41920 event=stream-sub-attach stream=186 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.1582329Z CONN_LIFECYCLE: conn=331 role=brain stream-subscriber stream=186 wall_ms=1788931258158 mono_ms=41920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.1791150Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931258178 mono_ms=41941 event=stream-sub-release stream=182 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.1949956Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931258194 mono_ms=41957 event=stream-sub-attach stream=187 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:58.2073124Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931258207 mono_ms=41969 event=stream-sub-release stream=187 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.0865257Z CONN_LIFECYCLE: conn=331 role=brain stream-subscriber stream=186 wall_ms=1788931259086 mono_ms=42849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.0866892Z CONN_LIFECYCLE: conn=332 role=brain wall_ms=1788931259086 mono_ms=42849 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.0868097Z CONN_LIFECYCLE: conn=332 role=brain wall_ms=1788931259086 mono_ms=42849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1196936Z CONN_LIFECYCLE: conn=333 role=brain wall_ms=1788931259119 mono_ms=42882 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1197850Z CONN_LIFECYCLE: conn=333 role=brain wall_ms=1788931259119 mono_ms=42882 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1199976Z CONN_LIFECYCLE: conn=334 role=brain stream-subscriber stream=191 wall_ms=1788931259119 mono_ms=42882 event=stream-sub-attach stream=191 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1201374Z CONN_LIFECYCLE: conn=334 role=brain stream-subscriber stream=191 wall_ms=1788931259120 mono_ms=42882 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1208539Z CONN_LIFECYCLE: conn=334 role=brain stream-subscriber stream=191 wall_ms=1788931259120 mono_ms=42883 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1209956Z CONN_LIFECYCLE: conn=335 role=brain wall_ms=1788931259120 mono_ms=42883 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.1210766Z CONN_LIFECYCLE: conn=335 role=brain wall_ms=1788931259121 mono_ms=42883 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.4101247Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931259409 mono_ms=43172 event=stream-sub-attach stream=192 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8258806Z CONN_LIFECYCLE: conn=336 role=brain wall_ms=1788931259825 mono_ms=43588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8260055Z CONN_LIFECYCLE: conn=337 role=brain wall_ms=1788931259825 mono_ms=43588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8260877Z CONN_LIFECYCLE: conn=338 role=brain wall_ms=1788931259825 mono_ms=43588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8261962Z CONN_LIFECYCLE: conn=336 role=brain wall_ms=1788931259825 mono_ms=43588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8262780Z CONN_LIFECYCLE: conn=337 role=brain wall_ms=1788931259825 mono_ms=43588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8263590Z CONN_LIFECYCLE: conn=338 role=brain wall_ms=1788931259825 mono_ms=43588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8264391Z CONN_LIFECYCLE: conn=341 role=brain stream-subscriber stream=193 wall_ms=1788931259826 mono_ms=43589 event=stream-sub-attach stream=193 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8265610Z CONN_LIFECYCLE: conn=339 role=brain stream-subscriber stream=195 wall_ms=1788931259826 mono_ms=43589 event=stream-sub-attach stream=195 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8266636Z CONN_LIFECYCLE: conn=341 role=brain stream-subscriber stream=193 wall_ms=1788931259826 mono_ms=43589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8267640Z CONN_LIFECYCLE: conn=339 role=brain stream-subscriber stream=195 wall_ms=1788931259826 mono_ms=43589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8271778Z CONN_LIFECYCLE: conn=340 role=brain wall_ms=1788931259827 mono_ms=43589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8272551Z CONN_LIFECYCLE: conn=339 role=brain stream-subscriber stream=195 wall_ms=1788931259827 mono_ms=43589 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8273342Z CONN_LIFECYCLE: conn=340 role=brain stream-subscriber stream=194 wall_ms=1788931259827 mono_ms=43590 event=stream-sub-attach stream=194 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8274652Z CONN_LIFECYCLE: conn=342 role=brain wall_ms=1788931259827 mono_ms=43590 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8275562Z CONN_LIFECYCLE: conn=342 role=brain wall_ms=1788931259827 mono_ms=43590 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8288525Z CONN_LIFECYCLE: conn=341 role=brain stream-subscriber stream=193 wall_ms=1788931259828 mono_ms=43591 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8293888Z CONN_LIFECYCLE: conn=343 role=brain wall_ms=1788931259829 mono_ms=43592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8294755Z CONN_LIFECYCLE: conn=343 role=brain wall_ms=1788931259829 mono_ms=43592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8340126Z CONN_LIFECYCLE: conn=340 role=brain stream-subscriber stream=194 wall_ms=1788931259833 mono_ms=43596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8341787Z CONN_LIFECYCLE: conn=344 role=brain wall_ms=1788931259834 mono_ms=43596 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.8342557Z CONN_LIFECYCLE: conn=344 role=brain wall_ms=1788931259834 mono_ms=43596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.9272806Z CONN_LIFECYCLE: conn=345 role=brain wall_ms=1788931259927 mono_ms=43689 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.9273579Z CONN_LIFECYCLE: conn=345 role=brain wall_ms=1788931259927 mono_ms=43690 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.9279332Z CONN_LIFECYCLE: conn=346 role=brain stream-subscriber stream=196 wall_ms=1788931259927 mono_ms=43690 event=stream-sub-attach stream=196 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:20:59.9280906Z CONN_LIFECYCLE: conn=346 role=brain stream-subscriber stream=196 wall_ms=1788931259928 mono_ms=43690 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.1193572Z PAIR_MEET_UP:twohost step=59631042 id=0eecd9b3fec97246a1b2105a5f73b9a9e31e43ea3946a6c448fcee18a7a4d0a7 addr=EndpointAddr { id: PublicKey(0eecd9b3fec97246a1b2105a5f73b9a9e31e43ea3946a6c448fcee18a7a4d0a7), addrs: {Ip(100.68.35.65:61887), Ip(192.168.1.81:61887)} }
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3310904Z CONN_LIFECYCLE: conn=347 role=brain wall_ms=1788931260330 mono_ms=44093 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3311915Z CONN_LIFECYCLE: conn=348 role=brain wall_ms=1788931260330 mono_ms=44093 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3312959Z CONN_LIFECYCLE: conn=347 role=brain wall_ms=1788931260331 mono_ms=44093 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3314140Z CONN_LIFECYCLE: conn=348 role=brain wall_ms=1788931260331 mono_ms=44093 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3315404Z CONN_LIFECYCLE: conn=349 role=brain stream-subscriber stream=198 wall_ms=1788931260331 mono_ms=44094 event=stream-sub-attach stream=198 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3316771Z CONN_LIFECYCLE: conn=349 role=brain stream-subscriber stream=198 wall_ms=1788931260331 mono_ms=44094 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3323964Z CONN_LIFECYCLE: conn=350 role=brain wall_ms=1788931260332 mono_ms=44095 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3325056Z CONN_LIFECYCLE: conn=349 role=brain stream-subscriber stream=198 wall_ms=1788931260332 mono_ms=44095 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3326319Z CONN_LIFECYCLE: conn=350 role=brain stream-subscriber stream=197 wall_ms=1788931260332 mono_ms=44095 event=stream-sub-attach stream=197 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3327087Z CONN_LIFECYCLE: conn=351 role=brain wall_ms=1788931260332 mono_ms=44095 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3327626Z CONN_LIFECYCLE: conn=351 role=brain wall_ms=1788931260332 mono_ms=44095 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3349450Z CONN_LIFECYCLE: conn=350 role=brain stream-subscriber stream=197 wall_ms=1788931260334 mono_ms=44097 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3351363Z CONN_LIFECYCLE: conn=352 role=brain wall_ms=1788931260335 mono_ms=44097 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.3352498Z CONN_LIFECYCLE: conn=352 role=brain wall_ms=1788931260335 mono_ms=44097 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.8716329Z CONN_LIFECYCLE: conn=346 role=brain stream-subscriber stream=196 wall_ms=1788931260871 mono_ms=44634 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.8718728Z CONN_LIFECYCLE: conn=353 role=brain wall_ms=1788931260871 mono_ms=44634 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.8719757Z CONN_LIFECYCLE: conn=353 role=brain wall_ms=1788931260871 mono_ms=44634 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9373012Z CONN_LIFECYCLE: conn=354 role=brain wall_ms=1788931260937 mono_ms=44699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9375046Z CONN_LIFECYCLE: conn=354 role=brain wall_ms=1788931260937 mono_ms=44700 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9377091Z CONN_LIFECYCLE: conn=355 role=brain stream-subscriber stream=199 wall_ms=1788931260937 mono_ms=44700 event=stream-sub-attach stream=199 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9378302Z CONN_LIFECYCLE: conn=355 role=brain stream-subscriber stream=199 wall_ms=1788931260937 mono_ms=44700 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9384779Z CONN_LIFECYCLE: conn=355 role=brain stream-subscriber stream=199 wall_ms=1788931260938 mono_ms=44701 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9386528Z CONN_LIFECYCLE: conn=356 role=brain wall_ms=1788931260938 mono_ms=44701 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:00.9387432Z CONN_LIFECYCLE: conn=356 role=brain wall_ms=1788931260938 mono_ms=44701 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5925915Z CONN_LIFECYCLE: conn=358 role=brain wall_ms=1788931261592 mono_ms=45355 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5926610Z CONN_LIFECYCLE: conn=357 role=brain wall_ms=1788931261592 mono_ms=45355 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5927152Z CONN_LIFECYCLE: conn=359 role=brain wall_ms=1788931261592 mono_ms=45355 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5928242Z CONN_LIFECYCLE: conn=358 role=brain wall_ms=1788931261592 mono_ms=45355 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5929301Z CONN_LIFECYCLE: conn=357 role=brain wall_ms=1788931261592 mono_ms=45355 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5930008Z CONN_LIFECYCLE: conn=359 role=brain wall_ms=1788931261592 mono_ms=45355 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5930827Z CONN_LIFECYCLE: conn=360 role=brain stream-subscriber stream=202 wall_ms=1788931261592 mono_ms=45355 event=stream-sub-attach stream=202 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5931961Z CONN_LIFECYCLE: conn=361 role=brain stream-subscriber stream=200 wall_ms=1788931261592 mono_ms=45355 event=stream-sub-attach stream=200 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5932795Z CONN_LIFECYCLE: conn=361 role=brain stream-subscriber stream=200 wall_ms=1788931261593 mono_ms=45355 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5933383Z CONN_LIFECYCLE: conn=360 role=brain stream-subscriber stream=202 wall_ms=1788931261593 mono_ms=45355 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5939281Z CONN_LIFECYCLE: conn=360 role=brain stream-subscriber stream=202 wall_ms=1788931261593 mono_ms=45356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5940470Z CONN_LIFECYCLE: conn=362 role=brain wall_ms=1788931261593 mono_ms=45356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5941243Z CONN_LIFECYCLE: conn=362 role=brain stream-subscriber stream=201 wall_ms=1788931261593 mono_ms=45356 event=stream-sub-attach stream=201 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5942240Z CONN_LIFECYCLE: conn=363 role=brain wall_ms=1788931261594 mono_ms=45356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5942900Z CONN_LIFECYCLE: conn=363 role=brain wall_ms=1788931261594 mono_ms=45356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5951115Z CONN_LIFECYCLE: conn=361 role=brain stream-subscriber stream=200 wall_ms=1788931261595 mono_ms=45357 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5952894Z CONN_LIFECYCLE: conn=364 role=brain wall_ms=1788931261595 mono_ms=45358 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5953824Z CONN_LIFECYCLE: conn=364 role=brain wall_ms=1788931261595 mono_ms=45358 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.5998848Z CONN_LIFECYCLE: conn=362 role=brain stream-subscriber stream=201 wall_ms=1788931261599 mono_ms=45362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.6000340Z CONN_LIFECYCLE: conn=365 role=brain wall_ms=1788931261599 mono_ms=45362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.6001325Z CONN_LIFECYCLE: conn=365 role=brain wall_ms=1788931261600 mono_ms=45362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.7439724Z CONN_LIFECYCLE: conn=366 role=brain wall_ms=1788931261743 mono_ms=45506 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.7441597Z CONN_LIFECYCLE: conn=366 role=brain wall_ms=1788931261744 mono_ms=45506 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.7445392Z CONN_LIFECYCLE: conn=367 role=brain stream-subscriber stream=203 wall_ms=1788931261744 mono_ms=45507 event=stream-sub-attach stream=203 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:01.7446687Z CONN_LIFECYCLE: conn=367 role=brain stream-subscriber stream=203 wall_ms=1788931261744 mono_ms=45507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:02.8658607Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931262865 mono_ms=46628 event=stream-sub-release stream=192 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:02.8817987Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931262881 mono_ms=46644 event=stream-sub-attach stream=204 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:02.8943830Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931262894 mono_ms=46657 event=stream-sub-release stream=204 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6196487Z CONN_LIFECYCLE: conn=367 role=brain stream-subscriber stream=203 wall_ms=1788931263619 mono_ms=47382 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6197781Z CONN_LIFECYCLE: conn=368 role=brain wall_ms=1788931263619 mono_ms=47382 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6198924Z CONN_LIFECYCLE: conn=368 role=brain wall_ms=1788931263619 mono_ms=47382 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6616358Z CONN_LIFECYCLE: conn=369 role=brain wall_ms=1788931263661 mono_ms=47424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6617427Z CONN_LIFECYCLE: conn=369 role=brain wall_ms=1788931263661 mono_ms=47424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6619886Z CONN_LIFECYCLE: conn=370 role=brain stream-subscriber stream=208 wall_ms=1788931263661 mono_ms=47424 event=stream-sub-attach stream=208 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6621291Z CONN_LIFECYCLE: conn=370 role=brain stream-subscriber stream=208 wall_ms=1788931263662 mono_ms=47424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6628022Z CONN_LIFECYCLE: conn=370 role=brain stream-subscriber stream=208 wall_ms=1788931263662 mono_ms=47425 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6629420Z CONN_LIFECYCLE: conn=371 role=brain wall_ms=1788931263662 mono_ms=47425 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.6630426Z CONN_LIFECYCLE: conn=371 role=brain wall_ms=1788931263662 mono_ms=47425 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:03.9025221Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931263902 mono_ms=47665 event=stream-sub-attach stream=209 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3677909Z CONN_LIFECYCLE: conn=373 role=brain wall_ms=1788931264367 mono_ms=48130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3678802Z CONN_LIFECYCLE: conn=372 role=brain wall_ms=1788931264367 mono_ms=48130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3679777Z CONN_LIFECYCLE: conn=374 role=brain wall_ms=1788931264367 mono_ms=48130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3680876Z CONN_LIFECYCLE: conn=373 role=brain wall_ms=1788931264367 mono_ms=48130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3681936Z CONN_LIFECYCLE: conn=372 role=brain wall_ms=1788931264367 mono_ms=48130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3682997Z CONN_LIFECYCLE: conn=374 role=brain wall_ms=1788931264367 mono_ms=48130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3684133Z CONN_LIFECYCLE: conn=375 role=brain stream-subscriber stream=212 wall_ms=1788931264368 mono_ms=48130 event=stream-sub-attach stream=212 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3685608Z CONN_LIFECYCLE: conn=376 role=brain stream-subscriber stream=210 wall_ms=1788931264368 mono_ms=48130 event=stream-sub-attach stream=210 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3686597Z CONN_LIFECYCLE: conn=375 role=brain stream-subscriber stream=212 wall_ms=1788931264368 mono_ms=48131 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3687536Z CONN_LIFECYCLE: conn=376 role=brain stream-subscriber stream=210 wall_ms=1788931264368 mono_ms=48131 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3691745Z CONN_LIFECYCLE: conn=375 role=brain stream-subscriber stream=212 wall_ms=1788931264369 mono_ms=48131 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3692726Z CONN_LIFECYCLE: conn=377 role=brain wall_ms=1788931264369 mono_ms=48131 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3693751Z CONN_LIFECYCLE: conn=378 role=brain wall_ms=1788931264369 mono_ms=48132 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3694735Z CONN_LIFECYCLE: conn=377 role=brain stream-subscriber stream=211 wall_ms=1788931264369 mono_ms=48132 event=stream-sub-attach stream=211 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3696097Z CONN_LIFECYCLE: conn=378 role=brain wall_ms=1788931264369 mono_ms=48132 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3705721Z CONN_LIFECYCLE: conn=376 role=brain stream-subscriber stream=210 wall_ms=1788931264370 mono_ms=48133 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3707319Z CONN_LIFECYCLE: conn=379 role=brain wall_ms=1788931264370 mono_ms=48133 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3708386Z CONN_LIFECYCLE: conn=379 role=brain wall_ms=1788931264370 mono_ms=48133 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3756328Z CONN_LIFECYCLE: conn=377 role=brain stream-subscriber stream=211 wall_ms=1788931264375 mono_ms=48138 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3757893Z CONN_LIFECYCLE: conn=380 role=brain wall_ms=1788931264375 mono_ms=48138 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.3759160Z CONN_LIFECYCLE: conn=380 role=brain wall_ms=1788931264375 mono_ms=48138 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.4689847Z CONN_LIFECYCLE: conn=381 role=brain wall_ms=1788931264468 mono_ms=48231 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.4690832Z CONN_LIFECYCLE: conn=381 role=brain wall_ms=1788931264469 mono_ms=48231 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.4695153Z CONN_LIFECYCLE: conn=382 role=brain stream-subscriber stream=213 wall_ms=1788931264469 mono_ms=48232 event=stream-sub-attach stream=213 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:04.4696781Z CONN_LIFECYCLE: conn=382 role=brain stream-subscriber stream=213 wall_ms=1788931264469 mono_ms=48232 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0205597Z CONN_LIFECYCLE: conn=383 role=brain wall_ms=1788931268020 mono_ms=51783 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0206672Z CONN_LIFECYCLE: conn=383 role=brain wall_ms=1788931268020 mono_ms=51783 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0207746Z CONN_LIFECYCLE: conn=382 role=brain stream-subscriber stream=213 wall_ms=1788931268020 mono_ms=51783 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0579618Z CONN_LIFECYCLE: conn=384 role=brain wall_ms=1788931268057 mono_ms=51820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0580649Z CONN_LIFECYCLE: conn=384 role=brain wall_ms=1788931268057 mono_ms=51820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0582642Z CONN_LIFECYCLE: conn=385 role=brain stream-subscriber stream=214 wall_ms=1788931268058 mono_ms=51820 event=stream-sub-attach stream=214 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0583854Z CONN_LIFECYCLE: conn=385 role=brain stream-subscriber stream=214 wall_ms=1788931268058 mono_ms=51821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0590805Z CONN_LIFECYCLE: conn=385 role=brain stream-subscriber stream=214 wall_ms=1788931268058 mono_ms=51821 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0592586Z CONN_LIFECYCLE: conn=386 role=brain wall_ms=1788931268059 mono_ms=51822 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.0593539Z CONN_LIFECYCLE: conn=386 role=brain wall_ms=1788931268059 mono_ms=51822 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.4637042Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931268463 mono_ms=52226 event=stream-sub-release stream=209 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.4795004Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931268479 mono_ms=52242 event=stream-sub-attach stream=215 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.4924148Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931268492 mono_ms=52255 event=stream-sub-release stream=215 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7229117Z CONN_LIFECYCLE: conn=387 role=brain wall_ms=1788931268722 mono_ms=52485 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7249389Z CONN_LIFECYCLE: conn=389 role=brain wall_ms=1788931268722 mono_ms=52485 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7251058Z CONN_LIFECYCLE: conn=388 role=brain wall_ms=1788931268722 mono_ms=52485 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7253172Z CONN_LIFECYCLE: conn=387 role=brain wall_ms=1788931268722 mono_ms=52485 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7255178Z CONN_LIFECYCLE: conn=390 role=brain stream-subscriber stream=216 wall_ms=1788931268722 mono_ms=52485 event=stream-sub-attach stream=216 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7257384Z CONN_LIFECYCLE: conn=388 role=brain wall_ms=1788931268723 mono_ms=52485 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7260582Z CONN_LIFECYCLE: conn=392 role=brain stream-subscriber stream=218 wall_ms=1788931268724 mono_ms=52487 event=stream-sub-attach stream=218 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7269112Z CONN_LIFECYCLE: conn=389 role=brain wall_ms=1788931268724 mono_ms=52487 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7271945Z CONN_LIFECYCLE: conn=392 role=brain stream-subscriber stream=218 wall_ms=1788931268725 mono_ms=52488 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7277645Z CONN_LIFECYCLE: conn=391 role=brain wall_ms=1788931268725 mono_ms=52488 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7290885Z CONN_LIFECYCLE: conn=391 role=brain stream-subscriber stream=217 wall_ms=1788931268726 mono_ms=52489 event=stream-sub-attach stream=217 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7292762Z CONN_LIFECYCLE: conn=392 role=brain stream-subscriber stream=218 wall_ms=1788931268726 mono_ms=52489 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7299781Z CONN_LIFECYCLE: conn=393 role=brain wall_ms=1788931268727 mono_ms=52490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7304202Z CONN_LIFECYCLE: conn=393 role=brain wall_ms=1788931268729 mono_ms=52492 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7314298Z CONN_LIFECYCLE: conn=390 role=brain stream-subscriber stream=216 wall_ms=1788931268731 mono_ms=52493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7330284Z CONN_LIFECYCLE: conn=391 role=brain stream-subscriber stream=217 wall_ms=1788931268732 mono_ms=52495 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7355474Z CONN_LIFECYCLE: conn=394 role=brain wall_ms=1788931268735 mono_ms=52498 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7441035Z CONN_LIFECYCLE: conn=394 role=brain wall_ms=1788931268743 mono_ms=52506 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7495517Z CONN_LIFECYCLE: conn=390 role=brain stream-subscriber stream=216 wall_ms=1788931268749 mono_ms=52512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7507806Z CONN_LIFECYCLE: conn=395 role=brain wall_ms=1788931268750 mono_ms=52512 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.7511039Z CONN_LIFECYCLE: conn=395 role=brain wall_ms=1788931268750 mono_ms=52513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.8740283Z CONN_LIFECYCLE: conn=396 role=brain wall_ms=1788931268873 mono_ms=52636 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.8741253Z CONN_LIFECYCLE: conn=396 role=brain wall_ms=1788931268874 mono_ms=52636 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.8745470Z CONN_LIFECYCLE: conn=397 role=brain stream-subscriber stream=219 wall_ms=1788931268874 mono_ms=52637 event=stream-sub-attach stream=219 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:08.8747016Z CONN_LIFECYCLE: conn=397 role=brain stream-subscriber stream=219 wall_ms=1788931268874 mono_ms=52637 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.2550498Z CONN_LIFECYCLE: conn=397 role=brain stream-subscriber stream=219 wall_ms=1788931269254 mono_ms=53017 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.2551650Z CONN_LIFECYCLE: conn=398 role=brain wall_ms=1788931269255 mono_ms=53017 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.2552710Z CONN_LIFECYCLE: conn=398 role=brain wall_ms=1788931269255 mono_ms=53017 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.2686423Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931269268 mono_ms=53031 event=stream-sub-attach stream=223 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3282244Z CONN_LIFECYCLE: conn=399 role=brain wall_ms=1788931269328 mono_ms=53090 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3283078Z CONN_LIFECYCLE: conn=399 role=brain wall_ms=1788931269328 mono_ms=53091 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3285433Z CONN_LIFECYCLE: conn=400 role=brain stream-subscriber stream=224 wall_ms=1788931269328 mono_ms=53091 event=stream-sub-attach stream=224 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3286776Z CONN_LIFECYCLE: conn=400 role=brain stream-subscriber stream=224 wall_ms=1788931269328 mono_ms=53091 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3293899Z CONN_LIFECYCLE: conn=400 role=brain stream-subscriber stream=224 wall_ms=1788931269329 mono_ms=53092 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3295657Z CONN_LIFECYCLE: conn=401 role=brain wall_ms=1788931269329 mono_ms=53092 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.3296466Z CONN_LIFECYCLE: conn=401 role=brain wall_ms=1788931269329 mono_ms=53092 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.5010554Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931269500 mono_ms=53263 event=stream-sub-release stream=223 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.5166526Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931269516 mono_ms=53279 event=stream-sub-attach stream=225 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:09.5585729Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931269558 mono_ms=53321 event=stream-sub-release stream=225 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0351806Z CONN_LIFECYCLE: conn=402 role=brain wall_ms=1788931270035 mono_ms=53797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0352505Z CONN_LIFECYCLE: conn=403 role=brain wall_ms=1788931270035 mono_ms=53797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0353192Z CONN_LIFECYCLE: conn=404 role=brain wall_ms=1788931270035 mono_ms=53797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0354775Z CONN_LIFECYCLE: conn=402 role=brain wall_ms=1788931270035 mono_ms=53797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0355813Z CONN_LIFECYCLE: conn=403 role=brain wall_ms=1788931270035 mono_ms=53798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0356545Z CONN_LIFECYCLE: conn=404 role=brain wall_ms=1788931270035 mono_ms=53798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0357482Z CONN_LIFECYCLE: conn=407 role=brain stream-subscriber stream=228 wall_ms=1788931270035 mono_ms=53798 event=stream-sub-attach stream=228 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0358571Z CONN_LIFECYCLE: conn=406 role=brain stream-subscriber stream=226 wall_ms=1788931270035 mono_ms=53798 event=stream-sub-attach stream=226 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0359381Z CONN_LIFECYCLE: conn=407 role=brain stream-subscriber stream=228 wall_ms=1788931270035 mono_ms=53798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0360095Z CONN_LIFECYCLE: conn=406 role=brain stream-subscriber stream=226 wall_ms=1788931270035 mono_ms=53798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0363785Z CONN_LIFECYCLE: conn=405 role=brain wall_ms=1788931270036 mono_ms=53799 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0365371Z CONN_LIFECYCLE: conn=405 role=brain stream-subscriber stream=227 wall_ms=1788931270036 mono_ms=53799 event=stream-sub-attach stream=227 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0366366Z CONN_LIFECYCLE: conn=407 role=brain stream-subscriber stream=228 wall_ms=1788931270036 mono_ms=53799 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0367489Z CONN_LIFECYCLE: conn=408 role=brain wall_ms=1788931270036 mono_ms=53799 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0368411Z CONN_LIFECYCLE: conn=408 role=brain wall_ms=1788931270036 mono_ms=53799 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0380398Z CONN_LIFECYCLE: conn=406 role=brain stream-subscriber stream=226 wall_ms=1788931270037 mono_ms=53800 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0381974Z CONN_LIFECYCLE: conn=409 role=brain wall_ms=1788931270038 mono_ms=53800 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0382688Z CONN_LIFECYCLE: conn=409 role=brain wall_ms=1788931270038 mono_ms=53801 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0429586Z CONN_LIFECYCLE: conn=405 role=brain stream-subscriber stream=227 wall_ms=1788931270042 mono_ms=53805 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0431147Z CONN_LIFECYCLE: conn=410 role=brain wall_ms=1788931270043 mono_ms=53805 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.0432328Z CONN_LIFECYCLE: conn=410 role=brain wall_ms=1788931270043 mono_ms=53805 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.1356908Z CONN_LIFECYCLE: conn=411 role=brain wall_ms=1788931270135 mono_ms=53898 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.1357846Z CONN_LIFECYCLE: conn=411 role=brain wall_ms=1788931270135 mono_ms=53898 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.1362048Z CONN_LIFECYCLE: conn=412 role=brain stream-subscriber stream=229 wall_ms=1788931270136 mono_ms=53898 event=stream-sub-attach stream=229 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.1363400Z CONN_LIFECYCLE: conn=412 role=brain stream-subscriber stream=229 wall_ms=1788931270136 mono_ms=53899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2295567Z CONN_LIFECYCLE: conn=412 role=brain stream-subscriber stream=229 wall_ms=1788931270229 mono_ms=53992 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2297117Z CONN_LIFECYCLE: conn=413 role=brain wall_ms=1788931270229 mono_ms=53992 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2297999Z CONN_LIFECYCLE: conn=413 role=brain wall_ms=1788931270229 mono_ms=53992 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2489893Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931270248 mono_ms=54011 event=stream-sub-attach stream=234 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2868239Z CONN_LIFECYCLE: conn=414 role=brain wall_ms=1788931270286 mono_ms=54049 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2869225Z CONN_LIFECYCLE: conn=414 role=brain wall_ms=1788931270286 mono_ms=54049 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2871139Z CONN_LIFECYCLE: conn=415 role=brain stream-subscriber stream=233 wall_ms=1788931270287 mono_ms=54049 event=stream-sub-attach stream=233 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2871965Z CONN_LIFECYCLE: conn=415 role=brain stream-subscriber stream=233 wall_ms=1788931270287 mono_ms=54049 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2878652Z CONN_LIFECYCLE: conn=415 role=brain stream-subscriber stream=233 wall_ms=1788931270287 mono_ms=54050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2880186Z CONN_LIFECYCLE: conn=416 role=brain wall_ms=1788931270287 mono_ms=54050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.2881050Z CONN_LIFECYCLE: conn=416 role=brain wall_ms=1788931270288 mono_ms=54050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.8119983Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931270811 mono_ms=54574 event=stream-sub-release stream=234 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.8278498Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931270827 mono_ms=54590 event=stream-sub-attach stream=235 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.8815552Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931270881 mono_ms=54644 event=stream-sub-release stream=235 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9428419Z CONN_LIFECYCLE: conn=418 role=brain wall_ms=1788931270942 mono_ms=54705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9429359Z CONN_LIFECYCLE: conn=417 role=brain wall_ms=1788931270942 mono_ms=54705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9431354Z CONN_LIFECYCLE: conn=419 role=brain wall_ms=1788931270942 mono_ms=54705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9432379Z CONN_LIFECYCLE: conn=418 role=brain wall_ms=1788931270942 mono_ms=54705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9433926Z CONN_LIFECYCLE: conn=417 role=brain wall_ms=1788931270942 mono_ms=54705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9435316Z CONN_LIFECYCLE: conn=419 role=brain wall_ms=1788931270942 mono_ms=54705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9436472Z CONN_LIFECYCLE: conn=420 role=brain stream-subscriber stream=236 wall_ms=1788931270943 mono_ms=54706 event=stream-sub-attach stream=236 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9437730Z CONN_LIFECYCLE: conn=422 role=brain stream-subscriber stream=238 wall_ms=1788931270943 mono_ms=54706 event=stream-sub-attach stream=238 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9438848Z CONN_LIFECYCLE: conn=420 role=brain stream-subscriber stream=236 wall_ms=1788931270943 mono_ms=54706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9439789Z CONN_LIFECYCLE: conn=422 role=brain stream-subscriber stream=238 wall_ms=1788931270943 mono_ms=54706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9443670Z CONN_LIFECYCLE: conn=422 role=brain stream-subscriber stream=238 wall_ms=1788931270944 mono_ms=54707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9444438Z CONN_LIFECYCLE: conn=421 role=brain wall_ms=1788931270944 mono_ms=54707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9445629Z CONN_LIFECYCLE: conn=423 role=brain wall_ms=1788931270944 mono_ms=54707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9446674Z CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=237 wall_ms=1788931270944 mono_ms=54707 event=stream-sub-attach stream=237 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9447685Z CONN_LIFECYCLE: conn=423 role=brain wall_ms=1788931270944 mono_ms=54707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9460421Z CONN_LIFECYCLE: conn=420 role=brain stream-subscriber stream=236 wall_ms=1788931270945 mono_ms=54708 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9461825Z CONN_LIFECYCLE: conn=424 role=brain wall_ms=1788931270946 mono_ms=54708 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9462781Z CONN_LIFECYCLE: conn=424 role=brain wall_ms=1788931270946 mono_ms=54709 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9512008Z CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=237 wall_ms=1788931270951 mono_ms=54713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9514226Z CONN_LIFECYCLE: conn=425 role=brain wall_ms=1788931270951 mono_ms=54714 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:10.9514872Z CONN_LIFECYCLE: conn=425 role=brain wall_ms=1788931270951 mono_ms=54714 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.0934594Z CONN_LIFECYCLE: conn=426 role=brain wall_ms=1788931271093 mono_ms=54856 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.0935507Z CONN_LIFECYCLE: conn=426 role=brain wall_ms=1788931271093 mono_ms=54856 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.0941906Z CONN_LIFECYCLE: conn=427 role=brain stream-subscriber stream=239 wall_ms=1788931271094 mono_ms=54856 event=stream-sub-attach stream=239 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.0943307Z CONN_LIFECYCLE: conn=427 role=brain stream-subscriber stream=239 wall_ms=1788931271094 mono_ms=54857 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.4708789Z CONN_LIFECYCLE: conn=427 role=brain stream-subscriber stream=239 wall_ms=1788931271470 mono_ms=55233 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.4710283Z CONN_LIFECYCLE: conn=428 role=brain wall_ms=1788931271470 mono_ms=55233 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.4711503Z CONN_LIFECYCLE: conn=428 role=brain wall_ms=1788931271471 mono_ms=55233 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5713654Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931271571 mono_ms=55333 event=stream-sub-attach stream=244 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5980534Z CONN_LIFECYCLE: conn=429 role=brain wall_ms=1788931271597 mono_ms=55360 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5981401Z CONN_LIFECYCLE: conn=429 role=brain wall_ms=1788931271598 mono_ms=55360 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5983958Z CONN_LIFECYCLE: conn=430 role=brain stream-subscriber stream=243 wall_ms=1788931271598 mono_ms=55361 event=stream-sub-attach stream=243 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5985073Z CONN_LIFECYCLE: conn=430 role=brain stream-subscriber stream=243 wall_ms=1788931271598 mono_ms=55361 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5991318Z CONN_LIFECYCLE: conn=430 role=brain stream-subscriber stream=243 wall_ms=1788931271599 mono_ms=55361 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5992783Z CONN_LIFECYCLE: conn=431 role=brain wall_ms=1788931271599 mono_ms=55362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:11.5993683Z CONN_LIFECYCLE: conn=431 role=brain wall_ms=1788931271599 mono_ms=55362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.0748219Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931272074 mono_ms=55837 event=stream-sub-release stream=244 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.0954301Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931272095 mono_ms=55858 event=stream-sub-attach stream=245 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.1030242Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931272102 mono_ms=55865 event=stream-sub-release stream=245 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3055090Z CONN_LIFECYCLE: conn=433 role=brain wall_ms=1788931272305 mono_ms=56068 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3059557Z CONN_LIFECYCLE: conn=432 role=brain wall_ms=1788931272305 mono_ms=56068 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3060483Z CONN_LIFECYCLE: conn=434 role=brain wall_ms=1788931272305 mono_ms=56068 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3061373Z CONN_LIFECYCLE: conn=433 role=brain wall_ms=1788931272305 mono_ms=56068 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3062988Z CONN_LIFECYCLE: conn=434 role=brain wall_ms=1788931272305 mono_ms=56068 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3064079Z CONN_LIFECYCLE: conn=432 role=brain wall_ms=1788931272305 mono_ms=56068 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3065566Z CONN_LIFECYCLE: conn=435 role=brain stream-subscriber stream=248 wall_ms=1788931272305 mono_ms=56068 event=stream-sub-attach stream=248 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3067339Z CONN_LIFECYCLE: conn=435 role=brain stream-subscriber stream=248 wall_ms=1788931272306 mono_ms=56068 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3068989Z CONN_LIFECYCLE: conn=437 role=brain stream-subscriber stream=246 wall_ms=1788931272306 mono_ms=56068 event=stream-sub-attach stream=246 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3070489Z CONN_LIFECYCLE: conn=437 role=brain stream-subscriber stream=246 wall_ms=1788931272306 mono_ms=56069 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3071804Z CONN_LIFECYCLE: conn=436 role=brain wall_ms=1788931272307 mono_ms=56069 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3073913Z CONN_LIFECYCLE: conn=436 role=brain stream-subscriber stream=247 wall_ms=1788931272307 mono_ms=56070 event=stream-sub-attach stream=247 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3075463Z CONN_LIFECYCLE: conn=435 role=brain stream-subscriber stream=248 wall_ms=1788931272307 mono_ms=56070 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3077851Z CONN_LIFECYCLE: conn=438 role=brain wall_ms=1788931272307 mono_ms=56070 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3078930Z CONN_LIFECYCLE: conn=438 role=brain wall_ms=1788931272307 mono_ms=56070 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3099048Z CONN_LIFECYCLE: conn=437 role=brain stream-subscriber stream=246 wall_ms=1788931272309 mono_ms=56072 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3100901Z CONN_LIFECYCLE: conn=439 role=brain wall_ms=1788931272310 mono_ms=56072 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3101927Z CONN_LIFECYCLE: conn=439 role=brain wall_ms=1788931272310 mono_ms=56072 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3152839Z CONN_LIFECYCLE: conn=436 role=brain stream-subscriber stream=247 wall_ms=1788931272315 mono_ms=56077 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3155025Z CONN_LIFECYCLE: conn=440 role=brain wall_ms=1788931272315 mono_ms=56078 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.3156327Z CONN_LIFECYCLE: conn=440 role=brain wall_ms=1788931272315 mono_ms=56078 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4061964Z CONN_LIFECYCLE: conn=441 role=brain wall_ms=1788931272406 mono_ms=56168 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4062922Z CONN_LIFECYCLE: conn=441 role=brain wall_ms=1788931272406 mono_ms=56169 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4067578Z CONN_LIFECYCLE: conn=442 role=brain stream-subscriber stream=249 wall_ms=1788931272406 mono_ms=56169 event=stream-sub-attach stream=249 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4068671Z CONN_LIFECYCLE: conn=442 role=brain stream-subscriber stream=249 wall_ms=1788931272406 mono_ms=56169 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4982585Z CONN_LIFECYCLE: conn=442 role=brain stream-subscriber stream=249 wall_ms=1788931272498 mono_ms=56260 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4984057Z CONN_LIFECYCLE: conn=443 role=brain wall_ms=1788931272498 mono_ms=56261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.4984949Z CONN_LIFECYCLE: conn=443 role=brain wall_ms=1788931272498 mono_ms=56261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5572688Z CONN_LIFECYCLE: conn=444 role=brain wall_ms=1788931272557 mono_ms=56319 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5573762Z CONN_LIFECYCLE: conn=444 role=brain wall_ms=1788931272557 mono_ms=56320 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5576148Z CONN_LIFECYCLE: conn=445 role=brain stream-subscriber stream=250 wall_ms=1788931272557 mono_ms=56320 event=stream-sub-attach stream=250 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5577543Z CONN_LIFECYCLE: conn=445 role=brain stream-subscriber stream=250 wall_ms=1788931272557 mono_ms=56320 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5583668Z CONN_LIFECYCLE: conn=445 role=brain stream-subscriber stream=250 wall_ms=1788931272558 mono_ms=56321 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5585172Z CONN_LIFECYCLE: conn=446 role=brain wall_ms=1788931272558 mono_ms=56321 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.5586158Z CONN_LIFECYCLE: conn=446 role=brain wall_ms=1788931272558 mono_ms=56321 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:12.9499998Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931272949 mono_ms=56712 event=stream-sub-attach stream=254 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.1437490Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931273143 mono_ms=56906 event=stream-sub-release stream=254 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.1659888Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931273165 mono_ms=56928 event=stream-sub-attach stream=255 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.1713322Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931273171 mono_ms=56933 event=stream-sub-release stream=255 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2124580Z CONN_LIFECYCLE: conn=447 role=brain wall_ms=1788931273212 mono_ms=56975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2125512Z CONN_LIFECYCLE: conn=448 role=brain wall_ms=1788931273212 mono_ms=56975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2126353Z CONN_LIFECYCLE: conn=449 role=brain wall_ms=1788931273212 mono_ms=56975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2128613Z CONN_LIFECYCLE: conn=447 role=brain wall_ms=1788931273212 mono_ms=56975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2131041Z CONN_LIFECYCLE: conn=448 role=brain wall_ms=1788931273212 mono_ms=56975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2132773Z CONN_LIFECYCLE: conn=449 role=brain wall_ms=1788931273212 mono_ms=56975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2134004Z CONN_LIFECYCLE: conn=450 role=brain stream-subscriber stream=256 wall_ms=1788931273213 mono_ms=56975 event=stream-sub-attach stream=256 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2135359Z CONN_LIFECYCLE: conn=451 role=brain stream-subscriber stream=258 wall_ms=1788931273213 mono_ms=56976 event=stream-sub-attach stream=258 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2136618Z CONN_LIFECYCLE: conn=450 role=brain stream-subscriber stream=256 wall_ms=1788931273213 mono_ms=56976 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2137209Z CONN_LIFECYCLE: conn=451 role=brain stream-subscriber stream=258 wall_ms=1788931273213 mono_ms=56976 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2140616Z CONN_LIFECYCLE: conn=452 role=brain wall_ms=1788931273213 mono_ms=56976 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2142536Z CONN_LIFECYCLE: conn=452 role=brain stream-subscriber stream=257 wall_ms=1788931273214 mono_ms=56976 event=stream-sub-attach stream=257 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2143846Z CONN_LIFECYCLE: conn=451 role=brain stream-subscriber stream=258 wall_ms=1788931273214 mono_ms=56976 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2144964Z CONN_LIFECYCLE: conn=453 role=brain wall_ms=1788931273214 mono_ms=56977 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2145861Z CONN_LIFECYCLE: conn=453 role=brain wall_ms=1788931273214 mono_ms=56977 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2159958Z CONN_LIFECYCLE: conn=450 role=brain stream-subscriber stream=256 wall_ms=1788931273215 mono_ms=56978 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2161671Z CONN_LIFECYCLE: conn=454 role=brain wall_ms=1788931273216 mono_ms=56978 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2162631Z CONN_LIFECYCLE: conn=454 role=brain wall_ms=1788931273216 mono_ms=56978 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2217229Z CONN_LIFECYCLE: conn=452 role=brain stream-subscriber stream=257 wall_ms=1788931273221 mono_ms=56984 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2219021Z CONN_LIFECYCLE: conn=455 role=brain wall_ms=1788931273221 mono_ms=56984 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.2219891Z CONN_LIFECYCLE: conn=455 role=brain wall_ms=1788931273221 mono_ms=56984 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.3636152Z CONN_LIFECYCLE: conn=456 role=brain wall_ms=1788931273363 mono_ms=57126 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.3636948Z CONN_LIFECYCLE: conn=456 role=brain wall_ms=1788931273363 mono_ms=57126 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.3642093Z CONN_LIFECYCLE: conn=457 role=brain stream-subscriber stream=259 wall_ms=1788931273364 mono_ms=57126 event=stream-sub-attach stream=259 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.3643236Z CONN_LIFECYCLE: conn=457 role=brain stream-subscriber stream=259 wall_ms=1788931273364 mono_ms=57127 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.7854335Z CONN_LIFECYCLE: conn=457 role=brain stream-subscriber stream=259 wall_ms=1788931273785 mono_ms=57548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.7855278Z CONN_LIFECYCLE: conn=458 role=brain wall_ms=1788931273785 mono_ms=57548 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.7856244Z CONN_LIFECYCLE: conn=458 role=brain wall_ms=1788931273785 mono_ms=57548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9199271Z CONN_LIFECYCLE: conn=459 role=brain wall_ms=1788931273919 mono_ms=57682 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9200164Z CONN_LIFECYCLE: conn=459 role=brain wall_ms=1788931273919 mono_ms=57682 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9202638Z CONN_LIFECYCLE: conn=460 role=brain stream-subscriber stream=263 wall_ms=1788931273920 mono_ms=57682 event=stream-sub-attach stream=263 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9204032Z CONN_LIFECYCLE: conn=460 role=brain stream-subscriber stream=263 wall_ms=1788931273920 mono_ms=57683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9210646Z CONN_LIFECYCLE: conn=460 role=brain stream-subscriber stream=263 wall_ms=1788931273920 mono_ms=57683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9212351Z CONN_LIFECYCLE: conn=461 role=brain wall_ms=1788931273921 mono_ms=57683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:13.9213265Z CONN_LIFECYCLE: conn=461 role=brain wall_ms=1788931273921 mono_ms=57684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.1189193Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931274118 mono_ms=57881 event=stream-sub-attach stream=264 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.3439292Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931274343 mono_ms=58106 event=stream-sub-release stream=264 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.3590744Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931274358 mono_ms=58121 event=stream-sub-attach stream=265 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.3932246Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931274392 mono_ms=58155 event=stream-sub-release stream=265 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5751386Z CONN_LIFECYCLE: conn=462 role=brain wall_ms=1788931274575 mono_ms=58337 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5752321Z CONN_LIFECYCLE: conn=462 role=brain wall_ms=1788931274575 mono_ms=58337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5756343Z CONN_LIFECYCLE: conn=463 role=brain stream-subscriber stream=266 wall_ms=1788931274575 mono_ms=58338 event=stream-sub-attach stream=266 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5757758Z CONN_LIFECYCLE: conn=463 role=brain stream-subscriber stream=266 wall_ms=1788931274575 mono_ms=58338 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5777153Z CONN_LIFECYCLE: conn=463 role=brain stream-subscriber stream=266 wall_ms=1788931274577 mono_ms=58340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5778790Z CONN_LIFECYCLE: conn=464 role=brain wall_ms=1788931274577 mono_ms=58340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.5779537Z CONN_LIFECYCLE: conn=464 role=brain wall_ms=1788931274577 mono_ms=58340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6254415Z CONN_LIFECYCLE: conn=465 role=brain wall_ms=1788931274625 mono_ms=58388 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6255138Z CONN_LIFECYCLE: conn=466 role=brain wall_ms=1788931274625 mono_ms=58388 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6256436Z CONN_LIFECYCLE: conn=465 role=brain wall_ms=1788931274625 mono_ms=58388 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6257358Z CONN_LIFECYCLE: conn=466 role=brain wall_ms=1788931274625 mono_ms=58388 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6258538Z CONN_LIFECYCLE: conn=467 role=brain stream-subscriber stream=268 wall_ms=1788931274625 mono_ms=58388 event=stream-sub-attach stream=268 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6260006Z CONN_LIFECYCLE: conn=467 role=brain stream-subscriber stream=268 wall_ms=1788931274625 mono_ms=58388 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6267569Z CONN_LIFECYCLE: conn=467 role=brain stream-subscriber stream=268 wall_ms=1788931274626 mono_ms=58389 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6271445Z CONN_LIFECYCLE: conn=469 role=brain wall_ms=1788931274626 mono_ms=58389 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6272259Z CONN_LIFECYCLE: conn=468 role=brain wall_ms=1788931274626 mono_ms=58389 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6273153Z CONN_LIFECYCLE: conn=469 role=brain wall_ms=1788931274627 mono_ms=58389 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6274279Z CONN_LIFECYCLE: conn=468 role=brain stream-subscriber stream=267 wall_ms=1788931274627 mono_ms=58390 event=stream-sub-attach stream=267 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6299094Z CONN_LIFECYCLE: conn=468 role=brain stream-subscriber stream=267 wall_ms=1788931274629 mono_ms=58392 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6300596Z CONN_LIFECYCLE: conn=470 role=brain wall_ms=1788931274630 mono_ms=58392 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.6301815Z CONN_LIFECYCLE: conn=470 role=brain wall_ms=1788931274630 mono_ms=58392 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.7267613Z CONN_LIFECYCLE: conn=471 role=brain wall_ms=1788931274726 mono_ms=58489 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.7268697Z CONN_LIFECYCLE: conn=471 role=brain wall_ms=1788931274726 mono_ms=58489 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.7272927Z CONN_LIFECYCLE: conn=472 role=brain stream-subscriber stream=269 wall_ms=1788931274727 mono_ms=58490 event=stream-sub-attach stream=269 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.7274129Z CONN_LIFECYCLE: conn=472 role=brain stream-subscriber stream=269 wall_ms=1788931274727 mono_ms=58490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8205418Z CONN_LIFECYCLE: conn=472 role=brain stream-subscriber stream=269 wall_ms=1788931274820 mono_ms=58583 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8206735Z CONN_LIFECYCLE: conn=473 role=brain wall_ms=1788931274820 mono_ms=58583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8207657Z CONN_LIFECYCLE: conn=473 role=brain wall_ms=1788931274820 mono_ms=58583 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8782340Z CONN_LIFECYCLE: conn=474 role=brain wall_ms=1788931274878 mono_ms=58640 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8783274Z CONN_LIFECYCLE: conn=474 role=brain wall_ms=1788931274878 mono_ms=58641 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8785861Z CONN_LIFECYCLE: conn=475 role=brain stream-subscriber stream=270 wall_ms=1788931274878 mono_ms=58641 event=stream-sub-attach stream=270 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8787420Z CONN_LIFECYCLE: conn=475 role=brain stream-subscriber stream=270 wall_ms=1788931274878 mono_ms=58641 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8795389Z CONN_LIFECYCLE: conn=475 role=brain stream-subscriber stream=270 wall_ms=1788931274879 mono_ms=58642 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8797162Z CONN_LIFECYCLE: conn=476 role=brain wall_ms=1788931274879 mono_ms=58642 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:14.8798213Z CONN_LIFECYCLE: conn=476 role=brain wall_ms=1788931274879 mono_ms=58642 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.2953582Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931275295 mono_ms=59057 event=stream-sub-attach stream=274 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3827363Z CONN_LIFECYCLE: conn=477 role=brain wall_ms=1788931275382 mono_ms=59145 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3828196Z CONN_LIFECYCLE: conn=478 role=brain wall_ms=1788931275382 mono_ms=59145 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3829326Z CONN_LIFECYCLE: conn=479 role=brain wall_ms=1788931275382 mono_ms=59145 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3830309Z CONN_LIFECYCLE: conn=477 role=brain wall_ms=1788931275382 mono_ms=59145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3831402Z CONN_LIFECYCLE: conn=478 role=brain wall_ms=1788931275382 mono_ms=59145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3832299Z CONN_LIFECYCLE: conn=479 role=brain wall_ms=1788931275382 mono_ms=59145 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3833127Z CONN_LIFECYCLE: conn=480 role=brain stream-subscriber stream=277 wall_ms=1788931275383 mono_ms=59145 event=stream-sub-attach stream=277 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3834113Z CONN_LIFECYCLE: conn=482 role=brain stream-subscriber stream=275 wall_ms=1788931275383 mono_ms=59145 event=stream-sub-attach stream=275 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3834892Z CONN_LIFECYCLE: conn=480 role=brain stream-subscriber stream=277 wall_ms=1788931275383 mono_ms=59146 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3835800Z CONN_LIFECYCLE: conn=482 role=brain stream-subscriber stream=275 wall_ms=1788931275383 mono_ms=59146 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3841183Z CONN_LIFECYCLE: conn=480 role=brain stream-subscriber stream=277 wall_ms=1788931275384 mono_ms=59146 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3842291Z CONN_LIFECYCLE: conn=481 role=brain wall_ms=1788931275384 mono_ms=59146 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3843243Z CONN_LIFECYCLE: conn=483 role=brain wall_ms=1788931275384 mono_ms=59147 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3844314Z CONN_LIFECYCLE: conn=483 role=brain wall_ms=1788931275384 mono_ms=59147 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3845317Z CONN_LIFECYCLE: conn=481 role=brain stream-subscriber stream=276 wall_ms=1788931275384 mono_ms=59147 event=stream-sub-attach stream=276 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3859319Z CONN_LIFECYCLE: conn=482 role=brain stream-subscriber stream=275 wall_ms=1788931275385 mono_ms=59148 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3861003Z CONN_LIFECYCLE: conn=484 role=brain wall_ms=1788931275386 mono_ms=59148 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3862236Z CONN_LIFECYCLE: conn=484 role=brain wall_ms=1788931275386 mono_ms=59148 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3910009Z CONN_LIFECYCLE: conn=481 role=brain stream-subscriber stream=276 wall_ms=1788931275390 mono_ms=59153 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3911596Z CONN_LIFECYCLE: conn=485 role=brain wall_ms=1788931275391 mono_ms=59153 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.3912342Z CONN_LIFECYCLE: conn=485 role=brain wall_ms=1788931275391 mono_ms=59153 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5324338Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931275532 mono_ms=59294 event=stream-sub-release stream=274 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5344994Z CONN_LIFECYCLE: conn=486 role=brain wall_ms=1788931275534 mono_ms=59297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5346561Z CONN_LIFECYCLE: conn=487 role=brain wall_ms=1788931275534 mono_ms=59297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5347728Z CONN_LIFECYCLE: conn=488 role=brain wall_ms=1788931275534 mono_ms=59297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5348697Z CONN_LIFECYCLE: conn=487 role=brain wall_ms=1788931275534 mono_ms=59297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5350038Z CONN_LIFECYCLE: conn=486 role=brain wall_ms=1788931275534 mono_ms=59297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5351130Z CONN_LIFECYCLE: conn=488 role=brain wall_ms=1788931275534 mono_ms=59297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5352234Z CONN_LIFECYCLE: conn=489 role=brain stream-subscriber stream=280 wall_ms=1788931275534 mono_ms=59297 event=stream-sub-attach stream=280 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5354312Z CONN_LIFECYCLE: conn=490 role=brain stream-subscriber stream=278 wall_ms=1788931275534 mono_ms=59297 event=stream-sub-attach stream=278 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5355550Z CONN_LIFECYCLE: conn=489 role=brain stream-subscriber stream=280 wall_ms=1788931275535 mono_ms=59297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5356894Z CONN_LIFECYCLE: conn=490 role=brain stream-subscriber stream=278 wall_ms=1788931275535 mono_ms=59298 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5360650Z CONN_LIFECYCLE: conn=489 role=brain stream-subscriber stream=280 wall_ms=1788931275535 mono_ms=59298 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5361772Z CONN_LIFECYCLE: conn=491 role=brain wall_ms=1788931275535 mono_ms=59298 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5362730Z CONN_LIFECYCLE: conn=492 role=brain wall_ms=1788931275536 mono_ms=59298 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5363729Z CONN_LIFECYCLE: conn=491 role=brain stream-subscriber stream=279 wall_ms=1788931275536 mono_ms=59298 event=stream-sub-attach stream=279 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5364854Z CONN_LIFECYCLE: conn=492 role=brain wall_ms=1788931275536 mono_ms=59299 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5377303Z CONN_LIFECYCLE: conn=490 role=brain stream-subscriber stream=278 wall_ms=1788931275537 mono_ms=59300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5379332Z CONN_LIFECYCLE: conn=493 role=brain wall_ms=1788931275537 mono_ms=59300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5381313Z CONN_LIFECYCLE: conn=493 role=brain wall_ms=1788931275538 mono_ms=59300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5426765Z CONN_LIFECYCLE: conn=491 role=brain stream-subscriber stream=279 wall_ms=1788931275542 mono_ms=59305 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5428578Z CONN_LIFECYCLE: conn=494 role=brain wall_ms=1788931275542 mono_ms=59305 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5429437Z CONN_LIFECYCLE: conn=494 role=brain wall_ms=1788931275542 mono_ms=59305 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5541270Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931275553 mono_ms=59316 event=stream-sub-attach stream=281 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.5608341Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931275560 mono_ms=59323 event=stream-sub-release stream=281 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.6857883Z CONN_LIFECYCLE: conn=495 role=brain wall_ms=1788931275685 mono_ms=59448 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.6858852Z CONN_LIFECYCLE: conn=495 role=brain wall_ms=1788931275685 mono_ms=59448 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.6863104Z CONN_LIFECYCLE: conn=496 role=brain stream-subscriber stream=282 wall_ms=1788931275686 mono_ms=59449 event=stream-sub-attach stream=282 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.6864170Z CONN_LIFECYCLE: conn=496 role=brain stream-subscriber stream=282 wall_ms=1788931275686 mono_ms=59449 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9124226Z CONN_LIFECYCLE: conn=496 role=brain stream-subscriber stream=282 wall_ms=1788931275912 mono_ms=59675 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9125705Z CONN_LIFECYCLE: conn=497 role=brain wall_ms=1788931275912 mono_ms=59675 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9126885Z CONN_LIFECYCLE: conn=497 role=brain wall_ms=1788931275912 mono_ms=59675 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9889153Z CONN_LIFECYCLE: conn=498 role=brain wall_ms=1788931275988 mono_ms=59751 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9890025Z CONN_LIFECYCLE: conn=498 role=brain wall_ms=1788931275988 mono_ms=59751 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9892099Z CONN_LIFECYCLE: conn=499 role=brain stream-subscriber stream=283 wall_ms=1788931275989 mono_ms=59751 event=stream-sub-attach stream=283 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9893351Z CONN_LIFECYCLE: conn=499 role=brain stream-subscriber stream=283 wall_ms=1788931275989 mono_ms=59752 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9900272Z CONN_LIFECYCLE: conn=499 role=brain stream-subscriber stream=283 wall_ms=1788931275989 mono_ms=59752 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9902063Z CONN_LIFECYCLE: conn=500 role=brain wall_ms=1788931275990 mono_ms=59752 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:15.9903069Z CONN_LIFECYCLE: conn=500 role=brain wall_ms=1788931275990 mono_ms=59753 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.0153375Z test two_host_ladder_role_a has been running for over 60 seconds
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.3681040Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931276367 mono_ms=60130 event=stream-sub-attach stream=287 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6457504Z CONN_LIFECYCLE: conn=502 role=brain wall_ms=1788931276645 mono_ms=60408 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6458368Z CONN_LIFECYCLE: conn=501 role=brain wall_ms=1788931276645 mono_ms=60408 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6459121Z CONN_LIFECYCLE: conn=503 role=brain wall_ms=1788931276645 mono_ms=60408 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6460564Z CONN_LIFECYCLE: conn=502 role=brain wall_ms=1788931276645 mono_ms=60408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6462089Z CONN_LIFECYCLE: conn=503 role=brain wall_ms=1788931276645 mono_ms=60408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6462794Z CONN_LIFECYCLE: conn=501 role=brain wall_ms=1788931276645 mono_ms=60408 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6463790Z CONN_LIFECYCLE: conn=505 role=brain stream-subscriber stream=290 wall_ms=1788931276646 mono_ms=60408 event=stream-sub-attach stream=290 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6464959Z CONN_LIFECYCLE: conn=504 role=brain stream-subscriber stream=288 wall_ms=1788931276646 mono_ms=60408 event=stream-sub-attach stream=288 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6465601Z CONN_LIFECYCLE: conn=505 role=brain stream-subscriber stream=290 wall_ms=1788931276646 mono_ms=60409 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6466280Z CONN_LIFECYCLE: conn=504 role=brain stream-subscriber stream=288 wall_ms=1788931276646 mono_ms=60409 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6471039Z CONN_LIFECYCLE: conn=505 role=brain stream-subscriber stream=290 wall_ms=1788931276646 mono_ms=60409 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6472033Z CONN_LIFECYCLE: conn=506 role=brain wall_ms=1788931276647 mono_ms=60409 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6473020Z CONN_LIFECYCLE: conn=507 role=brain wall_ms=1788931276647 mono_ms=60409 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6473766Z CONN_LIFECYCLE: conn=506 role=brain stream-subscriber stream=289 wall_ms=1788931276647 mono_ms=60410 event=stream-sub-attach stream=289 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6474763Z CONN_LIFECYCLE: conn=507 role=brain wall_ms=1788931276647 mono_ms=60410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6483570Z CONN_LIFECYCLE: conn=504 role=brain stream-subscriber stream=288 wall_ms=1788931276648 mono_ms=60411 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6485378Z CONN_LIFECYCLE: conn=508 role=brain wall_ms=1788931276648 mono_ms=60411 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6486415Z CONN_LIFECYCLE: conn=508 role=brain wall_ms=1788931276648 mono_ms=60411 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6531498Z CONN_LIFECYCLE: conn=506 role=brain stream-subscriber stream=289 wall_ms=1788931276653 mono_ms=60415 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6533099Z CONN_LIFECYCLE: conn=509 role=brain wall_ms=1788931276653 mono_ms=60416 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.6534243Z CONN_LIFECYCLE: conn=509 role=brain wall_ms=1788931276653 mono_ms=60416 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.7976847Z CONN_LIFECYCLE: conn=510 role=brain wall_ms=1788931276796 mono_ms=60559 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.7986855Z CONN_LIFECYCLE: conn=510 role=brain wall_ms=1788931276798 mono_ms=60560 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8003457Z CONN_LIFECYCLE: conn=511 role=brain stream-subscriber stream=291 wall_ms=1788931276798 mono_ms=60561 event=stream-sub-attach stream=291 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8005099Z CONN_LIFECYCLE: conn=511 role=brain stream-subscriber stream=291 wall_ms=1788931276798 mono_ms=60561 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8536614Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931276853 mono_ms=60616 event=stream-sub-release stream=287 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8779036Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931276877 mono_ms=60640 event=stream-sub-attach stream=292 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8830175Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931276882 mono_ms=60645 event=stream-sub-release stream=292 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8976301Z CONN_LIFECYCLE: conn=511 role=brain stream-subscriber stream=291 wall_ms=1788931276897 mono_ms=60660 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8978447Z CONN_LIFECYCLE: conn=512 role=brain wall_ms=1788931276897 mono_ms=60660 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.8979433Z CONN_LIFECYCLE: conn=512 role=brain wall_ms=1788931276897 mono_ms=60660 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9482584Z CONN_LIFECYCLE: conn=513 role=brain wall_ms=1788931276948 mono_ms=60710 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9483480Z CONN_LIFECYCLE: conn=513 role=brain wall_ms=1788931276948 mono_ms=60711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9485867Z CONN_LIFECYCLE: conn=514 role=brain stream-subscriber stream=293 wall_ms=1788931276948 mono_ms=60711 event=stream-sub-attach stream=293 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9487352Z CONN_LIFECYCLE: conn=514 role=brain stream-subscriber stream=293 wall_ms=1788931276948 mono_ms=60711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9493854Z CONN_LIFECYCLE: conn=514 role=brain stream-subscriber stream=293 wall_ms=1788931276949 mono_ms=60712 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9495496Z CONN_LIFECYCLE: conn=515 role=brain wall_ms=1788931276949 mono_ms=60712 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:16.9496392Z CONN_LIFECYCLE: conn=515 role=brain wall_ms=1788931276949 mono_ms=60712 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6048220Z CONN_LIFECYCLE: conn=516 role=brain wall_ms=1788931277604 mono_ms=61367 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6050090Z CONN_LIFECYCLE: conn=516 role=brain wall_ms=1788931277604 mono_ms=61367 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6052074Z CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=297 wall_ms=1788931277605 mono_ms=61367 event=stream-sub-attach stream=297 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6053421Z CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=297 wall_ms=1788931277605 mono_ms=61368 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6073880Z CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=297 wall_ms=1788931277607 mono_ms=61370 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6075917Z CONN_LIFECYCLE: conn=518 role=brain wall_ms=1788931277607 mono_ms=61370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6076774Z CONN_LIFECYCLE: conn=518 role=brain wall_ms=1788931277607 mono_ms=61370 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6553490Z CONN_LIFECYCLE: conn=519 role=brain wall_ms=1788931277655 mono_ms=61418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6554457Z CONN_LIFECYCLE: conn=520 role=brain wall_ms=1788931277655 mono_ms=61418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6555564Z CONN_LIFECYCLE: conn=519 role=brain wall_ms=1788931277655 mono_ms=61418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6556558Z CONN_LIFECYCLE: conn=520 role=brain wall_ms=1788931277655 mono_ms=61418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6557404Z CONN_LIFECYCLE: conn=521 role=brain stream-subscriber stream=299 wall_ms=1788931277655 mono_ms=61418 event=stream-sub-attach stream=299 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6560381Z CONN_LIFECYCLE: conn=521 role=brain stream-subscriber stream=299 wall_ms=1788931277655 mono_ms=61418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6566690Z CONN_LIFECYCLE: conn=521 role=brain stream-subscriber stream=299 wall_ms=1788931277656 mono_ms=61419 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6567580Z CONN_LIFECYCLE: conn=522 role=brain wall_ms=1788931277656 mono_ms=61419 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6568379Z CONN_LIFECYCLE: conn=523 role=brain wall_ms=1788931277656 mono_ms=61419 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6569450Z CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=298 wall_ms=1788931277656 mono_ms=61419 event=stream-sub-attach stream=298 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6570195Z CONN_LIFECYCLE: conn=523 role=brain wall_ms=1788931277656 mono_ms=61419 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6593545Z CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=298 wall_ms=1788931277659 mono_ms=61422 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6595307Z CONN_LIFECYCLE: conn=524 role=brain wall_ms=1788931277659 mono_ms=61422 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.6595999Z CONN_LIFECYCLE: conn=524 role=brain wall_ms=1788931277659 mono_ms=61422 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.7566455Z CONN_LIFECYCLE: conn=525 role=brain wall_ms=1788931277756 mono_ms=61519 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.7567882Z CONN_LIFECYCLE: conn=525 role=brain wall_ms=1788931277756 mono_ms=61519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.7572689Z CONN_LIFECYCLE: conn=526 role=brain stream-subscriber stream=300 wall_ms=1788931277757 mono_ms=61519 event=stream-sub-attach stream=300 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.7574221Z CONN_LIFECYCLE: conn=526 role=brain stream-subscriber stream=300 wall_ms=1788931277757 mono_ms=61520 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.8493005Z CONN_LIFECYCLE: conn=526 role=brain stream-subscriber stream=300 wall_ms=1788931277849 mono_ms=61611 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.8494744Z CONN_LIFECYCLE: conn=527 role=brain wall_ms=1788931277849 mono_ms=61612 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.8495953Z CONN_LIFECYCLE: conn=527 role=brain wall_ms=1788931277849 mono_ms=61612 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9076493Z CONN_LIFECYCLE: conn=528 role=brain wall_ms=1788931277907 mono_ms=61670 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9077513Z CONN_LIFECYCLE: conn=528 role=brain wall_ms=1788931277907 mono_ms=61670 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9079671Z CONN_LIFECYCLE: conn=529 role=brain stream-subscriber stream=301 wall_ms=1788931277907 mono_ms=61670 event=stream-sub-attach stream=301 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9080703Z CONN_LIFECYCLE: conn=529 role=brain stream-subscriber stream=301 wall_ms=1788931277908 mono_ms=61670 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9088417Z CONN_LIFECYCLE: conn=529 role=brain stream-subscriber stream=301 wall_ms=1788931277908 mono_ms=61671 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9090009Z CONN_LIFECYCLE: conn=530 role=brain wall_ms=1788931277908 mono_ms=61671 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:17.9090992Z CONN_LIFECYCLE: conn=530 role=brain wall_ms=1788931277909 mono_ms=61671 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6142774Z CONN_LIFECYCLE: conn=532 role=brain wall_ms=1788931278614 mono_ms=62376 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6143630Z CONN_LIFECYCLE: conn=533 role=brain wall_ms=1788931278614 mono_ms=62376 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6144416Z CONN_LIFECYCLE: conn=531 role=brain wall_ms=1788931278614 mono_ms=62376 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6145334Z CONN_LIFECYCLE: conn=532 role=brain wall_ms=1788931278614 mono_ms=62377 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6146554Z CONN_LIFECYCLE: conn=533 role=brain wall_ms=1788931278614 mono_ms=62377 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6147188Z CONN_LIFECYCLE: conn=531 role=brain wall_ms=1788931278614 mono_ms=62377 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6148056Z CONN_LIFECYCLE: conn=535 role=brain stream-subscriber stream=304 wall_ms=1788931278614 mono_ms=62377 event=stream-sub-attach stream=304 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6148888Z CONN_LIFECYCLE: conn=534 role=brain stream-subscriber stream=302 wall_ms=1788931278614 mono_ms=62377 event=stream-sub-attach stream=302 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6149642Z CONN_LIFECYCLE: conn=535 role=brain stream-subscriber stream=304 wall_ms=1788931278614 mono_ms=62377 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6150298Z CONN_LIFECYCLE: conn=534 role=brain stream-subscriber stream=302 wall_ms=1788931278614 mono_ms=62377 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6155403Z CONN_LIFECYCLE: conn=535 role=brain stream-subscriber stream=304 wall_ms=1788931278615 mono_ms=62378 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6156189Z CONN_LIFECYCLE: conn=536 role=brain wall_ms=1788931278615 mono_ms=62378 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6157206Z CONN_LIFECYCLE: conn=537 role=brain wall_ms=1788931278615 mono_ms=62378 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6158122Z CONN_LIFECYCLE: conn=536 role=brain stream-subscriber stream=303 wall_ms=1788931278615 mono_ms=62378 event=stream-sub-attach stream=303 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6159010Z CONN_LIFECYCLE: conn=537 role=brain wall_ms=1788931278615 mono_ms=62378 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6170742Z CONN_LIFECYCLE: conn=534 role=brain stream-subscriber stream=302 wall_ms=1788931278616 mono_ms=62379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6172535Z CONN_LIFECYCLE: conn=538 role=brain wall_ms=1788931278617 mono_ms=62379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6173706Z CONN_LIFECYCLE: conn=538 role=brain wall_ms=1788931278617 mono_ms=62380 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6221851Z CONN_LIFECYCLE: conn=536 role=brain stream-subscriber stream=303 wall_ms=1788931278622 mono_ms=62384 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6223402Z CONN_LIFECYCLE: conn=539 role=brain wall_ms=1788931278622 mono_ms=62385 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.6224262Z CONN_LIFECYCLE: conn=539 role=brain wall_ms=1788931278622 mono_ms=62385 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.7151165Z CONN_LIFECYCLE: conn=540 role=brain wall_ms=1788931278714 mono_ms=62477 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.7152190Z CONN_LIFECYCLE: conn=540 role=brain wall_ms=1788931278715 mono_ms=62477 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.7156596Z CONN_LIFECYCLE: conn=541 role=brain stream-subscriber stream=305 wall_ms=1788931278715 mono_ms=62478 event=stream-sub-attach stream=305 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.7157799Z CONN_LIFECYCLE: conn=541 role=brain stream-subscriber stream=305 wall_ms=1788931278715 mono_ms=62478 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.8912869Z CONN_LIFECYCLE: conn=541 role=brain stream-subscriber stream=305 wall_ms=1788931278891 mono_ms=62653 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.8914384Z CONN_LIFECYCLE: conn=542 role=brain wall_ms=1788931278891 mono_ms=62654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.8915389Z CONN_LIFECYCLE: conn=542 role=brain wall_ms=1788931278891 mono_ms=62654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9277003Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931278927 mono_ms=62690 event=stream-sub-attach stream=307 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9676394Z CONN_LIFECYCLE: conn=543 role=brain wall_ms=1788931278967 mono_ms=62730 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9677294Z CONN_LIFECYCLE: conn=543 role=brain wall_ms=1788931278967 mono_ms=62730 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9679180Z CONN_LIFECYCLE: conn=544 role=brain stream-subscriber stream=306 wall_ms=1788931278967 mono_ms=62730 event=stream-sub-attach stream=306 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9680704Z CONN_LIFECYCLE: conn=544 role=brain stream-subscriber stream=306 wall_ms=1788931278967 mono_ms=62730 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9688432Z CONN_LIFECYCLE: conn=544 role=brain stream-subscriber stream=306 wall_ms=1788931278968 mono_ms=62731 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9690260Z CONN_LIFECYCLE: conn=545 role=brain wall_ms=1788931278968 mono_ms=62731 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:18.9691022Z CONN_LIFECYCLE: conn=545 role=brain wall_ms=1788931278969 mono_ms=62731 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6316299Z CONN_LIFECYCLE: conn=546 role=brain wall_ms=1788931279631 mono_ms=63394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6317448Z CONN_LIFECYCLE: conn=547 role=brain wall_ms=1788931279631 mono_ms=63394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6318564Z CONN_LIFECYCLE: conn=548 role=brain wall_ms=1788931279631 mono_ms=63394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6319750Z CONN_LIFECYCLE: conn=547 role=brain wall_ms=1788931279631 mono_ms=63394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6320890Z CONN_LIFECYCLE: conn=546 role=brain wall_ms=1788931279631 mono_ms=63394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6322331Z CONN_LIFECYCLE: conn=548 role=brain wall_ms=1788931279631 mono_ms=63394 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6323102Z CONN_LIFECYCLE: conn=549 role=brain stream-subscriber stream=310 wall_ms=1788931279631 mono_ms=63394 event=stream-sub-attach stream=310 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6323875Z CONN_LIFECYCLE: conn=551 role=brain stream-subscriber stream=308 wall_ms=1788931279632 mono_ms=63394 event=stream-sub-attach stream=308 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6324553Z CONN_LIFECYCLE: conn=549 role=brain stream-subscriber stream=310 wall_ms=1788931279632 mono_ms=63394 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6325241Z CONN_LIFECYCLE: conn=551 role=brain stream-subscriber stream=308 wall_ms=1788931279632 mono_ms=63395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6327864Z CONN_LIFECYCLE: conn=550 role=brain wall_ms=1788931279632 mono_ms=63395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6329301Z CONN_LIFECYCLE: conn=549 role=brain stream-subscriber stream=310 wall_ms=1788931279632 mono_ms=63395 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6330777Z CONN_LIFECYCLE: conn=550 role=brain stream-subscriber stream=309 wall_ms=1788931279632 mono_ms=63395 event=stream-sub-attach stream=309 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6331710Z CONN_LIFECYCLE: conn=552 role=brain wall_ms=1788931279633 mono_ms=63395 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6332401Z CONN_LIFECYCLE: conn=552 role=brain wall_ms=1788931279633 mono_ms=63395 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6343789Z CONN_LIFECYCLE: conn=551 role=brain stream-subscriber stream=308 wall_ms=1788931279634 mono_ms=63397 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6345186Z CONN_LIFECYCLE: conn=553 role=brain wall_ms=1788931279634 mono_ms=63397 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6345862Z CONN_LIFECYCLE: conn=553 role=brain wall_ms=1788931279634 mono_ms=63397 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6386272Z CONN_LIFECYCLE: conn=550 role=brain stream-subscriber stream=309 wall_ms=1788931279638 mono_ms=63401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6387717Z CONN_LIFECYCLE: conn=554 role=brain wall_ms=1788931279638 mono_ms=63401 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.6388855Z CONN_LIFECYCLE: conn=554 role=brain wall_ms=1788931279638 mono_ms=63401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.7827933Z CONN_LIFECYCLE: conn=555 role=brain wall_ms=1788931279782 mono_ms=63545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.7828871Z CONN_LIFECYCLE: conn=555 role=brain wall_ms=1788931279782 mono_ms=63545 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.7833615Z CONN_LIFECYCLE: conn=556 role=brain stream-subscriber stream=311 wall_ms=1788931279783 mono_ms=63546 event=stream-sub-attach stream=311 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:19.7834987Z CONN_LIFECYCLE: conn=556 role=brain stream-subscriber stream=311 wall_ms=1788931279783 mono_ms=63546 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.4742251Z CONN_LIFECYCLE: conn=556 role=brain stream-subscriber stream=311 wall_ms=1788931280474 mono_ms=64236 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.4743468Z CONN_LIFECYCLE: conn=557 role=brain wall_ms=1788931280474 mono_ms=64237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.4744312Z CONN_LIFECYCLE: conn=557 role=brain wall_ms=1788931280474 mono_ms=64237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5414088Z CONN_LIFECYCLE: conn=558 role=brain wall_ms=1788931280541 mono_ms=64304 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5414995Z CONN_LIFECYCLE: conn=558 role=brain wall_ms=1788931280541 mono_ms=64304 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5417683Z CONN_LIFECYCLE: conn=559 role=brain stream-subscriber stream=312 wall_ms=1788931280541 mono_ms=64304 event=stream-sub-attach stream=312 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5418712Z CONN_LIFECYCLE: conn=559 role=brain stream-subscriber stream=312 wall_ms=1788931280541 mono_ms=64304 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5426172Z CONN_LIFECYCLE: conn=559 role=brain stream-subscriber stream=312 wall_ms=1788931280542 mono_ms=64305 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5428106Z CONN_LIFECYCLE: conn=560 role=brain wall_ms=1788931280542 mono_ms=64305 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:20.5429143Z CONN_LIFECYCLE: conn=560 role=brain wall_ms=1788931280542 mono_ms=64305 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1082381Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931281107 mono_ms=64870 event=stream-sub-release stream=307 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1241018Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931281123 mono_ms=64886 event=stream-sub-attach stream=313 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1614492Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931281161 mono_ms=64924 event=stream-sub-release stream=313 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1966958Z CONN_LIFECYCLE: conn=561 role=brain wall_ms=1788931281196 mono_ms=64959 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1968103Z CONN_LIFECYCLE: conn=562 role=brain wall_ms=1788931281196 mono_ms=64959 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1968914Z CONN_LIFECYCLE: conn=563 role=brain wall_ms=1788931281196 mono_ms=64959 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1969782Z CONN_LIFECYCLE: conn=561 role=brain wall_ms=1788931281196 mono_ms=64959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1970680Z CONN_LIFECYCLE: conn=562 role=brain wall_ms=1788931281196 mono_ms=64959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1971424Z CONN_LIFECYCLE: conn=563 role=brain wall_ms=1788931281196 mono_ms=64959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1972327Z CONN_LIFECYCLE: conn=566 role=brain stream-subscriber stream=314 wall_ms=1788931281197 mono_ms=64959 event=stream-sub-attach stream=314 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1973576Z CONN_LIFECYCLE: conn=564 role=brain stream-subscriber stream=316 wall_ms=1788931281197 mono_ms=64959 event=stream-sub-attach stream=316 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1974298Z CONN_LIFECYCLE: conn=566 role=brain stream-subscriber stream=314 wall_ms=1788931281197 mono_ms=64960 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1975120Z CONN_LIFECYCLE: conn=564 role=brain stream-subscriber stream=316 wall_ms=1788931281197 mono_ms=64960 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1979521Z CONN_LIFECYCLE: conn=564 role=brain stream-subscriber stream=316 wall_ms=1788931281197 mono_ms=64960 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1980373Z CONN_LIFECYCLE: conn=565 role=brain wall_ms=1788931281197 mono_ms=64960 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1981384Z CONN_LIFECYCLE: conn=567 role=brain wall_ms=1788931281198 mono_ms=64960 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1982253Z CONN_LIFECYCLE: conn=565 role=brain stream-subscriber stream=315 wall_ms=1788931281198 mono_ms=64960 event=stream-sub-attach stream=315 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1983451Z CONN_LIFECYCLE: conn=567 role=brain wall_ms=1788931281198 mono_ms=64960 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1994273Z CONN_LIFECYCLE: conn=566 role=brain stream-subscriber stream=314 wall_ms=1788931281199 mono_ms=64962 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1996142Z CONN_LIFECYCLE: conn=568 role=brain wall_ms=1788931281199 mono_ms=64962 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.1997208Z CONN_LIFECYCLE: conn=568 role=brain wall_ms=1788931281199 mono_ms=64962 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.2044281Z CONN_LIFECYCLE: conn=565 role=brain stream-subscriber stream=315 wall_ms=1788931281204 mono_ms=64967 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.2045894Z CONN_LIFECYCLE: conn=569 role=brain wall_ms=1788931281204 mono_ms=64967 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.2046620Z CONN_LIFECYCLE: conn=569 role=brain wall_ms=1788931281204 mono_ms=64967 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.3483704Z CONN_LIFECYCLE: conn=570 role=brain wall_ms=1788931281348 mono_ms=65111 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.3484908Z CONN_LIFECYCLE: conn=570 role=brain wall_ms=1788931281348 mono_ms=65111 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.3494186Z CONN_LIFECYCLE: conn=571 role=brain stream-subscriber stream=317 wall_ms=1788931281348 mono_ms=65111 event=stream-sub-attach stream=317 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:21.3495709Z CONN_LIFECYCLE: conn=571 role=brain stream-subscriber stream=317 wall_ms=1788931281349 mono_ms=65112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:22.7491719Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931282748 mono_ms=66511 event=stream-sub-attach stream=321 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1082779Z CONN_LIFECYCLE: conn=571 role=brain stream-subscriber stream=317 wall_ms=1788931284107 mono_ms=67870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1096124Z CONN_LIFECYCLE: conn=572 role=brain wall_ms=1788931284109 mono_ms=67872 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1109445Z CONN_LIFECYCLE: conn=572 role=brain wall_ms=1788931284110 mono_ms=67873 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1816706Z CONN_LIFECYCLE: conn=573 role=brain wall_ms=1788931284181 mono_ms=67943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1823082Z CONN_LIFECYCLE: conn=573 role=brain wall_ms=1788931284181 mono_ms=67944 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1825540Z CONN_LIFECYCLE: conn=574 role=brain stream-subscriber stream=322 wall_ms=1788931284182 mono_ms=67945 event=stream-sub-attach stream=322 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1826848Z CONN_LIFECYCLE: conn=574 role=brain stream-subscriber stream=322 wall_ms=1788931284182 mono_ms=67945 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1846519Z CONN_LIFECYCLE: conn=574 role=brain stream-subscriber stream=322 wall_ms=1788931284184 mono_ms=67947 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1847585Z CONN_LIFECYCLE: conn=575 role=brain wall_ms=1788931284184 mono_ms=67947 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.1848661Z CONN_LIFECYCLE: conn=575 role=brain wall_ms=1788931284184 mono_ms=67947 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8414332Z CONN_LIFECYCLE: conn=576 role=brain wall_ms=1788931284841 mono_ms=68604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8416247Z CONN_LIFECYCLE: conn=577 role=brain wall_ms=1788931284841 mono_ms=68604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8417166Z CONN_LIFECYCLE: conn=578 role=brain wall_ms=1788931284841 mono_ms=68604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8418015Z CONN_LIFECYCLE: conn=576 role=brain wall_ms=1788931284841 mono_ms=68604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8418887Z CONN_LIFECYCLE: conn=577 role=brain wall_ms=1788931284841 mono_ms=68604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8419729Z CONN_LIFECYCLE: conn=578 role=brain wall_ms=1788931284841 mono_ms=68604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8420729Z CONN_LIFECYCLE: conn=581 role=brain stream-subscriber stream=323 wall_ms=1788931284841 mono_ms=68604 event=stream-sub-attach stream=323 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8422265Z CONN_LIFECYCLE: conn=580 role=brain stream-subscriber stream=325 wall_ms=1788931284841 mono_ms=68604 event=stream-sub-attach stream=325 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8423545Z CONN_LIFECYCLE: conn=581 role=brain stream-subscriber stream=323 wall_ms=1788931284842 mono_ms=68604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8424908Z CONN_LIFECYCLE: conn=580 role=brain stream-subscriber stream=325 wall_ms=1788931284842 mono_ms=68605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8429675Z CONN_LIFECYCLE: conn=579 role=brain wall_ms=1788931284842 mono_ms=68605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8432387Z CONN_LIFECYCLE: conn=580 role=brain stream-subscriber stream=325 wall_ms=1788931284843 mono_ms=68605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8433812Z CONN_LIFECYCLE: conn=579 role=brain stream-subscriber stream=324 wall_ms=1788931284843 mono_ms=68605 event=stream-sub-attach stream=324 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8435459Z CONN_LIFECYCLE: conn=582 role=brain wall_ms=1788931284843 mono_ms=68606 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8436816Z CONN_LIFECYCLE: conn=582 role=brain wall_ms=1788931284843 mono_ms=68606 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8446567Z CONN_LIFECYCLE: conn=581 role=brain stream-subscriber stream=323 wall_ms=1788931284844 mono_ms=68607 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8448561Z CONN_LIFECYCLE: conn=583 role=brain wall_ms=1788931284844 mono_ms=68607 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8449532Z CONN_LIFECYCLE: conn=583 role=brain wall_ms=1788931284844 mono_ms=68607 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8510697Z CONN_LIFECYCLE: conn=579 role=brain stream-subscriber stream=324 wall_ms=1788931284850 mono_ms=68613 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8512057Z CONN_LIFECYCLE: conn=584 role=brain wall_ms=1788931284851 mono_ms=68613 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.8513974Z CONN_LIFECYCLE: conn=584 role=brain wall_ms=1788931284851 mono_ms=68614 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.9957185Z CONN_LIFECYCLE: conn=585 role=brain wall_ms=1788931284995 mono_ms=68758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.9958168Z CONN_LIFECYCLE: conn=585 role=brain wall_ms=1788931284995 mono_ms=68758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.9964092Z CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=326 wall_ms=1788931284996 mono_ms=68759 event=stream-sub-attach stream=326 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:24.9965546Z CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=326 wall_ms=1788931284996 mono_ms=68759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.3065817Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931285306 mono_ms=69069 event=stream-sub-release stream=321 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.3230581Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931285322 mono_ms=69085 event=stream-sub-attach stream=327 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.3348648Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931285334 mono_ms=69097 event=stream-sub-release stream=327 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.8981815Z CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=326 wall_ms=1788931285898 mono_ms=69660 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.8983297Z CONN_LIFECYCLE: conn=587 role=brain wall_ms=1788931285898 mono_ms=69661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.8984171Z CONN_LIFECYCLE: conn=587 role=brain wall_ms=1788931285898 mono_ms=69661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9643093Z CONN_LIFECYCLE: conn=588 role=brain wall_ms=1788931285964 mono_ms=69726 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9645908Z CONN_LIFECYCLE: conn=588 role=brain wall_ms=1788931285964 mono_ms=69727 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9651708Z CONN_LIFECYCLE: conn=589 role=brain stream-subscriber stream=328 wall_ms=1788931285964 mono_ms=69727 event=stream-sub-attach stream=328 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9653520Z CONN_LIFECYCLE: conn=589 role=brain stream-subscriber stream=328 wall_ms=1788931285965 mono_ms=69728 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9663777Z CONN_LIFECYCLE: conn=589 role=brain stream-subscriber stream=328 wall_ms=1788931285966 mono_ms=69729 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9666075Z CONN_LIFECYCLE: conn=590 role=brain wall_ms=1788931285966 mono_ms=69729 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:25.9667162Z CONN_LIFECYCLE: conn=590 role=brain wall_ms=1788931285966 mono_ms=69729 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.3216233Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931286321 mono_ms=70084 event=stream-sub-attach stream=332 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6640798Z CONN_LIFECYCLE: conn=591 role=brain wall_ms=1788931286663 mono_ms=70426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6641967Z CONN_LIFECYCLE: conn=592 role=brain wall_ms=1788931286663 mono_ms=70426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6642929Z CONN_LIFECYCLE: conn=593 role=brain wall_ms=1788931286663 mono_ms=70426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6644095Z CONN_LIFECYCLE: conn=592 role=brain wall_ms=1788931286664 mono_ms=70426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6644798Z CONN_LIFECYCLE: conn=591 role=brain wall_ms=1788931286664 mono_ms=70426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6645641Z CONN_LIFECYCLE: conn=593 role=brain wall_ms=1788931286664 mono_ms=70426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6646513Z CONN_LIFECYCLE: conn=596 role=brain stream-subscriber stream=333 wall_ms=1788931286664 mono_ms=70427 event=stream-sub-attach stream=333 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6649461Z CONN_LIFECYCLE: conn=594 role=brain stream-subscriber stream=335 wall_ms=1788931286664 mono_ms=70427 event=stream-sub-attach stream=335 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6650196Z CONN_LIFECYCLE: conn=596 role=brain stream-subscriber stream=333 wall_ms=1788931286664 mono_ms=70427 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6650777Z CONN_LIFECYCLE: conn=594 role=brain stream-subscriber stream=335 wall_ms=1788931286664 mono_ms=70427 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6655804Z CONN_LIFECYCLE: conn=594 role=brain stream-subscriber stream=335 wall_ms=1788931286665 mono_ms=70428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6657313Z CONN_LIFECYCLE: conn=595 role=brain wall_ms=1788931286665 mono_ms=70428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6658627Z CONN_LIFECYCLE: conn=595 role=brain stream-subscriber stream=334 wall_ms=1788931286665 mono_ms=70428 event=stream-sub-attach stream=334 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6659742Z CONN_LIFECYCLE: conn=597 role=brain wall_ms=1788931286665 mono_ms=70428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6660684Z CONN_LIFECYCLE: conn=597 role=brain wall_ms=1788931286665 mono_ms=70428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6672492Z CONN_LIFECYCLE: conn=596 role=brain stream-subscriber stream=333 wall_ms=1788931286667 mono_ms=70429 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6674449Z CONN_LIFECYCLE: conn=598 role=brain wall_ms=1788931286667 mono_ms=70430 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6675458Z CONN_LIFECYCLE: conn=598 role=brain wall_ms=1788931286667 mono_ms=70430 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6728979Z CONN_LIFECYCLE: conn=595 role=brain stream-subscriber stream=334 wall_ms=1788931286672 mono_ms=70435 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6730413Z CONN_LIFECYCLE: conn=599 role=brain wall_ms=1788931286672 mono_ms=70435 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.6731327Z CONN_LIFECYCLE: conn=599 role=brain wall_ms=1788931286673 mono_ms=70435 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.7649032Z CONN_LIFECYCLE: conn=600 role=brain wall_ms=1788931286764 mono_ms=70527 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.7650155Z CONN_LIFECYCLE: conn=600 role=brain wall_ms=1788931286764 mono_ms=70527 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.7654434Z CONN_LIFECYCLE: conn=601 role=brain stream-subscriber stream=336 wall_ms=1788931286765 mono_ms=70528 event=stream-sub-attach stream=336 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.7655675Z CONN_LIFECYCLE: conn=601 role=brain stream-subscriber stream=336 wall_ms=1788931286765 mono_ms=70528 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.8344635Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931286834 mono_ms=70596 event=stream-sub-release stream=332 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.8516428Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931286851 mono_ms=70614 event=stream-sub-attach stream=337 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:26.8626381Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931286862 mono_ms=70625 event=stream-sub-release stream=337 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1156458Z CONN_LIFECYCLE: conn=601 role=brain stream-subscriber stream=336 wall_ms=1788931287115 mono_ms=70878 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1159040Z CONN_LIFECYCLE: conn=602 role=brain wall_ms=1788931287115 mono_ms=70878 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1160604Z CONN_LIFECYCLE: conn=602 role=brain wall_ms=1788931287115 mono_ms=70878 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1682954Z CONN_LIFECYCLE: conn=603 role=brain wall_ms=1788931287168 mono_ms=70930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1683860Z CONN_LIFECYCLE: conn=603 role=brain wall_ms=1788931287168 mono_ms=70931 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1685925Z CONN_LIFECYCLE: conn=604 role=brain stream-subscriber stream=338 wall_ms=1788931287168 mono_ms=70931 event=stream-sub-attach stream=338 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1687606Z CONN_LIFECYCLE: conn=604 role=brain stream-subscriber stream=338 wall_ms=1788931287168 mono_ms=70931 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1694565Z CONN_LIFECYCLE: conn=604 role=brain stream-subscriber stream=338 wall_ms=1788931287169 mono_ms=70932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1696198Z CONN_LIFECYCLE: conn=605 role=brain wall_ms=1788931287169 mono_ms=70932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.1697200Z CONN_LIFECYCLE: conn=605 role=brain wall_ms=1788931287169 mono_ms=70932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.7280378Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931287727 mono_ms=71490 event=stream-sub-attach stream=342 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8751411Z CONN_LIFECYCLE: conn=606 role=brain wall_ms=1788931287874 mono_ms=71637 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8752363Z CONN_LIFECYCLE: conn=607 role=brain wall_ms=1788931287875 mono_ms=71637 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8753435Z CONN_LIFECYCLE: conn=608 role=brain wall_ms=1788931287875 mono_ms=71637 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8754456Z CONN_LIFECYCLE: conn=606 role=brain wall_ms=1788931287875 mono_ms=71637 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8755265Z CONN_LIFECYCLE: conn=607 role=brain wall_ms=1788931287875 mono_ms=71637 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8756504Z CONN_LIFECYCLE: conn=608 role=brain wall_ms=1788931287875 mono_ms=71637 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8757357Z CONN_LIFECYCLE: conn=610 role=brain stream-subscriber stream=343 wall_ms=1788931287875 mono_ms=71638 event=stream-sub-attach stream=343 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8758514Z CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=345 wall_ms=1788931287875 mono_ms=71638 event=stream-sub-attach stream=345 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8759272Z CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=345 wall_ms=1788931287875 mono_ms=71638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8759923Z CONN_LIFECYCLE: conn=610 role=brain stream-subscriber stream=343 wall_ms=1788931287875 mono_ms=71638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8764909Z CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=345 wall_ms=1788931287876 mono_ms=71639 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8765728Z CONN_LIFECYCLE: conn=611 role=brain wall_ms=1788931287876 mono_ms=71639 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8766628Z CONN_LIFECYCLE: conn=612 role=brain wall_ms=1788931287876 mono_ms=71639 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8767550Z CONN_LIFECYCLE: conn=611 role=brain stream-subscriber stream=344 wall_ms=1788931287876 mono_ms=71639 event=stream-sub-attach stream=344 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8768485Z CONN_LIFECYCLE: conn=612 role=brain wall_ms=1788931287876 mono_ms=71639 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8779624Z CONN_LIFECYCLE: conn=610 role=brain stream-subscriber stream=343 wall_ms=1788931287877 mono_ms=71640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8781426Z CONN_LIFECYCLE: conn=613 role=brain wall_ms=1788931287878 mono_ms=71640 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8782436Z CONN_LIFECYCLE: conn=613 role=brain wall_ms=1788931287878 mono_ms=71640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8827717Z CONN_LIFECYCLE: conn=611 role=brain stream-subscriber stream=344 wall_ms=1788931287882 mono_ms=71645 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8829394Z CONN_LIFECYCLE: conn=614 role=brain wall_ms=1788931287882 mono_ms=71645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.8830471Z CONN_LIFECYCLE: conn=614 role=brain wall_ms=1788931287882 mono_ms=71645 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.9760329Z CONN_LIFECYCLE: conn=615 role=brain wall_ms=1788931287975 mono_ms=71738 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.9761841Z CONN_LIFECYCLE: conn=615 role=brain wall_ms=1788931287976 mono_ms=71738 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.9766627Z CONN_LIFECYCLE: conn=616 role=brain stream-subscriber stream=346 wall_ms=1788931287976 mono_ms=71739 event=stream-sub-attach stream=346 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:27.9767834Z CONN_LIFECYCLE: conn=616 role=brain stream-subscriber stream=346 wall_ms=1788931287976 mono_ms=71739 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.3648584Z CONN_LIFECYCLE: conn=616 role=brain stream-subscriber stream=346 wall_ms=1788931288364 mono_ms=72127 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.3650286Z CONN_LIFECYCLE: conn=617 role=brain wall_ms=1788931288364 mono_ms=72127 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.3651590Z CONN_LIFECYCLE: conn=617 role=brain wall_ms=1788931288365 mono_ms=72127 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4310478Z CONN_LIFECYCLE: conn=618 role=brain wall_ms=1788931288430 mono_ms=72193 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4311491Z CONN_LIFECYCLE: conn=618 role=brain wall_ms=1788931288431 mono_ms=72193 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4313845Z CONN_LIFECYCLE: conn=619 role=brain stream-subscriber stream=347 wall_ms=1788931288431 mono_ms=72194 event=stream-sub-attach stream=347 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4315465Z CONN_LIFECYCLE: conn=619 role=brain stream-subscriber stream=347 wall_ms=1788931288431 mono_ms=72194 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4323015Z CONN_LIFECYCLE: conn=619 role=brain stream-subscriber stream=347 wall_ms=1788931288432 mono_ms=72195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4324818Z CONN_LIFECYCLE: conn=620 role=brain wall_ms=1788931288432 mono_ms=72195 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:28.4326192Z CONN_LIFECYCLE: conn=620 role=brain wall_ms=1788931288432 mono_ms=72195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0863097Z CONN_LIFECYCLE: conn=621 role=brain wall_ms=1788931289086 mono_ms=72848 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0863818Z CONN_LIFECYCLE: conn=622 role=brain wall_ms=1788931289086 mono_ms=72848 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0864650Z CONN_LIFECYCLE: conn=622 role=brain wall_ms=1788931289086 mono_ms=72849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0865746Z CONN_LIFECYCLE: conn=621 role=brain wall_ms=1788931289086 mono_ms=72849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0868604Z CONN_LIFECYCLE: conn=623 role=brain stream-subscriber stream=348 wall_ms=1788931289086 mono_ms=72849 event=stream-sub-attach stream=348 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0870057Z CONN_LIFECYCLE: conn=623 role=brain stream-subscriber stream=348 wall_ms=1788931289086 mono_ms=72849 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0874635Z CONN_LIFECYCLE: conn=624 role=brain wall_ms=1788931289087 mono_ms=72850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.0876115Z CONN_LIFECYCLE: conn=624 role=brain stream-subscriber stream=349 wall_ms=1788931289087 mono_ms=72850 event=stream-sub-attach stream=349 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1368845Z CONN_LIFECYCLE: conn=625 role=brain wall_ms=1788931289136 mono_ms=72899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1369800Z CONN_LIFECYCLE: conn=625 role=brain wall_ms=1788931289136 mono_ms=72899 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1372584Z CONN_LIFECYCLE: conn=626 role=brain stream-subscriber stream=350 wall_ms=1788931289137 mono_ms=72899 event=stream-sub-attach stream=350 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1374044Z CONN_LIFECYCLE: conn=626 role=brain stream-subscriber stream=350 wall_ms=1788931289137 mono_ms=72900 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1380433Z CONN_LIFECYCLE: conn=626 role=brain stream-subscriber stream=350 wall_ms=1788931289137 mono_ms=72900 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1382214Z CONN_LIFECYCLE: conn=627 role=brain wall_ms=1788931289138 mono_ms=72900 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.1383054Z CONN_LIFECYCLE: conn=627 role=brain wall_ms=1788931289138 mono_ms=72901 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.2373600Z CONN_LIFECYCLE: conn=628 role=brain wall_ms=1788931289237 mono_ms=73000 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.2375084Z CONN_LIFECYCLE: conn=628 role=brain wall_ms=1788931289237 mono_ms=73000 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.2379841Z CONN_LIFECYCLE: conn=629 role=brain stream-subscriber stream=351 wall_ms=1788931289237 mono_ms=73000 event=stream-sub-attach stream=351 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.2380904Z CONN_LIFECYCLE: conn=629 role=brain stream-subscriber stream=351 wall_ms=1788931289238 mono_ms=73000 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.5905551Z CONN_LIFECYCLE: conn=629 role=brain stream-subscriber stream=351 wall_ms=1788931289590 mono_ms=73353 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.5907250Z CONN_LIFECYCLE: conn=630 role=brain wall_ms=1788931289590 mono_ms=73353 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.5908928Z CONN_LIFECYCLE: conn=630 role=brain wall_ms=1788931289590 mono_ms=73353 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6077002Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931289604 mono_ms=73367 event=stream-sub-release stream=342 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6369130Z CONN_LIFECYCLE: conn=624 role=brain stream-subscriber stream=349 wall_ms=1788931289636 mono_ms=73399 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6371302Z CONN_LIFECYCLE: conn=631 role=brain wall_ms=1788931289637 mono_ms=73399 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6372876Z CONN_LIFECYCLE: conn=623 role=brain stream-subscriber stream=348 wall_ms=1788931289637 mono_ms=73399 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6374073Z CONN_LIFECYCLE: conn=631 role=brain wall_ms=1788931289637 mono_ms=73400 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6375025Z CONN_LIFECYCLE: conn=632 role=brain wall_ms=1788931289637 mono_ms=73400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6375903Z CONN_LIFECYCLE: conn=632 role=brain wall_ms=1788931289637 mono_ms=73400 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6431531Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931289642 mono_ms=73405 event=stream-sub-attach stream=352 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6651512Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931289664 mono_ms=73427 event=stream-sub-release stream=352 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6924988Z CONN_LIFECYCLE: conn=633 role=brain wall_ms=1788931289692 mono_ms=73455 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6925967Z CONN_LIFECYCLE: conn=633 role=brain wall_ms=1788931289692 mono_ms=73455 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6928570Z CONN_LIFECYCLE: conn=634 role=brain stream-subscriber stream=353 wall_ms=1788931289692 mono_ms=73455 event=stream-sub-attach stream=353 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6930044Z CONN_LIFECYCLE: conn=634 role=brain stream-subscriber stream=353 wall_ms=1788931289692 mono_ms=73455 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6937487Z CONN_LIFECYCLE: conn=634 role=brain stream-subscriber stream=353 wall_ms=1788931289693 mono_ms=73456 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6938879Z CONN_LIFECYCLE: conn=635 role=brain wall_ms=1788931289693 mono_ms=73456 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:29.6939955Z CONN_LIFECYCLE: conn=635 role=brain wall_ms=1788931289693 mono_ms=73456 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.1190086Z PAIR_MEET_UP:twohost step=59631043 id=e0b71222965552cc8fa5c9ec9778c07ea11557bb4bd3c6f4602456a12d9f0708 addr=EndpointAddr { id: PublicKey(e0b71222965552cc8fa5c9ec9778c07ea11557bb4bd3c6f4602456a12d9f0708), addrs: {Ip(100.68.35.65:57365), Ip(192.168.1.81:57365)} }
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3496937Z CONN_LIFECYCLE: conn=636 role=brain wall_ms=1788931290349 mono_ms=74112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3497772Z CONN_LIFECYCLE: conn=637 role=brain wall_ms=1788931290349 mono_ms=74112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3499052Z CONN_LIFECYCLE: conn=638 role=brain wall_ms=1788931290349 mono_ms=74112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3500206Z CONN_LIFECYCLE: conn=637 role=brain wall_ms=1788931290349 mono_ms=74112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3501079Z CONN_LIFECYCLE: conn=638 role=brain wall_ms=1788931290349 mono_ms=74112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3501948Z CONN_LIFECYCLE: conn=636 role=brain wall_ms=1788931290349 mono_ms=74112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3502947Z CONN_LIFECYCLE: conn=639 role=brain stream-subscriber stream=357 wall_ms=1788931290350 mono_ms=74112 event=stream-sub-attach stream=357 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3503791Z CONN_LIFECYCLE: conn=641 role=brain stream-subscriber stream=359 wall_ms=1788931290350 mono_ms=74112 event=stream-sub-attach stream=359 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3504525Z CONN_LIFECYCLE: conn=639 role=brain stream-subscriber stream=357 wall_ms=1788931290350 mono_ms=74113 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3505290Z CONN_LIFECYCLE: conn=641 role=brain stream-subscriber stream=359 wall_ms=1788931290350 mono_ms=74113 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3509015Z CONN_LIFECYCLE: conn=640 role=brain wall_ms=1788931290350 mono_ms=74113 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3510174Z CONN_LIFECYCLE: conn=641 role=brain stream-subscriber stream=359 wall_ms=1788931290350 mono_ms=74113 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3511161Z CONN_LIFECYCLE: conn=640 role=brain stream-subscriber stream=358 wall_ms=1788931290350 mono_ms=74113 event=stream-sub-attach stream=358 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3512153Z CONN_LIFECYCLE: conn=642 role=brain wall_ms=1788931290351 mono_ms=74113 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3513038Z CONN_LIFECYCLE: conn=642 role=brain wall_ms=1788931290351 mono_ms=74114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3524978Z CONN_LIFECYCLE: conn=639 role=brain stream-subscriber stream=357 wall_ms=1788931290352 mono_ms=74115 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3526690Z CONN_LIFECYCLE: conn=643 role=brain wall_ms=1788931290352 mono_ms=74115 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3528041Z CONN_LIFECYCLE: conn=643 role=brain wall_ms=1788931290352 mono_ms=74115 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3593027Z CONN_LIFECYCLE: conn=640 role=brain stream-subscriber stream=358 wall_ms=1788931290359 mono_ms=74121 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3594650Z CONN_LIFECYCLE: conn=644 role=brain wall_ms=1788931290359 mono_ms=74122 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.3595449Z CONN_LIFECYCLE: conn=644 role=brain wall_ms=1788931290359 mono_ms=74122 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4000531Z CONN_LIFECYCLE: conn=645 role=brain wall_ms=1788931290399 mono_ms=74162 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4001294Z CONN_LIFECYCLE: conn=646 role=brain wall_ms=1788931290399 mono_ms=74162 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4002148Z CONN_LIFECYCLE: conn=645 role=brain wall_ms=1788931290400 mono_ms=74162 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4003016Z CONN_LIFECYCLE: conn=646 role=brain wall_ms=1788931290400 mono_ms=74162 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4004768Z CONN_LIFECYCLE: conn=647 role=brain stream-subscriber stream=361 wall_ms=1788931290400 mono_ms=74163 event=stream-sub-attach stream=361 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4006003Z CONN_LIFECYCLE: conn=647 role=brain stream-subscriber stream=361 wall_ms=1788931290400 mono_ms=74163 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4012098Z CONN_LIFECYCLE: conn=648 role=brain wall_ms=1788931290401 mono_ms=74163 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4012814Z CONN_LIFECYCLE: conn=647 role=brain stream-subscriber stream=361 wall_ms=1788931290401 mono_ms=74163 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4013612Z CONN_LIFECYCLE: conn=648 role=brain stream-subscriber stream=360 wall_ms=1788931290401 mono_ms=74164 event=stream-sub-attach stream=360 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4014399Z CONN_LIFECYCLE: conn=649 role=brain wall_ms=1788931290401 mono_ms=74164 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4015026Z CONN_LIFECYCLE: conn=649 role=brain wall_ms=1788931290401 mono_ms=74164 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4034826Z CONN_LIFECYCLE: conn=648 role=brain stream-subscriber stream=360 wall_ms=1788931290403 mono_ms=74166 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4036416Z CONN_LIFECYCLE: conn=650 role=brain wall_ms=1788931290403 mono_ms=74166 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.4037328Z CONN_LIFECYCLE: conn=650 role=brain wall_ms=1788931290403 mono_ms=74166 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.5013364Z CONN_LIFECYCLE: conn=651 role=brain wall_ms=1788931290501 mono_ms=74263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.5014287Z CONN_LIFECYCLE: conn=651 role=brain wall_ms=1788931290501 mono_ms=74264 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.5019169Z CONN_LIFECYCLE: conn=652 role=brain stream-subscriber stream=362 wall_ms=1788931290501 mono_ms=74264 event=stream-sub-attach stream=362 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.5020365Z CONN_LIFECYCLE: conn=652 role=brain stream-subscriber stream=362 wall_ms=1788931290501 mono_ms=74264 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:30.8666717Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931290866 mono_ms=74629 event=stream-sub-attach stream=363 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.4475878Z CONN_LIFECYCLE: conn=652 role=brain stream-subscriber stream=362 wall_ms=1788931291447 mono_ms=75210 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.4477086Z CONN_LIFECYCLE: conn=653 role=brain wall_ms=1788931291447 mono_ms=75210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.4478186Z CONN_LIFECYCLE: conn=653 role=brain wall_ms=1788931291447 mono_ms=75210 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5105565Z CONN_LIFECYCLE: conn=654 role=brain wall_ms=1788931291510 mono_ms=75273 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5106560Z CONN_LIFECYCLE: conn=654 role=brain wall_ms=1788931291510 mono_ms=75273 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5108212Z CONN_LIFECYCLE: conn=655 role=brain stream-subscriber stream=364 wall_ms=1788931291510 mono_ms=75273 event=stream-sub-attach stream=364 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5109789Z CONN_LIFECYCLE: conn=655 role=brain stream-subscriber stream=364 wall_ms=1788931291510 mono_ms=75273 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5115779Z CONN_LIFECYCLE: conn=655 role=brain stream-subscriber stream=364 wall_ms=1788931291511 mono_ms=75274 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5117514Z CONN_LIFECYCLE: conn=656 role=brain wall_ms=1788931291511 mono_ms=75274 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:31.5120059Z CONN_LIFECYCLE: conn=656 role=brain wall_ms=1788931291511 mono_ms=75274 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1666967Z CONN_LIFECYCLE: conn=657 role=brain wall_ms=1788931292166 mono_ms=75929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1667869Z CONN_LIFECYCLE: conn=658 role=brain wall_ms=1788931292166 mono_ms=75929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1668716Z CONN_LIFECYCLE: conn=659 role=brain wall_ms=1788931292166 mono_ms=75929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1669660Z CONN_LIFECYCLE: conn=658 role=brain wall_ms=1788931292166 mono_ms=75929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1670722Z CONN_LIFECYCLE: conn=657 role=brain wall_ms=1788931292166 mono_ms=75929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1671671Z CONN_LIFECYCLE: conn=659 role=brain wall_ms=1788931292166 mono_ms=75929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1672806Z CONN_LIFECYCLE: conn=661 role=brain stream-subscriber stream=367 wall_ms=1788931292167 mono_ms=75929 event=stream-sub-attach stream=367 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1673914Z CONN_LIFECYCLE: conn=662 role=brain stream-subscriber stream=365 wall_ms=1788931292167 mono_ms=75930 event=stream-sub-attach stream=365 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1674883Z CONN_LIFECYCLE: conn=661 role=brain stream-subscriber stream=367 wall_ms=1788931292167 mono_ms=75930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1675668Z CONN_LIFECYCLE: conn=662 role=brain stream-subscriber stream=365 wall_ms=1788931292167 mono_ms=75930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1678678Z CONN_LIFECYCLE: conn=660 role=brain wall_ms=1788931292167 mono_ms=75930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1680241Z CONN_LIFECYCLE: conn=660 role=brain stream-subscriber stream=366 wall_ms=1788931292167 mono_ms=75930 event=stream-sub-attach stream=366 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1681456Z CONN_LIFECYCLE: conn=661 role=brain stream-subscriber stream=367 wall_ms=1788931292168 mono_ms=75930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1682907Z CONN_LIFECYCLE: conn=663 role=brain wall_ms=1788931292168 mono_ms=75930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1683786Z CONN_LIFECYCLE: conn=663 role=brain wall_ms=1788931292168 mono_ms=75931 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1698213Z CONN_LIFECYCLE: conn=662 role=brain stream-subscriber stream=365 wall_ms=1788931292169 mono_ms=75932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1699920Z CONN_LIFECYCLE: conn=664 role=brain wall_ms=1788931292169 mono_ms=75932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1700901Z CONN_LIFECYCLE: conn=664 role=brain wall_ms=1788931292170 mono_ms=75932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1752685Z CONN_LIFECYCLE: conn=660 role=brain stream-subscriber stream=366 wall_ms=1788931292175 mono_ms=75937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1754489Z CONN_LIFECYCLE: conn=665 role=brain wall_ms=1788931292175 mono_ms=75938 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.1755376Z CONN_LIFECYCLE: conn=665 role=brain wall_ms=1788931292175 mono_ms=75938 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.3183598Z CONN_LIFECYCLE: conn=666 role=brain wall_ms=1788931292318 mono_ms=76080 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.3185271Z CONN_LIFECYCLE: conn=666 role=brain wall_ms=1788931292318 mono_ms=76081 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.3191530Z CONN_LIFECYCLE: conn=667 role=brain stream-subscriber stream=368 wall_ms=1788931292318 mono_ms=76081 event=stream-sub-attach stream=368 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:32.3193995Z CONN_LIFECYCLE: conn=667 role=brain stream-subscriber stream=368 wall_ms=1788931292319 mono_ms=76082 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.6060129Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931293605 mono_ms=77368 event=stream-sub-release stream=363 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.6216752Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931293621 mono_ms=77384 event=stream-sub-attach stream=369 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.6346320Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931293634 mono_ms=77397 event=stream-sub-release stream=369 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.7497970Z CONN_LIFECYCLE: conn=667 role=brain stream-subscriber stream=368 wall_ms=1788931293749 mono_ms=77512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.7499284Z CONN_LIFECYCLE: conn=668 role=brain wall_ms=1788931293749 mono_ms=77512 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.7500515Z CONN_LIFECYCLE: conn=668 role=brain wall_ms=1788931293749 mono_ms=77512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8821717Z CONN_LIFECYCLE: conn=669 role=brain wall_ms=1788931293882 mono_ms=77644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8822566Z CONN_LIFECYCLE: conn=669 role=brain wall_ms=1788931293882 mono_ms=77644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8825483Z CONN_LIFECYCLE: conn=670 role=brain stream-subscriber stream=370 wall_ms=1788931293882 mono_ms=77645 event=stream-sub-attach stream=370 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8827060Z CONN_LIFECYCLE: conn=670 role=brain stream-subscriber stream=370 wall_ms=1788931293882 mono_ms=77645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8833920Z CONN_LIFECYCLE: conn=670 role=brain stream-subscriber stream=370 wall_ms=1788931293883 mono_ms=77646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8835469Z CONN_LIFECYCLE: conn=671 role=brain wall_ms=1788931293883 mono_ms=77646 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:33.8836615Z CONN_LIFECYCLE: conn=671 role=brain wall_ms=1788931293883 mono_ms=77646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5378860Z CONN_LIFECYCLE: conn=672 role=brain wall_ms=1788931294537 mono_ms=78300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5379777Z CONN_LIFECYCLE: conn=673 role=brain wall_ms=1788931294537 mono_ms=78300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5380819Z CONN_LIFECYCLE: conn=673 role=brain wall_ms=1788931294537 mono_ms=78300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5381891Z CONN_LIFECYCLE: conn=672 role=brain wall_ms=1788931294537 mono_ms=78300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5384017Z CONN_LIFECYCLE: conn=674 role=brain stream-subscriber stream=374 wall_ms=1788931294538 mono_ms=78301 event=stream-sub-attach stream=374 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5385421Z CONN_LIFECYCLE: conn=674 role=brain stream-subscriber stream=374 wall_ms=1788931294538 mono_ms=78301 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5392022Z CONN_LIFECYCLE: conn=675 role=brain wall_ms=1788931294539 mono_ms=78301 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5393991Z CONN_LIFECYCLE: conn=675 role=brain stream-subscriber stream=375 wall_ms=1788931294539 mono_ms=78302 event=stream-sub-attach stream=375 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5409628Z CONN_LIFECYCLE: conn=674 role=brain stream-subscriber stream=374 wall_ms=1788931294540 mono_ms=78303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5411827Z CONN_LIFECYCLE: conn=676 role=brain wall_ms=1788931294541 mono_ms=78303 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5412749Z CONN_LIFECYCLE: conn=676 role=brain wall_ms=1788931294541 mono_ms=78303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5459274Z CONN_LIFECYCLE: conn=675 role=brain stream-subscriber stream=375 wall_ms=1788931294545 mono_ms=78308 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5460574Z CONN_LIFECYCLE: conn=677 role=brain wall_ms=1788931294546 mono_ms=78308 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5461526Z CONN_LIFECYCLE: conn=677 role=brain wall_ms=1788931294546 mono_ms=78308 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5885069Z CONN_LIFECYCLE: conn=678 role=brain wall_ms=1788931294588 mono_ms=78351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5886514Z CONN_LIFECYCLE: conn=678 role=brain wall_ms=1788931294588 mono_ms=78351 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5889605Z CONN_LIFECYCLE: conn=679 role=brain stream-subscriber stream=376 wall_ms=1788931294588 mono_ms=78351 event=stream-sub-attach stream=376 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5890399Z CONN_LIFECYCLE: conn=679 role=brain stream-subscriber stream=376 wall_ms=1788931294588 mono_ms=78351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5897429Z CONN_LIFECYCLE: conn=679 role=brain stream-subscriber stream=376 wall_ms=1788931294589 mono_ms=78352 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5899201Z CONN_LIFECYCLE: conn=680 role=brain wall_ms=1788931294589 mono_ms=78352 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.5899830Z CONN_LIFECYCLE: conn=680 role=brain wall_ms=1788931294589 mono_ms=78352 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.6891948Z CONN_LIFECYCLE: conn=681 role=brain wall_ms=1788931294689 mono_ms=78451 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.6892880Z CONN_LIFECYCLE: conn=681 role=brain wall_ms=1788931294689 mono_ms=78451 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.6897558Z CONN_LIFECYCLE: conn=682 role=brain stream-subscriber stream=377 wall_ms=1788931294689 mono_ms=78452 event=stream-sub-attach stream=377 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:34.6898819Z CONN_LIFECYCLE: conn=682 role=brain stream-subscriber stream=377 wall_ms=1788931294689 mono_ms=78452 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:36.7009143Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931296700 mono_ms=80462 event=stream-sub-attach stream=378 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.1619027Z CONN_LIFECYCLE: conn=682 role=brain stream-subscriber stream=377 wall_ms=1788931297161 mono_ms=80924 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.1620385Z CONN_LIFECYCLE: conn=683 role=brain wall_ms=1788931297161 mono_ms=80924 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.1621726Z CONN_LIFECYCLE: conn=683 role=brain wall_ms=1788931297162 mono_ms=80924 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2197393Z CONN_LIFECYCLE: conn=684 role=brain wall_ms=1788931297219 mono_ms=80982 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2198407Z CONN_LIFECYCLE: conn=684 role=brain wall_ms=1788931297219 mono_ms=80982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2200213Z CONN_LIFECYCLE: conn=685 role=brain stream-subscriber stream=379 wall_ms=1788931297219 mono_ms=80982 event=stream-sub-attach stream=379 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2201606Z CONN_LIFECYCLE: conn=685 role=brain stream-subscriber stream=379 wall_ms=1788931297220 mono_ms=80982 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2208178Z CONN_LIFECYCLE: conn=685 role=brain stream-subscriber stream=379 wall_ms=1788931297220 mono_ms=80983 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2209977Z CONN_LIFECYCLE: conn=686 role=brain wall_ms=1788931297220 mono_ms=80983 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.2211091Z CONN_LIFECYCLE: conn=686 role=brain wall_ms=1788931297221 mono_ms=80983 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.6876620Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931297687 mono_ms=81450 event=stream-sub-release stream=378 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.7104453Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931297710 mono_ms=81472 event=stream-sub-attach stream=380 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.7164698Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931297716 mono_ms=81479 event=stream-sub-release stream=380 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8832860Z CONN_LIFECYCLE: conn=687 role=brain wall_ms=1788931297883 mono_ms=81645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8833651Z CONN_LIFECYCLE: conn=688 role=brain wall_ms=1788931297883 mono_ms=81645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8834880Z CONN_LIFECYCLE: conn=689 role=brain wall_ms=1788931297883 mono_ms=81645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8835804Z CONN_LIFECYCLE: conn=687 role=brain wall_ms=1788931297883 mono_ms=81646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8836673Z CONN_LIFECYCLE: conn=688 role=brain wall_ms=1788931297883 mono_ms=81646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8837273Z CONN_LIFECYCLE: conn=689 role=brain wall_ms=1788931297883 mono_ms=81646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8838033Z CONN_LIFECYCLE: conn=691 role=brain stream-subscriber stream=383 wall_ms=1788931297883 mono_ms=81646 event=stream-sub-attach stream=383 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8838913Z CONN_LIFECYCLE: conn=692 role=brain stream-subscriber stream=381 wall_ms=1788931297883 mono_ms=81646 event=stream-sub-attach stream=381 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8840092Z CONN_LIFECYCLE: conn=691 role=brain stream-subscriber stream=383 wall_ms=1788931297883 mono_ms=81646 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8840788Z CONN_LIFECYCLE: conn=692 role=brain stream-subscriber stream=381 wall_ms=1788931297883 mono_ms=81646 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8844376Z CONN_LIFECYCLE: conn=690 role=brain wall_ms=1788931297884 mono_ms=81647 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8845984Z CONN_LIFECYCLE: conn=690 role=brain stream-subscriber stream=382 wall_ms=1788931297884 mono_ms=81647 event=stream-sub-attach stream=382 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8846809Z CONN_LIFECYCLE: conn=691 role=brain stream-subscriber stream=383 wall_ms=1788931297884 mono_ms=81647 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8848237Z CONN_LIFECYCLE: conn=693 role=brain wall_ms=1788931297884 mono_ms=81647 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8849109Z CONN_LIFECYCLE: conn=693 role=brain wall_ms=1788931297884 mono_ms=81647 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8859740Z CONN_LIFECYCLE: conn=692 role=brain stream-subscriber stream=381 wall_ms=1788931297885 mono_ms=81648 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8861639Z CONN_LIFECYCLE: conn=694 role=brain wall_ms=1788931297886 mono_ms=81648 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8863107Z CONN_LIFECYCLE: conn=694 role=brain wall_ms=1788931297886 mono_ms=81648 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8912175Z CONN_LIFECYCLE: conn=690 role=brain stream-subscriber stream=382 wall_ms=1788931297891 mono_ms=81653 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8915593Z CONN_LIFECYCLE: conn=695 role=brain wall_ms=1788931297891 mono_ms=81654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:37.8916531Z CONN_LIFECYCLE: conn=695 role=brain wall_ms=1788931297891 mono_ms=81654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.0346548Z CONN_LIFECYCLE: conn=696 role=brain wall_ms=1788931298034 mono_ms=81797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.0347501Z CONN_LIFECYCLE: conn=696 role=brain wall_ms=1788931298034 mono_ms=81797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.0352147Z CONN_LIFECYCLE: conn=697 role=brain stream-subscriber stream=384 wall_ms=1788931298035 mono_ms=81797 event=stream-sub-attach stream=384 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.0353662Z CONN_LIFECYCLE: conn=697 role=brain stream-subscriber stream=384 wall_ms=1788931298035 mono_ms=81798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.6758531Z CONN_LIFECYCLE: conn=697 role=brain stream-subscriber stream=384 wall_ms=1788931298675 mono_ms=82438 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.6760264Z CONN_LIFECYCLE: conn=698 role=brain wall_ms=1788931298675 mono_ms=82438 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.6761039Z CONN_LIFECYCLE: conn=698 role=brain wall_ms=1788931298676 mono_ms=82438 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7420578Z CONN_LIFECYCLE: conn=699 role=brain wall_ms=1788931298741 mono_ms=82504 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7421439Z CONN_LIFECYCLE: conn=699 role=brain wall_ms=1788931298742 mono_ms=82504 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7424033Z CONN_LIFECYCLE: conn=700 role=brain stream-subscriber stream=385 wall_ms=1788931298742 mono_ms=82505 event=stream-sub-attach stream=385 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7425504Z CONN_LIFECYCLE: conn=700 role=brain stream-subscriber stream=385 wall_ms=1788931298742 mono_ms=82505 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7433616Z CONN_LIFECYCLE: conn=700 role=brain stream-subscriber stream=385 wall_ms=1788931298743 mono_ms=82506 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7435088Z CONN_LIFECYCLE: conn=701 role=brain wall_ms=1788931298743 mono_ms=82506 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:38.7435995Z CONN_LIFECYCLE: conn=701 role=brain wall_ms=1788931298743 mono_ms=82506 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4482442Z CONN_LIFECYCLE: conn=703 role=brain wall_ms=1788931299448 mono_ms=83210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4486494Z CONN_LIFECYCLE: conn=704 role=brain wall_ms=1788931299448 mono_ms=83210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4487679Z CONN_LIFECYCLE: conn=702 role=brain wall_ms=1788931299448 mono_ms=83210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4489554Z CONN_LIFECYCLE: conn=703 role=brain wall_ms=1788931299448 mono_ms=83211 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4491526Z CONN_LIFECYCLE: conn=702 role=brain wall_ms=1788931299448 mono_ms=83211 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4495003Z CONN_LIFECYCLE: conn=704 role=brain wall_ms=1788931299448 mono_ms=83211 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4497328Z CONN_LIFECYCLE: conn=706 role=brain stream-subscriber stream=391 wall_ms=1788931299448 mono_ms=83211 event=stream-sub-attach stream=391 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4499428Z CONN_LIFECYCLE: conn=707 role=brain stream-subscriber stream=388 wall_ms=1788931299448 mono_ms=83211 event=stream-sub-attach stream=388 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4502651Z CONN_LIFECYCLE: conn=706 role=brain stream-subscriber stream=391 wall_ms=1788931299449 mono_ms=83211 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4504146Z CONN_LIFECYCLE: conn=707 role=brain stream-subscriber stream=388 wall_ms=1788931299449 mono_ms=83211 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4505745Z CONN_LIFECYCLE: conn=706 role=brain stream-subscriber stream=391 wall_ms=1788931299449 mono_ms=83212 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4506972Z CONN_LIFECYCLE: conn=705 role=brain wall_ms=1788931299449 mono_ms=83212 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4508786Z CONN_LIFECYCLE: conn=705 role=brain stream-subscriber stream=389 wall_ms=1788931299450 mono_ms=83212 event=stream-sub-attach stream=389 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4509750Z CONN_LIFECYCLE: conn=708 role=brain wall_ms=1788931299450 mono_ms=83213 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4510580Z CONN_LIFECYCLE: conn=708 role=brain wall_ms=1788931299450 mono_ms=83213 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4519717Z CONN_LIFECYCLE: conn=707 role=brain stream-subscriber stream=388 wall_ms=1788931299451 mono_ms=83214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4522413Z CONN_LIFECYCLE: conn=709 role=brain wall_ms=1788931299452 mono_ms=83214 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4523815Z CONN_LIFECYCLE: conn=709 role=brain wall_ms=1788931299452 mono_ms=83215 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4586444Z CONN_LIFECYCLE: conn=705 role=brain stream-subscriber stream=389 wall_ms=1788931299458 mono_ms=83221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4588366Z CONN_LIFECYCLE: conn=710 role=brain wall_ms=1788931299458 mono_ms=83221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4589742Z CONN_LIFECYCLE: conn=710 role=brain wall_ms=1788931299458 mono_ms=83221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.4871281Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931299486 mono_ms=83249 event=stream-sub-attach stream=392 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.5489025Z CONN_LIFECYCLE: conn=711 role=brain wall_ms=1788931299548 mono_ms=83311 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.5490064Z CONN_LIFECYCLE: conn=711 role=brain wall_ms=1788931299548 mono_ms=83311 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.5494005Z CONN_LIFECYCLE: conn=712 role=brain stream-subscriber stream=393 wall_ms=1788931299549 mono_ms=83312 event=stream-sub-attach stream=393 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.5495426Z CONN_LIFECYCLE: conn=712 role=brain stream-subscriber stream=393 wall_ms=1788931299549 mono_ms=83312 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.9811973Z CONN_LIFECYCLE: conn=712 role=brain stream-subscriber stream=393 wall_ms=1788931299980 mono_ms=83743 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.9814229Z CONN_LIFECYCLE: conn=713 role=brain wall_ms=1788931299981 mono_ms=83744 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:39.9815492Z CONN_LIFECYCLE: conn=713 role=brain wall_ms=1788931299981 mono_ms=83744 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0282553Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931300028 mono_ms=83790 event=stream-sub-release stream=392 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0450253Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931300044 mono_ms=83807 event=stream-sub-attach stream=395 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0557605Z CONN_LIFECYCLE: conn=714 role=brain wall_ms=1788931300055 mono_ms=83818 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0558834Z CONN_LIFECYCLE: conn=714 role=brain wall_ms=1788931300055 mono_ms=83818 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0560986Z CONN_LIFECYCLE: conn=715 role=brain stream-subscriber stream=394 wall_ms=1788931300055 mono_ms=83818 event=stream-sub-attach stream=394 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0562531Z CONN_LIFECYCLE: conn=715 role=brain stream-subscriber stream=394 wall_ms=1788931300056 mono_ms=83818 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0568992Z CONN_LIFECYCLE: conn=715 role=brain stream-subscriber stream=394 wall_ms=1788931300056 mono_ms=83819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0570912Z CONN_LIFECYCLE: conn=716 role=brain wall_ms=1788931300057 mono_ms=83819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0571792Z CONN_LIFECYCLE: conn=716 role=brain wall_ms=1788931300057 mono_ms=83819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.0573805Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931300057 mono_ms=83819 event=stream-sub-release stream=395 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7121496Z CONN_LIFECYCLE: conn=717 role=brain wall_ms=1788931300712 mono_ms=84474 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7122339Z CONN_LIFECYCLE: conn=718 role=brain wall_ms=1788931300712 mono_ms=84474 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7123226Z CONN_LIFECYCLE: conn=719 role=brain wall_ms=1788931300712 mono_ms=84474 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7124375Z CONN_LIFECYCLE: conn=717 role=brain wall_ms=1788931300712 mono_ms=84474 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7125411Z CONN_LIFECYCLE: conn=719 role=brain wall_ms=1788931300712 mono_ms=84474 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7126189Z CONN_LIFECYCLE: conn=718 role=brain wall_ms=1788931300712 mono_ms=84474 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7127988Z CONN_LIFECYCLE: conn=720 role=brain stream-subscriber stream=399 wall_ms=1788931300712 mono_ms=84475 event=stream-sub-attach stream=399 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7128829Z CONN_LIFECYCLE: conn=721 role=brain stream-subscriber stream=401 wall_ms=1788931300712 mono_ms=84475 event=stream-sub-attach stream=401 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7129657Z CONN_LIFECYCLE: conn=720 role=brain stream-subscriber stream=399 wall_ms=1788931300712 mono_ms=84475 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7130260Z CONN_LIFECYCLE: conn=721 role=brain stream-subscriber stream=401 wall_ms=1788931300712 mono_ms=84475 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7134290Z CONN_LIFECYCLE: conn=722 role=brain wall_ms=1788931300713 mono_ms=84476 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7135295Z CONN_LIFECYCLE: conn=721 role=brain stream-subscriber stream=401 wall_ms=1788931300713 mono_ms=84476 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7136674Z CONN_LIFECYCLE: conn=722 role=brain stream-subscriber stream=400 wall_ms=1788931300713 mono_ms=84476 event=stream-sub-attach stream=400 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7137754Z CONN_LIFECYCLE: conn=723 role=brain wall_ms=1788931300713 mono_ms=84476 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7139004Z CONN_LIFECYCLE: conn=723 role=brain wall_ms=1788931300713 mono_ms=84476 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7149761Z CONN_LIFECYCLE: conn=720 role=brain stream-subscriber stream=399 wall_ms=1788931300714 mono_ms=84477 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7151407Z CONN_LIFECYCLE: conn=724 role=brain wall_ms=1788931300715 mono_ms=84477 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7152234Z CONN_LIFECYCLE: conn=724 role=brain wall_ms=1788931300715 mono_ms=84477 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7194112Z CONN_LIFECYCLE: conn=722 role=brain stream-subscriber stream=400 wall_ms=1788931300719 mono_ms=84482 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7195840Z CONN_LIFECYCLE: conn=725 role=brain wall_ms=1788931300719 mono_ms=84482 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.7196963Z CONN_LIFECYCLE: conn=725 role=brain wall_ms=1788931300719 mono_ms=84482 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.8638492Z CONN_LIFECYCLE: conn=726 role=brain wall_ms=1788931300863 mono_ms=84626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.8639292Z CONN_LIFECYCLE: conn=726 role=brain wall_ms=1788931300863 mono_ms=84626 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.8643610Z CONN_LIFECYCLE: conn=727 role=brain stream-subscriber stream=402 wall_ms=1788931300864 mono_ms=84627 event=stream-sub-attach stream=402 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:40.8645086Z CONN_LIFECYCLE: conn=727 role=brain stream-subscriber stream=402 wall_ms=1788931300864 mono_ms=84627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.0983025Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931301098 mono_ms=84860 event=stream-sub-attach stream=403 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7321926Z CONN_LIFECYCLE: conn=727 role=brain stream-subscriber stream=402 wall_ms=1788931301731 mono_ms=85494 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7324057Z CONN_LIFECYCLE: conn=728 role=brain wall_ms=1788931301732 mono_ms=85495 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7325326Z CONN_LIFECYCLE: conn=728 role=brain wall_ms=1788931301732 mono_ms=85495 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7952090Z CONN_LIFECYCLE: conn=729 role=brain wall_ms=1788931301795 mono_ms=85557 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7952933Z CONN_LIFECYCLE: conn=729 role=brain wall_ms=1788931301795 mono_ms=85557 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7955060Z CONN_LIFECYCLE: conn=730 role=brain stream-subscriber stream=404 wall_ms=1788931301795 mono_ms=85558 event=stream-sub-attach stream=404 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7956545Z CONN_LIFECYCLE: conn=730 role=brain stream-subscriber stream=404 wall_ms=1788931301795 mono_ms=85558 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7962999Z CONN_LIFECYCLE: conn=730 role=brain stream-subscriber stream=404 wall_ms=1788931301796 mono_ms=85558 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7964619Z CONN_LIFECYCLE: conn=731 role=brain wall_ms=1788931301796 mono_ms=85559 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:41.7965814Z CONN_LIFECYCLE: conn=731 role=brain wall_ms=1788931301796 mono_ms=85559 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4590734Z CONN_LIFECYCLE: conn=733 role=brain wall_ms=1788931302458 mono_ms=86221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4591584Z CONN_LIFECYCLE: conn=734 role=brain wall_ms=1788931302458 mono_ms=86221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4592301Z CONN_LIFECYCLE: conn=732 role=brain wall_ms=1788931302458 mono_ms=86221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4593215Z CONN_LIFECYCLE: conn=734 role=brain wall_ms=1788931302459 mono_ms=86221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4594024Z CONN_LIFECYCLE: conn=733 role=brain wall_ms=1788931302459 mono_ms=86221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4594888Z CONN_LIFECYCLE: conn=732 role=brain wall_ms=1788931302459 mono_ms=86221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4595761Z CONN_LIFECYCLE: conn=735 role=brain stream-subscriber stream=407 wall_ms=1788931302459 mono_ms=86222 event=stream-sub-attach stream=407 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4596985Z CONN_LIFECYCLE: conn=737 role=brain stream-subscriber stream=405 wall_ms=1788931302459 mono_ms=86222 event=stream-sub-attach stream=405 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4597798Z CONN_LIFECYCLE: conn=735 role=brain stream-subscriber stream=407 wall_ms=1788931302459 mono_ms=86222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4598438Z CONN_LIFECYCLE: conn=737 role=brain stream-subscriber stream=405 wall_ms=1788931302459 mono_ms=86222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4602754Z CONN_LIFECYCLE: conn=736 role=brain wall_ms=1788931302460 mono_ms=86222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4603823Z CONN_LIFECYCLE: conn=735 role=brain stream-subscriber stream=407 wall_ms=1788931302460 mono_ms=86223 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4605180Z CONN_LIFECYCLE: conn=736 role=brain stream-subscriber stream=406 wall_ms=1788931302460 mono_ms=86223 event=stream-sub-attach stream=406 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4606105Z CONN_LIFECYCLE: conn=738 role=brain wall_ms=1788931302460 mono_ms=86223 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4606996Z CONN_LIFECYCLE: conn=738 role=brain wall_ms=1788931302460 mono_ms=86223 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4616954Z CONN_LIFECYCLE: conn=737 role=brain stream-subscriber stream=405 wall_ms=1788931302461 mono_ms=86224 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4618460Z CONN_LIFECYCLE: conn=739 role=brain wall_ms=1788931302461 mono_ms=86224 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4619432Z CONN_LIFECYCLE: conn=739 role=brain wall_ms=1788931302461 mono_ms=86224 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4675454Z CONN_LIFECYCLE: conn=736 role=brain stream-subscriber stream=406 wall_ms=1788931302467 mono_ms=86230 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4677115Z CONN_LIFECYCLE: conn=740 role=brain wall_ms=1788931302467 mono_ms=86230 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.4678000Z CONN_LIFECYCLE: conn=740 role=brain wall_ms=1788931302467 mono_ms=86230 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.6104625Z CONN_LIFECYCLE: conn=741 role=brain wall_ms=1788931302610 mono_ms=86373 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.6106520Z CONN_LIFECYCLE: conn=741 role=brain wall_ms=1788931302610 mono_ms=86373 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.6109702Z CONN_LIFECYCLE: conn=742 role=brain stream-subscriber stream=408 wall_ms=1788931302610 mono_ms=86373 event=stream-sub-attach stream=408 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:42.6111117Z CONN_LIFECYCLE: conn=742 role=brain stream-subscriber stream=408 wall_ms=1788931302611 mono_ms=86373 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.0850747Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931303084 mono_ms=86847 event=stream-sub-release stream=403 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.1017506Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931303101 mono_ms=86864 event=stream-sub-attach stream=409 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.1133783Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931303113 mono_ms=86875 event=stream-sub-release stream=409 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4174480Z CONN_LIFECYCLE: conn=742 role=brain stream-subscriber stream=408 wall_ms=1788931303417 mono_ms=87180 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4175818Z CONN_LIFECYCLE: conn=743 role=brain wall_ms=1788931303417 mono_ms=87180 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4176857Z CONN_LIFECYCLE: conn=743 role=brain wall_ms=1788931303417 mono_ms=87180 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4439406Z CONN_LIFECYCLE: conn=744 role=brain wall_ms=1788931303443 mono_ms=87206 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4440405Z CONN_LIFECYCLE: conn=744 role=brain wall_ms=1788931303443 mono_ms=87206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4443120Z CONN_LIFECYCLE: conn=745 role=brain stream-subscriber stream=410 wall_ms=1788931303444 mono_ms=87207 event=stream-sub-attach stream=410 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4444683Z CONN_LIFECYCLE: conn=745 role=brain stream-subscriber stream=410 wall_ms=1788931303444 mono_ms=87207 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4452592Z CONN_LIFECYCLE: conn=745 role=brain stream-subscriber stream=410 wall_ms=1788931303445 mono_ms=87207 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4454324Z CONN_LIFECYCLE: conn=746 role=brain wall_ms=1788931303445 mono_ms=87208 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:43.4455332Z CONN_LIFECYCLE: conn=746 role=brain wall_ms=1788931303445 mono_ms=87208 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1000197Z CONN_LIFECYCLE: conn=747 role=brain wall_ms=1788931304099 mono_ms=87862 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1001102Z CONN_LIFECYCLE: conn=748 role=brain wall_ms=1788931304099 mono_ms=87862 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1001919Z CONN_LIFECYCLE: conn=749 role=brain wall_ms=1788931304099 mono_ms=87862 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1003049Z CONN_LIFECYCLE: conn=747 role=brain wall_ms=1788931304100 mono_ms=87862 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1003869Z CONN_LIFECYCLE: conn=748 role=brain wall_ms=1788931304100 mono_ms=87862 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1004705Z CONN_LIFECYCLE: conn=749 role=brain wall_ms=1788931304100 mono_ms=87862 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1005525Z CONN_LIFECYCLE: conn=750 role=brain stream-subscriber stream=414 wall_ms=1788931304100 mono_ms=87863 event=stream-sub-attach stream=414 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1006298Z CONN_LIFECYCLE: conn=751 role=brain stream-subscriber stream=416 wall_ms=1788931304100 mono_ms=87863 event=stream-sub-attach stream=416 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1006999Z CONN_LIFECYCLE: conn=750 role=brain stream-subscriber stream=414 wall_ms=1788931304100 mono_ms=87863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1007595Z CONN_LIFECYCLE: conn=751 role=brain stream-subscriber stream=416 wall_ms=1788931304100 mono_ms=87863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1011635Z CONN_LIFECYCLE: conn=752 role=brain wall_ms=1788931304101 mono_ms=87863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1012341Z CONN_LIFECYCLE: conn=751 role=brain stream-subscriber stream=416 wall_ms=1788931304101 mono_ms=87863 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1013361Z CONN_LIFECYCLE: conn=752 role=brain stream-subscriber stream=415 wall_ms=1788931304101 mono_ms=87864 event=stream-sub-attach stream=415 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1014217Z CONN_LIFECYCLE: conn=753 role=brain wall_ms=1788931304101 mono_ms=87864 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1015323Z CONN_LIFECYCLE: conn=753 role=brain wall_ms=1788931304101 mono_ms=87864 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1024843Z CONN_LIFECYCLE: conn=750 role=brain stream-subscriber stream=414 wall_ms=1788931304102 mono_ms=87865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1026354Z CONN_LIFECYCLE: conn=754 role=brain wall_ms=1788931304102 mono_ms=87865 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1027256Z CONN_LIFECYCLE: conn=754 role=brain wall_ms=1788931304102 mono_ms=87865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1079860Z CONN_LIFECYCLE: conn=752 role=brain stream-subscriber stream=415 wall_ms=1788931304107 mono_ms=87870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1081323Z CONN_LIFECYCLE: conn=755 role=brain wall_ms=1788931304108 mono_ms=87870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.1082161Z CONN_LIFECYCLE: conn=755 role=brain wall_ms=1788931304108 mono_ms=87870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.2516125Z CONN_LIFECYCLE: conn=756 role=brain wall_ms=1788931304251 mono_ms=88014 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.2517020Z CONN_LIFECYCLE: conn=756 role=brain wall_ms=1788931304251 mono_ms=88014 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.2521311Z CONN_LIFECYCLE: conn=757 role=brain stream-subscriber stream=417 wall_ms=1788931304252 mono_ms=88014 event=stream-sub-attach stream=417 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.2522596Z CONN_LIFECYCLE: conn=757 role=brain stream-subscriber stream=417 wall_ms=1788931304252 mono_ms=88014 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.3302691Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931304330 mono_ms=88092 event=stream-sub-attach stream=418 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.9921222Z CONN_LIFECYCLE: conn=757 role=brain stream-subscriber stream=417 wall_ms=1788931304991 mono_ms=88754 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.9922592Z CONN_LIFECYCLE: conn=758 role=brain wall_ms=1788931304992 mono_ms=88754 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:44.9923325Z CONN_LIFECYCLE: conn=758 role=brain wall_ms=1788931304992 mono_ms=88755 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0614630Z CONN_LIFECYCLE: conn=759 role=brain wall_ms=1788931305061 mono_ms=88824 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0615733Z CONN_LIFECYCLE: conn=759 role=brain wall_ms=1788931305061 mono_ms=88824 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0617702Z CONN_LIFECYCLE: conn=760 role=brain stream-subscriber stream=419 wall_ms=1788931305061 mono_ms=88824 event=stream-sub-attach stream=419 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0619771Z CONN_LIFECYCLE: conn=760 role=brain stream-subscriber stream=419 wall_ms=1788931305061 mono_ms=88824 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0625449Z CONN_LIFECYCLE: conn=760 role=brain stream-subscriber stream=419 wall_ms=1788931305062 mono_ms=88825 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0627041Z CONN_LIFECYCLE: conn=761 role=brain wall_ms=1788931305062 mono_ms=88825 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.0627851Z CONN_LIFECYCLE: conn=761 role=brain wall_ms=1788931305062 mono_ms=88825 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5145955Z CONN_LIFECYCLE: conn=762 role=brain wall_ms=1788931305514 mono_ms=89277 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5146728Z CONN_LIFECYCLE: conn=764 role=brain wall_ms=1788931305514 mono_ms=89277 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5147412Z CONN_LIFECYCLE: conn=763 role=brain wall_ms=1788931305514 mono_ms=89277 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5148342Z CONN_LIFECYCLE: conn=762 role=brain wall_ms=1788931305514 mono_ms=89277 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5149654Z CONN_LIFECYCLE: conn=763 role=brain wall_ms=1788931305514 mono_ms=89277 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5152272Z CONN_LIFECYCLE: conn=764 role=brain wall_ms=1788931305514 mono_ms=89277 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5153336Z CONN_LIFECYCLE: conn=765 role=brain stream-subscriber stream=420 wall_ms=1788931305514 mono_ms=89277 event=stream-sub-attach stream=420 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5154218Z CONN_LIFECYCLE: conn=767 role=brain stream-subscriber stream=422 wall_ms=1788931305515 mono_ms=89277 event=stream-sub-attach stream=422 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5155369Z CONN_LIFECYCLE: conn=767 role=brain stream-subscriber stream=422 wall_ms=1788931305515 mono_ms=89278 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5156406Z CONN_LIFECYCLE: conn=765 role=brain stream-subscriber stream=420 wall_ms=1788931305515 mono_ms=89278 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5159717Z CONN_LIFECYCLE: conn=767 role=brain stream-subscriber stream=422 wall_ms=1788931305515 mono_ms=89278 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5161242Z CONN_LIFECYCLE: conn=766 role=brain wall_ms=1788931305516 mono_ms=89278 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5161949Z CONN_LIFECYCLE: conn=768 role=brain wall_ms=1788931305516 mono_ms=89278 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5162608Z CONN_LIFECYCLE: conn=768 role=brain wall_ms=1788931305516 mono_ms=89278 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5163399Z CONN_LIFECYCLE: conn=766 role=brain stream-subscriber stream=421 wall_ms=1788931305516 mono_ms=89278 event=stream-sub-attach stream=421 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5176836Z CONN_LIFECYCLE: conn=765 role=brain stream-subscriber stream=420 wall_ms=1788931305517 mono_ms=89280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5178370Z CONN_LIFECYCLE: conn=769 role=brain wall_ms=1788931305517 mono_ms=89280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5179334Z CONN_LIFECYCLE: conn=769 role=brain wall_ms=1788931305517 mono_ms=89280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5230321Z CONN_LIFECYCLE: conn=766 role=brain stream-subscriber stream=421 wall_ms=1788931305522 mono_ms=89285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5231687Z CONN_LIFECYCLE: conn=770 role=brain wall_ms=1788931305523 mono_ms=89285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.5232665Z CONN_LIFECYCLE: conn=770 role=brain wall_ms=1788931305523 mono_ms=89285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7166602Z CONN_LIFECYCLE: conn=771 role=brain wall_ms=1788931305716 mono_ms=89479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7167870Z CONN_LIFECYCLE: conn=772 role=brain wall_ms=1788931305716 mono_ms=89479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7168710Z CONN_LIFECYCLE: conn=773 role=brain wall_ms=1788931305716 mono_ms=89479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7169436Z CONN_LIFECYCLE: conn=771 role=brain wall_ms=1788931305716 mono_ms=89479 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7170356Z CONN_LIFECYCLE: conn=772 role=brain wall_ms=1788931305716 mono_ms=89479 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7171300Z CONN_LIFECYCLE: conn=773 role=brain wall_ms=1788931305716 mono_ms=89479 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7172016Z CONN_LIFECYCLE: conn=774 role=brain stream-subscriber stream=423 wall_ms=1788931305716 mono_ms=89479 event=stream-sub-attach stream=423 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7172777Z CONN_LIFECYCLE: conn=775 role=brain stream-subscriber stream=425 wall_ms=1788931305717 mono_ms=89479 event=stream-sub-attach stream=425 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7173456Z CONN_LIFECYCLE: conn=774 role=brain stream-subscriber stream=423 wall_ms=1788931305717 mono_ms=89479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7174015Z CONN_LIFECYCLE: conn=775 role=brain stream-subscriber stream=425 wall_ms=1788931305717 mono_ms=89479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7179289Z CONN_LIFECYCLE: conn=776 role=brain wall_ms=1788931305717 mono_ms=89480 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7180141Z CONN_LIFECYCLE: conn=775 role=brain stream-subscriber stream=425 wall_ms=1788931305717 mono_ms=89480 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7181239Z CONN_LIFECYCLE: conn=776 role=brain stream-subscriber stream=424 wall_ms=1788931305718 mono_ms=89480 event=stream-sub-attach stream=424 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7182298Z CONN_LIFECYCLE: conn=777 role=brain wall_ms=1788931305718 mono_ms=89480 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7183016Z CONN_LIFECYCLE: conn=777 role=brain wall_ms=1788931305718 mono_ms=89480 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7195388Z CONN_LIFECYCLE: conn=774 role=brain stream-subscriber stream=423 wall_ms=1788931305719 mono_ms=89482 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7197117Z CONN_LIFECYCLE: conn=778 role=brain wall_ms=1788931305719 mono_ms=89482 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7198049Z CONN_LIFECYCLE: conn=778 role=brain wall_ms=1788931305719 mono_ms=89482 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7254162Z CONN_LIFECYCLE: conn=776 role=brain stream-subscriber stream=424 wall_ms=1788931305725 mono_ms=89488 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7255992Z CONN_LIFECYCLE: conn=779 role=brain wall_ms=1788931305725 mono_ms=89488 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.7256652Z CONN_LIFECYCLE: conn=779 role=brain wall_ms=1788931305725 mono_ms=89488 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.8678987Z CONN_LIFECYCLE: conn=780 role=brain wall_ms=1788931305867 mono_ms=89630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.8680136Z CONN_LIFECYCLE: conn=780 role=brain wall_ms=1788931305867 mono_ms=89630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.8685532Z CONN_LIFECYCLE: conn=781 role=brain stream-subscriber stream=426 wall_ms=1788931305868 mono_ms=89631 event=stream-sub-attach stream=426 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.8687289Z CONN_LIFECYCLE: conn=781 role=brain stream-subscriber stream=426 wall_ms=1788931305868 mono_ms=89631 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:45.9041017Z TWOHOST OK: ER conjunction: the WHITELISTED engine room advertises on the same rule
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.0698062Z CONN_LIFECYCLE: conn=782 role=brain wall_ms=1788931306069 mono_ms=89832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.0699033Z CONN_LIFECYCLE: conn=782 role=brain wall_ms=1788931306069 mono_ms=89832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.0701409Z CONN_LIFECYCLE: conn=783 role=brain stream-subscriber stream=428 wall_ms=1788931306070 mono_ms=89832 event=stream-sub-attach stream=428 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.0702575Z CONN_LIFECYCLE: conn=783 role=brain stream-subscriber stream=428 wall_ms=1788931306070 mono_ms=89832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.1174024Z CONN_LIFECYCLE: conn=783 role=brain stream-subscriber stream=428 wall_ms=1788931306117 mono_ms=89880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.1175745Z CONN_LIFECYCLE: conn=784 role=brain wall_ms=1788931306117 mono_ms=89880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.1176471Z CONN_LIFECYCLE: conn=784 role=brain wall_ms=1788931306117 mono_ms=89880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.1975580Z TWOHOST OK: courtesy: B's approval receipt produced an ADDRESSED notice at A
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.2376632Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931306237 mono_ms=90000 event=stream-sub-release stream=418 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.2679023Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931306267 mono_ms=90030 event=stream-sub-attach stream=429 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.2856596Z TWOHOST OK: approval courtesy addressed to the knocker (plain knock, no mutual arm)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.2858303Z PUMP_IPC_READER: spawned
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.3013756Z CONN_LIFECYCLE: conn=785 role=brain wall_ms=1788931306301 mono_ms=90064 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.3018506Z CONN_LIFECYCLE: conn=785 role=brain stream-subscriber stream=430 wall_ms=1788931306301 mono_ms=90064 event=stream-sub-attach stream=430 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.3176690Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931306317 mono_ms=90080 event=stream-sub-release stream=429 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.3183628Z TWOHOST OK: invite code redeemed cross-node (B asserts the minter's courtesy)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.3322233Z CONN_LIFECYCLE: conn=786 role=brain wall_ms=1788931306332 mono_ms=90094 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.3325554Z CONN_LIFECYCLE: conn=786 role=brain stream-subscriber stream=434 wall_ms=1788931306332 mono_ms=90095 event=stream-sub-attach stream=434 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:46.4652386Z CONN_LIFECYCLE: conn=786 role=brain stream-subscriber stream=434 wall_ms=1788931306465 mono_ms=90227 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.0793664Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931307079 mono_ms=90841 event=stream-sub-attach stream=435 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.3545147Z CONN_LIFECYCLE: conn=781 role=brain stream-subscriber stream=426 wall_ms=1788931307354 mono_ms=91117 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.3546049Z CONN_LIFECYCLE: conn=787 role=brain wall_ms=1788931307354 mono_ms=91117 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.3547146Z CONN_LIFECYCLE: conn=787 role=brain wall_ms=1788931307354 mono_ms=91117 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4331664Z CONN_LIFECYCLE: conn=788 role=brain wall_ms=1788931307433 mono_ms=91195 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4332599Z CONN_LIFECYCLE: conn=788 role=brain wall_ms=1788931307433 mono_ms=91195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4334380Z CONN_LIFECYCLE: conn=789 role=brain stream-subscriber stream=436 wall_ms=1788931307433 mono_ms=91196 event=stream-sub-attach stream=436 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4335735Z CONN_LIFECYCLE: conn=789 role=brain stream-subscriber stream=436 wall_ms=1788931307433 mono_ms=91196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4342188Z CONN_LIFECYCLE: conn=789 role=brain stream-subscriber stream=436 wall_ms=1788931307434 mono_ms=91196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4343980Z CONN_LIFECYCLE: conn=790 role=brain wall_ms=1788931307434 mono_ms=91197 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:47.4344887Z CONN_LIFECYCLE: conn=790 role=brain wall_ms=1788931307434 mono_ms=91197 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1404428Z CONN_LIFECYCLE: conn=791 role=brain wall_ms=1788931308140 mono_ms=91903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1405500Z CONN_LIFECYCLE: conn=792 role=brain wall_ms=1788931308140 mono_ms=91903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1406314Z CONN_LIFECYCLE: conn=793 role=brain wall_ms=1788931308140 mono_ms=91903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1407225Z CONN_LIFECYCLE: conn=791 role=brain wall_ms=1788931308140 mono_ms=91903 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1408227Z CONN_LIFECYCLE: conn=792 role=brain wall_ms=1788931308140 mono_ms=91903 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1409203Z CONN_LIFECYCLE: conn=793 role=brain wall_ms=1788931308140 mono_ms=91903 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1410293Z CONN_LIFECYCLE: conn=794 role=brain stream-subscriber stream=437 wall_ms=1788931308140 mono_ms=91903 event=stream-sub-attach stream=437 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1411425Z CONN_LIFECYCLE: conn=795 role=brain stream-subscriber stream=439 wall_ms=1788931308140 mono_ms=91903 event=stream-sub-attach stream=439 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1412451Z CONN_LIFECYCLE: conn=794 role=brain stream-subscriber stream=437 wall_ms=1788931308141 mono_ms=91903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1413389Z CONN_LIFECYCLE: conn=795 role=brain stream-subscriber stream=439 wall_ms=1788931308141 mono_ms=91903 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1418501Z CONN_LIFECYCLE: conn=795 role=brain stream-subscriber stream=439 wall_ms=1788931308141 mono_ms=91904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1420074Z CONN_LIFECYCLE: conn=797 role=brain wall_ms=1788931308141 mono_ms=91904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1421347Z CONN_LIFECYCLE: conn=797 role=brain wall_ms=1788931308142 mono_ms=91904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1435839Z CONN_LIFECYCLE: conn=794 role=brain stream-subscriber stream=437 wall_ms=1788931308143 mono_ms=91906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1438016Z CONN_LIFECYCLE: conn=798 role=brain wall_ms=1788931308143 mono_ms=91906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1438780Z CONN_LIFECYCLE: conn=798 role=brain wall_ms=1788931308143 mono_ms=91906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1461558Z CONN_LIFECYCLE: conn=796 role=brain wall_ms=1788931308146 mono_ms=91908 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1463277Z CONN_LIFECYCLE: conn=796 role=brain stream-subscriber stream=438 wall_ms=1788931308146 mono_ms=91908 event=stream-sub-attach stream=438 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1486671Z CONN_LIFECYCLE: conn=796 role=brain stream-subscriber stream=438 wall_ms=1788931308148 mono_ms=91911 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1488515Z CONN_LIFECYCLE: conn=799 role=brain wall_ms=1788931308148 mono_ms=91911 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.1489428Z CONN_LIFECYCLE: conn=799 role=brain wall_ms=1788931308148 mono_ms=91911 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.2411971Z CONN_LIFECYCLE: conn=800 role=brain wall_ms=1788931308241 mono_ms=92003 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.2413188Z CONN_LIFECYCLE: conn=800 role=brain wall_ms=1788931308241 mono_ms=92003 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.2417884Z CONN_LIFECYCLE: conn=801 role=brain stream-subscriber stream=440 wall_ms=1788931308241 mono_ms=92004 event=stream-sub-attach stream=440 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:48.2419312Z CONN_LIFECYCLE: conn=801 role=brain stream-subscriber stream=440 wall_ms=1788931308241 mono_ms=92004 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.2775669Z CONN_LIFECYCLE: conn=801 role=brain stream-subscriber stream=440 wall_ms=1788931311277 mono_ms=95040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.2777513Z CONN_LIFECYCLE: conn=802 role=brain wall_ms=1788931311277 mono_ms=95040 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.2778646Z CONN_LIFECYCLE: conn=802 role=brain wall_ms=1788931311277 mono_ms=95040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.3846119Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931311384 mono_ms=95147 event=stream-sub-release stream=435 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4243104Z CONN_LIFECYCLE: conn=803 role=brain wall_ms=1788931311424 mono_ms=95186 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4244006Z CONN_LIFECYCLE: conn=803 role=brain wall_ms=1788931311424 mono_ms=95187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4246115Z CONN_LIFECYCLE: conn=804 role=brain stream-subscriber stream=441 wall_ms=1788931311424 mono_ms=95187 event=stream-sub-attach stream=441 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4247527Z CONN_LIFECYCLE: conn=804 role=brain stream-subscriber stream=441 wall_ms=1788931311424 mono_ms=95187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4254433Z CONN_LIFECYCLE: conn=804 role=brain stream-subscriber stream=441 wall_ms=1788931311425 mono_ms=95188 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4256059Z CONN_LIFECYCLE: conn=805 role=brain wall_ms=1788931311425 mono_ms=95188 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4257034Z CONN_LIFECYCLE: conn=805 role=brain wall_ms=1788931311425 mono_ms=95188 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4571998Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931311456 mono_ms=95219 event=stream-sub-attach stream=442 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.4634613Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931311463 mono_ms=95225 event=stream-sub-release stream=442 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6771620Z CONN_LIFECYCLE: conn=806 role=brain wall_ms=1788931311677 mono_ms=95439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6772615Z CONN_LIFECYCLE: conn=806 role=brain wall_ms=1788931311677 mono_ms=95439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6774896Z CONN_LIFECYCLE: conn=807 role=brain stream-subscriber stream=446 wall_ms=1788931311677 mono_ms=95440 event=stream-sub-attach stream=446 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6776243Z CONN_LIFECYCLE: conn=807 role=brain stream-subscriber stream=446 wall_ms=1788931311677 mono_ms=95440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6784563Z ACCESS_REFUSED MSG to ling-twohost-reply-ctl from 9bbcee970607c7454b0baf8b38b032ccdf1a36de7ef04d614158fecd1f08b612 (tier EndpointMode)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6789878Z CONN_LIFECYCLE: conn=807 role=brain stream-subscriber stream=446 wall_ms=1788931311678 mono_ms=95441 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6791502Z CONN_LIFECYCLE: conn=808 role=brain wall_ms=1788931311679 mono_ms=95441 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.6792433Z CONN_LIFECYCLE: conn=808 role=brain wall_ms=1788931311679 mono_ms=95441 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7275889Z CONN_LIFECYCLE: conn=809 role=brain wall_ms=1788931311727 mono_ms=95490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7276908Z CONN_LIFECYCLE: conn=809 role=brain wall_ms=1788931311727 mono_ms=95490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7279205Z CONN_LIFECYCLE: conn=810 role=brain stream-subscriber stream=447 wall_ms=1788931311727 mono_ms=95490 event=stream-sub-attach stream=447 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7280846Z CONN_LIFECYCLE: conn=810 role=brain stream-subscriber stream=447 wall_ms=1788931311728 mono_ms=95490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7841599Z HELPER_SERVE_FOR: target=ling-twohost-reply outcome=declined reason=the delivered body is not an envelope
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7847627Z CONN_LIFECYCLE: conn=810 role=brain stream-subscriber stream=447 wall_ms=1788931311784 mono_ms=95547 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7853450Z CONN_LIFECYCLE: conn=811 role=brain wall_ms=1788931311784 mono_ms=95547 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.7855611Z CONN_LIFECYCLE: conn=811 role=brain wall_ms=1788931311785 mono_ms=95548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.8235876Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931311823 mono_ms=95586 event=stream-sub-attach stream=448 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.8306829Z TWOHOST OK: reply exemption: B's answer landed in the CLOSED endpoint's spool
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.8906606Z TWOHOST OK: reply exemption admits the invited answer and refuses its control twin
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.8908312Z PUMP_IPC_READER: spawned
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.9037914Z CONN_LIFECYCLE: conn=812 role=brain wall_ms=1788931311903 mono_ms=95666 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.9098164Z CONN_LIFECYCLE: conn=812 role=brain stream-subscriber stream=449 wall_ms=1788931311909 mono_ms=95672 event=stream-sub-attach stream=449 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:51.9727723Z CONN_LIFECYCLE: conn=812 role=brain stream-subscriber stream=449 stream-subscriber stream=450 wall_ms=1788931311972 mono_ms=95735 event=stream-sub-attach stream=450 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0179157Z TWOHOST OK: cross-node digest pull (sealed turn, input_seq=0, stable across two real-WAN pulls)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0462722Z CONN_LIFECYCLE: conn=813 role=brain wall_ms=1788931312046 mono_ms=95808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0466344Z CONN_LIFECYCLE: conn=813 role=brain stream-subscriber stream=451 wall_ms=1788931312046 mono_ms=95809 event=stream-sub-attach stream=451 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0826036Z TWOHOST OK: sealed message sent cross-node (B asserts the attr survived)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0827046Z CONN_LIFECYCLE: conn=813 role=brain stream-subscriber stream=451 wall_ms=1788931312082 mono_ms=95845 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0868310Z CONN_LIFECYCLE: conn=815 role=brain wall_ms=1788931312086 mono_ms=95849 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0869022Z CONN_LIFECYCLE: conn=816 role=brain wall_ms=1788931312086 mono_ms=95849 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0869683Z CONN_LIFECYCLE: conn=817 role=brain wall_ms=1788931312086 mono_ms=95849 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0870632Z CONN_LIFECYCLE: conn=815 role=brain wall_ms=1788931312086 mono_ms=95849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0871628Z CONN_LIFECYCLE: conn=817 role=brain wall_ms=1788931312086 mono_ms=95849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0872319Z CONN_LIFECYCLE: conn=816 role=brain wall_ms=1788931312086 mono_ms=95849 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0873552Z CONN_LIFECYCLE: conn=818 role=brain stream-subscriber stream=452 wall_ms=1788931312087 mono_ms=95850 event=stream-sub-attach stream=452 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0874593Z CONN_LIFECYCLE: conn=819 role=brain stream-subscriber stream=454 wall_ms=1788931312087 mono_ms=95850 event=stream-sub-attach stream=454 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0875752Z CONN_LIFECYCLE: conn=818 role=brain stream-subscriber stream=452 wall_ms=1788931312087 mono_ms=95850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0876556Z CONN_LIFECYCLE: conn=819 role=brain stream-subscriber stream=454 wall_ms=1788931312087 mono_ms=95850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0879613Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931312087 mono_ms=95850 event=stream-sub-release stream=448 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0881374Z CONN_LIFECYCLE: conn=820 role=brain wall_ms=1788931312088 mono_ms=95850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0882483Z CONN_LIFECYCLE: conn=819 role=brain stream-subscriber stream=454 wall_ms=1788931312088 mono_ms=95850 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0884131Z CONN_LIFECYCLE: conn=820 role=brain stream-subscriber stream=453 wall_ms=1788931312088 mono_ms=95850 event=stream-sub-attach stream=453 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0884967Z CONN_LIFECYCLE: conn=821 role=brain wall_ms=1788931312088 mono_ms=95851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0885739Z CONN_LIFECYCLE: conn=821 role=brain wall_ms=1788931312088 mono_ms=95851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0896839Z CONN_LIFECYCLE: conn=818 role=brain stream-subscriber stream=452 wall_ms=1788931312089 mono_ms=95852 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0898518Z CONN_LIFECYCLE: conn=822 role=brain wall_ms=1788931312089 mono_ms=95852 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0899346Z CONN_LIFECYCLE: conn=822 role=brain wall_ms=1788931312089 mono_ms=95852 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0991754Z CONN_LIFECYCLE: conn=814 role=brain wall_ms=1788931312099 mono_ms=95861 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0995644Z CONN_LIFECYCLE: conn=814 role=brain stream-subscriber stream=455 wall_ms=1788931312099 mono_ms=95862 event=stream-sub-attach stream=455 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.0999211Z CONN_LIFECYCLE: conn=820 role=brain stream-subscriber stream=453 wall_ms=1788931312099 mono_ms=95862 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1000876Z CONN_LIFECYCLE: conn=823 role=brain wall_ms=1788931312100 mono_ms=95862 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1001803Z CONN_LIFECYCLE: conn=823 role=brain wall_ms=1788931312100 mono_ms=95862 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1047677Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931312104 mono_ms=95867 event=stream-sub-attach stream=456 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1167288Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=10 stream-subscriber stream=27 stream-subscriber stream=35 stream-subscriber stream=40 stream-subscriber stream=50 stream-subscriber stream=62 stream-subscriber stream=70 stream-subscriber stream=77… wall_ms=1788931312116 mono_ms=95879 event=stream-sub-release stream=456 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1311508Z TWOHOST OK: ladder-done sent (barrier)
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1311810Z TWOHOST role A: ladder complete
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1312487Z CONN_LIFECYCLE: conn=814 role=brain stream-subscriber stream=455 wall_ms=1788931312131 mono_ms=95893 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1313951Z STREAM_CONNBOUND_RETIRE:8: opener conn exited — FIN + terminal retire
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1316547Z CONN_LIFECYCLE: conn=13 role=brain stream-subscriber stream=8 stream-subscriber stream=32 stream-subscriber stream=34 stream-subscriber stream=54 stream-subscriber stream=56 stream-subscriber stream=57 stream-subscriber stream=58 stream-subscriber stream=59… wall_ms=1788931312131 mono_ms=95894 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1371547Z CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788931312137 mono_ms=95899 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1565227Z test two_host_ladder_role_a ... ok
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1565411Z 
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1565641Z test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 96.15s
twohost-a	Two-host ladder — role A (joiner/driver)	2026-09-09T05:21:52.1566879Z 
twohost-a	Two-host web serving — role A (requester)	﻿2026-09-09T05:21:52.3858574Z ##[group]Run .github/bench/wrap.ps1 -Step "twohost-web-a" -Command "cargo test -p spt-daemon --test twohost_web -- --nocapture"
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3859656Z [36;1m.github/bench/wrap.ps1 -Step "twohost-web-a" -Command "cargo test -p spt-daemon --test twohost_web -- --nocapture"[0m
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3865567Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3866162Z env:
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3866627Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3867400Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3868031Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3868452Z   SPT_TWO_HOST: 1
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3868657Z   SPT_TWO_HOST_ROLE: a
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3868860Z   SPT_TWO_HOST_SECRET: rig-twohost-ci
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3869112Z   SPT_TWO_HOST_PEER_IP: 100.98.197.12
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3869381Z   SPT_TWO_HOST_WAIT_SECS: 900
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:52.3869586Z ##[endgroup]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:55.2241016Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:59.3430785Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.52s
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:21:59.3768060Z      Running tests\twohost_web.rs (target\debug\deps\twohost_web-f73bc44be13353fb.exe)
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.8148628Z 
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.8149047Z running 5 tests
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.8151195Z test two_host_web_role_b ... ok
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9325729Z TWOHOST-WEB role A cell 2: listener 51264, broker udp 7482 (spt-twohost-web-a2-15272), pid 15272
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9326491Z TWOHOST-WEB role A cell 0: listener 51263, broker udp 7480 (spt-twohost-web-a0-15272), pid 15272
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9336101Z TWOHOST-WEB role A cell 3: listener 51265, broker udp 7483 (spt-daemon-seed-2cb6f3b2e4cde772.sock), pid 15272
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9353386Z TWOHOST-WEB role A cell 1: listener 51271, broker udp 7481 (spt-twohost-web-a1-15272), pid 15272
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9454258Z TWOHOST-WEB role A helper: gateway row merged, verdicts [Merged(Inserted)]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9460549Z CONN_LIFECYCLE: conn=4 role=brain wall_ms=1788931320945 mono_ms=0 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9646427Z PAIR_MEET_UP:twohost step=59631044 id=63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11 addr=EndpointAddr { id: PublicKey(63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11), addrs: {Ip(100.68.35.65:63042), Ip(192.168.1.81:63042)} }
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9648538Z PAIR_MEET_UP:twohost step=59631044 id=63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11 addr=EndpointAddr { id: PublicKey(63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11), addrs: {Ip(100.68.35.65:63052), Ip(192.168.1.81:63052)} }
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9649753Z PAIR_MEET_UP:twohost step=59631044 id=63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11 addr=EndpointAddr { id: PublicKey(63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11), addrs: {Ip(100.68.35.65:63045), Ip(192.168.1.81:63045)} }
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:00.9650844Z PAIR_MEET_UP:twohost step=59631044 id=63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11 addr=EndpointAddr { id: PublicKey(63ccc98cf91b0d65528b2743deda083e50edea2e8dbaddc4018e89889fe6ef11), addrs: {Ip(100.68.35.65:63044), Ip(192.168.1.81:63044)} }
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0044032Z CONN_LIFECYCLE: conn=1 role=brain wall_ms=1788931321004 mono_ms=58 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0048506Z CONN_LIFECYCLE: conn=1 role=brain stream-subscriber stream=1 wall_ms=1788931321004 mono_ms=58 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0050233Z CONN_LIFECYCLE: conn=3 role=brain wall_ms=1788931321004 mono_ms=58 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0053267Z CONN_LIFECYCLE: conn=3 role=brain stream-subscriber stream=1 wall_ms=1788931321005 mono_ms=59 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0068037Z CONN_LIFECYCLE: conn=2 role=brain wall_ms=1788931321006 mono_ms=60 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0071132Z CONN_LIFECYCLE: conn=2 role=brain stream-subscriber stream=1 wall_ms=1788931321007 mono_ms=61 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0422123Z TWOHOST OK: fetch of B's open.md through A is byte-equal
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0422438Z TWOHOST OK: Range through A is B's 206 with Content-Range
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0422693Z TWOHOST OK: B's WEB deny rule answers 403 naming WEB through A
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0441173Z test two_host_web_deny_role_a ... ok
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0441431Z test two_host_web_fetch_role_a ... ok
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:01.0442309Z test two_host_web_range_role_a ... ok
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.1954702Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931326195 mono_ms=5249 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.1958257Z CONN_LIFECYCLE: conn=5 role=brain wall_ms=1788931326195 mono_ms=5249 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.1960297Z CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=1 wall_ms=1788931326195 mono_ms=5249 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.1962730Z CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=1 wall_ms=1788931326196 mono_ms=5250 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.1984166Z ACCESS_STORE_MINTED C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698\.tmpOfjdJv\identity\trust\access.json — no access store was present at first load in this process, so an EMPTY baseline was written (everything open that the chain leaves open). If this node had access rules, they are GONE: the store was removed while the daemon was down, and this mint replaced it. Re-apply them (`spt endpoint access ...`); a restart cannot tell a wipe from a first boot.
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.3397543Z CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=1 wall_ms=1788931326339 mono_ms=5393 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.3398441Z CONN_LIFECYCLE: conn=8 role=brain wall_ms=1788931326339 mono_ms=5393 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.3399442Z CONN_LIFECYCLE: conn=8 role=brain wall_ms=1788931326339 mono_ms=5393 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.3558380Z CONN_LIFECYCLE: conn=7 role=brain wall_ms=1788931326355 mono_ms=5409 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.3561388Z CONN_LIFECYCLE: conn=7 role=brain stream-subscriber stream=2 wall_ms=1788931326356 mono_ms=5410 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9473468Z TWOHOST OK: A's helperline gained quoted-by-the-user.md for msg BCDFGH23 in 6001 ms
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9566661Z CONN_LIFECYCLE: conn=9 role=brain wall_ms=1788931326956 mono_ms=6010 event=write-start [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9570083Z CONN_LIFECYCLE: conn=9 role=brain stream-subscriber stream=3 wall_ms=1788931326956 mono_ms=6010 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9791000Z F1_ARM=vii: EXECUTED, the audience's node pulled the quoted file byte-equal
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9791449Z TWOHOST OK: the audience's node fetched the user's quoted file byte-equal
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9825269Z test two_host_web_helper_role_a ... ok
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9825472Z 
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9825716Z test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.17s
twohost-a	Two-host web serving — role A (requester)	2026-09-09T05:22:06.9826774Z 
twohost-a	Build mock-session (gated-step resume harness)	﻿2026-09-09T05:22:07.0910280Z ##[group]Run cargo build -p mock-adapter --bin mock-session
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0910785Z [36;1mcargo build -p mock-adapter --bin mock-session[0m
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0917832Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0918208Z env:
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0918659Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0919396Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0920071Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.0920534Z ##[endgroup]
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.8557561Z    Compiling typenum v1.20.1
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.8559745Z    Compiling subtle v2.6.1
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:07.8563777Z    Compiling windows-sys v0.59.0
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:08.3782892Z    Compiling generic-array v0.14.7
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:09.3889641Z    Compiling crypto-common v0.1.7
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:09.3890137Z    Compiling block-buffer v0.10.4
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:11.4676321Z    Compiling digest v0.10.7
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:12.8317439Z    Compiling sha2 v0.10.9
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:12.8317687Z    Compiling hmac v0.12.1
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:13.3335609Z    Compiling mock-adapter v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\adapters\mock)
twohost-a	Build mock-session (gated-step resume harness)	2026-09-09T05:22:14.1141944Z     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.41s
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	﻿2026-09-09T05:22:14.2292823Z ##[group]Run .github/ci/reap-census.ps1 -Phase prerelink
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2293164Z [36;1m.github/ci/reap-census.ps1 -Phase prerelink[0m
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2297408Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2297622Z env:
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2297879Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2298329Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2298702Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.2298967Z ##[endgroup]
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5460418Z CI-CENSUS scope roots:
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5470749Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5471784Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\target
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5473135Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5474178Z   root: C:\actions-runner\_work\_temp
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5475097Z   root: C:\Users\decid\spt-n1-oldbroker
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.5866535Z CI-REAP: pre-reap state
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6102613Z CI-CENSUS phase=prerelink-pre-reap box_procs=612 box_handles=266792 family_total=11 family_handles=1918 scoped=0 unscoped=11 unreadable_path=0
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6153666Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6154736Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6155700Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6156521Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6157466Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6158763Z   FOREIGN  pid=48232   handles=692    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6160099Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6161335Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6162560Z   FOREIGN  pid=51992   handles=174    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6165005Z   FOREIGN  pid=52776   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:14.6166155Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1405144Z CI-CENSUS phase=prerelink box_procs=611 box_handles=266874 family_total=10 family_handles=1890 scoped=0 unscoped=10 unreadable_path=0
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1408820Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1410327Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1413116Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1414621Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1416330Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1417635Z   FOREIGN  pid=48232   handles=692    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1419338Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1420671Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1422171Z   FOREIGN  pid=51992   handles=174    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1423479Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap leaked workspace daemons before the gated-CLI relink (Windows exe-lock guard)	2026-09-09T05:22:16.1431959Z CI-REAP-PRERELINK summary: killed=0 kill_failed=0 scoped_survivors=0 observed_scoped=0 unreadable_path=0
twohost-a	Two-host gated CLI step — role A (driver)	﻿2026-09-09T05:22:16.2470916Z ##[group]Run .github/bench/wrap.ps1 -Step "twohost-cli-a" -Command "cargo test -p spt --test twohost_cli -- --nocapture"
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2473311Z [36;1m.github/bench/wrap.ps1 -Step "twohost-cli-a" -Command "cargo test -p spt --test twohost_cli -- --nocapture"[0m
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2479917Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2480290Z env:
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2480717Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2481577Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2482232Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2482671Z   SPT_TWO_HOST: 1
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2482858Z   SPT_TWO_HOST_ROLE: a
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2483063Z   SPT_TWO_HOST_SECRET: rig-twohost-ci
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2483300Z   SPT_TWO_HOST_WAIT_SECS: 900
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:16.2483506Z ##[endgroup]
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.1541874Z    Compiling n0-future v0.3.2
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.1589345Z    Compiling spt-store v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-store)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.1688476Z    Compiling backon v1.6.0
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.1730387Z    Compiling tempfile v3.27.0
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.3577226Z    Compiling n0-watcher v0.6.1
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.4737586Z    Compiling iroh-dns v0.98.0
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.7482426Z    Compiling spt-test-support v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-test-support)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:18.8662981Z    Compiling netwatch v0.16.0
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:19.0761679Z    Compiling iroh-relay v0.98.0
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:19.5539777Z    Compiling portmapper v0.16.0
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:22.6817260Z    Compiling spt-msg v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-msg)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:23.6347451Z    Compiling spt-runtime v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-runtime)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:23.6784789Z    Compiling spt-term v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-term)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:26.2504269Z    Compiling spt-live v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-live)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:27.0332389Z    Compiling iroh v0.98.2
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:39.6550146Z    Compiling spt-net v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-net)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:22:41.9282175Z    Compiling spt-daemon v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt-daemon)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:00.6088311Z    Compiling spt v0.68.0 (C:\actions-runner\_work\spt-bs-core\spt-bs-core\crates\spt)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:17.2084848Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 00s
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:17.2351385Z      Running tests\twohost_cli.rs (target\debug\deps\twohost_cli-b4b73bbf3fa639d1.exe)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:18.3655294Z 
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:18.3655727Z running 2 tests
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:18.3657344Z test gated_cli_role_b ... ok
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:18.3664132Z GATED role A: node cc45247c71dc683e9c6505b72142e1976f898f7acf064beb27e35d2993ace09c
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:50.7141569Z GATED OK: bring-up: B's suspended C-2 row replicated to A
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:23:52.0913449Z GATED OK: C-2 wake dispatched — WOKE:ling-gated-c2@989b0dbaa74de8e5c747af19c65f49211f08235717e8d322ec082ab0cbfb48ee (Suspended->Active) at 989b0dbaa74de8e5c747af19c65f49211f08235717e8d322ec082ab0cbfb48ee
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:18.3799610Z test gated_cli_role_a has been running for over 60 seconds
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:26.1796000Z GATED OK: C-2: B's row advertises Active (the revive completed the loop)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:26.1811658Z GATED OK: E-1: B's send landed in the target spool
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:26.1812007Z GATED OK: E-1 from-stamp = ling-gated-e1
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:41.0741806Z GATED OK: W4 fork: B's source is seeded and granted
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:41.0744367Z GATED OK: W4 fork: B's source row replicated to A
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:44.0615339Z GATED OK: W4 fork driven across the boundary — FORKED:ling-gated-forksrc@989b0dbaa74de8e5c747af19c65f49211f08235717e8d322ec082ab0cbfb48ee -> ling-gated-forknew on 989b0dba… (home=twohost, copied-then-independent)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:56.1684005Z GATED OK: W4 fork: B verified the forked endpoint
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:56.5070929Z GATED OK: evidence-route knock left A — knocked on ling-gated-forkgap at 989b0dba…
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:56.5071403Z   asking for: FORK
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:56.5071711Z   as: cc45247c71dc683e9c6505b72142e1976f898f7acf064beb27e35d2993ace09c
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:56.5072128Z       = the humans on this machine (not its agents)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:24:56.5072752Z It is waiting in their inbox on 989b0dba… — nothing notifies them, so they may need asking.
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:25:11.4354251Z GATED OK: fork-pair: B read the prescription and the consequence
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:25:11.4356610Z GATED OK: B-3: B's ticker row replicated to A
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:25:11.8334612Z GATED OK: B-3: pre-bounce ticker output reached the viewport
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:23.5966155Z GATED OK: B-3: the reconnect banner painted after the sever
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:23.8467623Z GATED OK: B-3: live output resumed after the banner (reheal)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:23.8467976Z GATED OK: B-3 banner-then-reheal on the real remote bounce
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:44.0977688Z GATED OK: done: B acknowledged (bye)
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:47.1145742Z GATED role A: step complete
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:47.3825057Z test gated_cli_role_a ... ok
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:47.3825322Z 
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:47.3825626Z test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 329.02s
twohost-a	Two-host gated CLI step — role A (driver)	2026-09-09T05:28:47.3826064Z 
twohost-a	DISK end floor	﻿2026-09-09T05:28:47.6757808Z ##[group]Run $floorBytes = 32GB
twohost-a	DISK end floor	2026-09-09T05:28:47.6758138Z [36;1m$floorBytes = 32GB[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6758335Z [36;1m$drive = (Get-Item $env:GITHUB_WORKSPACE).PSDrive[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6758562Z [36;1m$freeBytes = [int64]$drive.Free[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6758944Z [36;1m$verdict = if ($freeBytes -lt $floorBytes) { "RED" } else { "PASS" }[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6759491Z [36;1mWrite-Host "FLOOR_END job=twohost-a runner=Windows free_bytes=$freeBytes floor_bytes=$floorBytes verdict=$verdict sample=INSTANT"[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6759988Z [36;1mif ($freeBytes -lt $floorBytes) {[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6760606Z [36;1m  Write-Error "RESOURCE=disk drive=$($drive.Root) free_bytes=$freeBytes floor_bytes=$floorBytes"[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6760885Z [36;1m  exit 1[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6761005Z [36;1m}[0m
twohost-a	DISK end floor	2026-09-09T05:28:47.6766641Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	DISK end floor	2026-09-09T05:28:47.6766998Z env:
twohost-a	DISK end floor	2026-09-09T05:28:47.6767477Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	DISK end floor	2026-09-09T05:28:47.6768201Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	DISK end floor	2026-09-09T05:28:47.6768857Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	DISK end floor	2026-09-09T05:28:47.6769302Z ##[endgroup]
twohost-a	DISK end floor	2026-09-09T05:28:47.9534430Z FLOOR_END job=twohost-a runner=Windows free_bytes=141980196864 floor_bytes=34359738368 verdict=PASS sample=INSTANT
twohost-a	Reap test-spawned daemons + census (job end)	﻿2026-09-09T05:28:48.2338281Z ##[group]Run .github/ci/reap-census.ps1 -Phase end
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2338646Z [36;1m.github/ci/reap-census.ps1 -Phase end[0m
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2344400Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2344740Z env:
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2345290Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2349449Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2350300Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.2350901Z ##[endgroup]
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5375442Z CI-CENSUS scope roots:
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5385469Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5386417Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\target
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5387626Z   root: C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify\target
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5388455Z   root: C:\actions-runner\_work\_temp
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5389444Z   root: C:\Users\decid\spt-n1-oldbroker
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.5694317Z CI-REAP: pre-reap state
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6041084Z CI-CENSUS phase=pre-reap box_procs=613 box_handles=266608 family_total=12 family_handles=1944 scoped=0 unscoped=12 unreadable_path=0
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6093620Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6094654Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6096229Z   FOREIGN  pid=19860   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6097371Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6098831Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6099955Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6101263Z   FOREIGN  pid=48232   handles=693    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6102295Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6103542Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6104885Z   FOREIGN  pid=51992   handles=171    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6105954Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:48.6107199Z   FOREIGN  pid=59960   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1376114Z CI-CENSUS phase=end box_procs=615 box_handles=267001 family_total=12 family_handles=2053 scoped=0 unscoped=12 unreadable_path=0
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1379326Z   FOREIGN  pid=9848    handles=129    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1380734Z   FOREIGN  pid=12468   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1382280Z   FOREIGN  pid=22880   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1383812Z   FOREIGN  pid=28508   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1385154Z   FOREIGN  pid=41600   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1386504Z   FOREIGN  pid=48232   handles=701    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1387469Z   FOREIGN  pid=48928   handles=28     spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1388561Z   FOREIGN  pid=48988   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1389807Z   FOREIGN  pid=50724   handles=133    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1391706Z   FOREIGN  pid=51992   handles=178    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1392666Z   FOREIGN  pid=53244   handles=127    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1393988Z   FOREIGN  pid=57568   handles=122    spt C:\Users\decid\AppData\Local\spt-core\bin\spt.exe
twohost-a	Reap test-spawned daemons + census (job end)	2026-09-09T05:28:50.1402358Z CI-REAP summary: killed=0 kill_failed=0 scoped_survivors=0 observed_scoped=0 unreadable_path=0
twohost-a	Remove run-scoped test temp sandbox	﻿2026-09-09T05:28:50.3020693Z ##[group]Run .github/ci/test-temp-sandbox.ps1 -Phase cleanup
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3021043Z [36;1m.github/ci/test-temp-sandbox.ps1 -Phase cleanup[0m
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3025417Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3025634Z env:
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3025889Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3026311Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3026823Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.3027094Z ##[endgroup]
twohost-a	Remove run-scoped test temp sandbox	2026-09-09T05:28:50.8516561Z CI-TMP cleanup: removed C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698 on attempt 1/5
twohost-a	Upload bench ledger	﻿2026-09-09T05:28:51.2022422Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2024122Z ##[group]Run actions/upload-artifact@v4
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2024468Z with:
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2024693Z   name: bench-ledger-twohost-a
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2024928Z   path: bench-ledger/
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2025066Z   if-no-files-found: warn
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2025207Z   retention-days: 30
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2025370Z   compression-level: 6
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2025513Z   overwrite: false
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2025642Z   include-hidden-files: false
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2025787Z env:
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2026043Z   SPT_CI_TEST_TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2026451Z   TEMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2026847Z   TMP: C:\actions-runner\_work\_temp\spt-test-tmp-34310511612-1-f2b74a14676e49f8bc3d6f31abeda698
twohost-a	Upload bench ledger	2026-09-09T05:28:51.2027108Z ##[endgroup]
twohost-a	Upload bench ledger	2026-09-09T05:28:52.1483426Z (node:42604) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
twohost-a	Upload bench ledger	2026-09-09T05:28:52.1484267Z (Use `node --trace-deprecation ...` to show where the warning was created)
twohost-a	Upload bench ledger	2026-09-09T05:28:52.1518063Z With the provided path, there will be 1 file uploaded
twohost-a	Upload bench ledger	2026-09-09T05:28:52.1521141Z Artifact name is valid!
twohost-a	Upload bench ledger	2026-09-09T05:28:52.1523137Z Root directory input is valid!
twohost-a	Upload bench ledger	2026-09-09T05:28:52.5669770Z Beginning upload of artifact content to blob storage
twohost-a	Upload bench ledger	2026-09-09T05:28:52.5777657Z (node:42604) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
twohost-a	Upload bench ledger	2026-09-09T05:28:52.8431082Z Uploaded bytes 380
twohost-a	Upload bench ledger	2026-09-09T05:28:52.9151191Z Finished uploading artifact content to blob storage!
twohost-a	Upload bench ledger	2026-09-09T05:28:52.9151965Z SHA256 digest of uploaded artifact zip is b7227bae72923e72a8ddf0d5579d9e43ddc9ee65516b356d6965d2bc17ae57f6
twohost-a	Upload bench ledger	2026-09-09T05:28:52.9152604Z Finalizing artifact upload
twohost-a	Upload bench ledger	2026-09-09T05:28:53.2199597Z Artifact bench-ledger-twohost-a.zip successfully finalized. Artifact ID 10089743181
twohost-a	Upload bench ledger	2026-09-09T05:28:53.2200087Z Artifact bench-ledger-twohost-a has been successfully uploaded! Final size is 380 bytes. Artifact ID is 10089743181
twohost-a	Upload bench ledger	2026-09-09T05:28:53.2208748Z Artifact download URL: https://github.com/BigscreenVR/spt-bs-core/actions/runs/34310511612/artifacts/10089743181
twohost-a	Post Checkout spt-shell-notify (toast rung)	﻿2026-09-09T05:28:53.5217478Z Post job cleanup.
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:54.4158105Z [command]"C:\Program Files\Git\cmd\git.exe" version
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.4537132Z git version 2.43.0.windows.1
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.4583776Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\036020d6-aaab-4475-aa24-b102b14c065d\.gitconfig'
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.4605547Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\036020d6-aaab-4475-aa24-b102b14c065d' before making global git config changes
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.4607097Z Adding repository directory to the temporary git global config as a safe directory
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.4614932Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core\.adapter-notify
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.4920758Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:55.5238421Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:57.2429082Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:57.2715175Z http.https://github.com/.extraheader
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:57.2742689Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all http.https://github.com/.extraheader
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:28:57.3054408Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:29:01.4862766Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-a	Post Checkout spt-shell-notify (toast rung)	2026-09-09T05:29:01.5228511Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
twohost-a	Post Run actions/checkout@v5	﻿2026-09-09T05:29:02.9423595Z Post job cleanup.
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.0493630Z [command]"C:\Program Files\Git\cmd\git.exe" version
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.3605796Z git version 2.43.0.windows.1
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.3657656Z Copying 'C:\Users\decid\.gitconfig' to 'C:\actions-runner\_work\_temp\9d9196d4-165b-445b-9702-1149a668a3de\.gitconfig'
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.3686309Z Temporarily overriding HOME='C:\actions-runner\_work\_temp\9d9196d4-165b-445b-9702-1149a668a3de' before making global git config changes
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.3687165Z Adding repository directory to the temporary git global config as a safe directory
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.3694443Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory C:\actions-runner\_work\spt-bs-core\spt-bs-core
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.4084725Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:03.7044952Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:10.0467039Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:10.3688485Z http.https://github.com/.extraheader
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:10.3837240Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --unset-all http.https://github.com/.extraheader
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:10.7234307Z [command]"C:\Program Files\Git\cmd\git.exe" 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' || :\""
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:15.2827427Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
twohost-a	Post Run actions/checkout@v5	2026-09-09T05:29:15.3152356Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
twohost-a	Complete job	﻿2026-09-09T05:29:18.1016935Z Cleaning up orphan processes
twohost-a	Complete job	2026-09-09T05:29:18.1207409Z Terminate orphan process: pid (12232) (vctip)
twohost-a	Complete job	2026-09-09T05:29:18.1567069Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
notify	Set up job	﻿2026-09-09T05:29:24.9129700Z Current runner version: '2.337.0'
notify	Set up job	2026-09-09T05:29:24.9134830Z Runner name: 'kitsubito'
notify	Set up job	2026-09-09T05:29:24.9135420Z Runner group name: 'Default'
notify	Set up job	2026-09-09T05:29:24.9136069Z Machine name: 'KITSUBITO'
notify	Set up job	2026-09-09T05:29:24.9139447Z ##[group]GITHUB_TOKEN Permissions
notify	Set up job	2026-09-09T05:29:24.9141280Z Actions: write
notify	Set up job	2026-09-09T05:29:24.9141714Z ArtifactMetadata: write
notify	Set up job	2026-09-09T05:29:24.9142135Z Attestations: write
notify	Set up job	2026-09-09T05:29:24.9142525Z Checks: write
notify	Set up job	2026-09-09T05:29:24.9142894Z CodeQuality: write
notify	Set up job	2026-09-09T05:29:24.9143279Z Contents: write
notify	Set up job	2026-09-09T05:29:24.9143660Z CopilotRequests: write
notify	Set up job	2026-09-09T05:29:24.9144058Z Deployments: write
notify	Set up job	2026-09-09T05:29:24.9144439Z Discussions: write
notify	Set up job	2026-09-09T05:29:24.9144810Z Drives: write
notify	Set up job	2026-09-09T05:29:24.9145172Z Issues: write
notify	Set up job	2026-09-09T05:29:24.9145536Z Metadata: read
notify	Set up job	2026-09-09T05:29:24.9145903Z Models: read
notify	Set up job	2026-09-09T05:29:24.9146261Z Packages: write
notify	Set up job	2026-09-09T05:29:24.9146625Z Pages: write
notify	Set up job	2026-09-09T05:29:24.9146986Z PullRequests: write
notify	Set up job	2026-09-09T05:29:24.9147486Z RepositoryProjects: write
notify	Set up job	2026-09-09T05:29:24.9147903Z SecurityEvents: write
notify	Set up job	2026-09-09T05:29:24.9148283Z Statuses: write
notify	Set up job	2026-09-09T05:29:24.9148650Z VulnerabilityAlerts: read
notify	Set up job	2026-09-09T05:29:24.9149150Z ##[endgroup]
notify	Set up job	2026-09-09T05:29:24.9150901Z Secret source: Actions
notify	Set up job	2026-09-09T05:29:24.9151703Z Prepare workflow directory
notify	Set up job	2026-09-09T05:29:24.9545113Z Prepare all required actions
notify	Set up job	2026-09-09T05:29:24.9581200Z Getting action download info
notify	Set up job	2026-09-09T05:29:25.2939329Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09)
notify	Set up job	2026-09-09T05:29:25.6777550Z Complete job name: notify
notify	Run actions/checkout@v5	﻿2026-09-09T05:29:25.7564617Z ##[group]Run actions/checkout@v5
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7565308Z with:
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7565710Z   ref: f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7566191Z   fetch-depth: 1
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7566572Z   repository: BigscreenVR/spt-bs-core
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7569302Z   token: ***
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7592793Z   ssh-strict: true
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7593223Z   ssh-user: git
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7593621Z   persist-credentials: true
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7594006Z   clean: true
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7594363Z   sparse-checkout-cone-mode: true
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7594764Z   fetch-tags: false
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7595107Z   show-progress: true
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7595475Z   lfs: false
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7595809Z   submodules: false
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7596162Z   set-safe-directory: true
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7596556Z   allow-unsafe-pr-checkout: false
notify	Run actions/checkout@v5	2026-09-09T05:29:25.7597313Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8379518Z Syncing repository: BigscreenVR/spt-bs-core
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8381049Z ##[group]Getting Git version info
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8381784Z Working directory is '/home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core'
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8382685Z [command]/usr/bin/git version
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8383092Z git version 2.43.0
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8390144Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8398336Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/e53bc551-b152-40be-8ea0-0b3d09a48deb/.gitconfig'
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8405617Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/e53bc551-b152-40be-8ea0-0b3d09a48deb' before making global git config changes
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8406742Z Adding repository directory to the temporary git global config as a safe directory
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8408577Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8459688Z [command]/usr/bin/git config --local --get remote.origin.url
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8475666Z https://github.com/BigscreenVR/spt-bs-core
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8484885Z ##[group]Removing previously created refs, to avoid conflicts
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8487257Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8504662Z refs/heads/golden/webserve-272-r3
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8510262Z [command]/usr/bin/git checkout --detach
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8576524Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8610216Z [command]/usr/bin/git branch --delete --force golden/webserve-272-r3
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8642265Z Deleted branch golden/webserve-272-r3 (was f6110c2a1).
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8646466Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8649282Z [command]/usr/bin/git submodule status
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8831177Z ##[group]Cleaning the repository
notify	Run actions/checkout@v5	2026-09-09T05:29:25.8834293Z [command]/usr/bin/git clean -ffdx
notify	Run actions/checkout@v5	2026-09-09T05:29:27.6939278Z Removing .adapter-notify/
notify	Run actions/checkout@v5	2026-09-09T05:29:27.6941019Z Removing bench-ledger/
notify	Run actions/checkout@v5	2026-09-09T05:29:27.6941624Z Removing target/
notify	Run actions/checkout@v5	2026-09-09T05:29:27.6947615Z [command]/usr/bin/git reset --hard HEAD
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7025634Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7032907Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7034039Z ##[group]Disabling automatic garbage collection
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7038687Z [command]/usr/bin/git config --local gc.auto 0
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7067560Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7068624Z ##[group]Setting up auth
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7073602Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7097199Z [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' || :"
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7289531Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7314601Z [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' || :"
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7499267Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7524501Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7717511Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7746149Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7747563Z ##[group]Fetching the repository
notify	Run actions/checkout@v5	2026-09-09T05:29:27.7752183Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2828914Z From https://github.com/BigscreenVR/spt-bs-core
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2830618Z  * branch                f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d -> FETCH_HEAD
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2863490Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2864365Z ##[group]Determining the checkout info
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2865186Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2869336Z [command]/usr/bin/git sparse-checkout disable
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2907112Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2928141Z ##[group]Checking out the ref
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2930530Z [command]/usr/bin/git checkout --progress --force f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2989666Z HEAD is now at f6110c2a1 test(attachment): name the two entries, do not count the registry
notify	Run actions/checkout@v5	2026-09-09T05:29:28.2995388Z ##[endgroup]
notify	Run actions/checkout@v5	2026-09-09T05:29:28.3036260Z [command]/usr/bin/git log -1 --format=%H
notify	Run actions/checkout@v5	2026-09-09T05:29:28.3063092Z f6110c2a12df0dd50b87dfb60a2ec4120b5cf98d
notify	Notify agents of the run outcome	﻿2026-09-09T05:29:28.3248076Z ##[group]Run bash .github/ci/ci-notify.sh
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3248481Z [36;1mbash .github/ci/ci-notify.sh[0m
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3264770Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3265114Z env:
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3265324Z   RESULT_CHANGES: success
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3265566Z   RESULT_TRACEABILITY: success
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3265812Z   RESULT_TEST: failure
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3266035Z   RESULT_N1_GATE: success
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3266265Z   RESULT_TWOHOST_A: success
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3266499Z   RESULT_TWOHOST_B: success
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3266923Z   PR_NUMBER: 
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3267129Z ##[endgroup]
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3325013Z ci-notify: SPT_HOME=<unset — spt resolves its default>
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3724957Z ci-notify: daemon is up — sends deliver live where a recipient is listening
notify	Notify agents of the run outcome	2026-09-09T05:29:28.3750204Z ci-notify: verdict FAILURE (failing: test(failure))
notify	Notify agents of the run outcome	2026-09-09T05:29:38.4028002Z ci-notify: HOP_FAILED rc=255 via decid@hfenduleam — falling back to direct send
notify	Notify agents of the run outcome	2026-09-09T05:29:38.4178893Z ci-notify: -> doyle: SEND FAILED rc=1: DAEMON_START_DECLINED: daemon stopped by operator — spt node start to resume
notify	Notify agents of the run outcome	2026-09-09T05:29:38.4180096Z WAN_FAIL:doyle — broker connect: Connection refused (os error 111)
notify	Notify agents of the run outcome	2026-09-09T05:29:48.4382557Z ci-notify: HOP_FAILED rc=255 via decid@hfenduleam — falling back to direct send
notify	Notify agents of the run outcome	2026-09-09T05:29:48.4482390Z ci-notify: -> hertz: SEND FAILED rc=1: DAEMON_START_DECLINED: daemon stopped by operator — spt node start to resume
notify	Notify agents of the run outcome	2026-09-09T05:29:48.4483785Z WAN_FAIL:hertz — broker connect: Connection refused (os error 111)
notify	Post Run actions/checkout@v5	﻿2026-09-09T05:29:48.4673933Z Post job cleanup.
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5368931Z [command]/usr/bin/git version
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5399535Z git version 2.43.0
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5425037Z Copying '/home/reavus/.gitconfig' to '/home/reavus/actions-runner/_work/_temp/5e3ea438-86ba-449a-a4ec-b70ec582ce20/.gitconfig'
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5432098Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/5e3ea438-86ba-449a-a4ec-b70ec582ce20' before making global git config changes
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5432751Z Adding repository directory to the temporary git global config as a safe directory
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5435525Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-bs-core/spt-bs-core
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5463320Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5488413Z [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' || :"
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5674328Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5693242Z http.https://github.com/.extraheader
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5700022Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5722808Z [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' || :"
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5904260Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
notify	Post Run actions/checkout@v5	2026-09-09T05:29:48.5928444Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
notify	Complete job	﻿2026-09-09T05:29:48.6227859Z Cleaning up orphan processes
